- Wymagane materiały:
- Instalowanie Pythona na twoim komputerze:
- Pobieranie PySerial w Pythonie:
- Nasz pierwszy program Arduino Python:
- Sterowanie LED za pomocą Pythona i Arduino:
Arduino zawsze było potężną i łatwą w użyciu platformą do nauki / programowania, jeśli chodzi o rozwój sprzętu open source. W dzisiejszym nowoczesnym świecie każdy sprzęt jest zasilany przez język programowania ogólnego przeznaczenia wysokiego poziomu, dzięki czemu jest bardziej efektywny i przyjazny dla użytkownika. Jednym z takich języków jest Python. Python jest interpretowanym, zorientowanym obiektowo językiem programowania wysokiego poziomu z dynamiczną semantyką z wbudowanymi strukturami danych wysokiego poziomu, w połączeniu z dynamicznym typowaniem i dynamicznym wiązaniem, czyni go bardzo atrakcyjnym dla szybkiego tworzenia aplikacji.
Połączenie mocy Arduino i Pythona otworzy drzwi do wielu możliwości, ponieważ Python ma zwiększoną produktywność dzięki możliwości interakcji z innymi platformami, takimi jak openCV, Matlab itp. W tym samouczku dowiemy się, jak możemy zainstalować Pythona na naszym komputerze i jak go używać z Arduino do przełączania wbudowanej diody LED Arduino.
Więc zacznijmy….
Wymagane materiały:
- Arduino Uno (lub dowolne płyty Arduino)
- Komputer z połączeniem internetowym
Instalowanie Pythona na twoim komputerze:
Oczywiście pierwszym krokiem w tym samouczku byłaby instalacja Pythona na naszym komputerze. Poniższe kroki mają zastosowanie tylko do użytkowników systemu Windows z 32-bitowym lub 64-bitowym systemem operacyjnym. Procedura instalacji dla systemów MAC i Linux jest inna.
- Kliknij 32-bitowy Python-2.7.9, a to zainstaluje 32-bitowe Python IDLE na twoim komputerze. Nie pobieraj wersji 64-bitowej ani zaktualizowanych wersji, ponieważ nie zapewniają one wsparcia dla naszych bibliotek Arduino. Nawet jeśli Twój komputer działa w systemie 64-bitowym, możesz używać samego 32-bitowego języka Python.
- Otwórz pobrany plik exe i postępuj zgodnie z instrukcjami. Nie zmieniaj katalogu, w którym instalowany jest Python. Domyślnie będzie to C: \ Python27 i pozostaw to jako takie.
- Podczas instalacji możesz otrzymać ostrzeżenie od swojego antywirusa (jeśli takie istnieje), w takim przypadku kliknij Zezwól.
To jest to !, python został pomyślnie zainstalowany na naszym komputerze. Możesz to sprawdzić, wyszukując „Python IDLE” w polu wyszukiwania systemu Windows i otwierając je.
Po otwarciu powinieneś otrzymać następujący ekran. To okno nazywa się Python Shell i od teraz będziemy nazywać je „ Python shell ”.
Ten ekran nazywa się powłoką Pythona. Możesz bezpośrednio kodować tutaj i uzyskać dane wyjściowe na tym samym ekranie lub utworzyć nowy plik i napisać tam program i zweryfikować program tutaj. Później przejdziemy do szczegółów tworzenia programu w języku Python, na razie sprawdźmy, czy python działa.
Aby to zrobić, po prostu wpisz „ print (1 + 1) ” i naciśnij enter. Wynik powinien zostać wydrukowany, jak pokazano poniżej.
Pobieranie PySerial w Pythonie:
Następnym krokiem jest instalacja pyserial. PySerial to moduł API Pythona, który służy do odczytu i zapisu danych szeregowych do Arduino lub dowolnego innego mikrokontrolera.
Kliknij Pyserial Windows, aby pobrać PySerial. Wynikowe pobieranie będzie plikiem exe, który można zainstalować bezpośrednio. Nie zmieniaj żadnych ustawień podczas instalacji. Pozostaw to w domyślnym katalogu i ustawieniach domyślnych.
Teraz sprawdźmy, czy PySerial jest poprawnie zainstalowany. Aby to zrobić, ponownie otwórz Python Shell i wpisz
import seryjny . Jeśli biblioteka została pomyślnie zainstalowana, nie powinieneś otrzymywać żadnych komunikatów o błędach, jak pokazano na poniższym obrazku. Jeśli zauważysz jakieś błędy, umieść je w sekcji komentarzy, a my postaramy się je rozwiązać.
Ten samouczek zakłada, że znasz Arduino i masz doświadczenie w przesyłaniu projektów do Arduino. Przejdźmy więc bezpośrednio do naszego programu w Pythonie. Jeśli jesteś początkującym użytkownikiem Arduino, sprawdź nasze projekty Arduino i zacznij od migania diod LED z Arduino.
Nasz pierwszy program Arduino Python:
Jak wspomniano wcześniej, będziemy sterować diodą LED wbudowanej płyty Arduino za pomocą skryptu Python. Zacznijmy od kodu Arduino.
Program dla Arduino:
Kompletny program tego samouczka Arduino w języku Python znajduje się na końcu tej strony. Przeczytaj dalej, aby dowiedzieć się, jak to działa.
W funkcji setup inicjalizujemy komunikację szeregową z szybkością 9600 bodów i deklarujemy, że jako wyjście będziemy używać wbudowanej diody LED i ustawiamy ją na niskim poziomie podczas startu programu. Wysłaliśmy również wiadomość powitalną do Pythona poprzez wydruk seryjny, jak pokazano poniżej:
void setup () {Serial.begin (9600); // inicjalizacja portu szeregowego COM przy 9600 szybkości transmisji pinMode (LED_BUILTIN, OUTPUT); // uczyń pin LED (13) jako wyjście digitalWrite (LED_BUILTIN, LOW); Serial.println („Cześć! Jestem Arduino”); }
Wewnątrz funkcji pętli odczytujemy dane, które przychodzą szeregowo i przypisujemy wartość zmiennej „data”. Teraz w oparciu o wartość tej zmiennej („dane”) przełączamy wbudowaną diodę, jak pokazano poniżej.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (dane == '1') digitalWrite (LED_BUILTIN, HIGH); else if (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Program dla Pythona:
Kompletny program w języku Python dla tego samouczka znajduje się na końcu tej strony. Czytaj dalej, aby wiedzieć, jak pisać i używać tego samego.
- Otwórz Python Shell (Python IDLE) i kliknij Plik-> Nowy
- Otworzy się nowy plik tekstowy, w którym możesz wpisać swój program.
- Zanim cokolwiek wpiszemy, zapiszmy plik, naciskając Ctrl + S. Wpisz dowolną nazwę i kliknij Zapisz. Spowoduje to automatyczne zapisanie pliku w rozszerzeniu „.py”.
- Teraz wpisz program lub wklej kod Pythona podany na końcu tej strony. Wyjaśnienie tego samego podano poniżej i na końcu uruchom program.
W naszym programie pierwszym krokiem byłoby zaimportowanie biblioteki szeregowej i czasowej. Biblioteka szeregowa, jak wspomniano wcześniej, będzie używana do odczytu i zapisu danych szeregowych, a biblioteka czasu będzie używana do tworzenia opóźnień w naszym programie. Te dwie biblioteki można zaimportować do naszego programu za pomocą następujących dwóch wierszy:
import serial #Serial importowany dla czasu importu komunikacji szeregowej #Wymagane do korzystania z funkcji opóźnienia
Następnym krokiem byłoby zainicjowanie obiektu szeregowego przy użyciu naszej biblioteki szeregowej. W tym programie nazwaliśmy nasz obiekt szeregowy jako „ArduinoSerial” . W tym wierszu musimy wspomnieć o nazwie portu COM, do którego jest podłączone nasze Arduino i przy jakiej prędkości transmisji działa, jak pokazano poniżej.
ArduinoSerial = serial.Serial ('com18', 9600)
Uwaga: Bardzo ważne jest, aby podać poprawną nazwę portu COM. Można go znaleźć za pomocą Menedżera urządzeń na komputerze.
Gdy tylko obiekt szeregowy zostanie zainicjowany, powinniśmy przytrzymać program przez dwie sekundy, aby nawiązać komunikację szeregową. Można to zrobić za pomocą poniższej linii:
time.sleep (2)
Teraz możemy czytać lub pisać cokolwiek z / do naszej tablicy Arduino.
Następująca linia odczyta wszystko, co pochodzi z Arduino i wydrukuje to w oknie powłoki
drukuj ArduinoSerial.readline ()
Możesz również przypisać wartość do zmiennej i używać jej do obliczeń.
Kolejny wiersz zapisze wartość parametru na płytce Arduino.
ArduinoSerial.write ('1')
Ta linia zapisze „1” w Arduino. Możesz wysłać wszystko, od miejsc po przecinku do łańcuchów, używając tej samej linii.
Wracając do naszego programu, wewnątrz nieskończonej pętli while, mamy następujące wiersze
var = raw_input () # get input from user print "you enter", var # print the input for confirm if (var == '1'): # if the value is 1 ArduinoSerial.write ('1') #send 1 print ("LED włączony") time.sleep (1) if (var == '0'): #jeśli wartość wynosi 0 ArduinoSerial.write ('0') #send 0 print ("LED wyłączona") czas.sleep (1)
Linia var = raw_input otrzyma dowolną wartość wpisaną w skrypcie powłoki i przypisze ją do zmiennej var .
Później, jeśli wartość wynosi 1, wydrukuje szeregowo '1' do Arduino, a jeśli 0, wydrukuje szeregowo '0' do Arduino. W kodzie w naszym programie Arduino (omówionym powyżej) będziemy przełączać diodę LED na podstawie otrzymanej wartości.
Po zakończeniu całego programu Twój skrypt powinien wyglądać mniej więcej tak, jak poniżej
Teraz kliknij Uruchom -> Uruchom moduł lub naciśnij klawisz F5, co może poprosić Cię o zapisanie programu, a następnie uruchomi go.
Sterowanie LED za pomocą Pythona i Arduino:
Praca nad tym projektem jest dość prosta. Prześlij program do Arduino i sprawdź, czy jest podłączony do tego samego portu COM, co wspomniany w programie Python. Następnie uruchom program w Pythonie, jak wspomniano powyżej.
Spowoduje to uruchomienie skryptu powłoki Pythona, jak pokazano poniżej. Okno po lewej stronie to okno powłoki pokazujące dane wyjściowe, a okno po prawej to skrypt pokazujący program.
Jak widać, wpisany w programie Arduino ciąg „Cześć! Jestem Arduino” jest odbierany przez Pythona i wyświetlany w jego oknie powłoki.
Kiedy okno powłoki prosi o wprowadzenie wartości, możemy wpisać 0 lub 1. Jeśli wyślemy 1, dioda LED na płycie Arduino zaświeci się, a jeśli wyślemy 0, dioda na naszej płytce Arduino zgaśnie. Pokazywanie pomyślnego połączenia między naszym programem Arduino a Pythonem.
Poniżej podano dwa programy, jeden do załadowania i uruchomienia z Arduino, a drugi do uruchomienia z Python Shell w systemie Windows.
Mam nadzieję, że zrozumiałeś projekt i udało Ci się go uruchomić. Jeśli nie, napisz swój problem w komentarzu poniżej, a chętnie Ci pomogę. W naszym następnym projekcie dowiemy się, co jeszcze można zrobić fajnie z Pythonem i Arduino, eksplorując dogłębnie inne moduły Pythona, takie jak Vpython, gamepython itp. Do tego czasu bądź na bieżąco….