Inhoudsopgave:

Arduino en Python seriële communicatie - toetsenbordweergave - Ajarnpa
Arduino en Python seriële communicatie - toetsenbordweergave - Ajarnpa

Video: Arduino en Python seriële communicatie - toetsenbordweergave - Ajarnpa

Video: Arduino en Python seriële communicatie - toetsenbordweergave - Ajarnpa
Video: Arduino-Python Serial Communication via Pyserial Module 2024, Juli-
Anonim
Arduino en Python seriële communicatie - Toetsenbordweergave
Arduino en Python seriële communicatie - Toetsenbordweergave

Dit project is gemaakt voor Mac-gebruikers, maar het kan ook worden geïmplementeerd voor Linux en Windows, de enige stap die anders moet zijn, is de installatie.

Stap 1: Software-installatie

Software installatie
Software installatie
  1. Download en installeer Arduino ->
  2. Download en installeer Python 2.7 ->
  3. Download Python-bibliotheek "pyserial-2.7.tar.gz" ->
  4. Pak pyserial-2.7.tar.gz. uit
  5. Open Terminal en typ:

cd /users/"Uw-gebruikersaccount"/Downloads/pyserial-2.7

sudo python setup.py installeren

Software-installatie klaar!

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
  1. Arduino Uno
  2. Sparkfun-toetsenbord met 12 knoppen

De bedrading is gedaan zonder externe weerstanden, in plaats daarvan heb ik de interne Pullup-Resistors van de microcontroller gebruikt (interne Pullup-Resistors van Arduino hebben een waarde van 20K-Ohm tot 50K-Ohm)

Om de interne Pullup-Resistors te activeren, zet u de INPUT-Pins HOOG in de code

Als je een ander toetsenbord gebruikt, kijk dan in het gegevensblad voor de juiste bedrading, anders kan het je microcontroller beschadigen

Stap 3: Arduino-code

Arduino-code
Arduino-code
  • Eerst definiëren we een chars-Matrix voor de Keys
  • Het toetsenbord gebruikt normale schakelaarconnectoren die zijn gerangschikt in 4 rijen (Pin 7, 2, 3 en 5) en 3 kolommen (Pin 6, 8 en 4), gedefinieerd als Arrays rowPins en colPins
  • De setup() functie

    • Open de seriële poort met Serial.begin();
    • Stel kolommen in als OUTPUT-Pins HIGH
    • Activeer de Pullup-Resistors, stel hiervoor rijen in als INPUT-Pins HIGH;
  • De getkey() functie

    • Stel elke rij LAAG in en test of een van de kolommen LAAG is. Door de Pullup-Resistors zijn alle rijen HOOG totdat er één toets wordt ingedrukt. De ingedrukte toets genereert een LAAG-signaal op de INPUT-pin. Deze LOW geeft de ingedrukte toets in deze rij en kolom aan
    • Wacht tot de toets wordt losgelaten en retourneert de char van de keymap-Array of 0 als er geen toets is ingedrukt
    • Gebruik een vertraging (debounceTime) om het signaal te stabiliseren

Stap 4: Python_2.7-code

Python_2.7-code
Python_2.7-code
  • De seriële bibliotheek importeren
  • Definieer een variabele connected=FALSE, later wordt deze variabele gebruikt om te testen of de seriële verbinding beschikbaar is of niet
  • Open de seriële poort met serial. Serial ("Naam van uw seriële poort", baud)

    • Om de naam van uw seriële poort te krijgen, klikt u op -> Tools/Serial Port in de Arduino IDLE
    • de baud moet hetzelfde zijn als in de Arduino-code
  • In een while-lustest of de verbinding beschikbaar is of het seriële signaal niet leest en de variabele connected=TRUE instelt, wordt er een lus uitgevoerd totdat het een seriële verbinding krijgt
  • Lees na de verbinding het serienummer in een while-lus en plaats deze invoer in een nieuwe variabele "var"
  • sluit de poort met ser.close()

Aanbevolen: