- Požiadavky:
- Sťahovanie a inštalácia softvérových programov:
- Hardvérová časť Arduino a schéma obvodu:
- Softvérová časť Arduino:
- Mobilná aplikácia pre Android pre ultrazvukový radar:
- Pracovné vysvetlenie:
Jedná sa o zaujímavý projekt, v rámci ktorého skúmame silu systému Arduino a systému Android pri vytváraní sledovacieho zariadenia, ktoré na prenos informácií do mobilnej aplikácie (Android) pomocou rozhrania Bluetooth využíva Arduino a snímač Ultra Sonic.
Bezpečnosť a ochrana je naším hlavným záujmom už od vekov. Inštalácia bezpečnostnej kamery, ktorá má nočný režim s možnosťou nakláňania a posúvania, vypáli veľkú dieru v našich vreckách. Preto urobme ekonomické zariadenie, ktoré robí takmer to isté, ale bez akýchkoľvek video funkcií.
Toto zariadenie sníma objekty pomocou ultrazvukového snímača, a preto môže pracovať aj v nočných hodinách. Tiež montujeme americký (Ultra Sonic) snímač na servomotor, tento servomotor je možné nastaviť buď tak, aby sa automaticky otáčal, aby skenoval oblasť, alebo sa dá otáčať ručne pomocou našej mobilnej aplikácie, aby sme mohli ultrazvukový snímač zaostriť náš požadovaný smer a vnímanie predmetov, ktoré sú tam. Všetky informácie snímané americkým snímačom sa budú vysielať do nášho inteligentného telefónu pomocou modulu Bluetooth (HC-05). Bude to teda fungovať ako sonar alebo radar.
Zaujimave nie ??…. Pozrime sa, čo by sme od tohto projektu požadovali.
Požiadavky:
Hardvér:
- Napájací zdroj + 5 V (na napájanie používam svoju (inú) dosku Arduino)
- Arduino Mega (Môžete použiť čokoľvek od pro mini po Yun)
- Servomotor (akékoľvek hodnotenie)
- Modul Bluetooth (HC-05)
- Ultrazvukový senzor (HC-SR04)
- Nepájivá pole (nepovinné)
- Pripojovacie vodiče
- Android pre mobil
- Počítač na programovanie
Softvér:
- Softvér Arduino
- Android SDK
- Spracovanie systému Android (na vytvorenie mobilnej aplikácie)
Keď sme pripravení na materiály, začnime stavať hardvér. Tento výukový program som pre ľahšie pochopenie rozdelil na časť Arduino a časť Processing. Ľudia, ktorí so spracovaním začínajú, sa nemusia veľmi báť, pretože na konci tohto tutoriálu je uvedený kompletný kód, ktorý je možné ako taký použiť.
Sťahovanie a inštalácia softvérových programov:
Arduino IDE možné nainštalovať tu. Stiahnite si softvér podľa vášho operačného systému a nainštalujte ho. IDE Arduino bude na komunikáciu s hardvérom Arduino vyžadovať ovládač. Tento ovládač by sa mal nainštalovať automaticky po pripojení dosky k počítaču. Skúste nahrať blikajúci program z príkladov, aby ste sa uistili, že je Arduino funkčné.
Processing IDE možné nainštalovať tu. Spracovanie je vynikajúca open source aplikácia, ktorú je možné použiť na veľa vecí, má rôzne režimy. V „režime Java“ môžeme vytvárať počítačové aplikácie pre Windows (súbory.EXE) a v „režime Android“ môžeme vytvárať mobilné aplikácie pre Android (súbory.APK). Má tiež ďalšie režimy, ako napríklad „režim Python“, kde vám môžete písať programy v jazyku Python. Tento tutoriál nebude obsahovať základné informácie o spracovaní, a preto, ak sa chcete naučiť programovanie v jazyku Java alebo spracovanie na tomto skvelom kanáli YouTube, tu.
Hardvérová časť Arduino a schéma obvodu:
Tento projekt zahŕňa veľa komponentov, ako je servomotor, modul Bluetooth, ultrazvukový senzor atď. Preto, ak ste úplným začiatočníkom, odporúčame vám začať s nejakým základným tutoriálom, ktorý tieto komponenty zahrnuje, a potom sa sem vrátiť. Tu si pozrite naše rôzne projekty týkajúce sa servomotorov, modulov Bluetooth a ultrazvukových senzorov.
Všetky komponenty nie sú napájané samotným Arduinom, pretože servomotor, Bluetooth modul a americký snímač celkovo čerpajú veľa prúdu, ktorý Arduino nebude môcť napájať. Preto je prísne vhodné použiť ľubovoľný externý + 5V napájanie. Pokiaľ nemáte na dosah externé napájanie + 5V, môžete komponenty zdieľať medzi dvoma doskami Arduino, ako som to urobil ja. Pripojil som napájacie lišty Servos k inej doske Arduino (červená farba) a k mega Arduinu som pripojil Bluetooth modul HC-05 a ultrazvukový senzor HC-SR04. UPOZORNENIE: Zapnutím všetkých týchto modulov pomocou jednej dosky Arduino dôjde k vyprážaniu regulátora napätia Arduino.
Schéma pripojenia tohto projektu sonaru založeného na Arduine je uvedená nižšie:
Po vykonaní pripojení namontujte americký senzor na váš servomotor, ako je to znázornené nižšie:
Na pripevnenie snímača som použil malý plastový kúsok, ktorý bol v mojom nevyžiadanej podobe, a dvojitú bočnú pásku. Môžete prísť s vlastným nápadom, ako urobiť to isté. Na trhu sú k dispozícii aj držiaky servopohonov, ktoré sa dajú použiť na rovnaký účel.
Len čo je servo namontované a sú uvedené spojenia, malo by vyzerať asi takto.
Ak dôjde k chybnému spojeniu, postupujte podľa schémy hore. Teraz začnime programovať Arduino Mega pomocou Arduino IDE.
Softvérová časť Arduino:
Musíme napísať náš kód, aby sme mohli vypočítať vzdialenosť medzi objektom a snímačom Ultra Sonic a odoslať ho do našej mobilnej aplikácie. Musíme tiež napísať kód pre náš servomotor na zametanie a kontrolu nad údajmi prijatými modulom Bluetooth. Ale nebojte sa, program je vďaka Arduinu a jeho knižniciam oveľa jednoduchší, ako si viete predstaviť. Celý kód je uvedený nižšie v časti venovanej kódu.
Nižšie uvedená funkcia slúži na to, aby sa servomotor automaticky pohyboval zľava doprava (170 až 10) a znova sprava doľava (10 až 170). Na dosiahnutie toho istého sa používajú dva cykly for . Funkcia us () sa volá vo vnútri oboch funkcií na výpočet vzdialenosti medzi snímačom a objektom a jej vysielanie do rozhrania Bluetooth. Pre pomalé otáčanie serva je dané oneskorenie 50 ms. Čím pomalšie motor rotuje, tým presnejšie sú vaše hodnoty.
// ** Funkcia pre zametanie serva ** // void servofun () {Serial.println ("Zametanie"); // na ladenie pre (posc = 10; posc <= 170; posc ++) // Používanie stupňov 10 až 170 je bezpečné od 0 do 180, pretože niektoré servá nemusia byť v extrémnych uhloch funkčné {servo.write (posc); // nastavenie polohy oneskorenia servomotora (50); nás (); // zmerajme vzdialenosť objektov pomocou amerického snímača} pre (posc = 170; posc> = 10; posc--) {servo.write (posc); oneskorenie (50); nás (); // zmerajte vzdialenosť objektov pomocou amerického senzora} Serial.println ("Scan Complete"); // na ladenie vlajky = 0; } // ** Koniec funkcie zametania serva ** //
Ako už bolo povedané, servomotor je možné ovládať aj manuálne zo smartphonu. Jednoducho potiahnete prstom doprava, aby sa motor pohyboval doprava, a potiahnutím doľava, aby sa motor pohyboval doľava. Vyššie uvedená funkcia sa používa na dosiahnutie toho istého. Anjel servomotora bude priamo prijatý modulom Bluetooth a uložený v premennej BluetoothData . Potom bude servo pomocou tohto servomechanizmu (BluetoothData) v tomto konkrétnom anjele.
// ** Funkcia na ručné ovládanie serva ** // void manualservo () {us (); // Získajte hodnotu od používateľa a ovládajte servo if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("Napísané"); if (BluetoothData == 'p') {flag = 0; }}} // __ Koniec funkcie manuálneho ovládania __ //
Vzdialenosť prítomný pred objektom sa vypočíta nižšie funkcií. Funguje to s jednoduchými vzorcami, ktoré znamenajú rýchlosť = vzdialenosť / čas. Pretože poznáme rýchlosť americkej vlny a čas, ktorý je potrebné vziať, vzdialenosť sa dá vypočítať pomocou vyššie uvedených vzorcov.
// ** Funkcia na meranie vzdialenosti ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); vzdialenosť = (trvanie / 2) / 29,1; // Vypočíta vzdialenosť od senzora if (vzdialenosť <200 && vzdialenosť> 0) Blueboy.write (vzdialenosť); } // __ Funkcia konca merania vzdialenosti __ //
Ak máte v programe pochybnosti, môžete pri svojich požiadavkách použiť sekciu komentárov. Akonáhle sme teda pripravení na náš kód, môžeme ho ihneď uložiť do nášho hardvéru. Monitorovacie zariadenie však začne pracovať až po pripojení k aplikácii pre Android. Skontrolujte tiež video na konci, či je práca úplná.
Mobilná aplikácia pre Android pre ultrazvukový radar:
Ak si nechcete vytvoriť svoju vlastnú aplikáciu a chcete si len nainštalovať tú istú aplikáciu, ktorá sa používa v tomto návode, postupujte podľa krokov uvedených nižšie.
1. Súbor APK si môžete priamo stiahnuť z nasledujúceho odkazu. Tento súbor APK je určený pre Android verzie 4.4.2 a novšej verzie (Kitkat vyššie). Extrahujte súbor APK zo súboru zip.
Aplikácia pre Android pre ultrazvukový radar
2. Preneste súbor.Apk z počítača do mobilného telefónu.
3. Povoľte inštaláciu nastavení z Neznámych zdrojov v nastaveniach systému Android.
4. Nainštalujte aplikáciu.
Po úspešnej inštalácii nájdete vo svojom telefóne nainštalovanú aplikáciu s názvom „Zelobt“, ako je uvedené nižšie:
Ak ste si nainštalovali tento súbor APK, môžete preskočiť nasledujúcu časť a prejsť na ďalšiu časť.
Programovanie vlastnej aplikácie pomocou spracovania:
Môžete použiť vyššie uvedený súbor.APK alebo si môžete vytvoriť vlastnú aplikáciu pomocou nástroja Processing, ako je vysvetlené tu. Vďaka malým znalostiam programovania je tiež veľmi ľahké napísať vlastný kód pre aplikáciu pre Android. Ak však práve začínate, nie je vhodné začínať s týmto kódom, pretože je trochu vyšší ako úroveň začiatočníka.
Tento program používa dve knižnice, a to „Ketai library“ a „ControlP5 library“ . Knižnica ketai sa používa na ovládanie všetkého hardvéru prítomného v našom mobilnom telefóne. Táto knižnica má ľahký prístup k úrovniam nabitia batérie, hodnotám senzora priblíženia, hodnotám senzora akcelerometra, možnostiam ovládania Bluetooth atď. V tomto programe používame túto knižnicu na nadviazanie komunikácie medzi telefónmi Bluetooth a Arduino Bluetooth (HC-05). "ControlP5 knižnica" sa používa pre vykresľovanie grafov pre náš radarový systém.
Kompletný android program je pripojený, môžete si ho stiahnuť tu.
UPOZORNENIE: Nezabudnite nainštalovať vyššie uvedené knižnice a nekopírujte samotnú časť kódu, pretože kód importuje obrázky z dátového priečinka, ktorý je uvedený v prílohe vyššie. Preto sťahujte a používajte iba to.
Keď skončíte s programovacou časťou a úspešne ste ju skompilovali, môžete priamo pripojiť svoj mobilný telefón k počítaču pomocou dátového kábla a kliknutím na tlačidlo prehrávania aplikáciu vypustiť do mobilného telefónu. Skontrolujte tiež naše ďalšie Projekty spracovania: Hra Ping Pong pomocou Arduina a Rádio FM ovládané pomocou Smart Phone pomocou Spracovania.
Pracovné vysvetlenie:
Teraz sme pripravení na hardvérovú a softvérovú časť. Zapnite hardvér a spárujte mobilný telefón s modulom Bluetooth. Po spárovaní otvorte aplikáciu „Zelobt“, ktorú sme práve nainštalovali, a teraz počkajte chvíľu. Mali by ste si všimnúť, že sa váš modul Bluetooth (HC-05) automaticky pripája k vášmu inteligentnému telefónu. Po nadviazaní spojenia sa zobrazí nasledujúca obrazovka:
Môžete si všimnúť, že je pripojené k: Názov zariadenia (hardvérová adresa) v hornej časti obrazovky. Taktiež zobrazuje aktuálny anjel servomotora a vzdialenosť medzi americkým snímačom. Na základe nameranej vzdialenosti sa na červenom pozadí vykreslí aj modrý graf. Čím bližšie je objekt, tým vyššia je modrá oblasť. Graf meraný pri umiestnení niektorých objektov do blízkosti je tiež znázornený na druhom obrázku vyššie.
Ako už bolo povedané, svoj servomotor môžete ovládať aj z mobilnej aplikácie. Stačí kliknúť na tlačidlo stop. Toto zabráni automatickému zametaniu serva. V dolnej časti obrazovky nájdete tiež kruhové koliesko, ktoré sa po potiahnutí bude otáčať v smere hodinových ručičiek alebo proti smeru hodinových ručičiek. Potiahnutím tohto kolieska tiež môžete nastaviť, aby sa váš servomotor otáčal týmto konkrétnym smerom. Koliesko a graf aktualizované po potiahnutí prstom sú zobrazené na obrázku nižšie.
Arduino kód je uvedený nižšie a súbor APK pre aplikáciu Android je tu. Fungovanie celého projektu je zobrazené na videu nižšie. Dúfam, že ste pochopili projekt. Ak máte nejaké otázky, použite prosím sekciu komentárov nižšie.