일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 구루미비즈
- 3D모델링
- BrainCar
- ChatGPT
- 구루미biz
- 볼트 모델링
- seoulmysoul
- 3Dprinting
- 3D modeling
- lasercutting
- 서울마이소울
- 구루미 고객센터
- 구루미 장애사항
- 프리미어
- laserutting
- micro-bit
- 3D프린팅
- LayerCutting
- 22ww.tistory.com
- FUSION 360
- Premiere
- suno
- 레이저커팅
- 3D PRINTING
- 3D 모델링
- 구루미biz(gooroomeebiz)
- 무드등
- 3d
- 3dmodeling
- fusion360
- Today
- Total
CodingMaker
Python에서 아두이노 서보 모터 움직이기 본문
먼저 아두이노에 쉴드를 연결한 후, 아래 사진과 같이 서보모터 2개를 각각 쉴드에 연결한다.
신호의 노란 선이 각각 D8과 D7에 연결한다.
파이썬
import serial arduino = serial.Serial('COM12',9600) while(1): c=input() if c =='q': break else: c=c.encode('utf-8') arduino.write(c) |
파이썬에서 위의 코드를 입력한다. COM12에 아두이노가 연결되어 있기 때문에 COM12로 입력한다. 스케치에서 확인한다.
입력이 끝나면 Ctrl+F5 키를 누른다음 아래 창이 뜨면,
1~4중 하나의 값을 입력하면 서보모터의 각도가 5도씩 움직인다.
아두이노
#include <Servo.h> Servo myservoH; // create servo object to control a servo Servo myservoV; int posH = 90; int posV = 90; void setup() { myservoH.attach(8); // 서보모터를 쉴드의 8번에 연결한다. myservoV.attach(7); // 서보모터를 쉴드의 7번에 연결한다. Serial.begin(9600); } void loop() { while (Serial.available() > 0) { long value = Serial.parseInt(); int backUpH = posH; int backUpV = posV; switch (value) { case 1: //posH = posH - 5; 같은 표현이다 posH -= 5; posH -= 5; break; case 2: posH += 5; break; case 3: posV -= 5; break; case 4: posV += 5; break; } if (posH<0 || posH>180) { posH=backUpH; } if (posV<0 || posV>180) { posV=backUpV; } myservoH.write(posH); myservoV.write(posV); } } |
파이썬
import cv2 import serial arduino = serial.Serial('COM12',9600) cap = cv2.VideoCapture(0) while(True): # Capture frame-by-frame ret, frame = cap.read()
cv2.imshow('frame',frame) key = cv2.waitKey(1) & 0xFF
if key == ord('q'): break elif key ==ord('a'): #왼쪽 arduino.write(b'1\n') print(b'1\n') elif key ==ord('d'): #오른쪽 arduino.write(b'2\n') print(b'2\n') elif key ==ord('w'): #위 arduino.write(b'3\n') print(b'3\n') elif key ==ord('s'): #아래 arduino.write(b'4\n') print(b'4\n') # When everything done, release the capture cap.release() cv2.destroyAllWindows() |
frame이라는 이름의 비디오 화면이 나타나며 키보드의 a 와 d로 오른쪽 왼쪽으로 서보모터를 이동시키고 키보드의 w와 s로 위 아래로 서보모터를 이동시킨다.
'Python' 카테고리의 다른 글
Python (0) | 2019.12.03 |
---|---|
Python 제어문 (1) | 2019.12.02 |
아두이노에서 Python으로 문자열 보내기 (1) | 2018.04.24 |
파이썬에서 아두이노로 문자 또는 숫자 보내기 (8) | 2018.04.17 |
Python 사진,영상 불러오기 (0) | 2018.04.05 |