Stap 3: Configureer de Python-Script
In deze stap zullen zetten we de python script wiens taak het is om:
- Interface met de Arduino
- Ruwe versnelling waarden parseren
- Synthetiseren van notities op basis van gegevens
Voorwoord
Hier zal ik uitleggen in stap voor stap hoe de Python script werd geschreven, maar als je gewoon wilt de definitieve code om te zien of uw systeem, u werken kunt het hier downloaden: https://github.com/aehernandez/Accordion-Master/bl...
Dit deel van de instructable moet gebeuren op uw desktopcomputer op elke Linux-distributie. Je moet python 2.7 opwaarts en lopende. Eventuele andere afhankelijkheden die ik verder naar beneden zal behandelen. Als u zo geneigd het ook ook mogelijk om dit programma op een Raspberry Pi (in feite de Arduino-code kan allemaal worden geport naar de Pi, die zou een goede toekomstige mini project: D). Ik zal niet dekken dat in deze tutorial, maar als u dat avenue verkennen aarzel dan niet om me te contacteren voor hulp.
Maak een bestand (met een willekeurige naam) in een willekeurige directory. Bijvoorbeeld gebruikte ik in mijn home-directory: accordian_comm.py
Interfacing met de Arduino
Twee afhankelijkheden zijn vereist om interface met Python op arduino: sys en seriële.
import sys import serial # Search for the open serial ports, the first one found is assumed to belong to the Arduino board for i in range(256): try: ser = serial.Serial("/dev/ttyUSB{}".format(i) , 9600) print "Found first open serial port: USB{}".format(i) limit = i; break except serial.SerialException and OSError: if i == 255: print "fatal error: no open port found\nMake sure your Arduino board is connected" sys.exit() pass
In de bovenstaande code zoeken we het huidige systeem voor alle geopende poorten op de baud-rate 9600. Een fatale veronderstelling is dat de eerste open inderdaad de Arduino board is. Hoewel dit niet de juiste manier om dingen te doen, voor de meeste set-ups zal dit zitten juiste. "/ dev/ttyUSB *" is waar de USB-apparaten zijn toegewezen aan in de Linux OS.
Wat is belangrijk hier is de "ser" variabele die een object van de seriële poort aan onze Arduino is. Kijkend naar de pySerial documentatie zien we dat dit ons toegang tot functies zoals lezen, schrijven en isAvailable geeft. Dit zijn de methoden die we gebruiken om de interface met de arduino voor het uitvoeren van seriële communicatie.
Parseren van de gegevens van de Arduino
Een discussie over het parseren van de gegevens in Python te komen. Raadpleeg de github code voor nu!
Bedankt voor het lezen!