Inhaltsverzeichnis:

Serielle Kommunikation von Arduino und Python - Tastaturanzeige - Gunook
Serielle Kommunikation von Arduino und Python - Tastaturanzeige - Gunook

Video: Serielle Kommunikation von Arduino und Python - Tastaturanzeige - Gunook

Video: Serielle Kommunikation von Arduino und Python - Tastaturanzeige - Gunook
Video: Arduino Tutorial #5 - Serial Communication (deutsch) 2024, November
Anonim
Serielle Kommunikation mit Arduino und Python - Tastaturanzeige
Serielle Kommunikation mit Arduino und Python - Tastaturanzeige

Dieses Projekt ist für Mac-Benutzer gedacht, kann aber auch für Linux und Windows implementiert werden, der einzige Schritt, der sich unterscheiden sollte, ist die Installation.

Schritt 1: Softwareinstallation

Software Installation
Software Installation
  1. Arduino herunterladen und installieren ->
  2. Python 2.7 herunterladen und installieren ->
  3. Python-Bibliothek "pyserial-2.7.tar.gz" herunterladen ->
  4. pyserial-2.7.tar.gz entpacken
  5. Öffnen Sie das Terminal und geben Sie Folgendes ein:

cd /users/"Ihr-Benutzerkonto"/Downloads/pyserial-2.7

sudo python setup.py installieren

Softwareinstallation bereit!

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung
  1. Arduino Uno
  2. Sparkfun 12-Tasten-Tastatur

Die Verdrahtung erfolgt ohne externe Widerstände, stattdessen habe ich die internen Pullup-Widerstände des Mikrocontrollers verwendet (interne Pullup-Widerstände von Arduino haben einen Wert von 20K-Ohm bis 50K-Ohm)

Um die internen Pullup-Widerstände zu aktivieren, setzen Sie die INPUT-Pins HIGH im Code

Wenn Sie ein anderes Keypad verwenden, schauen Sie im Datenblatt nach der richtigen Verkabelung, da es sonst Ihren Mikrocontroller beschädigen könnte

Schritt 3: Arduino-Code

Arduino-Code
Arduino-Code
  • Zuerst definieren wir eine chars-Matrix für die Keys
  • Die Tastatur verwendet normale Schalteranschlüsse, die in 4 Reihen (Pins 7, 2, 3 und 5) und 3 Spalten (Pins 6, 8 und 4) angeordnet sind, definiert als Arrays rowPins und colPins
  • Die setup()-Funktion

    • Öffnen Sie das serielle Gate mit Serial.begin();
    • Spalten als OUTPUT-Pins HIGH setzen
    • Aktivieren Sie die Pullup-Widerstände, setzen Sie dazu Zeilen als INPUT-Pins HIGH;
  • Die Funktion getkey()

    • Setzen Sie jede Zeile auf LOW und testen Sie, ob eine der Spalten LOW ist. Durch die Pullup-Widerstände sind alle Reihen HIGH, bis eine Taste gedrückt wird. Die gedrückte Taste erzeugt am INPUT-Pin ein LOW-Signal. Dieses LOW zeigt die gedrückte Taste in dieser Zeile und Spalte an
    • Warten Sie, bis die Taste losgelassen wird und das Zeichen des Keymap-Arrays zurückgegeben wird oder 0, wenn keine Taste gedrückt wurde
    • Verwenden Sie eine Verzögerung (debounceTime), um das Signal zu stabilisieren

Schritt 4: Python_2.7-Code

Python_2.7-Code
Python_2.7-Code
  • Importieren Sie die Zeitschriftenbibliothek
  • Definieren Sie eine Variable connected=FALSE, später wird diese Variable verwendet, um zu testen, ob die serielle Verbindung verfügbar ist oder nicht
  • Öffnen Sie den seriellen Port mit serial. Serial("Name Ihres seriellen Ports", baud)

    • Um den Namen Ihres seriellen Ports zu erhalten, klicken Sie auf -> Tools/Serial Port im Arduino IDLE
    • der Baud sollte der gleiche sein wie im Arduino-Code
  • In einem while-Schleifentest, ob die Verbindung verfügbar ist oder das serielle Signal nicht gelesen und die Variable connected=TRUE gesetzt wird, wird eine Schleife durchgeführt, bis eine serielle Verbindung hergestellt wird
  • Nach der Verbindung die Seriennummer in einer while-Schleife lesen und diese Eingabe in eine neue Variable "var" einfügen
  • schließe den Port mit ser.close()

Empfohlen: