반응형

아도이노는 DIY 인 들에게 없어서는 안될 단물 같은 장치이다. 물론 요즘은 프로그래밍 교육용으로도 사용되고 미디어 아티스트들에게도 자주 사용되는 놀라운 장치이다. 간단한 코딩 만으로 하드웨어 지식이 거의 없더라고 다양한 레퍼런스를 이용하여 손쉽게 무엇인가 로지컬하게 동작하는 장치를 만들어 낼 수 있기 때문이다.

 

이번에 도전하게 된 것은 Arduino Nano 를 이용하여 RC 카 구동을 위한 무선 송수신기를 제작하는 것이다.

 

보통은 RC 카를 구성하는 송신기 (트랜스미터, Transmitter) 와 수신기 (리시버, receiver) 를 세트로 구입하여 모터와 ESC 에 연결하여 사용하는 것이 일반적이지만 직접 만들어 보는 것도 재미있을 것 같아 도전을 하게 되었다. RC 카의 차체와 모터 등은 기성품을 이용하여 가지고 놀기에도 좋아야 하며 송수신기 모듈만 아두이노를 이용하여 만드는 것을 목표로 하고 있다.

 

먼저 첫번째 시간으로 수신기 만들어 보자

 

완성된 2.4Ghz 무선 RC 수신기의 모습 (아두이노 나노 + NRF24L01)

 

필요한 부품

 

  • Arduino nano (atmega328p, 16MHz)
  • NRF24L01 SMD 버전
  • 10 uF 전해콘덴서
  • 점퍼용 선들
  • 모터 / 서보 / ESC 연결용 2핀, 3핀 소켓 (만능기판 장착용, 2.54mm)
  • 만능기판(양면) 8 * 24
  • SMD to DIP Adapter socket (1.27mm to 2.54mm, SOP14 규격) : 10개에 1 달러 미만 

아두이노 나노에 대한 설명은 넣어두고 무선 연동을 위한 NRF24L01 보드가 필요하다.

해당 보드는 알리익스프레스에서 개당 1000원 미만으로 구입할 수 있다. 보통 무선 연동은 트랜스미터와 리시버가 각각 역할을 분담하는 형태로 모듈이 만들어져 있는데 이 제품은 하나의 제품이 송신과 수신을 할수 있는 제품으로 일명 트랜시버 라고 부르기도 한다. 2.4GHz 대역을 사용하여 신호의 정확도가 좋다고 한다.

이번 DIY 를 위하여 SMD 타입을 구입하였는데 일반 보드는 4x2 형태의 핀 배열을 가지고 있어 브래드 보드를 통한 테스트가 쉽지 않은 반면 SMD 타입은 1열로 핀이 배열되어 있어 약간의 꼼수를 부리면 사용이 간편한 장점이 있다.

 

NRF24L01 보드에 꼭 필요한 부품이 있으니 바로 10uF 전해 콘덴서

 

NRF24L01 보드에 꼭 필요한 부품이 있으니 바로 10uF 전해 콘덴서이다. 처음 이 프로젝트를 도전하였을때 상당히 많은 실패를 경험했는데 결과적으로는 이 전해콘덴서를 연결하지 않은 부분과 정확한 3.3V 를 인가하지 않은데서 기인했다고 생각된다. 지금은 단 한번의 실패도 없이 잘되는 것을 생각하면 정말 어의가 없지만 거의 2개월 정도를 이 문제 해결을위해 소모하였다. 이 글을 보는 당신도 도전할 생각이 있다면 반드시 10uF전해 콘덴서를 미리 준비해놓자. 47uf 도 100uf 도 1uf 도 아닌 반드시 10 uf 로 준비하자. 알리에서 사면 몇푼 하지도 않을 뿐더러 무료배송인 판매자도 많다. 전해 콘데서는 극성이 있는 제품이다. 띠 무늬가 있는 부분이 - 극 (GND) 다른 부분이 아두이노의 3.3V 또는 NRF24L01 의 +부분에 연결이 되어 있어야 한다.

 

10 uf 전해 콘젠서를 3.3v 와 GND 에 연결한 모습

사진에 제일 위층에 얹어진 검정색 PCB 보드가 NRF24L01 보드이다. 뒤쪽에 초록색으로 보여지는 보드는 작업의 편의 성을 위하여 붙인 것으로 원래는 14 pin Attiny84 smd 타입을 일반 만능기판에 연결할 수 있도록 사용하는 아답터 보드인데 이것을 반을 자르면 7핀을 이용하는 NRF24L01 보드의 확장용 보드로 사용이 가능할 것 같아 납땜하여 붙여서 사용해보았고 아주 만족스러운 호환성을 보여주었다.

 

아래와 같은 형태의 보드인데 반을 자른 후 NRF24L01 칩을 납땜하여 붙여주면 1열로 된 핀 배열 구성이 가능하게 되어 브래드 보드에서 바로 테스트가 가능하다. 참고로 NRF4L01 은 총 8개의 연결핀이 있는데 위에서 봤을때 가장 오른쪽 핀은 사용할 필요가 없는 핀 이므로 아래 아답터 보드를 반으로 자른후 좌측부터 7개의 단자와 납땜을해서 붙이면 정확하게 딱 맞는 결과물을 얻을 수 있다.

앞뒤가 각각 규격으로 제작이 됨. NRF24L01 은 좌측(앞) 규격에 부착

 

 

NRF 24L01 SMD 타입과 DIP 타입 이미지 추가

 

NRF24L01 을 보드에 장착한 이미지 추가

 

 

아래 그림은 NRF24L01+ SMD 의 핀 배열임. 참고하시길

각각의 핀은 아두이노 나노와 아래와 같이 연결이 된다.

NRF24L01 + ////		Arduino Nano

3.3V 		-> 		3.3V
GND 		-> 		GND
CE 		-> 		8
CSN 		-> 		7
SCK 		-> 		13
MOSI 		-> 		11
MISO 		-> 		12

중요한 것은 위에도 언급한 것과 같이 우측의 아두이노 3.3V 와 GND 사이에 10uf 전해 캐패시터를 연결해야 한다는 점 이다.

 

필자는 어려 차례 시도해 보았기 때문에 한번에 잘 되었지만 본 블로그를 보고 처음 따라 하는 분은 브래드 보드에 우선 테스트 해보시기를 권장한다.

 

추가로 방향 조정용 서보모터와 모터 속도 컨트롤용, 그리고 2단 변속기를 사용할 것이므로 변속기용 서보는 아래와 같이 각각 핀을 지정하였다.

servoPin = 9; 			//steering servo
speedServoPin = 10; 	// gear high / low
accelloPin = 6; 		// main motor (ESC)

3 pin 소켓을 3개 연결해야 하는데. 위와 같이 핀에 연결해주면 된다.

소켓의 3 pin 은 각각 신호(흰색 또는 노랑) , V+(빨강) , GND(검정 또는 갈색) 순으로 연결 해주면 된다. 여기서 신호에 해당되는 부분이 위에 정의한 핀과 연결이 되는 것임. 대부분의 3핀 선은 위와 같은 색상으로 이루어져 있으니 참고할 것.

 

 

납땜이 끝난 보드 아래쪽을 보면 아래와 같이 엉망 징창임.

 

지저분 하지만 어쩔수 없다. 똥 손의 한계 입니다.

 

코드는 나중에 트렌스미터 부분 설명이 완료 되면 한번에 올려보겠다.

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

이만.

 

 

 

 

반응형

+ Recent posts