Sommario:

Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth: 7 passaggi (con immagini)
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth: 7 passaggi (con immagini)

Video: Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth: 7 passaggi (con immagini)

Video: Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth: 7 passaggi (con immagini)
Video: Raspberry in barca OpenPlotter controllo volt batterie con Telegram - Video 3 (2021) 2024, Dicembre
Anonim
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth
Drone con alimentazione Raspberry Pi, Android, IoT e Bluetooth

Utilizzando un Raspberry Pi per la logica di bordo, questo computer portatile compatto creerà una porta locale che trasmette un video in tempo reale e contemporaneamente crea prese Bluetooth per leggere i valori inviati da un'app Android personalizzata. L'app si sincronizza con il drone e utilizza l'input dell'utente per inviare immediatamente istruzioni al drone.

Questo progetto è abbastanza difficile da realizzare da zero. Si spera che le seguenti informazioni forniranno informazioni su più applicazioni di droni. Viene fornito tutto il software e i progetti di circuiti relativi a questo progetto. Sentiti libero di modificare e condividere il codice a tuo piacimento. Si prega di utilizzare le informazioni fornite in modo responsabile e non esitate a lasciare un commento qui sotto.

Passaggio 1: l'hardware

L'hardware
L'hardware
L'hardware
L'hardware
L'hardware
L'hardware
L'hardware
L'hardware

Di seguito è riportato l'elenco dell'hardware che ho utilizzato.

  • Raspberry Pi 3 Modello B
  • Modulo fotocamera Raspberry PI
  • Driver del motore L298N
  • 2, motori CC
  • Una tastiera, qualsiasi monitor, mouse, cavo Ethernet e cavo HDMI (per il pi)
  • Scheda MicroSD da 8 GB
  • Viti, nastro, ecc.
  • 2 ruote
  • Un dispositivo Bluetooth Android (Il mio telefono)
  • 2, 18650 celle
  • Un regolatore da 5 Volt
  • Un computer su cui programmare l'app

Un Raspberry Pi: per risoluzioni di flusso più elevate (o per principianti), consiglierei la versione più recente del modello B, mentre le versioni più compatte possono utilizzare il modello A+ più recente o il Pi Zero (versione fotocamera). Ricorda che se usi un raspberry pi zero, avrai bisogno di un dongle Bluetooth e/o WiFi per questo. Questo tutorial presumerà che tu stia utilizzando un Raspberry Pi 3 B.

Un driver del motore: ho usato un L298N, anche se qualsiasi driver del motore dovrebbe funzionare. Assicurati solo che possa gestire la tensione e la corrente dei tuoi motori.

2 motori CC: assicurati che possano sopportare il peso del tuo drone.

Un corpo: usato anche per contenere tutti i componenti. Di solito la plastica dura o l'alluminio è un materiale resistente e leggero da usare. Per risultati ottimali, è possibile utilizzare anche una stampante 3D.

Una fonte di energia: è quasi sempre la decisione più difficile quando si scelgono le parti. La batteria richiesta dipende dall'assorbimento di corrente. Per applicazioni a bassa potenza (come 1 o 2 ampere), dovrebbe essere sufficiente una batteria da 9 V. Per un amperaggio più elevato, consiglio una cella agli ioni di litio 18650 o una batteria ai polimeri di litio poiché sono leggere, possono contenere molta energia per le loro dimensioni e sono ricaricabili.

2 ruote: assicurati solo che le tue ruote abbiano la stessa dimensione del foro dell'albero del motore. Assicurati anche che i diametri delle ruote siano abbastanza grandi per il tuo drone. Poiché ci sono più varianti e design possibili per questo progetto, sono disponibili più tipi e dimensioni di ruote diverse.

Regolatori di tensione: è necessario un regolatore da 5 volt per alimentare il pi tramite una batteria. Ho usato un convertitore buck DC-DC LM2596.

La maggior parte dei prodotti nei link sono stati utilizzati in questo progetto ed erano le migliori offerte che potevo trovare in quel momento.

Ora che hai tutto ciò di cui hai bisogno, configuriamo il pi.

Passaggio 2: configurazione del Raspberry Pi

Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi

Questo passaggio ti mostrerà come configurare il Raspberry Pi in modo da poter iniziare a codificare. Se hai già una configurazione pi con Raspbian, sentiti libero di passare al passaggio successivo.

Per prima cosa, devi scaricare un sistema operativo per il lampone. Ottieni NOOBS se sei un principiante. Se hai già una notevole esperienza con un lampone pi, allora potresti essere interessato a Raspbian. Presumo che tu stia usando NOOBS per questo tutorial.

Durante il download, formatta la scheda SD con SD Formatter.

