Jak programować i kontrolować Arduino za pomocą Pythona?

Jak programować i kontrolować Arduino za pomocą Pythona?

Python szturmem podbił świat kodowania. Wraz z pojawieniem się tego nowego języka rozkwitła również scena DIY Electronics. Płyty rozwojowe i komputery jednopłytkowe firm takich jak Arduino i Raspberry Pi zmieniły sposób, w jaki ludzie tworzą domową elektronikę. Czy nie byłoby wspaniale, gdybyś mógł zaprogramować Arduino za pomocą Pythona?





jak wygląda kabel usb

Nie ma lepszego uczucia niż połączenie dwóch fajnych rzeczy. Niestety nie można bezpośrednio zaprogramować Arduino za pomocą Pythona, ponieważ płyty nie mają opcji wbudowanej interpretacji języka. Możliwa jest jednak bezpośrednia kontrola nad USB za pomocą programu w Pythonie.





W tym artykule dowiesz się, jak skonfigurować Arduino UNO (chociaż każda płyta kompatybilna z Arduino może tutaj działać), aby była programowana i kontrolowana z wiersza poleceń za pomocą programów w języku Python. Ten samouczek jest napisany dla systemu Windows 10, ale działa również na komputerach Mac i Linux. Możesz nawet użyć tego przepływu pracy do sterowania Arduino bezpośrednio z Raspberry Pi, aby uzyskać najwyższą jakość podwójnego majsterkowania.





Konfigurowanie Arduino dla Pythona

W dzisiejszym projekcie będziemy używać Arduino Uno wraz z interfejsem pyFirmata dla Pythona. Możesz użyć do tego prawie każdej płyty zgodnej z Arduino, chociaż w chwili pisania tego tekstu interfejs pyFirmata obsługuje tylko Arduino Uno, Mega, Due i Nano. Jeśli jesteś już guru Pythona, możesz dodać własną obsługę forum do pyFirmata - pamiętaj, aby zaktualizować ich GitHub, jeśli to zrobisz!

Jeśli jeszcze tego nie zrobiłeś, zainstaluj Arduino IDE. Jeśli jesteś zupełnie nowy w świecie mikrokontrolerów, nasz przewodnik dla początkujących po Arduino pomoże Ci wszystko umieścić na swoim miejscu.



Podłącz swoją płytę Arduino i otwórz IDE. Upewnij się, że masz wybraną właściwą kartę i port w Narzędzia menu. Załaduj StandardowaFirma przykładowy szkic i wgraj go na tablicę. Umożliwi to bezpośrednie sterowanie Arduino, o ile jest ono podłączone do komputera przez USB. Zakładając, że szkic zostanie przesłany na twoją tablicę bez żadnych błędów, jesteś gotowy, aby przejść dalej.

Python i kontrola wiersza poleceń

Użyjemy Pythona 3.4 do sterowania naszym Arduino, ponieważ moduł, który będziesz instalować, określa go jako najnowszą kompatybilną wersję. Każda wcześniejsza wersja powinna działać poprawnie, a nowsze wersje zostały zgłoszone do pracy. Możesz pobrać Python 3.4 dla Windows 10 z Python Software Foundation Strona. Jeśli chcesz uruchomić wiele wersji Pythona, pomoże Ci nasz przewodnik po środowiskach wirtualnych Pythona.





Po zainstalowaniu Pythona chcemy dodać go do zmiennej PATH twojego systemu. Pozwoli nam to uruchomić kod Pythona bezpośrednio z wiersza poleceń bez konieczności przebywania w katalogu, w którym został zainstalowany. Możesz to zrobić, otwierając Panel sterowania , szukać Środowisko i kliknij Edytuj zmienne środowiskowe systemu . Na dole okna wybierz Zmienne środowiska . Spowoduje to wyświetlenie tego okna:

Jeśli już widzisz ŚCIEŻKA na liście kliknij edytuj i dodaj swój Pyton oraz Python/Skrypty informator. Jeśli nie masz zmiennej PATH, kliknij nową i dodaj ją. Zauważ, że Python został zainstalowany bezpośrednio w C: tutaj. Jeśli zainstalowałeś go w innym miejscu, musisz go zmodyfikować, aby to odzwierciedlić. Kliknij OK z powrotem w dół łańcucha okien i jesteś prawie gotowy do sterowania Arduino za pomocą Pythona!





Magiczny smar

Potrzebujesz ostatniego kawałka układanki, aby Python ładnie rozmawiał z naszym Arduino. Ma to postać interfejsu Pythona zwanego pyFirmata . Ten interfejs, stworzony przez Tino de Bruijna, jest dostępne do pobrania z github, ale możesz zainstalować go bezpośrednio z wiersza poleceń, wpisując:

pip install pyfirmata

Wszystko w porządku, powinno się zainstalować i wyglądać tak:

Jeśli to się nie powiedzie, przejdź do dodawania Pythona do Zmienna środowiskowa i upewnij się, że podałeś właściwą ścieżkę do swojego katalogu Pythona.

Jak to się stało

Teraz wszystko jest skonfigurowane i możesz stworzyć program w Pythonie dla swojego Arduino, aby go przetestować. Otwórz wybrane IDE. Będziemy używać Zaćmienie dzisiaj, ale równie łatwo możesz użyć dowolnego edytora tekstu, a nawet IDE w chmurze.

Utwórz nowy skrypt i zapisz go jako migać.py . Przełamując tradycję ze standardowym programem migających diod LED, stworzysz program, który podpowiada użytkownikowi, ile razy dioda ma migać przed jego wykonaniem. To krótki program, który możesz Pobierz tutaj jeśli chcesz przejść od razu do tego, ale podzielmy to.

Po pierwsze, będziesz chciał zaimportować to, czego potrzebujesz z pyFirmata moduł wraz ze standardowym Pythonem Czas moduł.

jak znaleźć latarkę w moim telefonie?
from pyfirmata import Arduino, util
import time

Teraz będziesz chciał skonfigurować płytkę Arduino. W tym artykule zakładamy, że używasz an Arduino płyta, choć obsługiwanych jest kilka innych płyt Arduino. Zapoznaj się z githubem pyFirmata, aby uzyskać szczegółowe informacje na temat obsługi płyty.

Sprawdź, którego portu COM używasz w Arduino IDE i wpisz go w swoim kodzie jako zmienną deska .

board = Arduino('COM3')

Teraz skonfigurujesz monit użytkownika. Osoby zaznajomione z Pythonem rozpoznają tutaj wszystko. Drukujesz pytanie na ekranie za pomocą Wejście funkcji i przechowuj odpowiedź jako zmienną. Gdy użytkownik poda numer, program zwróci, ile razy dioda LED będzie migać.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Aby dioda LED mignęła odpowiednią liczbę razy, użyj dla pętli . Jeśli jesteś nowy w Pythonie , uważaj na wcięcia, ponieważ w przeciwieństwie do innych języków spacje są częścią składni. Zauważ, że pin 13 to wbudowana dioda LED dla Arduino Uno, musisz to zmodyfikować, jeśli twoja płyta jest inna.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Będziesz rzucać loopTimes zmienna na liczbę całkowitą, ponieważ dane wejściowe użytkownika zostaną automatycznie zapisane jako ciąg. W tym prostym demo zakładamy, że użytkownik wprowadzi wartość liczbową. Każdy inny wpis, taki jak „osiem”, spowoduje wyświetlenie błędu.

Zapisz swój skrypt i otwórz Wiersz polecenia .

Migające światła i inne rewelacje

Wszystko jest gotowe do pracy, wszystko, co musisz zrobić, to przejść do miejsca, w którym znajduje się skrypt i uruchomić go. Zrób to, wpisując cd [ścieżka do katalogu skryptu] a następnie pisanie Python blink.py .

Wszystko w porządku, twój program rozpocznie się z niewielkim opóźnieniem, gdy Arduino się zainicjuje, poprosi o numer, a następnie będzie migał tyle razy za pomocą wbudowanej diody LED.

Wynik programu powinien wyglądać tak:

Jak tylko naciśniesz enter po wybranej przez Ciebie liczbie mrugnięć, Arduino powinno wykonać Twoje rozkazy.

Małe początki

Ten projekt był prostym początkiem komunikacji między Pythonem a płytą Arduino. To podejście bardzo różni się od zwykłego przepływu pracy polegającego na przesyłaniu skryptów do samego Arduino, ale otwiera zupełnie nowy sposób pracy z platformą, zwłaszcza jeśli lubisz język programowania Python.

Jeśli używasz Serwer Linux w domu ta metoda komunikacji z płytami Arduino może rozszerzyć ten serwer do pełnoprawnego systemu automatyki domowej DIY. Łącząc skrypty Pythona kontrolujące mikrokontroler z obwodem automatyzacji DIY, Twój schowek NAS może przejąć zupełnie nowy zestaw przydatnych funkcji.

jak odblokować Androida bez komputera

Aby było to najlepsze doświadczenie dla majsterkowiczów, dlaczego nie? zbuduj własne urządzenie NAS i używać go również do sterowania swoimi urządzeniami? Wyobraź sobie, jak fajnie byłoby nacisnąć przycisk odtwarzania na serwerze Plex i automatycznie wyłączyć światła!

Czy kontrolujesz już Arduino za pomocą Pythona? Czy istnieją niesamowite obejścia, o których jeszcze nie wiemy? Daj nam znać w sekcji komentarzy poniżej!

Udział Udział Ćwierkać E-mail 5 wskazówek, jak doładować swoje maszyny VirtualBox Linux

Masz dość słabej wydajności oferowanej przez maszyny wirtualne? Oto, co powinieneś zrobić, aby zwiększyć wydajność VirtualBox.

Czytaj dalej
Powiązane tematy
  • majsterkowanie
  • Programowanie
  • Arduino
  • Automatyka domowa
  • Pyton
O autorze Ian Buckley(216 opublikowanych artykułów)

Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice DIY lub kodowaniu w nadziei, że zostanie szalonym naukowcem.

Więcej od Iana Buckleya

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować