- Prerequisiti:
- Installazione di VPython sul tuo computer:
- Programmazione VPython:
- Preparare il tuo Arduino:
- Lavorando:
Nel nostro precedente tutorial abbiamo imparato come installare python sulla nostra macchina Windows e come interfacciare Arduino con python utilizzando un semplice progetto di controllo LED. Se sei nuovo, ti consiglio vivamente di tornare al tutorial precedente poiché questo tutorial è una continuazione dello stesso.
Potresti aver già iniziato a chiederti perché avremmo bisogno di Python con Arduino se tutto ciò che potrebbe fare è semplicemente comunicare tramite la porta seriale. Ma Python è una piattaforma di sviluppo molto potente su cui è possibile integrare molte applicazioni interessanti in cui è possibile integrare machine learning, visione artificiale e molto altro. In questo tutorial impareremo come creare una piccola interfaccia grafica usando Python. Per fare questo avremo bisogno di un modulo chiamato Vpython. Il seguente tutorial è applicabile solo per utenti Windows poiché per utenti Mac o Linux, la procedura è diversa.
Alla fine di questo tutorial impareremo come creare una semplice GUI usando Python. Faremo una piccola animazione che risponde al valore del sensore ad ultrasuoni che è collegato ad Arduino. Questa applicazione tiene traccia dell'oggetto utilizzando il sensore a ultrasuoni e lo visualizza in forma grafica sul computer utilizzando VPython. Mentre spostiamo l'oggetto, il sensore a ultrasuoni rileva la distanza e invia queste informazioni al programma Python utilizzando Arduino e muoverà anche l'oggetto nel computer. Sembra interessante, vero! Quindi cominciamo…
Prerequisiti:
- Arduino (qualsiasi versione)
- Sensore a ultrasuoni HC-SR04
- Collegamento dei cavi
- Computer con Python
- Conoscenza sul tutorial precedente
Installazione di VPython sul tuo computer:
Nel nostro precedente tutorial abbiamo già imparato come installare python sulla tua macchina e come muoverti e creare un semplice programma con Arduino. Ora abbiamo installato Visual Python (VPython) in cima a questo in modo da poter creare fantastiche grafiche usando Python per Arduino. Per i semplici passaggi seguenti per iniziare con VPython
Passaggio 1. Assicurati che Python sia già installato secondo le linee guida del tutorial precedente.
Passaggio 2. Fare clic su VPython per scaricare il file exe per Visual Python. Non scegliere di installare una versione a 64 bit anche se la macchina funziona a 64 bit. Segui semplicemente il link fornito.
Passaggio 3. Avvia il file exe e segui l'installazione. Non modificare il percorso della directory predefinita e assicurarsi di aver selezionato "installazione completa".
Passaggio 4. Una volta installata, dovresti trovare una nuova applicazione denominata "VIDLE (VPython)" sul desktop o sul pannello dell'applicazione come mostrato di seguito.
Passaggio 5. Avvia l'applicazione e dovresti ottenere una finestra come mostrato di seguito.
Passaggio 6. Questa è la finestra in cui digiteremo il programma per VPython. Ma, per ora, controlliamo se Vpython funziona aprendo un programma di esempio. Per fare ciò selezionare File-> Apri-> Bounce
Passaggio 7. Dovresti aprire un programma di esempio. Prova ad avviare il programma usando Esegui -> Esegui modulo . Se tutto funziona come previsto, dovresti visualizzare la seguente schermata.
Dovresti vedere la finestra Shell (a sinistra) con due >>> che indicano la corretta compilazione e la finestra effettiva (davanti) che mostra una palla che rimbalza.
Passaggio 8. Puoi anche provare altri programmi di esempio per scoprire la potenza di VPython, ad esempio il programma di esempio chiamato "motore elettrico" ti stupirà dalla schermata seguente.
Passaggio 9. Ciò significa che il tuo VPython è pronto per l'uso e puoi passare all'argomento " Programmazione del tuo Vpython ".
Passaggio 10. Altrimenti, se sei come uno tra i tanti che ricevono un "errore insensibile" , non perdere la speranza perché risolveremo il problema nei passaggi successivi
Passaggio 11. Apri Il mio computer -> unità C -> Python 27 -> Scripts -> local.bat . Questo avvierà un prompt dei comandi come mostrato di seguito
Passaggio 12. Ora digita "pip install --upgrade numpy" e premi invio . La nuova versione di Numpy dovrebbe essere installata sulla tua macchina. Potrebbe essere necessario attendere un po 'di tempo se la connessione a Internet è lenta.
Passaggio 13. Una volta fatto, puoi tornare al passaggio numero 4 e provare un programma di esempio e dovresti essere in grado di farlo funzionare.
Programmazione VPython:
Successivamente iniziamo a programmare nella nostra finestra VPython. In questo programma creeremo due oggetti rettangolari 3D uno sarà posizionato al centro dello schermo con riferimento al sensore ultrasonico stazionario e l'altro sarà in una posizione dinamica basata sulla distanza tra il sensore US e l'oggetto (carta).
Il codice Python completo si trova alla fine di questa pagina. Più in basso, ho spiegato questo codice Python suddividendolo in piccole giunche significative.
La prima riga sarebbe importare la libreria visiva in modo da poter creare oggetti 3D. La riga sotto fa lo stesso.
da importazione visiva *
Dovresti avere familiarità con le quattro righe successive, poiché le abbiamo già utilizzate nel nostro precedente tutorial. Sono utilizzati per importare la libreria seriale e temporale e stabilire anche una connessione seriale con Arduino su COM18 con 9600 come baudrate
import serial #Serial importato per comunicazione seriale import time #Required to use delay functions ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object called arduinoSerialData time.sleep (2) #wait for 2 secondi for the communication to stabilirsi
Ora è il momento di creare oggetti. Ho creato due rettangoli 3d denominati obj e wall. Il wallL è un muro fisso di colore ciano posto al centro dello schermo e l' obj è l'oggetto mobile di colore bianco. Ho anche posizionato un testo "sensore USA" vicino all'oggetto muro.
obj = box (pos = (- 5,0,0), size = (0.1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0.2, 12,12), color = color.cyan) text (text = 'US sensor', axis = (0,1,0), pos = (- 2, -6,0), depth = -0.3, color = color.cyan)
Sono sicuro che le tre righe precedenti sarebbero apparse come greco e latino per la maggior parte dei lettori per la prima volta, ma con il tempo saresti in grado di capirlo. Tutto ciò che è menzionato tra parentesi è (x, y, z) coordinate. E queste coordinate sono molto simili a quelle che troviamo nella nostra classe di geometria del liceo, come mostrato di seguito.
A questo punto la grafica e la porta seriale sono pronte, non resta che leggere i dati e posizionare l ' “obj” (rettangolo bianco) in un posto secondo i dati provenienti da Arduino. Questo può essere fatto dalle seguenti righe, dove obj.pos.x controlla la posizione delle coordinate X dell'oggetto (rettangolo bianco).
t = int (ArduinoSerial.readline ()) # legge i dati seriali e stampali come riga t = t * 0.05 obj.pos.x = t
Preparare il tuo Arduino:
Lo script Python è pronto per ascoltare i valori dalla porta COM e animare la grafica di conseguenza, ma il nostro Arduino non è ancora pronto. Per prima cosa dobbiamo collegare il sensore ad ultrasuoni ad Arduino secondo il seguente schema circuitale. Se sei completamente nuovo al sensore US e ad Arduino, devi tornare al tutorial sulla misurazione della distanza basata su sensori ad ultrasuoni e Arduino.
Quindi carica il programma Arduino fornito alla fine di questa pagina. Il programma si spiega da sé utilizzando le righe di commento. Sappiamo che il sensore a ultrasuoni funziona calcolando il tempo impiegato dall'impulso per colpire un oggetto e tornare indietro. Questo valore viene calcolato utilizzando la funzione PulseIn in Arduino. Successivamente il tempo impiegato viene convertito in distanza utilizzando la riga sottostante.
dist = (timaken / 2) / 2.91;
Qui la distanza è calcolata in termini di millimetri (mm).
Lavorando:
Il funzionamento del progetto è semplice. Avvia il programma Python e posiziona un oggetto prima del sensore US come mostrato di seguito:
Ora avvia il programma python e dovresti essere in grado di notare che il rettangolo bianco si muove insieme alla tua carta, la distanza tra la tua carta e il sensore verrà visualizzata anche nella finestra della shell come mostrato nell'immagine qui sotto.
È così che possiamo tracciare il movimento di un oggetto utilizzando il sensore a ultrasuoni e Python con Arduino.
Spero che tu abbia capito il progetto e ti sia piaciuto realizzarne uno. Questo è solo un sottile passo verso Python, ma puoi costruire molte più cose creative usando questo. Se hai idea di cosa costruire con questo post, nella sezione commenti e usa i forum per assistenza tecnica. Ci vediamo con un altro interessante progetto Python.