아두이노 코딩-179: DRI0023 아두이노 모터쉴드보드 밸런싱 로봇 재설계

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@codingart·
0.000 HBD
아두이노 코딩-179: DRI0023 아두이노 모터쉴드보드 밸런싱 로봇 재설계
![noname04.png](https://cdn.steemitimages.com/DQmW8PSVG9WsjtQu1tJZLP6Mefa7a6y8pfbZJSkDD8hmFUQ/noname04.png)

이미 Broking의 오픈소스 밸런싱 로봇 제작에 성공하였으나 제작의 난이도를 평가해 본 결과 DRV8255드라이버 회로 제작과정이 일반 애호가들이 따라하기에는 어렵다는 결론이 얻어짐에 따라 이 문제를 해결하기 위해 회로배선을 보다 편리하게 할 수 있는 DRV8825 DRI0023 아두이노 모터쉴드보드를 찾아 제작해 보기로 하였다. 

실제 DRI0023 아두이노 모터 쉴드 보드를 구매 후 배선을 체크해 본 결과 Broking 의 배선과는 차이점이 발견되었다. 
 
![noname00.png](https://cdn.steemitimages.com/DQmbd2vowtXssGJ91hxLuAg85dYF477KivS51iT7RhcWAez/noname00.png)

DRI0023 보드의 스펙을 검토해본 결과 Broking 의 아두이노 Pro Mini ㅁ보드를 사용한 밸런싱 로봇 배선과는 차이가 있었다. Broking 의 밸런싱 로봇 배선과 아두이노 코드에 따르면 2,3,4,5번 디지털 핀들을 2개의 스테퍼 모터 제어에 사용하고 있으나 DRI0023 보드에서는 4,5,6,7번 핀이 사용되고 있어 이들 간에 정확한 매칭이 필요하다,

![noname01.png](https://cdn.steemitimages.com/DQmP9GYPk35NL4FN5iMDCiYwpdXQMWPsT5k8vfwaXU6pP31/noname01.png)

Broking 의 코드를 검토한 결과 ISR루틴에서 3번과 5번 핀은 스테퍼 모터의 방향전환용 핀으로 사용하고 있으며 2번과 4번 핀은 펄스파 신호 입력용으로 사용되고 있음을 확인하였다.

![noname02.png](https://cdn.steemitimages.com/DQmVnAtgsspZPQUEcXHTVQ6cuJGwCiCNjFeEXK8hfJpA9EY/noname02.png)

마찬가지로 DRI0023  스펙 예제에서 확인한 결과 위 코드에서처럼 4번 7번 핀이 방향 전환용이고 5번 6번 핀이 펄스 신호를 입력하는 핀으로 판명이 되었다. DRI0023 보드는 아두이노 우노 보드에 쉴드형태로 사용되므로 4,5,6,7번 핀에 맞춰 Broking의 코드에서 디지털 핀들이 매치가 되도록 코드를 수정하면 될 것이다.

![noname03.png](https://cdn.steemitimages.com/DQmVat92gSruTWhvEqa3KK8BREi7hWkXYyuMb4qRLcVnmRi/noname03.png)

전체적인 배선 구조를 살펴보자. LiPo 배터리로부터 완충 전압12.6V가 역류 방지 다이오드를 통해 DRI0023 보드에 가해진다. DC 전압 범위는 8∼35V 이므로 충분하다. 하지만 LiPo 는 11V 이하로 방전되면 재충전이 안되므로 Broking 이 사용했던 분압회로를 사용하여 Analog IO 0번에서 모니터링하는 것이 좋을 듯한데 사용 시 마다 멀티메터 측정이 가능하면 없어도 무방하며 코드에서 삭제해도 가능하다.

![noname04.png](https://cdn.steemitimages.com/DQmW8PSVG9WsjtQu1tJZLP6Mefa7a6y8pfbZJSkDD8hmFUQ/noname04.png)

스테퍼 모터 배선은 아두이노 수점퍼선을 사용하여 핀 모양으로 꽂을 수 있도록 개조하자. 또는 10개의 회색 푸슈버튼 뒤쪽에 DRV8825 히트싱크 칩 사이에 자세히 보면 4핀 커넥로도 꽂을 수 있는 핀이 2개 있으므로 자신이 구매한 모터의 끝부분 상황에 맞춰서 처리하도록 하자.
MPU 6050은 A4와 A5 또는 I2C 용 SCL과 SDA  어느쪽을 사용해도 좋다. MPU 6050은 양면 테이프를 사용하여 보드 옆 바닥에 부착할 예정이다.
Microstep resolution 즉 모터 해상도를 DIP 스위치로 세팅할 예정이다. 모터 규격을 참조해야 한다.
Wireless program switch 및 Xbee 소켓은 사용하지 않는다. 그 대신에 통신은 HC-06 블루투스 보드를 사용하녀 Digital IO에서 0번과 1번을 사용할 예정이다.

밸런싱 로봇 하우징은 이미 제작된 그대로 이용하겠지만 소소하게 스위치나 다이오드 및 분압회로를 설치하기 위한 방법을 강구해야 한다. 조각 PCB를 하나 준비해야하며 LiPo 배터리 납땜 작업도 감안해야 할 것이다. 
다음번 블로그 포스팅에서 부가할 PCB 배선 디자인과 아주 단순한 스테퍼 모터 시험용 아두이노 코드를 포스팅할 계획이다.
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,