Raspberry Pi i Arduino to dwie najpopularniejsze płytki typu open source w społeczności elektronicznej. Są popularne nie tylko wśród inżynierów elektroników, ale także wśród uczniów i hobbystów ze względu na swoją łatwość i prostotę. Nawet niektórzy ludzie po prostu polubili Elektronikę z powodu Raspberry Pi i Arduino. Płyty te mają ogromne możliwości i można zbudować bardzo skomplikowany projekt Hi-Fi w kilku prostych krokach i niewielkim programowaniu.
Stworzyliśmy szereg projektów i samouczków Arduino, od bardzo prostych po skomplikowane. Stworzyliśmy również serię samouczków dla Raspberry Pi, z której każdy może rozpocząć naukę od podstaw. Jest to niewielki wkład naszej strony dla społeczności elektronicznej, a ten portal okazał się świetnym źródłem wiedzy dla elektroników. Więc dzisiaj łączymy te dwie świetne płyty razem, łącząc Arduino z Raspberry Pi.
W tym samouczku ustanowimy komunikację szeregową między Raspberry Pi i Arduino Uno. PI ma tylko 26 pinów GPIO i zero kanałów ADC, więc gdy wykonujemy projekty takie jak drukarka 3D, PI nie może wykonać wszystkich interakcji samodzielnie. Potrzebujemy więc więcej pinów wyjściowych i dodatkowych funkcji, aby dodać więcej funkcji do PI, ustanawiamy komunikację między PI i UNO. Dzięki temu możemy używać wszystkich funkcji UNO, ponieważ były to funkcje PI.
Arduino to duża platforma do tworzenia projektów, posiadająca wiele płyt, takich jak Arduino Uno, Arduino Pro mini, Arduino Due itp. Są to płyty bazujące na kontrolerze ATMEGA przeznaczone dla inżynierów elektroników i hobbystów. Chociaż na platformie Arduino jest wiele płyt, to Arduino Uno zyskało wiele uznania za łatwość wykonywania projektów. Środowisko programistyczne oparte na Arduino to łatwy sposób na napisanie programu w porównaniu z innymi.
Wymagane składniki:
Tutaj używamy Raspberry Pi 2 Model B z Raspbian Jessie OS i Arduino Uno. Wszystkie podstawowe wymagania sprzętowe i programowe dotyczące Raspberry Pi zostały wcześniej omówione, możesz je sprawdzić we wprowadzeniu do Raspberry Pi, poza tym, czego potrzebujemy:
- Kołki łączące
- Rezystor 220Ω lub 1KΩ (2 sztuki)
- DOPROWADZIŁO
- Przycisk
Objaśnienie obwodu:
Jak pokazano na powyższym schemacie obwodu, podłączymy UNO do portu USB PI za pomocą kabla USB. Istnieją cztery porty USB dla PI; możesz go podłączyć do dowolnego z nich. Podłączany jest przycisk inicjalizujący komunikację szeregową oraz dioda LED (migająca) wskazująca, że dane są wysyłane.
Objaśnienie działania i programowania:
Część Arduino Uno:
Najpierw zaprogramujmy ONZ, Najpierw podłącz UNO do komputera, a następnie zapisz program (sekcja Check Code poniżej) w oprogramowaniu Arduino IDE i załaduj program do UNO. Następnie odłącz UNO od komputera. Po zaprogramowaniu podłącz UNO do PI i podłącz diodę LED i przycisk do UNO, jak pokazano na schemacie obwodu.
Teraz program tutaj inicjuje komunikację szeregową UNO. Po naciśnięciu przycisku dołączonego do UNO, UNO wysyła szeregowo kilka znaków do PI przez port USB. Dioda dołączona do PI miga, wskazując wysyłane znaki.
Część Raspberry Pi:
Następnie musimy napisać program dla PI (sekcja Kod kontrolny poniżej), aby otrzymywać te dane przesyłane przez UNO. W tym celu musimy zrozumieć kilka poleceń podanych poniżej.
Zamierzamy zaimportować plik szeregowy z biblioteki, funkcja ta umożliwia nam wysyłanie lub odbieranie danych szeregowo lub przez port USB.
import seryjny
Teraz musimy podać port urządzenia i szybkość transmisji dla PI, aby otrzymać dane z UNO bez żadnych błędów. Poniższe polecenie stwierdza, że umożliwiamy komunikację szeregową 9600 bitów na sekundę na porcie ACM0.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Aby dowiedzieć się, do którego portu jest przyłączony UNO, przejdź do terminala PI i wprowadź
ls / dev / tty *
Będziesz mieć listę wszystkich podłączonych urządzeń na PI. Teraz podłącz Arduino Uno do Raspberry Pi za pomocą kabla USB i ponownie wprowadź polecenie. Możesz łatwo zidentyfikować podłączony port UNO na wyświetlonej liście.
Poniższe polecenie jest używane jako pętla wieczna, z tym poleceniem instrukcje wewnątrz tej pętli będą wykonywane w sposób ciągły.
Podczas gdy 1:
Po otrzymaniu danych seryjnie będziemy wyświetlać znaki na ekranie PI.
print (ser.readline ())
Po naciśnięciu przycisku dołączonego do UNO zobaczymy drukowane znaki na ekranie PI. W związku z tym ustanowiliśmy Basic Communication Handshake między Raspberry Pi i Arduino.