- Wymagania wstępne:
- Instalowanie VPython na twoim komputerze:
- Programowanie w języku VPython:
- Przygotowanie Arduino:
- Pracujący:
W naszym poprzednim samouczku dowiedzieliśmy się, jak zainstalować Pythona na naszej maszynie z systemem Windows i jak połączyć Arduino z Pythonem za pomocą prostego projektu sterowania LED. Jeśli jesteś nowy, zdecydowanie polecam powrót do poprzedniego samouczka, ponieważ ten samouczek jest kontynuacją tego samego.
Być może już zacząłeś się zastanawiać, dlaczego potrzebowalibyśmy Pythona z Arduino, skoro wszystko, co mógłby zrobić, to po prostu komunikować się przez port szeregowy. Ale Python jest bardzo silną platformą programistyczną, na której można zintegrować wiele fajnych aplikacji, w których można zintegrować uczenie maszynowe, wizję komputerową i wiele więcej. W tym samouczku nauczymy się, jak stworzyć mały interfejs graficzny w języku Python. Aby to zrobić, będziemy potrzebować modułu o nazwie Vpython. Poniższy samouczek dotyczy tylko użytkowników systemu Windows, ponieważ w przypadku użytkowników komputerów Mac lub Linux procedura jest inna.
Pod koniec tego samouczka dowiemy się, jak stworzyć proste GUI w Pythonie. Zrobimy małą animację, która odpowiada wartości czujnika ultradźwiękowego, który jest dołączony do Arduino. Ta aplikacja śledzi obiekt za pomocą czujnika ultradźwiękowego i wyświetla go w formie graficznej na komputerze za pomocą VPython. Gdy poruszamy obiektem, czujnik ultradźwiękowy wyczuwa odległość i wysyła tę informację do programu w Pythonie za pomocą Arduino i przesuwa również obiekt w komputerze. Brzmi interesująco, prawda! Więc zacznijmy…
Wymagania wstępne:
- Arduino (dowolna wersja)
- Czujnik ultradźwiękowy HC-SR04
- Podłączanie przewodów
- Komputer z Pythonem
- Znajomość poprzedniego samouczka
Instalowanie VPython na twoim komputerze:
W naszym poprzednim samouczku nauczyliśmy się już, jak zainstalować Pythona na swoim komputerze i jak się po nim poruszać i stworzyć prosty program z Arduino. Teraz musimy zainstalować Visual Python (VPython), abyśmy mogli tworzyć fajną grafikę za pomocą Pythona dla Arduino. Aby zapoznać się z prostymi krokami poniżej, aby rozpocząć korzystanie z VPython
Krok 1. Upewnij się, że Python jest już zainstalowany zgodnie z poprzednimi wskazówkami samouczka.
Krok 2. Kliknij VPython, aby pobrać plik exe dla programu Visual Python. Nie wybieraj instalacji wersji 64-bitowej, nawet jeśli Twój komputer działa w wersji 64-bitowej. Wystarczy kliknąć podany link.
Krok 3. Uruchom plik exe i postępuj zgodnie z konfiguracją. Nie zmieniaj domyślnej ścieżki do katalogu i upewnij się, że wybrałeś „pełną instalację”.
Krok 4. Po zainstalowaniu powinieneś znaleźć nową aplikację o nazwie „VIDLE (VPython)” na pulpicie lub panelu aplikacji, jak pokazano poniżej.
Krok 5. Uruchom aplikację i powinieneś otrzymać okno, jak pokazano poniżej.
Krok 6. To jest okno, w którym będziemy pisać program dla VPython. Ale na razie sprawdźmy, czy Vpython działa, otwierając przykładowy program. Aby to zrobić, wybierz Plik-> Otwórz-> Odbij
Krok 7. Powinieneś otworzyć przykładowy program. Spróbuj uruchomić program za pomocą polecenia Uruchom -> Uruchom moduł . Jeśli wszystko działa zgodnie z oczekiwaniami, powinien pojawić się następujący ekran.
Powinieneś zobaczyć okno Shell (po lewej) z dwoma >>> wskazującymi pomyślną kompilację i rzeczywistym oknem (z przodu), które pokazuje odbijającą się piłkę.
Krok 8. Możesz także wypróbować inne przykładowe programy, aby odkryć moc VPython, na przykład przykładowy program o nazwie „silnik elektryczny” zadziwi Cię na poniższym ekranie.
Krok 9. Oznacza to, że Twój VPython jest gotowy do użycia i możesz przejść do tematu „ Programowanie Vpythona ”.
Krok 10. W przeciwnym razie, jeśli jesteś jednym z wielu, którzy dostają „numpy Error” , nie trać nadziei, ponieważ rozwiążemy ten problem w dalszych krokach
Krok 11. Otwórz Mój komputer -> dysk C -> Python 27 -> Skrypty -> local.bat . Spowoduje to uruchomienie wiersza polecenia, jak pokazano poniżej
Krok 12. Teraz wpisz „pip install --upgrade numpy” i naciśnij enter. Nowa wersja Numpy powinna zostać zainstalowana na twoim komputerze. Być może będziesz musiał trochę poczekać, jeśli Twoje połączenie internetowe jest wolne.
Krok 13. Po zakończeniu możesz wrócić do kroku 4 i wypróbować przykładowy program, a powinieneś być w stanie go uruchomić.
Programowanie w języku VPython:
Następnie zaczynamy programować w naszym oknie VPython. W tym programie utworzymy dwa prostokątne obiekty 3D, jeden zostanie umieszczony na środku ekranu w odniesieniu do stacjonarnego czujnika ultradźwiękowego, a drugi w dynamicznej lokalizacji na podstawie odległości między czujnikiem US a obiektem (papierem).
Cały kod Pythona można znaleźć na końcu tej strony. W dalszej części wyjaśniłem ten kod w Pythonie, dzieląc je na małe znaczące śmieci.
Pierwszą linią byłoby zaimportowanie biblioteki wizualnej, abyśmy mogli tworzyć obiekty 3D. Poniższa linia robi to samo.
z importu wizualnego *
Powinieneś być zaznajomiony z następnymi czterema liniami, ponieważ używaliśmy ich już w naszym poprzednim tutorialu. Służą do importu biblioteki szeregowej i czasowej, a także ustanawiają połączenie szeregowe z Arduino na COM18 z 9600 jako prędkość transmisji
import serial #Serial importowany do komunikacji szeregowej Czas importu #Wymagane do użycia funkcji opóźnienia ArduinoSerial = serial.Serial ('com18', 9600) # Utwórz obiekt portu szeregowego o nazwie arduinoSerialData time.sleep (2) # poczekaj 2 sekundy na komunikację ustalić się
Teraz nadszedł czas na tworzenie obiektów. I stworzył dwa prostokąty 3d nazwany obj a ścianą. Walll jest nieruchoma ściana w kolorze cyjan umieszczoną w środku ekranu i obj jest ruchomy obiekt w kolorze białym. W pobliżu ściany umieściłem również napis „Czujnik US”.
obj = box (pos = (- 5,0,0), size = (0,1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0,2, 12,12), kolor = kolor.cyan) tekst (tekst = 'czujnik US', oś = (0,1,0), pos = (- 2, -6,0), głębokość = -0,3, kolor = kolor cyjan)
Jestem pewien, że powyższe trzy wiersze u większości czytelników po raz pierwszy ukazałyby się jako greckie i łacińskie, ale z czasem można by to zrozumieć. Wszystko, co jest wymienione w nawiasach, to współrzędne (x, y, z). Te współrzędne są bardzo podobne do tych, które znajdujemy na naszej lekcji geometrii w liceum, jak pokazano poniżej.
Teraz grafika i port szeregowy są gotowe. Wszystko, co musimy zrobić, to odczytać dane i umieścić „obiekt” (biały prostokąt) w miejscu zgodnym z danymi pochodzącymi z Arduino. Można to zrobić za pomocą poniższych wierszy, w których obj.pos.x kontroluje położenie współrzędnych X obiektu (biały prostokąt).
t = int (ArduinoSerial.readline ()) # wczytaj dane szeregowe i wydrukuj je jako wiersz t = t * 0.05 obj.pos.x = t
Przygotowanie Arduino:
Skrypt Pythona jest gotowy do nasłuchiwania wartości z portu COM i odpowiedniego animowania grafiki, ale nasze Arduino nie jest jeszcze gotowe. Najpierw musimy podłączyć czujnik ultradźwiękowy do Arduino zgodnie z poniższym schematem obwodu. Jeśli nie masz doświadczenia z czujnikiem amerykańskim i Arduino, musisz wrócić do samouczka pomiaru odległości Arduino i czujnika ultradźwiękowego.
Następnie prześlij program Arduino podany na końcu tej strony. Program jest wyjaśniony samodzielnie za pomocą linii komentarzy. Wiemy, że czujnik ultradźwiękowy działa na zasadzie obliczania czasu potrzebnego na uderzenie impulsu w obiekt i jego powrót. Wartość ta jest obliczana przy użyciu funkcji PulseIn w Arduino. Później wykorzystany czas jest przeliczany na odległość za pomocą poniższej linii.
dist = (timaken / 2) / 2,91;
Tutaj odległość jest obliczana w milimetrach (mm).
Pracujący:
Działanie projektu jest proste. Uruchom program w Pythonie i umieść obiekt przed czujnikiem US, jak pokazano poniżej:
Teraz uruchom program w języku Python i powinieneś być w stanie zauważyć, że biały prostokąt przesuwa się wraz z papierem, odległość między papierem a czujnikiem zostanie również wyświetlona w oknie powłoki, jak pokazano na poniższym obrazku.
W ten sposób możemy śledzić ruch obiektu za pomocą czujnika ultradźwiękowego oraz Pythona z Arduino.
Mam nadzieję, że zrozumiałeś projekt i podobał Ci się jego projekt. To tylko jeden subtelny krok w kierunku Pythona, ale za jego pomocą możesz zbudować o wiele bardziej kreatywne rzeczy. Jeśli masz pojęcie, co zbudować z tym, napisz je w sekcji komentarzy i skorzystaj z forów, aby uzyskać pomoc techniczną. Do zobaczenia z innym interesującym projektem w Pythonie.