- 요구 사항 :
- 소프트웨어 다운로드 및 설치 :
- Arduino 하드웨어 부품 및 회로도 :
- Arduino 소프트웨어 부분 :
- 초음파 레이더 용 Android 모바일 애플리케이션 :
- 작동 설명 :
이것은 Arduino 및 Android의 힘을 탐구하여 Arduino 및 Ultra Sonic Sensor를 사용하여 Bluetooth를 사용하는 모바일 애플리케이션 (Android)에 정보를 브로드 캐스트 하는 감시 장치 를 만드는 흥미로운 프로젝트입니다.
안전과 보안은 오랫동안 우리의 주요 관심사였습니다. 틸트 및 팬 옵션이있는 야간 모드가있는 보안 카메라를 설치하면 주머니에 큰 구멍이 생깁니다. 따라서 거의 동일한 기능을하지만 비디오 기능이없는 경제적 인 장치를 만들어 보겠습니다.
이 장치는 초음파 센서의 도움으로 물체를 감지하므로 야간에도 작동 할 수 있습니다. 또한 우리는 서보 모터 위에 US (Ultra Sonic) 센서를 장착하고 있습니다.이 서보 모터는 영역을 스캔하기 위해 자동으로 회전하도록 설정하거나 모바일 앱을 사용하여 수동으로 회전하여 초음파 센서를 초점을 맞출 수 있습니다. 필요한 방향과 저기있는 물체를 감지합니다. 미국 센서가 감지 한 모든 정보는 블루투스 모듈 (HC-05)을 사용하여 스마트 폰으로 방송됩니다. 따라서 소나 또는 레이더처럼 작동합니다.
흥미 롭죠 ??….이 프로젝트를 수행하는 데 필요한 것이 무엇인지 살펴 보겠습니다.
요구 사항:
하드웨어:
- + 5V 전원 공급 장치 (전원 공급 장치로 Arduino (다른) 보드를 사용하고 있습니다)
- Arduino Mega (프로 미니부터 윤까지 모든 것을 사용할 수 있음)
- 서보 모터 (모든 등급)
- 블루투스 모듈 (HC-05)
- 초음파 센서 (HC-SR04)
- 브레드 보드 (필수 아님)
- 전선 연결
- 안드로이드 모바일
- 프로그래밍 용 컴퓨터
소프트웨어:
- Arduino 소프트웨어
- 안드로이드 SDK
- Android 처리 (모바일 애플리케이션 생성)
재료가 준비되면 하드웨어 구축을 시작하겠습니다. 이해하기 쉽 도록이 튜토리얼을 Arduino Part와 Processing Part로 나누었습니다. 처리에 익숙하지 않은 사람들은 튜토리얼의 끝 부분에 완전한 코드가 제공되므로 크게 두려워 할 필요가 없습니다.
소프트웨어 다운로드 및 설치:
아두 이노 IDE는 여기에서 설치할 수 있습니다. OS에 따라 소프트웨어를 다운로드하고 설치하십시오. Arduino IDE는 Arduino 하드웨어와 통신하기위한 드라이버가 필요합니다. 이 드라이버는 보드를 컴퓨터에 연결하면 자동으로 설치됩니다. 예제에서 깜박임 프로그램을 업로드하여 Arduino가 실행 중인지 확인하십시오.
처리 IDE는 여기에서 설치할 수 있습니다. Processing은 다양한 용도로 사용할 수있는 뛰어난 오픈 소스 응용 프로그램이며 다양한 모드가 있습니다. "Java 모드"에서는 Windows 컴퓨터 응용 프로그램 (.EXE 파일)을 만들 수 있으며 "Android 모드"에서는 Android 모바일 응용 프로그램 (.APK 파일)을 만들 수 있습니다. 또한 파이썬 프로그램을 작성할 수있는 "Python 모드"와 같은 다른 모드도 있습니다.. 이 튜토리얼은 프로세싱의 기초를 다루지 않을 것이므로 자바 프로그래밍이나 프로세싱을 배우고 싶다면 여기에있는이 훌륭한 유튜브 채널로 가십시오.
Arduino 하드웨어 부품 및 회로도:
이 프로젝트에는 서보 모터, 블루투스 모듈, 초음파 센서 등과 같은 많은 구성 요소가 포함됩니다. 따라서 완전 초보자 인 경우 이러한 구성 요소를 포함하는 몇 가지 기본 자습서로 시작한 다음 여기로 돌아 오는 것이 좋습니다. 여기에서 서보 모터, 블루투스 모듈 및 초음파 센서에 대한 다양한 프로젝트를 확인하십시오.
서보 모터, 블루투스 모듈 및 US 센서는 모두 Arduino가 소싱 할 수없는 많은 전류를 소비하기 때문에 모든 구성 요소는 Arduino 자체에 의해 전원이 공급되지 않습니다. 따라서 외부 + 5V 전원 을 사용하는 것이 엄격하게 권장됩니다. 손이 닿는 곳에 외부 + 5V 전원이 없으면 제가 한 것처럼 두 개의 Arduino 보드간에 구성 요소를 공유 할 수 있습니다. 서보 파워 레일을 다른 Arduino 보드 (빨간색)에 연결하고 Bluetooth 모듈 HC-05 및 초음파 센서 HC-SR04를 Arduino mega에 연결했습니다. 주의: 하나의 Arduino 보드를 사용하여 이러한 모든 모듈에 전원을 공급하면 Arduino 전압 조정기가 손상됩니다.
이 Arduino 기반 Sonar 프로젝트의 연결 다이어그램 은 다음과 같습니다.
연결이 완료되면 아래와 같이 US 센서를 서보 모터에 장착합니다.
나는 쓰레기 속에 있던 작은 플라스틱 조각과 센서를 장착하기 위해 양면 테이프를 사용했습니다. 당신도 같은 일을 할 자신의 아이디어를 생각해 낼 수 있습니다. 동일한 목적으로 사용할 수있는 서보 홀더도 시중에 나와 있습니다.
서보가 장착되고 연결이 제공되면 다음과 같이 보일 것입니다.
연결이 잘못되면 상단의 회로도를 따르십시오. 이제 Arduino IDE를 사용하여 Arduino Mega 프로그래밍을 시작하겠습니다.
Arduino 소프트웨어 부분:
물체와 Ultra Sonic 센서 사이의 거리를 계산하여 모바일 애플리케이션으로 보낼 수 있도록 코드를 작성해야합니다. 또한 서보 모터에 대한 코드를 작성하여 Bluetooth 모듈에서 수신 한 데이터를 통해 스위핑하고 제어해야합니다. 그러나 Arduino와 라이브러리 덕분에 프로그램이 이미지화 할 수있는 것보다 훨씬 간단하다는 점에 대해 걱정하지 마십시오. 전체 코드는 아래 코드 섹션에 나와 있습니다.
아래 기능은 서보 모터가 자동으로 왼쪽에서 오른쪽 (170 ~ 10)으로, 다시 오른쪽에서 왼쪽 (10 ~ 170) 으로 스윕하도록하는 데 사용됩니다. 두 개의 for 루프는 동일한 작업을 수행하는 데 사용됩니다. us () 함수는 두 함수 내에서 호출되어 센서와 객체 사이의 거리를 계산하고이를 Bluetooth로 브로드 캐스트합니다. 서보가 천천히 회전하도록 50ms의 지연이 주어집니다. 모터가 느리게 회전할수록 판독 값이 정확 해집니다.
// ** 서보 스윕을위한 함수 ** // void servofun () {Serial.println ("Sweeping"); // for (posc = 10; posc <= 170; posc ++) // 10 ~ 170도를 사용하는 것은 0 ~ 180 도보 다 안전합니다. 일부 서보는 극단적 인 천사에서 작동하지 않을 수 있기 때문입니다. {servo.write (posc); // 서보 모터 위치 설정 delay (50); 우리(); // 미국 센서를 부르는 물체의 거리 측정} for (posc = 170; posc> = 10; posc--) {servo.write (posc); 지연 (50); 우리(); // 미국 센서를 부르는 물체의 거리 측정} Serial.println ("Scan Complete"); // 디버깅 플래그 = 0; } // ** 서보 스위핑 기능 종료 ** //
앞서 말했듯이 서보 모터는 스마트 폰에서 수동으로 제어 할 수도 있습니다. 오른쪽으로 스 와이프하면 모터가 오른쪽으로 이동하고 왼쪽으로 스 와이프하면 모터가 왼쪽으로 이동합니다. 위의 기능은 동일한 것을 달성하는 데 사용됩니다. 서보 모터의 사자 직접 변수 블루투스 모듈에 의해 수신 및 저장 될 것이다 BluetoothData 다음 서보 광고 이용하여 특정 위치에서 천사이다 servo.write (BluetoothData 참조).
// ** 서보를 수동으로 제어하는 기능 ** // void manualservo () {us (); // 사용자로부터 값을 얻고 서보를 제어합니다. if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("쓰기"); if (BluetoothData == 'p') {플래그 = 0; }}} // __ 수동 제어 기능 종료 __ //
물체 이전 의 거리는 아래 함수에 의해 계산됩니다. 속도 = 거리 / 시간이라는 간단한 공식으로 작동합니다. 미국 파동의 속도와 소요 시간을 알고 있으므로 위의 공식을 사용하여 거리를 계산할 수 있습니다.
// ** 거리 측정 기능 ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); 기간 = pulseIn (echoPin, HIGH); 거리 = (기간 / 2) / 29.1; // 센서로부터의 거리 계산 if (distance <200 && distance> 0) Blueboy.write (distance); } // __ 거리 측정 기능 종료 __ //
프로그램에 의문이 있으시면 언제든지 의견 섹션을 사용하십시오. 따라서 코드가 준비되면 코드를 하드웨어에 바로 덤프 할 수 있습니다. 그러나 감시 장치는 Android 애플리케이션에 연결될 때까지 작동을 시작하지 않습니다. 또한 완전한 작업을 위해 끝에 비디오 를 확인하십시오.
초음파 레이더 용 Android 모바일 애플리케이션:
자신 만의 응용 프로그램을 만들고 싶지 않고 대신이 자습서에서 사용한 것과 동일한 응용 프로그램을 설치하려는 경우 아래 단계를 수행 할 수 있습니다.
1. 아래 링크에서 APK 파일을 직접 다운로드 할 수 있습니다 . 이 APK 파일은 Android 버전 4.4.2 이상 (Kitkat 이상) 용으로 제작되었습니다. zip 파일에서 APK 파일을 추출합니다.
초음파 레이더 용 Android 애플리케이션
2. 컴퓨터에서 휴대폰으로.Apk 파일을 전송합니다.
3. 안드로이드 설정에서 알 수없는 소스에서 애플리케이션 설치를 활성화합니다.
4. 응용 프로그램을 설치합니다.
성공적으로 설치되면 아래와 같이 "Zelobt" 라는 이름의 응용 프로그램이 휴대폰에 설치되어 있습니다.
이 APK를 설치했다면 아래 부분을 건너 뛰고 다음 섹션으로 건너 뛸 수 있습니다.
프로세싱을 사용하여 자신의 애플리케이션 프로그래밍:
위에 제공된.APK 파일을 사용하거나 여기에 설명 된대로 처리를 사용하여 고유 한 앱을 빌드 할 수 있습니다. 프로그래밍에 대한 지식이 거의 없으면 Android 애플리케이션에 대한 코드를 작성하는 것도 매우 쉽습니다. 그러나 막 시작하는 경우 초보자 수준보다 약간 높기 때문에이 코드로 시작하지 않는 것이 좋습니다.
이 프로그램은 "Ketai 라이브러리" 와 "ControlP5 라이브러리"라는 두 개의 라이브러리를 사용합니다. ketai 라이브러리는 휴대폰 내부에있는 모든 하드웨어를 제어하는 데 사용됩니다. 이 라이브러리에서 휴대폰 배터리 잔량, 근접 센서 값, 가속도계 센서 값, Bluetooth 제어 옵션 등과 같은 항목에 쉽게 액세스 할 수 있습니다. 이 프로그램에서 우리는이 라이브러리를 사용하여 휴대폰 Bluetooth와 Arduino Bluetooth (HC-05) 간의 통신을 설정합니다. "ControlP5 라이브러리는" 우리의 레이더 시스템에 대한 플롯 그래프에 사용됩니다.
전체 안드로이드 프로그램이 부착되어 여기에서 다운로드 할 수 있습니다.
주의: 위에 언급 된 라이브러리를 설치하는 것을 잊지 말고 코드 부분 만 복사하여 붙여 넣지 마십시오. 코드는 위의 첨부 파일에 모두 제공된 데이터 폴더에서 이미지를 가져 오기 때문입니다. 따라서 다운로드하여 사용하십시오.
코딩 부분을 완료하고 성공적으로 컴파일하면 데이터 케이블을 통해 휴대 전화를 컴퓨터에 직접 연결하고 재생 버튼을 클릭하여 응용 프로그램을 휴대 전화에 바보로 만들 수 있습니다. 또한 다른 처리 프로젝트: Arduino를 사용한 Ping Pong 게임 및 Processing을 사용하는 스마트 폰 제어 FM 라디오를 확인하십시오.
작동 설명:
이제 우리는 하드웨어와 소프트웨어 부분을 준비했습니다. 하드웨어의 전원을 켜고 모바일을 Bluetooth 모듈에 페어링합니다. 페어링이 완료되면 방금 설치 한 "Zelobt"응용 프로그램을 열고 잠시 기다리면 Bluetooth 모듈 (HC-05)이 스마트 폰에 자동으로 연결되는 것을 확인할 수 있습니다. 연결이 설정되면 다음 화면이 표시됩니다.
화면 상단에 연결됨: 장치 이름 (하드웨어 주소)이라고 표시되어 있습니다. 또한 서보 모터의 현재 각도와 US 센서 사이의 거리를 표시합니다. 측정 된 거리에 따라 파란색 그래프가 빨간색 배경에 표시됩니다. 물체가 가까울수록 파란색 영역이 더 커집니다. 위의 두 번째 그림에는 일부 물체가 가까이있을 때 측정 된 그래프가 나와 있습니다.
앞서 말했듯이 모바일 앱에서 서보 모터를 제어 할 수도 있습니다. 이렇게하려면 중지 버튼을 클릭하면됩니다. 이렇게하면 서보가 자동으로 스윕되지 않습니다. 화면 하단에서 스 와이프하면 시계 또는 반 시계 방향으로 회전하는 원형 바퀴를 찾을 수도 있습니다. 이 휠을 스 와이프하면 서보 모터를 특정 방향으로 돌릴 수도 있습니다. 스 와이프 할 때 업데이트되는 휠과 그래프는 아래 그림과 같습니다.
아두 이노 코드 는 아래와 같으며 안드로이드 애플리케이션 용 APK 파일은 여기에 있습니다. 전체 프로젝트의 작업은 아래 비디오에 나와 있습니다. 프로젝트를 이해 하셨기를 바랍니다. 질문이 있으시면 아래 댓글 섹션을 사용하십시오.