아두이노 메가2560으로 MCU를 교체하다 작품/쿼드콥터2016. 2. 8. 02:57
아두이노 우노에서의 문제
앞전에 IMU센서와 무선조종기 수신부를 아두이노 우노에 같이 연결하면
IMU값도 제대로 읽어 들이지 못해서 checksum_error가 발생하였고 무선조종기의 값도 제대로 수신하지 못하였다.
이러한 문제는 아두이노 우노에는 하드웨어적인 UART가 1개만 제공되어 지기때문에
무선조종기의 데이터는 소프트웨어 적으로 처리해서 그 처리 시간이 길어져서 생기는 것이였다.
우노를 사용할 때는 컴퓨터와 Serial통신을 하기 위해 0,1번을 썻고
IMU센서값을 읽기위해 2,4번 핀을 썻고, 모터를 제어하기위해 3,5,9,10을 썻다.
여기에서 4채널 무선수신기를 18,17,16,15에 연결하였다.
무선수신기는 PWM파형이 나오는 데 이것을 읽기 위해서는 처음에 rising edge와 falling edge를 받아서 그 사이에 시간을 구하면 되는 쉬운 문제로 생각했다.
하지만 무선수신기는 pinChange형태이지만 인터럽트를 받는 데 그것이 아주 빠른속도로 계속 들어온다.
그 때문에 한번씩 센서의 값을 읽어들이지 못했던 것이다.
메가2560으로 교체
프로그램이 센서와 수신부를 동시에 처리할 때 문제를 격었기 때문에 프로그램에서 센서를 없앴다.
이 말은 센서의 값을 읽기위해서 UART를 하드웨어적으로 처리한다는 의미로 결국 UART핀이 더 필요했다.
메가2560은 UART가 컴퓨터와의 Serial통신을 제외하고도 3개가 더 제공되었기 때문에..
과감히..(;;;)보드를 교체했다.
메가에서는 컴퓨터와의 통신은 0,1번핀을 사용했고
IMU센서는 19,18번 핀을 , 모터는 6,7,44,45번 핀을, 조종기 수신부는 2,3,21,20번 핀을 사용하였다.
참고
-아두이노 메가2560 산곳
http://www.mechasolution.com/shop/goods/goods_view.php?goodsno=3&category=038004
-아두이노 메가2560 기본정보
https://www.arduino.cc/en/Main/ArduinoBoardMega2560
'작품 > 쿼드콥터' 카테고리의 다른 글
ESC, IMU, 무선조종기 수신기 각각을 테스트하다 (0) | 2016.02.08 |
---|---|
보드를 바꾼 후 ESC에 400Hz제어를 시도했지만... (0) | 2016.02.08 |
무선 조종기와 카메라 테스트 (0) | 2016.02.08 |
롤 제어 (0) | 2016.02.08 |
호버링 제어 (0) | 2016.02.08 |