Ora Estrai e copia il contenuto del download nella radice della tua scheda SD. Root significa semplicemente che non è all'interno di alcuna cartella. Se è stata creata una nuova cartella per contenere tutti i file estratti, copiare su quel file.

Quindi collega la scheda SD al pi. Durante l'inserimento, dovrebbe "fare clic" o semplicemente sedersi nella parte inferiore del pi greco.

Collega il mouse e la tastiera al pi. Quindi collega un cavo HDMI al pi da un monitor. Infine collega un adattatore per presa a muro micro USB da 3 amp al pi. Sebbene sia consigliata una presa a muro, ho usato il mio laptop come fonte di alimentazione (USB dal mio laptop a Micro USB nel pi).

Lascia che il pi faccia il suo dovere. Se richiesto, seleziona Raspbian e lascialo installare. Segui le istruzioni del programma di installazione. Potrebbe volerci un po' di tempo per il completamento. Se tutto va bene, dovresti vedere una schermata del desktop simile a quella sopra.

Collega un cavo Ethernet dal router al pi. Quindi apri la riga di comando (l'icona nera della "scatola" nella parte superiore dello schermo). Dovrai aggiornare il pi tramite una rete cablata per connetterlo a una rete wireless.

Quindi fare clic sull'icona Cavo nella parte superiore dello schermo. Digita i dettagli della tua rete dove richiesto.

Digita il testo nella riga successiva esattamente come mostrato e premi invio. Questo aggiornerà il pi. Potrebbe volerci un po' di tempo. Lascia che faccia il suo dovere.

sudo apt-get update

Quindi digita il codice nella riga successiva. Anche questo richiederà del tempo. Non fare nulla finché non è finito.

sudo apt-get dist-upgrade

Ora dovresti essere in grado di scollegare il cavo Ethernet, fare clic sull'icona wireless nella parte superiore dello schermo, inserire le informazioni sulla rete e infine connettersi alla rete tramite wireless.

Ora lascia codificare la parte del drone che gestisce i movimenti.

Passaggio 3: gestione dei movimenti (server Bluetooth)

Gestione dei movimenti (server Bluetooth)
Gestione dei movimenti (server Bluetooth)

Per la gestione dei movimenti viene utilizzato il linguaggio di programmazione "Python 3". I messaggi che dicono al robot di muoversi verranno inviati tramite Bluetooth dall'app.

Innanzitutto, è necessario installare la libreria Bluetooth. Digita i seguenti comandi per farlo.

sudo apt-get update

sudo apt-get install bluetooth

sudo apt-get install bluez

sudo apt-get install python-bluez

Ora dal desktop, fai clic sull'icona del menu di avvio, quindi su Programmazione, quindi su Python 3. Quindi dalla barra degli strumenti, fai clic su File, nuovo. Dovrebbe apparire una nuova finestra.

Copia il contenuto dell'allegato "bluetoothpi.rtf" nella finestra.

Sulla barra degli strumenti, fai clic su File, Salva con nome. Salvalo nella directory /home/pi/Desktop/ come movimenti.py.

Ora per testare il codice, fai clic sull'icona Bluetooth nell'angolo in alto a destra dello schermo. Associa il Raspberry Pi al tuo dispositivo Android. Scarica un'app chiamata BlueTerm sul tuo dispositivo Android. Quindi, nella riga di comando, digita il seguente codice in grassetto. Questo eseguirà il codice Python.

sudo python /home/pi/Desktop/movements.py

Il testo "In attesa di connessioni" dovrebbe apparire sul pi.

Avvia BlueTerm e fai clic sull'icona delle opzioni e quindi sul pulsante "cerca connessioni".

Sull'app dovrebbe apparire il nome del tuo Raspberry Pi. Fare clic sul pulsante con il nome del pi greco. Il testo "Connessione accettata da" dovrebbe apparire sul pi greco seguito dal suo indirizzo. Ora qualunque cosa tu digiti nel telefono, dovrebbe essere visualizzato nel pi.

Hai codificato con successo il tuo socket del server Bluetooth!

Passaggio 4: l'app Android (client Bluetooth)

L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)
L'app Android (client Bluetooth)

Scarica Android Studio qui. Installalo e segui le istruzioni fornite nel programma di installazione.

Inizia un nuovo progetto. Crea un'attività vuota denominata MainActivity.

Copiare il contenuto dell'allegato "Logic.txt" nel file "MainActivity.java" (scheda). Questo contiene tutta la logica dietro l'app. Potrebbe essere necessario modificare il nome del dispositivo nella parte inferiore del file.

Quindi copiare il contenuto del file "GUI" nel file "activity_main.xml" (tab). Questo contiene una GUI molto semplice per l'app.

Ora dovrai importare i pulsanti freccia (immagini) nell'app. Decomprimi l'allegato Arrows.zip. A sinistra di Android Studio, apri la struttura del file per vedere app, res, minimappa. Copia le immagini delle frecce (file PNG), fai clic con il pulsante destro del mouse sulla minimappa del file e incolla le immagini nel file, mantenendo invariati i nomi delle frecce. Dovrebbe apparire come l'immagine una volta terminato.

Infine copia il contenuto del file "Manifest" nel tuo file "AndroidManifest.xml" (scheda).

Per testare l'app, dovrai eseguirla sul tuo dispositivo. Per fare ciò, dovrai impostare il dispositivo in modalità sviluppatore e abilitare il debug USB. Per la maggior parte dei dispositivi, dovrai andare su "Impostazioni", "Informazioni sul telefono", scorrere fino in fondo e fare clic su "Numero build" sette volte fino a visualizzare il messaggio "Ora sei uno sviluppatore!" Torna indietro e ora dovresti vedere una scheda "Opzioni sviluppatore". Fare clic su di esso e abilitare il debug USB.

Collega il tuo dispositivo Android al computer tramite USB, fai clic sull'icona Esegui su Android Studio e seleziona il tuo dispositivo.

Sul pi, avvia il codice python creato nel passaggio 3 digitando il comando in grassetto:

sudo python /home/pi/Desktop/movements.py

Quindi fare clic sul pulsante Connetti nell'app. Una volta connesso, alcune frecce dovrebbero ora apparire sull'app. Ogni volta che fai clic su uno, aggiornerà lo stato "sposta" del pi.

Va bene se lo sfondo dell'app dà un errore. Questo verrà risolto in seguito.

Hai appena creato la tua app e il tuo client Bluetooth.

Passaggio 5: collegamento dell'hardware

Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware

Saldare i collegamenti nello schema sopra. Collega anche il modulo fotocamera al pi.

Esegui l'app ed esegui il file movement.py. Se i motori si muovono correttamente durante l'utilizzo dell'app, sentiti libero di inserire tutti i componenti in un guscio finalizzato per il drone. Potrebbe essere necessario modificare i valori dei codici "HIGH" e "LOW" in modo che si muova correttamente.

Nel passaggio successivo, aggiungeremo la funzione di streaming del drone.

Passaggio 6: streaming

Streaming
Streaming
Streaming
Streaming
Streaming
Streaming

Esistono diversi modi per trasmettere un video in streaming utilizzando un Pi, ma l'uso di uv4l è di gran lunga il modo più semplice e praticamente senza ritardi.

Solo una nota a margine, se hai già messo insieme il tuo drone e non puoi collegarlo al monitor e alla tastiera, dovrai eseguire l'SSH nel tuo drone. Per fare ciò, scarica Putty sul tuo computer. Aprilo e digita l'indirizzo IP del tuo raspberry (trova l'indirizzo IP digitando il comando ifconfig). Ti chiederà un nome utente e una password. Il nome utente e la password predefiniti sono rispettivamente pi e raspberry. Ora qualunque cosa digiti nella casella di comando sarà come inserire i comandi direttamente nel drone.

impostare uv4l

Digita questo comando:

sudo nano /etc/apt/sources.list

Aggiungi la seguente riga nell'ultima riga del file.

deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

Esci e salva il file premendo Ctrl-X e quindi digitando Sì.

Quindi digitare la riga seguente e premere invio.

sudo apt-get update

Poi questo:

sudo apt-get install uv4l uv4l-rapicam

Digita i seguenti comandi riga per riga. Attendi che finisca ciò che sta facendo prima di digitare la riga successiva.

sudo apt-get install uv4l-raspicam-extras

sudo service uv4l_raspicam riavvio

sudo rpi-update

sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp

sudo apt-get install uv4l-webrtc

sudo apt-get install uv4l-xmpp-bridge

sudo apt-get install uv4l-raspidisp-extras

Dopodiché, tutto ciò che devi fare è digitare il seguente comando per avviare lo streaming (sostituisci "raspberrypi" con l'indirizzo IP/nome host del raspberry nella tua rete)

cvlc

Questo avvierà lo streaming video in tempo reale sulla porta 8080. Lo stream dovrebbe essere visto sullo sfondo della tua app ora. Per visualizzare lo stream in qualsiasi browser, digita questo URL (dove "raspberrypi" è l'indirizzo IP del tuo drone).

https://raspberrypi:8080/stream/video.mjpeg

Congratulazioni, hai completato il tuo drone spia.

Passaggio 7: guida

Capovolgi l'interruttore di alimentazione e inizia a esplorare.

Se vuoi sapere come fare qualcos'altro, chiedimelo e vedrò cosa posso fare.

Se hai domande, commenta qui sotto e farò del mio meglio per rispondere.

Grazie per aver letto!

Consigliato: