Jak programować Arduino w Pythonie: kompletny przewodnik praktyczny

  • Integracja Arduino i Pythona pozwala na wszechstronne i efektywne projekty.
  • PySerial jest kluczem do nawiązania komunikacji między nimi za pośrednictwem portu szeregowego.
  • Można wykonywać zarówno podstawowe, jak i zaawansowane zadania, w tym czujniki i widzenie maszynowe.
  • Identyfikacja portu szeregowego i skonfigurowanie obu środowisk to istotne kroki.

Pythona Arduino

Programowanie Arduino w Pythonie otwiera świat możliwości dla pasjonatów elektroniki i tworzenia oprogramowania. Integracja tych dwóch narzędzi pozwala połączyć wszechstronność Arduino jako mikrokontrolera z mocą i prostotą Pythona w celu tworzenia innowacyjnych projektów. W tym artykule dowiesz się, jak połączyć oba światy i zagłębisz się w niezbędne kroki, aby rozpocząć tworzenie własnych aplikacji z wykorzystaniem tych technologii.

Arduino, platforma hardware libre, jest znany ze swojej łatwości użytkowania i możliwości adaptacji, podczas gdy Python, język programowania wysokiego poziomu, wyróżnia się prostotą i skutecznością. Choć Arduino programuje się najczęściej we własnym języku opartym na C++, to możliwa jest komunikacja z nim za pomocą Pythona dzięki bibliotekom takim jak PySerial, które umożliwiają komunikację poprzez port szeregowy. Tutaj dokładnie zbadamy, jak przeprowadzić tę integrację, od podstawowych zasad do bardziej zaawansowanych praktycznych przykładów.

Wymagania na start

Zanim zaczniesz programować Arduino w Pythonie, koniecznie upewnij się, że masz niezbędne narzędzia i konfiguracje:

  • Płyta Arduino: Modele takie jak Arduino UNO, Nano czy Mega doskonale sprawdzają się w tego typu projektach.
  • Kabel USB: Niezbędny do podłączenia płytki Arduino do komputera.
  • Zainstalowany Python: Możesz pobrać najnowszą wersję Pythona z jego oficjalnej strony internetowej.
  • Zainstaluj bibliotekę PySerial: Ta biblioteka jest kluczowa do nawiązania komunikacji pomiędzy Arduino i Pythonem. Instaluje się go poprzez uruchomienie polecenia pip install pyserial.

Podstawowa konfiguracja na Arduino

Pierwszym krokiem do połączenia Arduino z Pythonem jest konfiguracja szkic z Arduino. Ten kod, napisany w Arduino IDE, pozwoli płytce odbierać i przetwarzać dane, które wysyła do niej Python. Przykładowo poniższy program umożliwia włączanie i wyłączanie diody LED na pinie 13 w zależności od otrzymanych danych:

void setup() { Serial.begin(9600); tryb pin(13, WYJŚCIE); } void pętli() { if (Serial.available() > 0) { char data = Serial.read(); if (data == '1') { digitalWrite(13, WYSOKI); } else if (data == '0') { digitalWrite(13, LOW); } } }

Kod ten ustanawia komunikację poprzez port szeregowy z szybkością 9600 bodów i oczekuje na odebranie znaków "1" o "0" aby włączyć lub wyłączyć zintegrowaną diodę LED.

Połączenie z Pythonem

Po skonfigurowaniu Arduino czas napisać program w Pythonie, który nawiąże połączenie z płytką i wyśle ​​polecenia. Poniżej znajduje się prosty przykład użycia biblioteki PySerial:

import seryjny czas importu # Konfiguracja portu szeregowego Arduino = serial.Serial('COM3', 9600) time.sleep(2) # Poczekaj na ustabilizowanie połączenia # Wyślij polecenia arduino.write(b'1') print("LED włączona " ) czas.sleep(2) arduino.write(b'0') print("LED wyłączona") arduino.close()

Ten skrypt otwiera port szeregowy, wysyła polecenie "1" aby włączyć diodę LED, odczekaj dwie sekundy, a następnie wyślij "0" aby to wyłączyć. Pamiętaj, aby dostosować port COM do systemu operacyjnego i podłączenia Twojej płyty.

Identyfikacja portu szeregowego

Aby Arduino i Python mogły się poprawnie komunikować, istotne jest zidentyfikowanie portu szeregowego, do którego podłączone jest Arduino. W Windows, możesz to sprawdzić w Menedżerze urządzeń. W systemach Linux o macOS, użyj polecenia ls /dev/ w terminalu, aby znaleźć coś podobnego do / dev / ttyUSB0.

Zaawansowany przykład: odczyt czujnika

Kolejnym praktycznym zastosowaniem komunikacji Arduino z Pythonem jest odczytywanie danych z czujników podłączonych do Arduino i wyświetlanie ich w czasie rzeczywistym w Pythonie. Na przykład dla A czujnik temperatury:

Kod Arduino:

int Pin czujnika = A0; void setup() { Serial.begin(9600); } void pętli() { int sensorValue = analogRead(sensorPin); Serial.println(wartość czujnika); opóźnienie (1000); }

Kod Pythona:

import seryjny czas importu arduino = serial.Serial('COM3', 9600) time.sleep(2) while True: sensor_data = arduino.readline().decode('utf-8').strip() print(f"Value czujnik: {dane_czujnika}")

Ten przykład odbiera wartości czujnika na Arduino i drukuje je do konsoli Pythona, umożliwiając monitorowanie danych w czasie rzeczywistym.

Rozszerzanie możliwości dzięki sztucznemu widzeniu

Jeśli chcesz przenieść swój projekt na wyższy poziom, możesz zintegrować Python i Arduino do zadań programistycznych. sztuczna wizja za pomocą OpenCV. Na przykład system, który wykrywa, czy ktoś nosi maskę i włącza kolorowe diody LED w zależności od wyniku:

  • Un Niebieska dioda LED wskazuje, że dana osoba nosi maskę.
  • Un Czerwona dioda LED Włącza się, jeśli nie wykryje maski.

Używając Mediapipe i OpenCV, możesz wytrenować model do wykrywania twarzy i wysłać wyniki do Arduino, aby odpowiednio sterować diodami LED.

Połączenie Arduino i Pythona otwiera niezliczone możliwości kreatywnych i edukacyjnych projektów. Od prostych zadań, takich jak sterowanie diodami LED, po zaawansowane aplikacje z czujnikami i wizją maszynową, narzędzia te stanowią idealną kombinację, która maksymalizuje Twoją naukę w zakresie elektroniki i programowania.