지난번에는 기본적인 통신 테스트를 마쳤고 이번에는 고정된 테스트값이 아니라 정말로 아날로그 스틱에서 값을 읽어와 NRF24L01 모듈로 송수신하여 테스트 해봤다.

일단 내가 만들고자 하는 V1.0 의 송수신기는 아래 그림과 같다.

2축 스틱으로 Steering 과 Accelerometer 를 제어하고 (채널1, 2), 스틱을 누르면 채널3 으로 디지털 입력을 받을 예정이다.

채널 4,5,6 중 채널 4는 아날로그 값을 Volume 으로 받고, 5,6 은 DIGITAL 로 받으려 한다. 마지막으로, V1.0 에서는 간단히 스틱의 입력값 범위를 설정하기 위한 Function S/W 를 하나 달아줄 것이다. 무쟈게 심플하다. Trim 이나 EPA 도 없다. 

전원은 집에있는 USB 보조배터리를 사용하도록 하고, 손잡이 부분에 넣도록 할 것이다.

기구는 집에있는 OC 마네킹 3D 프린터로 찍어볼것이다. 그런데 이게 도면 그리는게 쉽지 않을듯 하다.


자 일단 스틱을 붙였다. 인터넷으로 주문 가능한 바로 그 스틱이다. 뭐 얼마 하지도 않는다. VCC, GND, VRX, VRY, SW 이렇게 4선이 있다. 


나노에 연결하고 지난번 만들었던 코드를 수정했다.

송신기쪽 코드이다

큰 변화라면, 이전에 사용하던 TX_DATA 구조체 내에 accel, steering, ch3, ... 변수를 그냥 배열로 바꾸어 취급하기로 했다. 변수명을 하나씩 써주니 코드도 지저분해져서 배열로 만들고 Loop 로 돌려서 Analog 입력을 받아 저장하고 수신기 쪽으로 보낸다.

아래는 수신기쪽 코드이다

수신쪽 코드는 크게 변한것이 없고, 송신쪽에서 받은 배열값을 화면에 출력한다.



그런데 이상한 현상이 발생한다. Transmission Fail 이 계속 떨어지고, 전송 속도가 무려 40ms 정도가 걸린다. 뭔가 특이한것도 없는데 이렇다.. 혹시 콘덴서 안달아서 이러는가 싶기도 하지만 PA Level 을 LOW 로 주었는데도 이런거면 큰일이다.. 우선 값이 전달되는건 되는걸 확인하고 일단 닫았다.


다음날 저녁에 퇴근하고 집에와서 애들 자는거 보고 또 열었다. 그리고 원래 있던 코드를 손도 안대고 돌려본다. 그런데 갑자기 FAIL 이 안뜬다.. 뭐 이런경우가.. 어제 저녁에는 100% 오류가 나더니.. (기분탓인가.. 그러기에는 저렇게 확연한 증거가 있는데..)

아무튼, 이쯤 하고 값이 잘 전달된다는걸 확인했으니 다시 프로젝트를 닫았다. 참 이상한일이다.

브래드보드에서 실제 기구에 이식할때에는 꼭 콘덴서 달아주리라 마음먹고 오늘은 이쯤한다.

다음에는 출력쪽을 다루어야 하고, 회로도도 그려서 올려야겠다.

지금까지의 회로도는 아래와 같다



반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,