센서와 모터 구동 테스트

센서와 모터 구동 테스트

일단 집에 있던 아두이노 우노 보드, 스텝모터, 모터 드라이버와 MPU6050 관성 측정 장치를 사용하여 조립 해 봤습니다. 모터 드라이버 모듈은 A4988 모듈을 사용하지 않고 이전에 쓰던 Easy Driver 모듈을 사용 하였습니다. 무선랜 모듈 ESP8266도 아직 구매하지 못해 달지 못했습니다. 센서로 위치를 읽어 넘어지지 않고 모터가 정상적으로 제어되는지 테스트 했습니다.

조립

3D 프린터로 출력한 부품은 M3 나사와 볼트를 사용하여 조립 하였습니다. M3 20mm 나사와 볼트를 사용하여 top shelf 와 motor shelf를 Lateral 과 연결 하였습니다. 모터는 M3 5mm 나사를 사용하여 모터와 motor shelf와 lateral 에 연결 합니다.  자세한 조립 방법은 B-ROBOT 사이트를 참조 합니다.

사용된 나사의 구입 사이트와 가격은 아래와 같습니다.

Part Name 부품명 Model Name 구입 사이트 단가 수량
Bolts 볼트 M3 x 20mm 썬더볼트 코리아 2000/100 100
M3 x 5mm 썬더볼트 코리아 2000/100 100
Nuts 너트 M3 썬더볼트 코리아 900/100 100

20160930_205420

아두이노 우노 보드 위에 기판을 올리고 기판에 MPU6050 센서 모듈과 Easy Driver 모듈 2개를 붙였습니다.  밧데리는 드론에서 쓰던 LiPo 2S 충전지를 사용했고 팔은 아직 달지 않았습니다.

20161003_203119

프로그램

B-Robot 최신 프로그램 소스는 Github 에서 받을 수 있습니다.

소스를 받아 아두이노 개발 환경에서 보드를 Arduino Uno 로 변경 하고 컴파일 하니 에러가 발생 했습니다. B-Robot 은 아두이노 레오나르도 기반으로 만들어져서 스텝모터를 16비트 타이머 인터럽트 2개를 사용하여 구동 하는데 우노에는 16비트 타이머가 하나밖에 없어  에러가 발생 합니다.

그래서 16비트 타이머 하나로 두 개의 모터를 같이 구동 시켰습니다.

그랬더니 일단은 센서값 정상적으로 읽고 손으로 세워 주면 넘어지지 않고 제대로 잘 서 있고 살짝 움직이면 균형을 잡기 위해 자동으로 앞 뒤로 움직입니다.

프로그램 변경 부분은 다음과 같습니다.

– 모터  Step, Dir 포트 변경

– MPU 6050 Interrupt  포트 변경.

– WIFI 모듈 사용 하지 않음.

– 서버 사용하지 않음.

– 타이머 인터럽트 1 만 사용하여 양쪽 모터 구동.

– 마이크로 스테핑 16에서 8로 변경

변경된 소스는 첨부 하였습니다.  robot.zip