파이선 코딩을 배우는 초보자도 머신 러닝에 한번 도전해 보자.
머신 러닝을 배우려는 초보자들이 가지게 될 의문점들을 하나하나 찾아내어
실제 풀어보고 결과를 확인해볼 수 있도록 완전히 뒷문으로 들어가 시작하는 머신 러닝!
_____________________________________________________________________
이미 Brokking의 오픈소스 밸런싱 로봇을 성공적으로 제작하였으나 제작의 난이도를 평가해 본 결과 DRV8255드라이버 회로 제작과정이 일반 애호가들이 따라하기에는 어렵다는 결론이 얻어졌다. 따라서 이 문제를 해결하기 위해 회로배선을 보다 편리하게 할 수 있는 DRV8825 DRI0023 아두이노 모터쉴드보드를 찾아 제작해 보기로 한다.
실제 DRI0023 아두이노 모터 쉴드 보드를 구매 후 배선을 체크해 본 결과 Broking 의 배선과는 차이점이 발견되었다.
DRI0023 보드의 스펙을 검토해본 결과 Broking 의 아두이노 Pro Mini 보드를 사용한 밸런싱 로봇 배선과는 차이가 있었다. Broking 의 밸런싱 로봇 배선과 아두이노 코드에 따르면 2,3,4,5번 디지털 핀들을 2개의 스테퍼 모터 제어에 사용하고 있으나 DRI0023 보드에서는 4,5,6,7번 핀이 사용되고 있어 이들 간에 정확한 매칭이 필요하다.
Broking 의 코드를 검토한 결과 ISR루틴에서 3번과 5번 핀은 스테퍼 모터의 방향전환용 핀으로 사용하고 있으며 2번과 4번 핀은 펄스파 신호 입력용으로 사용되고 있음을 확인하였다.
마찬가지로 DRI0023 스펙 예제에서 확인한 결과 위 코드에서처럼 4번 7번 핀이 방향 전환용이고 5번 6번 핀이 듀티 펄스 신호를 입력하는 핀으로 판명이 되었다. DRI0023 보드는 아두이노 우노 보드에 쉴드형태로 사용되므로 4,5,6,7번 핀에 맞춰 Broking의 코드에서 디지털 핀들이 매치가 되도록 코드를 수정하면 될 것이다.
전체적인 배선 구조를 살펴보자. LiPo 배터리로부터 완충 전압12.6V가 역류 방지 다이오드를 통해 DRI0023 보드에 가해진다. DC 전압 범위는 8∼35V 이므로 충분하다. 하지만 LiPo 는 11V 이하로 방전되면 재충전이 안되므로 Broking 이 사용했던 분압회로를 사용하여 Analog IO 0번에서 모니터링하는 것이 좋을 듯한데 사용 시 마다 멀티메터 측정이 가능하면 없어도 무방하며 코드에서 삭제해도 가능하다.
스테퍼 모터 배선은 아두이노 숫놈 점퍼선을 사용하여 핀 모양으로 개조해서 꽂을 수 있도록 개조하자.
MPU 6050은 A4와 A5 또는 I2C 용 SCL과 SDA 어느쪽을 사용해도 좋다. MPU 6050은 양면 테이프를 사용하여 보드 옆 바닥에 부착할 예정이다.
Microstep resolution 즉 모터 해상도를 DIP 스위치로 세팅할 예정이다. 모터 규격을 참조해야 한다.
Wireless program switch 및 Xbee 소켓은 사용하지 않는다. 그 대신에 통신은 HC-06 블루투스 보드를 사용하녀 Digital IO에서 0번 RX핀과 1번 TX핀을 사용할 예정이다.
밸런싱 로봇 하우징은 이미 제작된 그대로 이용하겠지만 소소하게 스위치나 다이오드 및 분압회로를 설치하기 위한 방법을 강구해야 한다. 조각 PCB를 하나 준비해야하며 LiPo 배터리 납땜 작업도 감안해야 할 것이다.
다음번 블로그 포스팅에서 부가할 PCB 배선 디자인과 아주 단순한 스테퍼 모터 시험용 아두이노 코드를 포스팅할 계획이다.
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
아두이노 Solar RC car용 솔라 셀 성능 실험 (0) | 2018.12.20 |
---|---|
DRI0023 아두이노 모터쉴드보드를 사용하는 밸런싱 로봇 스테퍼 모터 전류 조정 시험 (0) | 2018.12.20 |
아두이노 코딩-178: 아두이노 Neopixel Ring (0) | 2018.12.20 |
초음파 센서 Adafruit 모터쉴드 RC카 코딩 (0) | 2018.09.14 |
초음파 센서 RC카 충돌 테스트 (0) | 2018.09.14 |