Spisu treści:

Komunikacja szeregowa Arduino i Python - wyświetlanie klawiatury: 4 kroki
Komunikacja szeregowa Arduino i Python - wyświetlanie klawiatury: 4 kroki

Wideo: Komunikacja szeregowa Arduino i Python - wyświetlanie klawiatury: 4 kroki

Wideo: Komunikacja szeregowa Arduino i Python - wyświetlanie klawiatury: 4 kroki
Wideo: 3. Kurs Arduino - UART - komunikacja szeregowa [Tinkercad] 2024, Listopad
Anonim
Komunikacja szeregowa Arduino i Python - wyświetlacz klawiatury
Komunikacja szeregowa Arduino i Python - wyświetlacz klawiatury

Ten projekt jest przeznaczony dla użytkowników komputerów Mac, ale można go również zaimplementować w systemach Linux i Windows, jedynym krokiem, który powinien być inny, jest instalacja.

Krok 1: Instalacja oprogramowania

Instalacja oprogramowania
Instalacja oprogramowania
  1. Pobierz i zainstaluj Arduino ->
  2. Pobierz i zainstaluj Pythona 2.7 ->
  3. Pobierz bibliotekę Pythona "pyserial-2.7.tar.gz" ->
  4. Rozpakuj pyserial-2.7.tar.gz
  5. Otwórz Terminal i wpisz:

cd /users/"Twoje-konto-użytkownika"/Pobieranie/pyserial-2.7

sudo python setup.py zainstalować

Instalacja oprogramowania gotowa!

Krok 2: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
  1. Arduino Uno
  2. Sparkfun 12-przyciskowa klawiatura

Okablowanie odbywa się bez zewnętrznych rezystorów, zamiast tego użyłem wewnętrznych Pullup-Resistors mikrokontrolera (wewnętrzne Pullup-Resistors Arduino mają wartość od 20K-Ohm do 50K-Ohm)

Aby aktywować wewnętrzne rezystory podciągające, ustaw piny INPUT HIGH w kodzie

Jeśli używasz innej klawiatury, spójrz na arkusz danych, aby uzyskać informacje o prawidłowym okablowaniu, w przeciwnym razie może to spowodować uszkodzenie mikrokontrolera

Krok 3: Kod Arduino

Kod Arduino
Kod Arduino
  • Najpierw definiujemy macierz znaków dla klawiszy
  • Klawiatura wykorzystuje normalne złącza przełączników, które są rozmieszczone w 4 rzędach (piny 7, 2, 3 i 5) i 3 kolumnach (piny 6, 8 i 4), są zdefiniowane jako tablice rowPins i colPins
  • Funkcja setup()

    • Otwórz bramkę szeregową za pomocą Serial.begin();
    • Ustaw kolumny jako OUTPUT-Pins HIGH
    • Aktywuj rezystory podciągające, aby to zrobić, ustaw rzędy jako INPUT-Pins HIGH;
  • Funkcja getkey()

    • Ustaw każdy wiersz na NISKI i sprawdź, czy jedna z kolumn jest NISKA. Ze względu na to, że rezystory podciągające są wszystkie rzędy WYSOKIE, dopóki jeden klawisz nie zostanie wciśnięty. Naciśnięty klawisz generuje LOW-Signal na INPUT-Pin. Ten NISKI wskazuje na wciśnięty klawisz w tym wierszu i kolumnie
    • Poczekaj, aż klawisz zostanie zwolniony i zwróci znak tablicy klawiszy lub 0, jeśli żaden klawisz nie został naciśnięty
    • Użyj opóźnienia (debounceTime), aby ustabilizować sygnał

Krok 4: Kod Python_2.7

Kod Pythona_2.7
Kod Pythona_2.7
  • Importuj bibliotekę seryjną
  • Zdefiniuj zmienną podłączoną=FAŁSZ, później ta zmienna będzie używana do sprawdzenia, czy połączenie szeregowe jest dostępne, czy nie
  • Otwórz port szeregowy za pomocą serial. Serial("Nazwa twojego portu szeregowego", bod)

    • Aby uzyskać nazwę portu szeregowego, kliknij -> Narzędzia/Port szeregowy w Arduino IDLE
    • szybkość transmisji powinna być taka sama jak w kodzie Arduino
  • W pętli while test, czy połączenie jest dostępne, czy nie odczytuje sygnału szeregowego i ustawia zmienną connected=TRUE, zapętla się, dopóki nie uzyska połączenia szeregowego
  • Po połączeniu odczytaj serial w pętli while i umieść to wejście w nowej zmiennej "var"
  • zamknij port za pomocą ser.close()

Zalecana: