블루투스를 통한 Arduino 간 통신 제어

게시자

대부분의 사람들은 “블루투스"라는 말을 들으면 오디오 헤드셋이나 스피커를 떠올릴 것입니다. 두 장치에서 모두 블루투스 기술을 사용하지만, 전자기기 마니아들은 좋아하는 팟캐스트를 청취하는 것 외에도 다양한 용도로 이러한 단거리 통신 방법을 사용할 수 있다는 것을 알고 있습니다.

블루투스는 수십 가지의 혁신적인 방법으로 정보를 전송할 수 있습니다. 저희가 선호하는 방법 중 하나는 제어용 Arduino 기반 로봇이나 다른 장치를 스마트폰에 페어링하는 것입니다.

다음 Arduino 로봇 프로젝트의 블루투스 기술을 시작하는 방법을 여기에서 확인할 수 있습니다.

Arduino 간 블루투스 통신은 어떻게 작동하나요?

블루투스 직렬 신호를 사용하면 마치 하드웨어 연결이 된 것처럼 전화기로 Arduino를 완벽하게 제어할 수 있습니다. Bluetooth TerminalArduinoRC 같은 앱들을 사용하면 이러한 경우에 전화기를 인터페이스 장치처럼 사용할 수 있습니다.

이뿐만이 아닙니다. 적절하게 설정만 하면 컴퓨터나 전화기를 전혀 사용하지 않고도 Arduino 보드 간에 통신이 가능합니다. Arduino 간 통신이 올바르게 작동하기 위해서는 약간 더 복잡한 과정을 거쳐야 하지만, 제어가 훨씬 간편해집니다.

1단계: 회로 구축

Arduino Nano Bluetooth Fritzing

회로 구축을 위해서는 위의 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에서 작동하기 때문에 이 핀에 너무 많은 전압이 제공되지 않도록 이와 같은 선택을 했습니다.

 

 

모듈 페어링

Arduino IDE - Bluetooth Communication

그림 2: Arduino IDE의 두 번째 인스턴스를 열면 동시에 서로 다른 두 개의 보드에서 작업을 할 수 있습니다.

회로 설정을 마쳤으면 두 블루투스 모듈이 서로 통신할 수 있도록 설정해야 합니다. 여기에 다음 단계가 나와 있습니다.

  1. 여기 보이는 HC-05_AT_MODE_01 코드를 Arduino 보드 중 하나로 전송합니다. 그런 다음, 보드의 버튼을 계속 누른 상태에서 모듈의 전원을 켜서 HC-05 블루투스 모듈을 AT 모드로 만듭니다.

  2. 부팅이 될 때 온보드 LED가 천천히 켜졌다 꺼졌다 깜박입니다. Arduino IDE에서 직렬 모니터를 열고 “AT”라고 입력합니다. 모든 것이 제대로 작동하면 터미널로부터 “OK”라는 응답을 받게 됩니다.

  3. “AT+ROLE=1”을 입력하여 HC-05를 마스터로 설정한 다음, AT+CMODE=1을 입력하여 어떤 주소(모듈)로든 페어링이 가능하도록 설정합니다.

  4. 장치를 재설정하면 현재 마스터로 작동 중인 HC-05가 다른 HC-05(보통 슬레이브 모듈로 설정되어 제공)에 페어링됩니다.

마스터를 슬레이브로 변경하고 싶으면 위에 설명한 대로 직렬 인터페이스를 통해 연결하고 AT+ROLE=0을 입력합니다. 슬레이브 모드에서만 작동하는 HC-06 모듈을 사용할 수도 있습니다. 자세한 내용은 1단계에 링크된 코드를 참조하십시오. 또한 이러한 추가적인 고급 지침을 참조하여 두 모듈을 하나로 바인딩할 수 있습니다.

이와 같이 두 개의 Arduino 보드를 사용하고 있는 경우에는 IDE에서 파일/새로 만들기 또는 파일/열기를 사용하는 대신 단축키로 두 개의 Arduino IDE 인스턴스를 로드하는 것이 매우 도움이 됩니다. 이렇게 하면 프로그램을 로드하고 직렬 포트를 동시에 모니터링할 수 있기 때문에 프로그래밍 및 문제 해결이 훨씬 쉬워집니다.

프로그램 로드 및 테스트

Arduino to Arduino Bluetooth Communication

그림 3: 버튼을 누르면 또 다른 Arduino Nano에 불이 들어옵니다. 프로그래밍 동안 부품 간의 통신이 가능하도록 Sticky Note가 사용되는 직렬 포트를 알려줍니다.

HC-05/Arduino가 일단 연결되면 여기 보이는 소프트웨어를 각 Arduino에 로드하고 다음의 단계를 따르십시오.

  1. 각 IDE 인터페이스에서 직렬 모니터를 열고 "O"와 "F"(대/소문자 구분)를 입력해봅니다.
  2. 온보드 LED를 켰다 껐다 하면서 상대편 보드의 반응을 확인해야 합니다. 버튼을 누릅니다. 이렇게 하면 LED가 잠깐 깜박이면서 상대편 보드에 "B" 문자가 전송됩니다.
  3. 또한 직렬 모니터에 “B”를 입력해서 이 기능을 테스트할 수도 있습니다.
  4. 모든 것이 만족할 정도로 올바르게 작동되면 한쪽 어셈블리를 분리해서 방 반대쪽에 있는 플러그에 연결할 수 있습니다. 이때 LED는 켜졌다 꺼졌다 합니다.

두 Arduino 보드를 연결했으면 이제 작업을 하면 됩니다. 블루투스를 통해 전화기로 로봇을 제어하고 있었더라도 실제 키패드를 사용하는 것이 더 좋습니다. 아마도 여러분은 원격 작동이 되는 맞춤형 컴퓨터 인터페이스를 설계하고 싶을 것입니다. 블루투스 기술은 이러한 로봇 프로젝트에서 이동성을 새로운 차원으로 높일 수 있습니다.

최신 뉴스

Sorry, your filter selection returned no results.

개인정보 보호정책이 업데이트되었습니다. 잠시 시간을 내어 변경사항을 검토하시기 바랍니다. 동의를 클릭하면 Arrow Electronics 개인정보 보호정책 및 이용 조건에 동의하는 것입니다.

당사의 웹사이트에서는 사용자의 경험 향상과 사이트 개선을 위해 사용자의 기기에 쿠키를 저장합니다. 당사에서 사용하는 쿠키 및 쿠키 비활성화 방법에 대해 자세히 알아보십시오. 쿠키와 추적 기술은 마케팅 목적으로 사용될 수 있습니다. '동의'를 클릭하면 기기에 쿠키를 배치하고 추적 기술을 사용하는 데 동의하는 것입니다. 쿠키 및 추적 기술을 해제하는 방법에 대한 자세한 내용과 지침을 알아보려면 아래의 '자세히 알아보기'를 클릭하십시오. 쿠키 및 추적 기술 수락은 사용자의 자발적 선택이지만, 웹사이트가 제대로 작동하지 않을 수 있으며 사용자와 관련이 적은 광고가 표시될 수 있습니다. Arrow는 사용자의 개인정보를 존중합니다. 여기에서 당사의 개인정보 보호정책을 읽을 수 있습니다.