- Requisits previs:
- Instal·lació de VPython a l'ordinador:
- Programació de VPython:
- Preparant el vostre Arduino:
- Treball:
Al nostre anterior tutorial vam aprendre a instal·lar Python a la nostra màquina Windows i a la interfície d'Arduino amb Python mitjançant un senzill projecte de control LED. Si sou nou, us recomanaria que tornéssiu al tutorial anterior, ja que aquest tutorial és una continuació del mateix.
És possible que ja us hagueu començat a preguntar-vos per què necessitaríem Python amb Arduino si tot el que podia fer és comunicar-se simplement mitjançant el port sèrie. Però, Python és una plataforma de desenvolupament molt forta en la qual es poden integrar moltes aplicacions interessants en què es pot integrar l’aprenentatge automàtic, la visió per computador i molt més. En aquest tutorial aprendrem com podem crear una petita interfície gràfica mitjançant Python. Per fer-ho necessitarem un mòdul anomenat Vpython. El següent tutorial només és aplicable a l'usuari de Windows, ja que per a usuaris de Mac o Linux, el procediment és diferent.
Al final d’aquest tutorial aprendrem com podem crear una interfície gràfica d’usuari senzilla mitjançant Python. Farem una petita animació que respongui al valor del sensor d'ultrasons que està connectat a l'Arduino. Aquesta aplicació fa un seguiment de l'objecte mitjançant un sensor d'ultrasons i el mostra en forma gràfica a l'ordinador mitjançant VPython. A mesura que movem l'objecte, el sensor d'ultrasons detecta la distància i envia aquesta informació al programa Python mitjançant Arduino i també mourà l'objecte a l'ordinador. Sona interessant oi! Comenceu, doncs,…
Requisits previs:
- Arduino (Qualsevol versió)
- Sensor d'ultrasons HC-SR04
- Connexió de cables
- Ordinador amb Python
- Coneixements sobre tutorial previ

Instal·lació de VPython a l'ordinador:
Al nostre tutorial anterior ja hem après a instal·lar Python a la vostra màquina i a moure-us i crear un programa senzill amb Arduino. Ara hem instal·lat Visual Python (VPython) a sobre, de manera que puguem crear gràfics interessants amb Python per Arduino. Per obtenir els senzills passos següents per començar a utilitzar VPython
Pas 1. Assegureu-vos que Python ja està instal·lat segons les directrius anteriors del tutorial.
Pas 2. Feu clic a VPython per descarregar el fitxer exe de Visual Python. No opteu per instal·lar una versió de 64 bits, fins i tot si el vostre equip funciona amb 64 bits. Només cal que seguiu l'enllaç indicat.
Pas 3. Inicieu el fitxer exe i seguiu la configuració. No canvieu la ruta del directori per defecte i assegureu-vos que heu seleccionat "instal·lació completa".
Pas 4. Un cop instal·lada, heu de trobar una nova aplicació anomenada "VIDLE (VPython)" a l'escriptori o al tauler d'aplicacions, tal com es mostra a continuació.

Pas 5. Inicieu l'aplicació i hauríeu d'obrir una finestra com es mostra a continuació.

Pas 6. Aquesta és la finestra on escriurem al programa per a VPython. Però, ara per ara, comprovem si Vpython funciona obrint un programa d’exemple. Per fer-ho, seleccioneu Fitxer-> Obre-> Rebot
Pas 7. Hauríeu d'obrir un exemple de programa. Proveu d'iniciar el programa amb Executa -> Executa el mòdul . Si tot funciona com s'espera, hauríeu d'obtenir la següent pantalla.

Hauríeu de veure la finestra de Shell (esquerra) amb dos >>> que indiquen que s'ha compilat correctament i la finestra real (frontal) que mostra una bola que rebota.
Pas 8. També podeu provar altres programes d'exemple per descobrir la potència de VPython, per exemple, l' exemple de programa anomenat "motor elèctric" us sorprendrà amb la pantalla següent.

Pas 9. Això vol dir que el vostre VPython està a punt per utilitzar-lo i podeu passar al tema " Programació del vostre Vpython ".
Pas 10. Altrament, si sou un dels molts que reben un "error numpy" , no perdeu l'esperança, ja que anirem resolent aquest problema en els passos següents
Pas 11. Obriu El meu ordinador -> Unitat C -> Python 27 -> Scripts -> local.bat . S'iniciarà un símbol del sistema com es mostra a continuació

Pas 12. Ara escriviu “pip install --upgrade numpy” i premeu Retorn. La nova versió de Numpy s’hauria d’instal·lar al vostre equip. És possible que hagueu d’esperar algun temps si la vostra connexió a Internet és lenta.
Pas 13. Un cop fet, podeu tornar al pas número 4 i provar un exemple de programa i hauríeu de poder fer-lo funcionar.
Programació de VPython:
A continuació, comencem a programar a la finestra de VPython. En aquest programa crearem dos objectes rectangulars en 3D, un es col·locarà al centre de la pantalla amb referència al sensor ultrasònic estacionari i l’altre estarà en una ubicació dinàmica en funció de la distància entre el sensor dels EUA i l’objecte (paper).
El codi complet de Python es troba al final d’aquesta pàgina. Més avall, he explicat aquest codi de Python dividint-los en petits trossos significatius.
La primera línia seria importar la biblioteca visual per poder crear objectes 3D. La línia següent fa el mateix.
d'importació visual *
Hauríeu de familiaritzar-vos amb les quatre línies següents, ja que ja les hem utilitzat al nostre tutorial anterior. S’utilitzen per importar llibreries de temps i sèries i també estableixen una connexió sèrie amb Arduino a COM18 amb 9600 com a velocitat de transmissió
import serial #Serial importat per a la comunicació serial Temps d'importació # Requereix utilitzar funcions de retard ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object anomenat arduinoSerialData time.sleep (2) #esperar 2 segons per a la comunicació a establir-se
Ara, és hora de crear objectes. He creat dos rectangles en 3D anomenats obj i wall. El walll és una paret estacionària en el color cian col·locat al centre de la pantalla i el obj és l'objecte mòbil en el color blanc. També he col·locat un text "sensor dels EUA" a prop de l'objecte de la paret.
obj = caixa (pos = (- 5,0,0), mida = (0,1,4,4), color = color.white) paret L = caixa (pos = (- 1,0,0), mida = (0,2, 12,12), color = color.cyan) text (text = 'sensor EUA', eix = (0,1,0), pos = (- 2, -6,0), profunditat = -0,3, color = color.cian)
Estic segur que les tres línies anteriors haurien aparegut com a grec i llatí per a la majoria dels primers lectors, però amb el temps podríeu entendre-ho. Tot el que s'esmenta entre claudàtors és (x, y, z) coordenades. I aquestes coordenades són molt similars a les que trobem a la nostra classe de geometria de secundària, tal com es mostra a continuació.

Ara, els gràfics i el port sèrie ja estan a punt. Tot el que hem de fer és llegir les dades i col·locar el "obj" (rectangle blanc) en un lloc segons les dades provinents de l'Arduino. Això es pot fer mitjançant les línies següents, on obj.pos.x controla la posició de coordenades X de l'objecte (rectangle blanc).
t = int (ArduinoSerial.readline ()) #llegeix les dades de sèrie i imprimeix-les com a línia t = t * 0,05 obj.pos.x = t
Preparant el vostre Arduino:
L'escriptura Python està preparada per escoltar els valors del port COM i animar els gràfics en conseqüència, però el nostre Arduino encara no està preparat. Primer hem de connectar el sensor d'ultrasons a l'Arduino segons el diagrama de circuits següent. Si sou completament nou en el sensor nord-americà i Arduino, heu de tornar al tutorial de mesurament de distància basat en el sensor ultrasònic Arduino.

A continuació, pengeu el programa Arduino que apareix al final d'aquesta pàgina. El programa s’explica per si mateix mitjançant línies de comentaris. Sabem que el sensor d’ultrasons funciona calculant el temps que ha trigat el pols a copejar un objecte i tornar enrere. Aquest valor es calcula mitjançant la funció PulseIn a Arduino. Més tard, el temps que es triga es converteix en distància mitjançant la línia següent.
dist = (timetaken / 2) / 2,91;
Aquí la distància es calcula en termes de mil·límetres (mm).
Treball:
El funcionament del projecte és senzill. Inicieu el programa Python i col·loqueu un objecte davant del sensor dels EUA com es mostra a continuació:

Ara inicieu el programa Python i hauríeu de poder notar que el rectangle blanc es mou amb el paper, la distància entre el paper i el sensor també es mostrarà a la finestra de l'intèrpret d'ordres com es mostra a la imatge següent.

Així és com podem fer un seguiment del moviment de l’objecte mitjançant un sensor d’ultrasons i Python amb Arduino.
Espero que hagueu entès el projecte i us hagi agradat construir-ne un. Aquest és només un pas subtil cap a Python, però podeu construir moltes coses més creatives amb això. Si teniu alguna idea de què podeu construir amb aquest missatge, feu-los arribar a la secció de comentaris i utilitzeu els fòrums per obtenir ajuda tècnica. Ens veiem amb un altre projecte python interessant.
