검색결과 리스트
글
1. 각도 측정하기 |
수 있으면 되지만, 시중에 그와 같은 장비는 없으니 ARS를 사용하고자 한다. ARS 중에서 필자의 연구팀에서 최근 판매를 시작한 NT-ARSv1[판매처]을 사용하기로 한다.
[그림 2] NT-ARSv1
[그림 3]. 엔티렉스에서 판매 예정인 스케이트보드 로봇 NT-SBMRv2
[그림 4] 스케이트보드 로봇 내부에 장착된 NT-ARSv1
그림 3의 스케이트보드 로봇 내부에 그림 4와 같이 ARS 장비인 NT-ARSv1을 장착했다. 사용된MCU는 AVR – AT90CAN64이다. NT-ARSv1의 배포 매뉴얼을 참조하여 각도를 받아오는 부분은 다음과 같다. 장착된 방향 상 NT-ARSv1의 roll각을 받으면 된다. 다음 회 연재에서 적용할 제어기를 위해서 각속도 성분인 자이로의 값도 받도록 한다. NT-ARSv1의 또 하나의 장점은 자이로에서 나오는 각속도를 [rad/sec]단위로 직접 전송해 주기 때문에 바이어스를 고려하고, 스케일 펙터를 고려하는 것은 걱정할 필요가 없다. 그리고 아래 코드는 CAN통신을 사용한 것이다.
1: // roll angle 음수일 때
2: if((can_rx_data[0] >> 7) == 1){
3: roll = can_rx_data[1];
4: roll += can_rx_data[0] << 8;
5: roll = -(roll & 0x7fff);
6: }
7: // roll angle 양수일 때
8: else{
9: roll = can_rx_data[1];
10: roll += can_rx_data[0] << 8;
11: }
12: roll_angle = (double)roll / 1000.0;
13: // gyro_x 음수일 때
14: if((can_rx_data[4] >> 7) == 1){
15: gyro_x = can_rx_data[5];
16: gyro_x += can_rx_data[4] << 8;
17: gyro_x = -(gyro_x & 0x7fff);
18: }
19: // gyro_x 양수일 때
20: else{
21: gyro_x = (can_rx_data[4] << 8);
22: gyro_x += can_rx_data[5];
23: }
24: gyro_x_angle = (double)gyro_x / 1000.0;
위 코드에서 12행과 24행의 roll_angle과 gyro_x_angle이라는 변수가 각각 roll방향으로 회전한 각도와 각속도를 받는 부분이다. NT-ARSv1의 매뉴얼에 따라 각각 양수와 음수인지를 판단하고, 16비트데이터가 8비트크기의 배열로 전송이 되는 것을 고려하고 있다. 마지막으로 전체 데이터는 1000을 곱한 상태에서 전송되므로, 1000으로 나눠주면, 라디안(radian) 단위의 각도와 각속도를 측정할 수 있다.
2. 모터 드라이버 선정 |
[그림 5] 스케이트보드 로봇 내부에 장착된 DC 모터 드라이버
[그림 6] DC모터 - MY1016Z2-200W-24V
스케이트보드 로봇의 구동 모터로는 그림 5의 내부 그림에 보이듯이 디바이스마트에서 판매하고 있는 DC모터인 그림 6의 MY1016Z2-200W-24V를 대상으로 하고 있다. 이 모터는 최대 구동 전압이 24V에 무부하 전류는 1.8A이다. 정격 최대 토크가 6.65Nm에 정격 최대 전류는 13.7A이며, 토크 상수는 0.559 이다. 모터의 내부 저항은 1.82옴에, 기어비는 9.7:1이다.
현재 스케이트보드 로봇의 전체 가격과 부피 등을 고려하여 선정한 DC모터가 아쉽게도 구동 전류가 높은 편이다. 그로 인해 저렴한 가격의 일반적인 DC모터 구동 드라이버는 적용하기가 쉽지가 않다. 물론 직접 회로를 꾸며도 상관없지만, 꼭 여기서 모터 드라이버를 만드는 것을 다룰 필요는 없을 것 같다. 모터 사양에 맞춰 직접 제작해도 되지만, 이 연재가 발표될 시점에 출시 예정인 NT-DC20A[판매처]라는 1채널 DC 모터 드라이버 두 개를 사용하도록 하겠다. 그림 5에 빨간 박스에 표시된 부분이 모터드라이버 2개다. 이 모터 드라이버는 구동 전압 12-24V에 정격 전류 7A, 순간 전류 30A의 구동 환경을 가지며, PWM신호와 방향신호를 받도록 설계되어 있다. 부가적으로 Enable신호와 강제 stop기능, 전류를 0-5V로 변환하여 센싱하는 기능을 제공하고 있다.
[그림 7] 스케이트보드 로봇의 MCU 회로
|
|
3. 기타 회로 |
[그림 8] CAN과 Serial 통신부
[그림 9] DC 모터드라이버(NT-DC20A)와 ARS모듈(NT-ARSv1)과 연결부
[그림 10] 조종기와 연결부
[그림 11] 조종기 회로도
이제 MCU와 각 주변장치를 연결해 보자. 그림 7에 전체 회로를 제시했다. 이하 각 그림은 레귤레이터나 리셋 등과 같이 일반적으로 추가되는 부분을 제외하고, 중요한 부분에 대한 캡션들이다. 그림 10의 조종기와의 연결부에 시리얼통신을 가능하도록 연결한 것은 펌웨어의 수정을 일일이 로봇의 덮개를 열고 하는 불편함이 없도록, 외부로 빼놓을 조종기에서 펌웨어 수정을 가능하게 하기 위해서다. 이렇게 꾸며진 그림 10의 회로는 그림 11의 조종기 회로에 연결된다.
4. 결론 |
'The Robot > Robot by PinkWink' 카테고리의 다른 글
좀 큰 밸런싱 로봇 ^^ (16) | 2011/07/15 |
---|---|
탐사형 로봇으로 이런건 어떨까요?^^ NT-Hazard Escape I (26) | 2011/06/20 |
메카넘 플랫폼(Mecanum Platform)으로 만드는 주행차량 (16) | 2011/06/03 |
[스케이트보드로봇] 하드웨어 구성하기 (12) | 2011/06/02 |
최근에 완성한 스케이트보드 로봇 (10) | 2011/04/22 |
[스케이트보드로봇] 시작하며... (8) | 2011/04/06 |
스케이트보드 로봇 (Skateboard Mobile Robot) (16) | 2011/03/01 |
메카넘 휠을 이용하면 재미난 로봇을 만들 수 있어요. (10) | 2011/01/13 |
PinkWink님의 작품이 일반화 되어 우리아이들이 즐기길 빨리 기대해봅니다.
저도.. 좀.. 팔였으면.. 푸하하...^^
날씨는 별로지만 좋은 하루 되세요^^
핑크윙크님 덕분에
신세계를 알아가고 있어요... +_+
좋은 주말 보내세요^^ (빵긋)
중간중간에 광고로 인해서
응? 벌써 내용이 끝인가? 를 몇번이나 경험했어요!
인셉션을 체험하는 느낌?! ㅋㅋㅋ
하아.. 전 언제쯤 이런걸 해볼날이 오려나요 ㅠ.ㅠ
재미있어요...^^ 저도 학생때 조런거 많이 해볼껄.. 하는 생각을 요즘 많이합니다.^^
비밀댓글입니다
이곳과 ntrexlab.co.kr블로그에 공개된 내용은 출처를 밝혀주신다면 인용이 언제나 가능합니다.
지금 세그웨이를 제작 중에 있습니다 . 지금 이 제품에 사용 중인 모터와 모터드라이브를 이용 하여 구동 하려고 하는데 체인과 바퀴가 어떤식으로 연결이 되어있고 바퀴의 체인이 연결되어 있는 축이 어떤식으로 설계되어 있는지 알고 싶습니다. 가능하다면 바퀴를 사려면 어디서 구매하면 되는지 알려주시면 감사 하겠습니다.
아.. 네... 저처럼 기계 문외한이 보긴엔 그냥 모터와 브라켓, 그리고 체인을 감았다.. 말고는 저도 딱히 드릴 말씀이 없답니다.
그리고 이 모터를 사용하시면 좀 어려울 수도 있습니다. 이 모터는 엔코더가 없거든요.
세그웨이 제작중에 궁금한점이있는데 혹시 전원부는 어떻게 구성하셨는지 좀 알려주실수 있을까요..?
배터리쪽과 전원부가 궁금하네요.. 알려주시면 감사하겠습니다..
전원부는 그냥.... 연축전지를 사용했습니다만...ㅠㅠ
배터리는 크게 고민하지 않았습니다.
그저 현실에 순응해서 사용했답니다.^^