대부분의 사람들은 “블루투스"라는 말을 들으면 오디오 헤드셋이나 스피커를 떠올릴 것입니다. 두 장치에서 모두 블루투스 기술을 사용하지만, 전자기기 마니아들은 좋아하는 팟캐스트를 청취하는 것 외에도 다양한 용도로 이러한 단거리 통신 방법을 사용할 수 있다는 것을 알고 있습니다.
블루투스는 수십 가지의 혁신적인 방법으로 정보를 전송할 수 있습니다. 저희가 선호하는 방법 중 하나는 제어용 Arduino 기반 로봇이나 다른 장치를 스마트폰에 페어링하는 것입니다.
다음 Arduino 로봇 프로젝트의 블루투스 기술을 시작하는 방법을 여기에서 확인할 수 있습니다.
Arduino 간 블루투스 통신은 어떻게 작동하나요?
블루투스 직렬 신호를 사용하면 마치 하드웨어 연결이 된 것처럼 전화기로 Arduino를 완벽하게 제어할 수 있습니다. Bluetooth Terminal 및 ArduinoRC 같은 앱들을 사용하면 이러한 경우에 전화기를 인터페이스 장치처럼 사용할 수 있습니다.
이뿐만이 아닙니다. 적절하게 설정만 하면 컴퓨터나 전화기를 전혀 사용하지 않고도 Arduino 보드 간에 통신이 가능합니다. Arduino 간 통신이 올바르게 작동하기 위해서는 약간 더 복잡한 과정을 거쳐야 하지만, 제어가 훨씬 간편해집니다.
1단계: 회로 구축

회로 구축을 위해서는 위의 Fritzing 다이어그램에 나와 있듯이 동일한 브레드보드 한 쌍을 구축해야 합니다. 이들 각각은 온보드 LED 점멸을 통해 상대편 브레드보드가 이 데이터를 수신하고 응답할 수 있도록 Arduino Nano를 사용하여 HC-05 블루투스 모듈을 통해 데이터를 전송합니다. 컴퓨터의 직렬 인터페이스를 통해 Arduino 간에 신호를 전송할 수 있지만, 버튼 입력이 문자를 무선으로 전송하기 위한 단축키를 제공합니다.
회로를 구축하기 위해서는 다음이 필요합니다.
- (2) Arduino Nanos
- (2) 브레드보드
- (2) HC-05 블루투스 모듈
- (2) 푸시 버튼
- (2) 1k 저항기
- (2) 2k 저항기
- (2) 20k 저항기
- 점퍼 와이어
- (2) 미니 USB 케이블
참고: 환경 설정에 따라 부품 다수를 대체할 수 있습니다. 예를 들어 Arduino Uno는 Nano처럼 작동합니다. 또한 회로 다이어그램을 보면 HC-05의 RX 핀에서 분압기를 사용했음을 확인할 수 있습니다. HC-05 모듈은 3.3V에서 작동하기 때문에 이 핀에 너무 많은 전압이 제공되지 않도록 이와 같은 선택을 했습니다.
모듈 페어링

그림 2: Arduino IDE의 두 번째 인스턴스를 열면 동시에 서로 다른 두 개의 보드에서 작업을 할 수 있습니다.
회로 설정을 마쳤으면 두 블루투스 모듈이 서로 통신할 수 있도록 설정해야 합니다. 여기에 다음 단계가 나와 있습니다.
-
여기 보이는 HC-05_AT_MODE_01 코드를 Arduino 보드 중 하나로 전송합니다. 그런 다음, 보드의 버튼을 계속 누른 상태에서 모듈의 전원을 켜서 HC-05 블루투스 모듈을 AT 모드로 만듭니다.
-
부팅이 될 때 온보드 LED가 천천히 켜졌다 꺼졌다 깜박입니다. Arduino IDE에서 직렬 모니터를 열고 “AT”라고 입력합니다. 모든 것이 제대로 작동하면 터미널로부터 “OK”라는 응답을 받게 됩니다.
-
“AT+ROLE=1”을 입력하여 HC-05를 마스터로 설정한 다음, AT+CMODE=1을 입력하여 어떤 주소(모듈)로든 페어링이 가능하도록 설정합니다.
-
장치를 재설정하면 현재 마스터로 작동 중인 HC-05가 다른 HC-05(보통 슬레이브 모듈로 설정되어 제공)에 페어링됩니다.
마스터를 슬레이브로 변경하고 싶으면 위에 설명한 대로 직렬 인터페이스를 통해 연결하고 AT+ROLE=0을 입력합니다. 슬레이브 모드에서만 작동하는 HC-06 모듈을 사용할 수도 있습니다. 자세한 내용은 1단계에 링크된 코드를 참조하십시오. 또한 이러한 추가적인 고급 지침을 참조하여 두 모듈을 하나로 바인딩할 수 있습니다.
이와 같이 두 개의 Arduino 보드를 사용하고 있는 경우에는 IDE에서 파일/새로 만들기 또는 파일/열기를 사용하는 대신 단축키로 두 개의 Arduino IDE 인스턴스를 로드하는 것이 매우 도움이 됩니다. 이렇게 하면 프로그램을 로드하고 직렬 포트를 동시에 모니터링할 수 있기 때문에 프로그래밍 및 문제 해결이 훨씬 쉬워집니다.
프로그램 로드 및 테스트

그림 3: 버튼을 누르면 또 다른 Arduino Nano에 불이 들어옵니다. 프로그래밍 동안 부품 간의 통신이 가능하도록 Sticky Note가 사용되는 직렬 포트를 알려줍니다.
HC-05/Arduino가 일단 연결되면 여기 보이는 소프트웨어를 각 Arduino에 로드하고 다음의 단계를 따르십시오.
- 각 IDE 인터페이스에서 직렬 모니터를 열고 "O"와 "F"(대/소문자 구분)를 입력해봅니다.
- 온보드 LED를 켰다 껐다 하면서 상대편 보드의 반응을 확인해야 합니다. 버튼을 누릅니다. 이렇게 하면 LED가 잠깐 깜박이면서 상대편 보드에 "B" 문자가 전송됩니다.
- 또한 직렬 모니터에 “B”를 입력해서 이 기능을 테스트할 수도 있습니다.
- 모든 것이 만족할 정도로 올바르게 작동되면 한쪽 어셈블리를 분리해서 방 반대쪽에 있는 플러그에 연결할 수 있습니다. 이때 LED는 켜졌다 꺼졌다 합니다.
두 Arduino 보드를 연결했으면 이제 작업을 하면 됩니다. 블루투스를 통해 전화기로 로봇을 제어하고 있었더라도 실제 키패드를 사용하는 것이 더 좋습니다. 아마도 여러분은 원격 작동이 되는 맞춤형 컴퓨터 인터페이스를 설계하고 싶을 것입니다. 블루투스 기술은 이러한 로봇 프로젝트에서 이동성을 새로운 차원으로 높일 수 있습니다.

