- Wymagania:
- Pobieranie i instalowanie oprogramowania:
- Część sprzętowa Arduino i schemat obwodu:
- Część oprogramowania Arduino:
- Aplikacja mobilna Android dla radaru ultradźwiękowego:
- Objaśnienie robocze:
To ciekawy projekt, w którym badamy możliwości Arduino i Androida, aby stworzyć urządzenie Surveillance, które wykorzystuje Arduino i Ultra Sonic Sensor do transmisji informacji do aplikacji mobilnej (Android) za pomocą Bluetooth.
Bezpieczeństwo i ochrona są od wieków naszą podstawową troską. Zainstalowanie kamery bezpieczeństwa, która ma tryb nocny z opcją pochylania i przesuwania, wypali wielką dziurę w naszych kieszeniach. Dlatego zróbmy ekonomiczne urządzenie, które robi prawie to samo, ale bez żadnych funkcji wideo.
To urządzenie wykrywa obiekty za pomocą czujnika ultradźwiękowego, dzięki czemu może działać nawet w nocy. Montujemy również czujnik US (Ultra Sonic) na silniku serwo, ten silnik serwo można ustawić tak, aby obracał się automatycznie, aby skanować obszar, lub można go obracać ręcznie za pomocą naszej aplikacji mobilnej, abyśmy mogli skupić czujnik ultradźwiękowy nasz wymagany kierunek i wyczuj obiekty tam obecne. Wszystkie informacje wykryte przez amerykański czujnik zostaną przesłane do naszego smartfona za pomocą modułu Bluetooth (HC-05). Będzie więc działać jak sonar lub radar.
Ciekawe prawda?…. Zobaczmy, czego wymagalibyśmy do wykonania tego projektu.
Wymagania:
Sprzęt komputerowy:
- Zasilanie + 5V (używam mojej (innej) płyty Arduino do zasilania)
- Arduino Mega (możesz używać wszystkiego, od pro mini do Yun)
- Silnik serwo (dowolna ocena)
- Moduł Bluetooth (HC-05)
- Czujnik ultradźwiękowy (HC-SR04)
- Płytka prototypowa (nieobowiązkowa)
- Przewody łączące
- Urządzenie mobilne z systemem Android
- Komputer do programowania
Oprogramowanie:
- Oprogramowanie Arduino
- Android SDK
- Przetwarzanie systemu Android (w celu utworzenia aplikacji mobilnej)
Gdy już będziemy gotowi z naszymi materiałami, zacznijmy budowę sprzętu. Podzieliłem ten samouczek na część Arduino i część przetwarzania, aby ułatwić zrozumienie. Osoby, które są nowicjuszami w przetwarzaniu, nie muszą się zbytnio obawiać, ponieważ kompletny kod znajduje się na końcu samouczka, który można wykorzystać jako taki.
Pobieranie i instalowanie oprogramowania:
Z tego miejsca można zainstalować Arduino IDE. Pobierz oprogramowanie zgodnie z systemem operacyjnym i zainstaluj je. Arduino IDE będzie wymagało sterownika do komunikacji ze sprzętem Arduino. Ten sterownik powinien zostać zainstalowany automatycznie po podłączeniu płyty głównej do komputera. Spróbuj przesłać program migający z przykładów, aby upewnić się, że Arduino działa.
Środowisko Processing IDE można zainstalować z tego miejsca. Przetwarzanie to doskonała aplikacja typu open source, która może być używana do wielu rzeczy, ma różne tryby. W „Trybie Java” możemy tworzyć aplikacje na komputery z systemem Windows (pliki.EXE), aw „trybie Android” możemy tworzyć aplikacje mobilne na Androida (pliki.APK). Posiada również inne tryby, takie jak „Tryb Pythona”, w którym można pisać programy w języku Python. Ten samouczek nie obejmuje podstaw przetwarzania, dlatego jeśli chcesz nauczyć się programowania w języku Java lub przetwarzania, przejdź do tego wspaniałego kanału YouTube tutaj.
Część sprzętowa Arduino i schemat obwodu:
Ten projekt obejmuje wiele komponentów, takich jak silnik serwo, moduł Bluetooth, czujnik ultradźwiękowy itp. Dlatego jeśli jesteś absolutnie początkującym, zaleca się rozpoczęcie od podstawowego samouczka, który obejmuje te komponenty, a następnie wróć tutaj. Sprawdź nasze różne projekty dotyczące serwomotoru, modułu Bluetooth i czujnika ultradźwiękowego tutaj.
Wszystkie komponenty nie są zasilane przez samo Arduino, ponieważ serwomotor, moduł Bluetooth i czujnik US w sumie pobierają dużo prądu, którego Arduino nie będzie w stanie dostarczyć. W związku z tym zdecydowanie zaleca się stosowanie dowolnego zewnętrznego zasilania + 5V. Jeśli nie masz zewnętrznego źródła + 5 V w zasięgu ręki, możesz udostępniać komponenty między dwiema płytami Arduino, tak jak to zrobiłem. Podłączyłem szyny zasilające Servos do innej płytki Arduino (kolor czerwony) i podłączyłem moduł Bluetooth HC-05 oraz czujnik ultradźwiękowy HC-SR04 do Arduino mega. UWAGA: Zasilanie wszystkich tych modułów za pomocą jednej płytki Arduino spowoduje usmażenie regulatora napięcia Arduino.
Schemat połączeń dla tego projektu sonaru opartego na Arduino jest podany poniżej:
Po wykonaniu połączeń zamontuj czujnik amerykański na silniku Servo, jak pokazano poniżej:
Użyłem małego plastikowego kawałka, który był w moich śmieciach i dwustronnej taśmy do zamontowania czujnika. Możesz wpaść na własny pomysł, aby zrobić to samo. Na rynku dostępne są również uchwyty do serwomechanizmów, które można wykorzystać do tego samego celu.
Po zamontowaniu serwomechanizmu i podaniu połączeń powinno wyglądać mniej więcej tak.
Postępuj zgodnie ze schematami u góry, jeśli jakieś połączenia są nieprawidłowe. Teraz zacznijmy programować Arduino Mega za pomocą Arduino IDE.
Część oprogramowania Arduino:
Musimy napisać nasz kod, abyśmy mogli obliczyć odległość między obiektem a czujnikiem Ultra Sonic i przesłać go do naszej aplikacji mobilnej. Musimy również napisać kod, aby nasz silnik serwo przeszedł, a także uzyskać kontrolę na podstawie danych otrzymanych przez moduł Bluetooth. Ale nie martw się, program jest znacznie prostszy niż możesz sobie wyobrazić, dzięki Arduino i jego bibliotekom. Pełny kod jest podany poniżej w sekcji kodu.
Funkcja poniżej służy do automatycznego obracania serwomotoru od lewej do prawej (170 do 10) i ponownie od prawej do lewej (10 do 170). Dwie pętle for służą do osiągnięcia tego samego. Funkcja us () jest wywoływana wewnątrz obu funkcji w celu obliczenia odległości między czujnikiem a obiektem i przesłania jej do Bluetooth. Opóźnienie 50 ms powoduje powolne obracanie serwomechanizmu. Im wolniej obraca się silnik, tym dokładne stają się odczyty.
// ** Funkcja zamiatania serwomechanizmu ** // void servofun () {Serial.println ("Sweeping"); // do debugowania dla (posc = 10; posc <= 170; posc ++) // Używanie 10 do 170 stopni jest bezpieczne niż 0 do 180, ponieważ niektóre serwomechanizmy mogą nie działać w ekstremalnych aniołach {servo.write (posc); // ustaw pozycję opóźnienia serwomotoru (50); nas(); // zmierzyć odległość obiektów za pomocą czujnika US} for (posc = 170; posc> = 10; posc--) {servo.write (posc); opóźnienie (50); nas(); // zmierzyć odległość obiektów za pomocą czujnika amerykańskiego} Serial.println ("Skanowanie zakończone"); // do debugowania flag = 0; } // ** Funkcja zamiatania końca serwomechanizmu ** //
Jak wspomniano wcześniej, serwomotorem można również sterować ręcznie ze smartfona. Po prostu przesuń palcem w prawo, aby silnik poruszał się w prawo i przesuń w lewo, aby silnik poruszał się w lewo. Powyższa funkcja służy do osiągnięcia tego samego. Anioł serwomotoru zostanie bezpośrednio odebrany przez moduł Bluetooth i zapisany w zmiennej BluetoothData , a następnie serwo zostanie ustawione w tym konkretnym aniołku za pomocą linii servo.write (BluetoothData).
// ** Funkcja ręcznego sterowania serwomechanizmem ** // void podręcznikervo () {us (); // Pobierz wartość od użytkownika i steruj serwomechanizmem if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println („Pisemne”); if (BluetoothData == 'p') {flag = 0; }}} // __ Koniec funkcji sterowania ręcznego __ //
Obecny odległości przed przedmiotu będzie obliczana poniżej funkcji. Działa z prostymi formułami, że prędkość = odległość / czas. Ponieważ znamy prędkość fali amerykańskiej i czas, jaki zajmuje, odległość można obliczyć za pomocą powyższych wzorów.
// ** Funkcja do pomiaru odległości ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); odległość = (czas trwania / 2) / 29,1; // Oblicza odległość od czujnika, jeśli (odległość <200 && odległość> 0) Blueboy.write (odległość); } // __ Koniec funkcji pomiaru odległości __ //
Jeśli masz jakiekolwiek wątpliwości co do programu, możesz skorzystać z sekcji komentarzy do swoich pytań. Tak więc, gdy jesteśmy gotowi z naszym kodem, możemy od razu zrzucić go do naszego sprzętu. Ale urządzenie monitorujące nie zacznie działać, dopóki nie zostanie połączone z aplikacją na Androida. Sprawdź również wideo na końcu, aby uzyskać pełną pracę.
Aplikacja mobilna Android dla radaru ultradźwiękowego:
Jeśli nie chcesz tworzyć własnej aplikacji, a zamiast tego chcesz po prostu zainstalować tę samą aplikację, która została użyta w tym samouczku, możesz wykonać poniższe czynności.
1. Możesz bezpośrednio pobrać plik APK z poniższego linku. Ten plik APK jest przeznaczony dla systemu Android w wersji 4.4.2 i nowszych (Kitkat i nowszych). Wyodrębnij plik APK z pliku zip.
Aplikacja na Androida do radaru ultradźwiękowego
2. Przenieś plik.Apk z komputera do telefonu komórkowego.
3. Włącz instalację aplikacji z nieznanych źródeł w ustawieniach Androida.
4. Zainstaluj aplikację.
Po pomyślnym zainstalowaniu w telefonie zostanie zainstalowana aplikacja o nazwie „Zelobt”, jak pokazano poniżej:
Jeśli zainstalowałeś ten pakiet APK, możesz pominąć poniższą część i przejść do następnej sekcji.
Programowanie własnej aplikacji przy użyciu przetwarzania:
Możesz użyć pliku.APK podanego powyżej lub możesz zbudować własną aplikację przy użyciu przetwarzania, jak wyjaśniono tutaj. Mając niewielką wiedzę na temat programowania, bardzo łatwo jest również napisać własny kod dla aplikacji na Androida. Jednak jeśli dopiero zaczynasz, nie zaleca się rozpoczynania od tego kodu, ponieważ jest on nieco wyższy niż poziom początkujący.
Ten program wykorzystuje dwie biblioteki, mianowicie „bibliotekę Ketai” i „bibliotekę ControlP5” . Biblioteka ketai służy do sterowania całym sprzętem obecnym w naszym telefonie komórkowym. Biblioteka ta umożliwia łatwy dostęp do takich elementów, jak poziom naładowania baterii telefonu, wartości czujników zbliżeniowych, wartości czujników przyspieszeniomierza, opcje sterowania Bluetooth itp. W tym programie wykorzystujemy tę bibliotekę do nawiązania komunikacji między telefonami Bluetooth a Arduino Bluetooth (HC-05). „ControlP5 biblioteka” służy do wykresów działki dla naszego systemu radarowego.
Kompletny android program jest dołączony, można go pobrać stąd.
UWAGA: Nie zapomnij zainstalować wyżej wymienionych bibliotek i nie kopiuj wklej samej części kodu, ponieważ kod importuje obrazy z folderu danych, który w całości jest podany w powyższym załączniku. Dlatego pobieraj i używaj tylko tego.
Gdy skończysz z częścią kodującą i pomyślnie ją skompilujesz, możesz bezpośrednio podłączyć telefon komórkowy do komputera za pomocą kabla do transmisji danych i kliknąć przycisk odtwarzania, aby przenieść aplikację na swój telefon komórkowy. Sprawdź również nasze inne projekty przetwarzania: Gra w ping ponga z wykorzystaniem Arduino i radia FM sterowanego smartfonem przy użyciu przetwarzania.
Objaśnienie robocze:
Teraz jesteśmy gotowi z naszym sprzętem i częścią oprogramowania. Włącz sprzęt i sparuj telefon komórkowy z modułem Bluetooth. Po sparowaniu otwórz aplikację „Zelobt”, którą właśnie zainstalowaliśmy, a teraz poczekaj chwilę, a powinieneś zauważyć, że moduł Bluetooth (HC-05) automatycznie łączy się ze smartfonem. Po nawiązaniu połączenia pojawi się następujący ekran:
Możesz zauważyć, że mówi, że jest podłączony do: Nazwa urządzenia (adres sprzętowy) u góry ekranu. Wyświetla również aktualny anioł serwomotoru i odległość między czujnikiem amerykańskim. Na czerwonym tle wykreślany jest również niebieski wykres w oparciu o zmierzoną odległość. Im bliżej obiekt się zbliża, tym wyższy staje się niebieski obszar. Wykres zmierzony, gdy niektóre obiekty są umieszczone w pobliżu, jest również pokazany na drugim rysunku powyżej.
Jak wspomniano wcześniej, możesz również sterować serwomotorem z aplikacji mobilnej. Aby to zrobić, po prostu kliknij przycisk zatrzymania. To zatrzyma automatyczne zamiatanie serwomechanizmu. Możesz również znaleźć okrągłe koło u dołu ekranu, które po przesunięciu obraca się w kierunku zgodnym z zegarem lub przeciwnie do ruchu wskazówek zegara. Przesuwając to koło, możesz również obrócić silnik serwo w tym konkretnym kierunku. Koło i wykres aktualizowane po przesunięciu pokazano na poniższym obrazku.
Kod Arduino jest podany poniżej, a plik APK dla aplikacji na Androida jest tutaj. Działanie całego projektu pokazano na poniższym filmie. Mam nadzieję, że zrozumiałeś projekt. Jeśli masz jakieś pytania, skorzystaj z sekcji komentarzy poniżej.