달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

아두이노 우노에서의 문제

앞전에 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

:
Posted by youjin.A