- Requisiti:
- Download e installazione di software:
- Parte hardware Arduino e schema del circuito:
- Parte software Arduino:
- Applicazione mobile Android per radar a ultrasuoni:
- Spiegazione di lavoro:
Questo è un progetto interessante in cui esploriamo la potenza di un Arduino e Android per creare un dispositivo di sorveglianza che utilizza Arduino e sensore Ultra Sonic per trasmettere le informazioni a un'applicazione mobile (Android) tramite Bluetooth.
La sicurezza e la protezione sono state la nostra preoccupazione principale da secoli. L'installazione di una telecamera di sicurezza con modalità notturna con opzione di inclinazione e panoramica brucerà un grosso buco nelle nostre tasche. Quindi realizziamo un dispositivo economico che fa quasi lo stesso ma senza alcuna funzionalità video.
Questo dispositivo rileva gli oggetti con l'aiuto del sensore a ultrasuoni e quindi può funzionare anche durante le ore notturne. Inoltre stiamo montando il sensore US (Ultra Sonic) su un servomotore, questo servomotore può essere impostato per ruotare automaticamente per scansionare l'area o può essere ruotato manualmente utilizzando la nostra app mobile, in modo da poter mettere a fuoco il sensore a ultrasuoni in la nostra direzione richiesta e percepire gli oggetti presenti laggiù. Tutte le informazioni rilevate dal sensore statunitense verranno trasmesse al nostro smartphone utilizzando il modulo Bluetooth (HC-05). Quindi funzionerà come un sonar o un radar.
Interessante vero ??…. Vediamo cosa avremmo bisogno per fare questo progetto.
Requisiti:
Hardware:
- Un alimentatore + 5V (sto usando la mia scheda Arduino (un'altra) per l'alimentazione)
- Arduino Mega (puoi usare qualsiasi cosa, da pro mini a Yun)
- Servomotore (qualsiasi valore)
- Modulo Bluetooth (HC-05)
- Sensore ultrasonico (HC-SR04)
- Breadboard (non obbligatorio)
- Cavi di collegamento
- Mobile Android
- Computer per la programmazione
Software:
- Software Arduino
- SDK Android
- Elaborazione di Android (per creare un'applicazione mobile)
Una volta che siamo pronti con i nostri materiali, iniziamo a costruire l'hardware. Ho diviso questo tutorial in Arduino Part e Processing Part per una facile comprensione. Le persone che sono nuove nell'elaborazione non devono temere molto perché il codice completo viene fornito alla fine del tutorial che può essere utilizzato come tale.
Download e installazione di software:
L' IDE di Arduino può essere installato da qui. Scarica il software in base al tuo sistema operativo e installalo. L'IDE Arduino richiederà un driver per comunicare con l'hardware Arduino. Questo driver dovrebbe essere installato automaticamente una volta collegata la scheda al computer. Prova a caricare un programma blink da esempi per assicurarti che Arduino sia attivo e funzionante.
L' IDE di elaborazione può essere installato da qui. Processing è un'eccellente applicazione open source che può essere utilizzata per molte cose, ha varie modalità. In "Java Mode" possiamo creare applicazioni per computer Windows (file.EXE) e in "modalità Android" possiamo creare applicazioni mobili Android (file.APK) ha anche altre modalità come "modalità Python" dove puoi scrivere programmi python. Questo tutorial non coprirà le basi dell'elaborazione, quindi se vuoi imparare la programmazione o l'elaborazione Java, vai su questo fantastico canale YouTube qui.
Parte hardware Arduino e schema del circuito:
Questo progetto coinvolge molti componenti come il servomotore, il modulo Bluetooth, il sensore a ultrasuoni ecc. Quindi, se sei un principiante assoluto, ti consigliamo di iniziare con un tutorial di base che coinvolge questi componenti e poi tornare qui. Dai un'occhiata ai nostri vari progetti su servomotore, modulo Bluetooth e sensore a ultrasuoni qui.
Tutti i componenti non sono alimentati dallo stesso Arduino perché, il servomotore, il modulo Bluetooth e il sensore US assorbono del tutto molta corrente che Arduino non sarà in grado di generare. Quindi è assolutamente consigliabile utilizzare qualsiasi alimentazione esterna + 5V. Se non hai un'alimentazione + 5V esterna alla tua portata, puoi condividere i componenti tra due schede Arduino come ho fatto io. Ho collegato i binari di alimentazione Servos a un'altra scheda Arduino (colore rosso) e ho collegato il modulo Bluetooth HC-05 e il sensore a ultrasuoni HC-SR04 ad Arduino mega. ATTENZIONE: l'accensione di tutti questi moduli utilizzando una scheda Arduino friggerà il regolatore di tensione Arduino.
Di seguito è riportato lo schema di collegamento per questo progetto sonar basato su Arduino:
Una volta effettuati i collegamenti, montare il sensore US sul servomotore come mostrato di seguito:
Ho usato un piccolo pezzo di plastica che era nella mia spazzatura e un nastro biadesivo per montare il sensore. Puoi venire con la tua idea per fare lo stesso. Sul mercato sono disponibili anche supporti per servo che possono essere utilizzati per lo stesso scopo.
Una volta che il servo è stato montato e le connessioni sono state fornite, dovrebbe assomigliare a questo.
Seguire gli schemi in alto se si ottengono collegamenti errati. Ora iniziamo a programmare Arduino Mega utilizzando l'IDE di Arduino.
Parte software Arduino:
Dobbiamo scrivere il nostro codice in modo da poter calcolare la distanza tra un oggetto e il sensore Ultra Sonic e inviarlo alla nostra applicazione mobile. Dobbiamo anche scrivere il codice per il nostro servomotore per lo sweep e anche per essere controllato dai dati ricevuti dal modulo Bluetooth. Ma non preoccuparti, il programma è molto più semplice di quanto puoi immaginare, grazie ad Arduino e alle sue librerie. Il codice completo è fornito di seguito nella sezione codice.
La funzione seguente viene utilizzata per far scorrere automaticamente il servomotore da sinistra a destra (da 170 a 10) e di nuovo da destra a sinistra (da 10 a 170). I due cicli for vengono utilizzati per ottenere lo stesso risultato. La funzione us () viene chiamata all'interno di entrambe le funzioni per calcolare la distanza tra il sensore e l'oggetto e trasmetterla al Bluetooth. Viene dato un ritardo di 50 ms per far ruotare lentamente il servo. Più lentamente ruota il motore, più accurate diventano le letture.
// ** Funzione per lo sweep di servo ** // void servofun () {Serial.println ("Sweeping"); // per il debug per (posc = 10; posc <= 170; posc ++) // Usare da 10 a 170 gradi è sicuro da 0 a 180 perché alcuni servo potrebbero non essere operativi ad angeli estremi {servo.write (posc); // imposta la posizione del ritardo del servomotore (50); noi(); // misura la distanza degli oggetti cantando il sensore USA} for (posc = 170; posc> = 10; posc--) {servo.write (posc); ritardo (50); noi(); // misura la distanza degli oggetti cantando il sensore USA} Serial.println ("Scan Complete"); // per il debug flag = 0; } // ** Fine della funzione di spazzamento servo ** //
Come detto in precedenza il servomotore può essere controllato anche manualmente dallo smartphone. È sufficiente scorrere a destra per far muovere il motore a destra e scorrere a sinistra per far muovere il motore a sinistra. La funzione sopra viene utilizzata per ottenere lo stesso risultato. L'angelo del servomotore verrà ricevuto direttamente dal modulo Bluetooth e memorizzato nella variabile BluetoothData , quindi il servo si posizionerà in quel particolare angelo utilizzando la linea servo.write (BluetoothData).
// ** Funzione per controllare manualmente Servo ** // void manualservo () {us (); // Ottieni valore dall'utente e controlla il servo if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("Scritto"); if (BluetoothData == 'p') {flag = 0; }}} // __ Fine della funzione di controllo manuale __ //
La distanza presente davanti all'oggetto sarà calcolata dalla funzione sottostante. Funziona con semplici formule che Velocità = Distanza / tempo. Poiché conosciamo la velocità dell'onda USA e il tempo impiegato, la distanza può essere calcolata utilizzando le formule sopra.
// ** Funzione per misurare la distanza ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanza = (durata / 2) / 29,1; // Calcola la distanza dal sensore se (distanza <200 && distanza> 0) Blueboy.write (distanza); } // __ Fine della funzione di misurazione della distanza __ //
Se hai dei dubbi sul programma, sentiti libero di utilizzare la sezione commenti per i tuoi quires. Quindi, una volta che siamo pronti con il nostro codice, possiamo immediatamente scaricare il codice nel nostro hardware. Ma il dispositivo di sorveglianza non inizierà a funzionare finché non sarà collegato all'applicazione Android. Controlla anche il video alla fine per il funzionamento completo.
Applicazione mobile Android per radar a ultrasuoni:
Se non si desidera creare una propria applicazione e si desidera invece installare la stessa applicazione utilizzata in questo tutorial, è possibile seguire i passaggi seguenti.
1. Puoi scaricare direttamente il file APK dal link sottostante. Questo file APK è realizzato per la versione Android 4.4.2 e successive (Kitkat e versioni successive). Estrai il file APK dal file zip.
Applicazione Android per radar ad ultrasuoni
2. Trasferisci il file.Apk dal tuo computer al tuo telefono cellulare.
3. Abilita l'installazione dell'applicazione da fonti sconosciute nelle impostazioni di Android.
4. Installa l'applicazione.
Se installata correttamente, troverai l'applicazione denominata "Zelobt" installata sul tuo telefono come mostrato di seguito:
Se hai installato questo APK, puoi saltare la parte sottostante e passare alla sezione successiva.
Programmazione della propria applicazione utilizzando Processing:
Puoi utilizzare il file.APK indicato sopra oppure puoi creare la tua app utilizzando Processing come spiegato qui. Con poca conoscenza della programmazione è anche molto facile scrivere il proprio codice per la propria applicazione Android. Tuttavia, se hai appena iniziato, non è consigliabile iniziare con questo codice poiché è un po 'alto rispetto al livello principiante.
Questo programma utilizza due librerie, ovvero la "libreria Ketai" e la "libreria ControlP5" . La libreria ketai serve per controllare tutto l'hardware presente all'interno del nostro cellulare. Cose come il livello della batteria del telefono, i valori del sensore di prossimità, i valori del sensore dell'accelerometro, le opzioni di controllo Bluetooth ecc. Possono essere facilmente accessibili da questa libreria. In questo programma utilizziamo questa libreria per stabilire una comunicazione tra i telefoni Bluetooth e Arduino Bluetooth (HC-05). La "libreria ControlP5" viene utilizzata per tracciare grafici per il nostro sistema radar.
Il programma Android completo è allegato, puoi scaricarlo da qui.
ATTENZIONE: Non dimenticare di installare le librerie sopra menzionate e non copiare e incollare solo la parte di codice, perché il codice importa le immagini dalla cartella dei dati che complessivamente è data in allegato sopra. Quindi scarica e usa solo quello.
Una volta terminata la parte di codifica e averla compilata con successo, è possibile collegare direttamente il telefono cellulare al computer tramite cavo dati e fare clic sul pulsante di riproduzione per disattivare l'applicazione sul telefono cellulare. Controlla anche i nostri altri progetti di elaborazione: Ping Pong Game con Arduino e radio FM controllata da smartphone utilizzando Processing.
Spiegazione di lavoro:
Ora siamo pronti con il nostro hardware e la parte software. Accendi l'hardware e accoppia il tuo cellulare al modulo Bluetooth. Una volta accoppiato, apri la tua applicazione "Zelobt" che abbiamo appena installato e ora attendi un secondo e dovresti notare che il tuo modulo Bluetooth (HC-05) si connette automaticamente al tuo smartphone. Una volta stabilita la connessione, apparirà la seguente schermata:
Puoi notare che si dice connesso a: Nome del dispositivo (indirizzo hardware) nella parte superiore dello schermo. Visualizza anche l'angolo corrente del servomotore e la distanza tra il sensore US. Viene anche tracciato un grafico blu sullo sfondo rosso in base alla distanza misurata. Più l'oggetto si avvicina, più diventa alta l'area blu. Il grafico misurato quando alcuni oggetti sono posizionati vicino è mostrato anche nella seconda figura sopra.
Come detto in precedenza, puoi anche controllare il tuo servomotore dalla tua app mobile. Per fare ciò, è sufficiente fare clic sul pulsante di arresto. Questo impedirà al tuo servo di spazzare automaticamente. Puoi anche trovare una rotella circolare nella parte inferiore dello schermo che, se trascinata, ruoterà in senso orario o antiorario. Facendo scorrere questa rotella puoi anche far girare il tuo servomotore in quella particolare direzione. La ruota e il grafico aggiornati quando si scorre il dito sono mostrati nell'immagine sottostante.
Il codice Arduino è riportato di seguito e il file APK per l'applicazione Android è qui. Il funzionamento del progetto completo è mostrato nel video sottostante. Spero tu abbia capito il progetto. Se hai domande, usa gentilmente la sezione commenti qui sotto.