이 프로젝트에서는 오래 전에 수리 된 기존 FM 라디오를 사용하여 Arduino 및 Processing 의 도움으로 Phone을 사용하여 제어 되는 스마트 무선 FM 라디오 로 변환합니다.
우리는 동일한 절차를 사용하여 수동으로 작동하는 모든 전자 장치를 스마트 장치로 변환 할 수 있습니다. 모든 전자 장치는 신호의 도움으로 작동합니다. 이러한 신호는 전압 또는 전류 측면에서 나타날 수 있습니다. 신호는 사용자 상호 작용을 통해 직접 또는 무선 장치를 사용하여 수동으로 트리거 할 수 있습니다.
이 프로젝트가 끝나면 버튼으로 작동하는 라디오와 같은 일반적인 전자 장치 대부분을 Bluetooth를 통해 스마트 폰 으로 제어 할 수 있는 스마트 무선 가젯 으로 변환 할 수 있습니다. 이를 달성하기 위해 우리는 두 가지 주요 작업을 수행해야합니다.
1. 기존 기계식 버튼 시스템에서 신호가 어떻게 생성되는지 예측합니다.
2. 작은 추가 회로를 사용하여 동일한 신호를 트리거하는 방법을 찾습니다.
자, 시작합시다…
필요한 구성 요소:
이 프로젝트의 경우 라디오, TV, CD 플레이어 또는 홈 시어터와 같은 오래되거나 사용되지 않는 전자 장치를 선택할 수 있습니다. 실제 구성 요소는 선택한 장치에 따라 다를 수 있습니다. 그러나 무선으로 만들려면 여기 에 Arduino 인 마이크로 컨트롤러 와 HC-05 Bluetooth 모듈 인 무선 매체 가 필요 합니다.
리버스 엔지니어링:
좋아, 이제 오래 전에 작동을 멈춘 오래된 FM 라디오 플레이어 를 선택했습니다. 그리고 그것을 열었을 때 버튼이 작동을 멈췄다는 것을 알았습니다. 완전히 무선으로 만들 예정이므로 더 이상 버튼이 필요하지 않기 때문에 작업하기에 완벽한 장치가 될 것입니다. 아래 사진은 제가 연 라디오입니다.
이것은 내 라디오의 버튼 설정입니다 (위 사진). 보시다시피 라디오가 입력을받는 8 개의 버튼이 있습니다. 보드에 8 개의 저항이 있음을 알 수 있습니다. 이것으로부터 어떤 결론을 내릴 수 있습니까…? 예 각 저항기는 스위치에 연결됩니다. 이제 보드 뒷면을 살펴 보겠습니다.
PCB 트랙을 사용하여 연결을 추적 할 수 있지만 여전히 혼란 스러우면 밀리미터를 연결에 더 많이 사용하고 회로를 파악할 수 있습니다. 이 보드에는 메인 FM 라디오 보드에 신호를 제공하는 3 개의 터미널 (빨간색 원)이 있습니다. 이 핀은 S1, S2 및 1.7V로 표시되었습니다. 즉, 1.7V의 정전압이 메인 보드에서이 보드로 전송되고 사용자가 아무 버튼이나 누르면 해당 저항에서 전압 강하가 발생하고 핀 S1 및 S2를 통해 가변 전압이 다시 전송됩니다. 이것이 우리 전자 장치의 대부분의 버튼이 작동하는 방식입니다. 이제 어떻게 작동하는지 알아 냈으므로 무선으로 만들어 보겠습니다.
작동 설명:
이제 무선으로 만들 려면 S1에 0 ~ 1.7V 사이의 전압 을 제공 하고 메인 보드를 접지하면됩니다. 마이크로 컨트롤러를 사용하여 이러한 버튼 설정을 모방 할 수있는 몇 가지 방법이 있습니다.
디지털 전위차계를 사용하여 프로그래밍 된대로 필요할 때 보드에 저항을 제공 할 수 있습니다. 그러나 Digipot과 함께 작업하려면 SPI가 필요하고 Digipot은 비용이 많이 들기 때문에 상황이 복잡하고 비용이 많이 듭니다.
또한 서로 다른 값의 각 저항이 마이크로 컨트롤러 자체에 의해 제어되는 트랜지스터에 의해 활성화되는 트랜지스터 저항 네트워크를 사용할 수도 있습니다. 그러나 8 개의 버튼에 대해이 작업을 다시 수행하면 회로가 복잡해집니다.
이를 수행하는 간단한 방법은 마이크로 컨트롤러에서 필요한 가변 전압을 직접 생성하여 신호 핀에 공급하는 것입니다. 안타깝게도 Arduino에는 ADC 만 있고 DAC는 없습니다. 그러나 다행히 Arduino에는 PWM이 있습니다. 이 PWM은 간단한 RC 저역 통과 필터 의 도움으로 가변 전압으로 작동하도록 만들 수 있습니다.
저역 통과 필터가 위에 나와 있습니다. 여기서 핵심 구성 요소는 전체 맥동 신호를 접지하고 순수 DC가 출력으로 전송되는 커패시터입니다. 따라서 Arduino의 PWM 신호는 저역 통과 필터를 통해 전송 된 다음 FM 라디오의 신호 보드에 전달되어야합니다.
회로는 위와 같이 도트 보드에 쉽게 구축 할 수 있습니다. 여기에서 검은 색 와이어는 접지 용이고 왼쪽의 파란색 및 녹색 와이어는 FM 보드 S1 (녹색) 및 S2 (파란색)로 전송되며 오른쪽 와이어는 Arduino의 핀 9 및 10에서 PWM 신호를 수신합니다. 위 그림 참조) 저역 통과 필터를 통해 FM 보드로 전달합니다. Bluetooth 모듈은 핀 11 및 12를 Rx 및 TX로 사용합니다.
이제 0V에서 1.7V까지 PWM 신호를 생성 하고 라디오가 다양한 전압 레벨에서 어떻게 작동하는지 알아낼 수 있습니다. 다음 단계는 이것을 무선으로 만드는 것입니다.
회로 연결:
이 회로도는 Bluetooth 제어 FM 라디오 를 위해 Arduino Mega에 연결된 저역 통과 필터 및 HC-05 Bluetooth 모듈의 전체 설정을 보여줍니다.
Arduino 프로그램:
Arduino 용 프로그램은 아래 코드 섹션에 나와 있습니다. 여기에서이 프로그램을 사용하여 전자 장치의 가변 전압 범위를 테스트 할 수도 있습니다.
라디오 용 Android 앱 구축을 시작하기 전에 아래 비디오 와 같이 터미널 Bluetooth 모니터 앱을 사용하여 무선 기능을 테스트하는 것이 좋습니다. Arduino에서 Bluetooth 터미널 앱을 구성하려면이 문서를 확인하십시오. 작동에 자신감이 생기면 자체 Android 앱을 만들 수 있습니다.
처리를 사용하여 Android 앱 만들기:
장치를 무선으로 만드는 것은 멋지지만 자체 Android 앱을 만들어 장치에 개인적인 손길을 더할 수도 있습니다. 자동 예약 시간으로 장치를 제어하거나 기상 알람을 기반으로 제어 할 수 있습니다. 집에 도착하면 라디오에서 좋아하는 채널을 재생할 수도 있습니다. 상상력은 여기서 당신의 한계입니다. 그러나 지금은 프로세싱을 사용하여 간단한 사용자 인터페이스를 만들 것입니다.이 앱에는 FM 라디오를 제어 할 수있는 버튼이 거의 없습니다.
Processing 은 아티스트가 그래픽 디자인을 위해 사용하는 오픈 소스 소프트웨어입니다. 이 소프트웨어는 소프트웨어 및 Android 애플리케이션을 개발하는 데 사용됩니다.
이 무선 FM 라디오를 제어 하기위한 Android 앱 의 처리 코드 는 다음과 같습니다.
- FM 라디오를 제어하는 Android 앱 처리 코드
먼저이 앱을 JAVA 모드로 PC에 빌드 하여 제대로 테스트했습니다. 여기에 동일한 처리 코드가 있습니다. 마우스 오른쪽 버튼으로 클릭하고 '다른 이름으로 링크 저장..'을 클릭하여 코드 파일을 다운로드합니다. 그런 다음 '처리'소프트웨어에서 파일을 열고 '실행'버튼을 클릭하여 전화에서 어떻게 보이는지 확인하십시오. *.pde 파일을 열려면 'Processing'소프트웨어를 설치해야합니다.
JAVA 모드에서 앱을 테스트 한 후에는 Processing 창의 오른쪽 상단 모서리에있는 Android 탭으로 변경하여 쉽게 Android 모드 로 변환 할 수 있습니다. Android Phone이 Bluetooth를 켜고 HC-05 모듈에 자동으로 연결되도록하려면 기존 Java 프로그램 에 다음 코드를 추가하여 Android 앱으로 만들어야합니다. 위 링크에 이미 전체 Android 코드가 제공되어 있으므로 직접 사용할 수 있습니다.
다음은 Bluetooth 기능을 활성화하는 일부 헤더 파일입니다.
import android.content.Intent; import android.os.Bundle; import ketai.net.bluetooth. *; import ketai.ui. *; import ketai.net. *; import android.bluetooth.BluetoothAdapter; import android.view.KeyEvent;
아래 줄은 Ketai 라이브러리를 사용하여 전화 Bluetooth 어댑터와 통신하며 어댑터 이름을 bt로 지정 합니다.
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter (); KetaiBluetooth bt;
코드의 아래 부분은 앱 시작시 Bluetooth를 켜도록 요청하는 사용자에게 요청을 트리거합니다.
// 시작시 BT 시작 ********* void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); bt = 새로운 KetaiBluetooth (this); } void onActivityResult (int requestCode, int resultCode, Intent data) {bt.onActivityResult (requestCode, resultCode, data); } // **********
여기서는 연결해야하는 Bluetooth 장치를 Android 앱에 지시합니다. 라인 bt.connectToDeviceByName (selection); 설정 기능에서 장치 이름을 예상합니다. 블루투스 장치의 이름이 'HC-05'이므로 아래 줄이 설정에 추가됩니다. 이 이름은 Bluetooth 모듈 이름에 따라 다릅니다.
// 블루투스 장치를 선택하려면 ********** void onKetaiListSelection (KetaiList klist) {String selection = klist.getSelection (); bt.connectToDeviceByName (선택); // 현재 목록 폐기 klist = null; } // **********
bt.connectToDeviceByName ("HC-05");
PC 용 처리 코드 (자바 모드)에서 이러한 변경을 수행하거나 위 링크에 제공된 Android 처리 코드를 직접 사용할 수 있습니다. 그런 다음 데이터 케이블을 사용하여 휴대폰을 랩톱에 직접 연결하고 휴대폰에서 USB 디버깅 을 활성화 합니다. 이제 PC의 처리 창에서 재생 버튼을 클릭하면 응용 프로그램이 Android 전화에 직접 설치되고 자동으로 실행됩니다. 그렇게 쉽기 때문에 시도해보십시오.
아래 그림은 코딩 창과 함께 Android 애플리케이션 UI를 나타냅니다. 비디오 를 확인하여 컴퓨터뿐만 아니라 Android Phone에서 코드를 이해하고 실행하십시오.
그것은 우리가 우리의 오래된 FM 라디오를 우리의 안드로이드 애플리케이션으로 제어 할 수 있는 무선 현대 가제트로 바꿨습니다. 나는 이것이 사람들이 일하는 데 도움이되기를 바랍니다. 그러나 항상 지침이 필요하면 의견 섹션을 사용할 수 있으며 기꺼이 도와 드리겠습니다.