우리는 5G 및 5G 지원 장치의 시대에 살고 있습니다. 그러나 무전기 시스템 및 RF 통신 시스템과 같은 오래된 기술은 원격, 근거리, 저렴하고 저렴한 통신이 필요한 시나리오에서 여전히 가장 중요합니다. 예를 들어, 건물이나 무거운 하중을받는 건설 회사가있는 경우 작업자는 협력 작업을 위해 서로 의사 소통해야합니다. 워키 토키의 도움으로 서로 의사 소통하고“PTT”버튼을 누르기 만하면 짧은 마사지 나 지시를 퍼 뜨리고 다른 작업자가 지시를 듣고 따르도록 음성을 전달합니다. 또 다른 응용 프로그램은 스마트 헬멧 에있을 수 있습니다.장거리 주행 중에 한 무리의 라이더 사이에서 통신하기 위해 여기에서 제안 된 모델은 한 번에 6 명 사이에서 통신 할 수 있습니다. 다른 유형의 단거리 무선 오디오 전송 프로젝트를 확인하려면 링크를 사용하여 IR 기반 무선 오디오 송신기 및 Li-Fi 오디오 송신기 프로젝트를 방문하십시오.
nRF24L01 RF 모듈을 사용하는 워키 토키
이 프로젝트의 주요 구성 요소는 NRF24L01 RF 모듈 과 두뇌 또는 프로세서 인 Arduino Uno 입니다. 우리는 이미 서보 모터를 원격으로 제어하여 Nrf24L01을 Arduino와 인터페이스하는 방법을 배웠습니다. 이 프로젝트에서는 디지털 통신 매체에 비해 몇 가지 장점이 있기 때문에 NRF24L01 RF 모듈이 선택되었습니다. 이는 보유 2.4 GHz의 높은 주파수 ISM 대역 및 데이터 레이트는 250kbps의, 최대 1Mbps, 2Mbps 정도가 될 수있다. 1Mhz 간격 사이에 125 개의 채널을 사용할 수 있으므로 모듈은 125 개의 서로 다른 채널을 사용할 수 있으므로 한 곳에서 125 개의 독립적으로 작동하는 모뎀 네트워크를 가질 수 있습니다.
가장 중요한 점은 NRF24L01 신호가 경찰 무전기 및 철도 무전기와 같은 다른 무전기 시스템과 겹치거나 교차하지 않으며 다른 무전기를 방해하지 않는다는 것입니다. 단일 nrf24l01 모듈은 수신 상태에있을 때 한 번에 다른 6 개의 nrf24l01 모듈과 통신 할 수 있습니다. 또한 저전력 모듈로 장점이 추가되었습니다. 널리 사용 가능하고 일반적으로 사용되는 두 가지 유형의 NRF24L01 모듈이 있습니다. 하나는 NRF24L01 +이고 다른 하나는 안테나가 내장 된 NRF24L01 + PA + LNA입니다 (아래 참조).
NRF24L01 +는 온보드 안테나를 가지고 있으며, 단지 100m의 범위는. 실내에서만 사용할 수 있으며 실외 장거리 통신에는 적합하지 않습니다. 또한 송신기와 수신기 사이에 벽이 있으면 신호 전송이 매우 불량합니다. 외부 안테나 NRF24L01 + PA + LNA는 갖는 PA를 그 승압 전의 송신 신호의 전력. LNA는 저잡음 증폭기를 의미합니다. 명확하고 잡음을 걸러 내고 안테나에서 수신되는 신호의 매우 약하고 불확실한 낮은 레벨을 증폭시킵니다. 유용한 수준의 신호를 만드는 데 도움이되며 2dB의 외부 안테나를 통해 1000 미터의 온에어 범위 범위를 전송할 수 있습니다 . 야외 무전기 통신 프로젝트에 적합합니다.
Arduino 기반 워키 토키에 필요한 구성 요소
- NRF24L01 + PA + LNA (외부 2DB 안테나 포함) (2 개)
- Arduino UNO 또는 모든 버전의 Arduino
- 오디오 증폭기 (2 개)
- 마이크 회로: 직접 만들거나 (나중에 논의 됨) 사운드 센서 모듈을 구입할 수 있습니다.
- DC-DC 승압 부스터 모듈 (2 개)
- 3.3V AMS1117 전압 조정기 모듈
- 전원 표시 LED (2 개)
- 470 ohms 저항 (2 개)
- 4 인치 라우드 스피커 (2 개)
- 누름 버튼 (PTT 버튼 용)
- PTT 버튼 제작 용 104 PF (2 개)
- NRF24L01 용 100 NF 커패시터 (2 개)
- PTT 버튼 1k 저항 (2 개)
- 리튬 이온 배터리 2 세트
- 리튬 이온 배터리 충전 및 배터리 보호 모듈 (2 개)
- 일부 점퍼 와이어, 수 헤더 핀, 점선 베로 보드
Arduino 워키 토키 회로도
Arduino Walkie Talkie 의 전체 회로도 가 아래 이미지에 나와 있습니다. 회로도는 PTT 버튼, 마이크 회로 및 스테레오 오디오 출력을 포함한 모든 연결을 보여줍니다.
중요: NRF24L01 모듈 전압 입력 범위는 1.9v ~ 최대 3.6V이며 전압 및 전류 안정성을 위해 + VCC 및-GND에 100nf 커패시터를 사용해야하지만 nrf24l01 모듈의 다른 핀은 5V 신호를 허용 할 수 있습니다. 수준.
1 단계: 수제 맞춤형 PCB와 Arduino Atmega328p 보드를 만들기 시작했습니다. 프로그래머에게 IC Atmega328p를 설치하고 플래시 한 다음 코드를 업로드했습니다. 그런 다음 (PB6, PB7) 핀 9 및 10의 Atmega328p IC에 16MHz 크리스탈을 추가했습니다. 맞춤 제작 된 PCB와 프로그래밍 된 IC가있는 조립 된 보드의 사진은 아래와 같습니다.
2 단계: 회로도에 표시된대로 NRF24L01 모듈을 다음 순서로 연결했습니다. CE-디지털 핀 번호 7, CSN-핀 번호 8, SCK-디지털 핀 13, MOSI-디지털 핀 11, MISO-디지털 핀 12 및 IRQ-디지털 핀 2
전원 공급 장치의 경우 먼저 전압을 5V에서 3.3V로 떨어 뜨리고 전류 안정성을 높여야합니다. 또한 VCC에 100nF 커패시터를 놓고 nrf24l01 모듈의 접지를해야합니다. 그래서 저는 3.3V 전압 레귤레이터 인 AMS1117 을 사용 했는데, 모듈은 프로젝트 크기를 줄이고 컴팩트하게 만듭니다.
이 전압 레귤레이터 보드를 직접 만들고 싶다면 3.3V 레귤레이터 IC 만 구매할 수 있으며 민감한 장치이기 때문에 RF 모듈에 매우 중요하므로 입력 및 출력에 캡, 저항을 추가하여 만들 수 있습니다. 또는 LM317 가변 전압 레귤레이터를 사용하여 브레드 보드 전원 공급 장치 프로젝트에서했던 것처럼 3.3V 조정 회로를 구축 할 수 있습니다.
3 단계: 사운드 센서를 구입하거나 회로도에 표시된대로 간단한 마이크 회로를 만들 수 있습니다. 그것은 단 하나의 트랜지스터 -2n3904 NPN 트랜지스터 로 구성됩니다. 아래 이미지는 Vero 보드에 구축 된 수제 마이크 회로를 보여줍니다. 자세한 내용은이 간단한 오디오 프리 앰프 회로를 확인할 수도 있습니다.
더 나은 이해를 위해 아래에서 볼 수 있듯이 구성 요소 값과의 전체 연결을 또 다른 표현으로 만들었습니다.
4 단계: 마이크로 컨트롤러 디지털 핀 번호 9 및 10을 오디오 증폭기에 연결 하기 위해 기본적으로 Arduino 오디오 출력이 매우 낮기 때문에 PAM8403 스테레오 오디오 증폭기를 사용했습니다 (일반적으로 헤드폰 만 사용하여 소리 만들을 수 있습니다., 확성기가 아니므로 증폭 단계가 필요합니다.) 이 모듈은 두 개의 노트북 스피커를 쉽게 구동 할 수 있으며 매우 저렴한 비용으로 사용할 수 있습니다. 또한 매우 적은 공간을 필요로하는 SMD 패키지에 매우 강력한 오디오 증폭기가 함께 제공됩니다. PAM8403 오디오 증폭기 모듈은 다음과 같습니다.
연결은 매우 간단하며 오디오 증폭기에 전원을 공급하려면 3.7V ~ 5V 전원 공급 장치가 필요합니다. Arduino 핀 9 및 10의 왼쪽 채널 및 오른쪽 채널 오디오 입력과 접지 핀은 회로도에 표시된대로이 증폭기 모듈의 입력으로 제공되어야합니다. 제 경우에는 4 인치 8 옴 스피커 하나를 사용했고 오른쪽 채널 출력 만 사용했습니다. 원하는 경우이 모듈에 두 개의 스피커를 사용할 수 있습니다.
5 단계: 다음으로 간단한 푸시 버튼을 사용하여 PTT 스위치를 구축했습니다. 스위치를 눌렀을 때 스위치 바운싱이나 불규칙한 신호를 방지하기 위해 104PF 또는 0.1uf 커패시터를 추가했습니다. 핀 4는 이제 인터럽트 된 핀이 코딩에 할당되어 Arduino Digital 핀 D3에 직접 연결됩니다.
NRF24L01 + PA + LNA는 오디오 신호 또는 DATA 패킷을 전송할 때 더 많은 전력을 소비하므로 더 많은 전류를 소비합니다. PTT 버튼을 갑자기 누르면 소비 전력이 증가합니다. 이렇게 갑자기 증가한 부하를 처리하려면 NRF24L01 + PA + LNA 모듈의 전송 안정성을 위해 + vcc 및 접지에 100nF 커패시터를 사용해야합니다.
스위치를 누르면 Arduino 보드는 핀 D3에서 Arduino 인터럽트를 수신합니다. 프로그램에서 Arduino의 디지털 핀 3을 지속적으로 입력 전압을 확인하도록 선언합니다. 입력 전압이 낮 으면 워키 토키를 수신 모드로 유지하고 디지털 핀 번호 3이 높으면 마이크로 컨트롤러를 통해 마이크 프로세스에서 픽업 한 음성 신호를 전송하기 위해 워키 토키를 송신 모드로 전환하여 전송합니다. NRF24L01 + PA + LNA (외부 안테나 포함).
6 단계: 전원 공급 장치로이 리튬 이온 배터리를 선택했습니다. Arduino IC Atmega328p, NRF24L01 + PA + LNA, 오디오 증폭기, PTT 버튼 및 마이크 회로와 같은 모든 구성 요소에 전원을 공급하기 위해 아래 그림과 같이이 프로젝트에 2 세트의 리튬 이온 배터리를 사용했습니다.
양호한 셀의 전압 수준은 3.8V ~ 4.2V이고 충전 전압은 4V ~ 4.2V입니다. 리튬 배터리에 대해 자세히 알아 보려면 링크 된 기사를 확인하십시오. 이 배터리는 휴대용 전자 장치 및 전기 자동차에 매우 널리 사용됩니다. 그러나 리튬 이온 배터리 셀은 다른 배터리만큼 견고하지 않으며 과충전 및 너무 빨리 방전되지 않도록 보호해야합니다. 즉, 충전 / 방전 전류 및 전압이 안전한 한도 내에서 유지되어야합니다. 따라서 프로펠러 리튬 이온 배터리 충전 모듈 인 TP4056을 가장 많이 사용했습니다. 이전에이 모듈을 휴대용 전원 은행 구축에 사용했습니다.이 보드에 대한 자세한 내용을 확인할 수 있습니다.
7 단계: Arduino atmega328p, 오디오 증폭기, 마이크 회로, PTT 버튼은 모두 5V가 필요하지만 배터리는 3.7V ~ 4.2V 만 공급할 수 있기 때문에 부스터 모듈에 2Amp dc를 사용했습니다. 부스트 컨버터가 필요합니다. 1A 이상의 안정적인 전원 출력으로 5V에 도달합니다.
회로를 구축 한 후에는 작은 인클로저에 조립할 수 있습니다. 플라스틱 상자를 사용하고 아래 이미지와 같이 회로를 배치했습니다.
워키 토키 Arduino 코드
Arduino 워키 토키에 대한 전체 프로그램은이 페이지 하단에서 찾을 수 있습니다. 이 섹션에서는 프로그램 작동 방식에 대해 설명합니다. 도착하기 전에 아래에 나열된 라이브러리를 포함해야합니다.
- nRF24 라이브러리
- nRF24 오디오 라이브러리
- Maniaxbug RF24 라이브러리
아래와 같이 라디오 및 오디오 라이브러리 헤더를 포함하여 프로그래밍을 시작하십시오.
#포함
핀 7과 8에서 RF 라디오를 초기화하고 오디오 라디오 번호를 0으로 설정합니다. 또한 핀 3의 ppt 버튼을 초기화합니다.
RF24 라디오 (7,8); // 핀 7 (CE) 8 (CS)을 사용하여 라디오 설정 RF24Audio rfAudio (radio, 0); // 라디오를 사용하여 오디오를 설정하고 라디오 번호 0으로 설정 int talkButton = 3;
설정 기능 내에서 디버깅을 위해 115200 전송 속도로 직렬 모니터를 시작합니다. 그런 다음 PPT 버튼 연결을 핀 3에 인터럽트 핀으로 초기화하십시오.
void setup () {Serial.begin (115200); printf_begin (); radio.begin (); radio.printDetails (); rfAudio.begin (); pinMode (talkButton, INPUT); // 버튼 대화를 확인하기 위해 인터럽트 설정 abutton press attachInterrupt (digitalPinToInterrupt (talkButton), talk, CHANGE); // 각 모듈이 수신 할 기본 상태를 설정합니다. rfAudio.receive (); }
다음으로, 인터럽트에 대한 응답으로 호출되는 talk ()라는 함수가 있습니다. 프로그램은 버튼을 누르고 있으면 버튼의 상태를 확인하여 오디오를 전송하기 위해 전송 모드로 들어갑니다. 버튼을 놓으면 수신 모드로 들어갑니다.
void talk () {if (digitalRead (talkButton)) rfAudio.transmit (); 그렇지 않으면 rfAudio.receive (); } 무효 루프 () {}
이 프로젝트의 전체 작업은 아래 링크 된 비디오에서 찾을 수 있습니다. 워키 토키는 작동 중에 약간의 소음을 생성하며, 이는 nRF24L01 모듈의 반송파 주파수에서 발생하는 소음입니다. 좋은 사운드 센서 또는 마이크 모듈을 사용하여 줄일 수 있습니다. 이 프로젝트에 대한 질문이 있으면 아래 댓글 섹션에 남겨 둘 수 있습니다. 다른 기술 질문에 대한 빠른 답변을 얻기 위해 포럼을 사용할 수도 있습니다.