Raspberry Pi to płyta oparta na architekturze ARM przeznaczona dla elektroników i hobbystów. PI jest obecnie jedną z najbardziej zaufanych platform do tworzenia projektów. Dzięki większej szybkości procesora i 1 GB pamięci RAM PI może być używany w wielu ważnych projektach, takich jak przetwarzanie obrazu i Internet rzeczy.
Aby wykonać którykolwiek z ważnych projektów, należy zrozumieć podstawowe funkcje PI. W tych samouczkach omówimy wszystkie podstawowe funkcje Raspberry Pi. W każdym samouczku omówimy jedną z funkcji PI. Pod koniec tej serii samouczków Raspberry Pi będziesz mógł samodzielnie wykonywać ważne projekty. Przejdź przez poniższe samouczki:
- Pierwsze kroki z Raspberry Pi
- Konfiguracja Raspberry Pi
- Miga dioda LED
- Interfejs przycisków Raspberry Pi
- Generacja Raspberry Pi PWM
- Sterowanie silnikiem prądu stałego za pomocą Raspberry Pi
W tym samouczku będziemy kontrolować prędkość silnika krokowego za pomocą Raspberry Pi. W silniku krokowym, jak sama nazwa mówi, obrót wału ma postać kroku. Istnieją różne typy silników krokowych; tutaj będziemy używać najpopularniejszego, jakim jest unipolarny silnik krokowy. W przeciwieństwie do silnika prądu stałego, możemy obracać silnik krokowy pod dowolnym kątem, podając mu odpowiednie instrukcje.
Aby obrócić ten czterostopniowy silnik krokowy, dostarczymy impulsy mocy za pomocą obwodu sterownika silnika krokowego. Obwód sterownika pobiera wyzwalacze logiczne z PI. Jeśli sterujemy wyzwalaczami logicznymi, sterujemy impulsami mocy, a co za tym idzie prędkością silnika krokowego.
W Raspberry Pi 2 jest 40 pinów wyjściowych GPIO. Ale z 40 można zaprogramować tylko 26 pinów GPIO (GPIO2 do GPIO27). Niektóre z tych pinów pełnią specjalne funkcje. Po odłożeniu specjalnego GPIO pozostało nam tylko 17 GPIO. Każdy z tych 17 pinów GPIO może dostarczyć maksymalnie prąd 15 mA. Suma prądów ze wszystkich Pinów GPIO nie może przekraczać 50mA. Aby dowiedzieć się więcej o pinach GPIO, przejdź przez: Miga dioda LED z Raspberry Pi
Na płycie znajdują się piny wyjściowe zasilania + 5 V (styki 2 i 4) i + 3,3 V (styki 1 i 17) do podłączenia innych modułów i czujników. Te szyny zasilające nie mogą być używane do napędzania silnika krokowego, ponieważ potrzebujemy więcej mocy, aby go obrócić. Musimy więc dostarczyć moc do silnika krokowego z innego źródła zasilania. Mój silnik krokowy ma napięcie znamionowe 9 V, więc używam baterii 9 V jako drugiego źródła zasilania. Wyszukaj numer modelu silnika krokowego, aby poznać napięcie znamionowe. W zależności od oceny wybierz odpowiednio drugie źródło.
Jak wspomniano wcześniej, potrzebujemy obwodu sterownika do napędzania silnika krokowego. Będziemy tu również projektować prosty obwód sterownika tranzystora.
Wymagane składniki:
Tutaj używamy Raspberry Pi 2 Model B z Raspbian Jessie OS. Wszystkie podstawowe wymagania sprzętowe i programowe 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Ω (3)
- Silnik krokowy
- Guziki (2)
- Tranzystor 2N2222 (4)
- Dioda 1N4007 (4)
- Kondensator - 1000uF
- Deska do chleba
Objaśnienie obwodu:
Silnik krokowy wykorzystuje 200 kroków, aby wykonać obrót o 360 stopni, co oznacza, że obraca się o 1,8 stopnia na krok. Ponieważ napędzamy czterostopniowy silnik krokowy, musimy podać cztery impulsy, aby zakończyć pojedynczy cykl logiczny. Każdy stopień tego silnika wykonuje 1,8 stopnia obrotu, więc do wykonania cyklu potrzebujemy 200 impulsów. Zatem 200/4 = 50 cykli logicznych potrzebnych do wykonania jednego obrotu. Sprawdź to, aby dowiedzieć się więcej o silnikach krokowych i ich trybach jazdy.
Będziemy napędzać każdą z tych czterech cewek przez tranzystor NPN (2N2222), ten tranzystor NPN pobiera impuls logiczny z PI i steruje odpowiednią cewką. Cztery tranzystory pobierają cztery logiki z PI do sterowania czterema stopniami silnika krokowego.
Obwód sterownika tranzystora to trudna konfiguracja; tu należy zwrócić uwagę, że błędne podłączenie tranzystora może mocno obciążyć płytkę i ją uszkodzić. Sprawdź to, aby właściwie zrozumieć obwód sterownika silnika krokowego.
Silnik jest indukcyjny, więc podczas przełączania silnika doświadczamy impulsów indukcyjnych. To gwałtowne nagrzanie mocno rozgrzeje tranzystor, więc będziemy używać diody (1N4007), aby zapewnić ochronę tranzystora przed impulsami indukcyjnymi.
Aby zmniejszyć wahania napięcia, podłączymy kondensator 1000 uF do zasilacza, jak pokazano na schemacie obwodu.
Objaśnienie robocze:
Po podłączeniu wszystkiego zgodnie ze schematem obwodu, możemy włączyć PI, aby napisać program w PYHTON.
Porozmawiamy o kilku poleceniach, których będziemy używać w programie PYHTON, Zamierzamy zaimportować plik GPIO z biblioteki, poniższa funkcja umożliwia zaprogramowanie pinów GPIO PI. Zmieniamy również nazwę „GPIO” na „IO”, więc w programie zawsze, gdy będziemy chcieli odwołać się do pinów GPIO, użyjemy słowa „IO”.
importuj RPi.GPIO jako IO
Czasami, gdy piny GPIO, których próbujemy użyć, mogą wykonywać inne funkcje. W takim przypadku podczas wykonywania programu będziemy otrzymywać ostrzeżenia. Poniższe polecenie mówi PI, aby zignorował ostrzeżenia i kontynuował program.
IO.setwarnings (fałszywe)
Możemy odnosić się do pinów GPIO PI, albo przez numer pinu na płycie, albo przez numer ich funkcji. Podobnie jak „PIN 35” na płycie to „GPIO19”. Więc tutaj mówimy, że albo będziemy reprezentować pinezkę jako „35” lub „19”.
IO.setmode (IO.BCM)
Ustawiamy cztery piny GPIO jako wyjście do napędu czterech cewek silnika krokowego.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Ustawiamy GPIO26 i GPIO19 jako piny wejściowe. Wykryjemy naciśnięcie przycisku przez te szpilki.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Jeśli warunek w nawiasach klamrowych jest prawdziwy, instrukcje wewnątrz pętli zostaną wykonane raz. Jeśli więc pin 26 GPIO spadnie w stan niski, instrukcje wewnątrz pętli IF zostaną wykonane raz. Jeśli pin 26 GPIO nie przejdzie w stan niski, instrukcje wewnątrz pętli IF nie zostaną wykonane.
if (IO.input (26) == False):
To polecenie wykonuje pętlę 100 razy, przy czym x jest zwiększane od 0 do 99.
dla xw zakresie (100):
Podczas gdy 1: jest używany do pętli nieskończoności. Za pomocą tego polecenia instrukcje wewnątrz tej pętli będą wykonywane w sposób ciągły.
Dzięki temu mamy wszystkie polecenia potrzebne do osiągnięcia kontroli prędkości silnika krokowego.
Po napisaniu programu i wykonaniu go pozostaje tylko obsługa sterowania. Mamy dwa przyciski podłączone do PI. Jeden zwiększa opóźnienie między czterema impulsami, a drugi zmniejsza opóźnienie między czterema impulsami. Samo opóźnienie mówi o szybkości; jeśli opóźnienie jest większe, silnik hamuje między każdym krokiem, a więc obrót jest powolny. Jeśli opóźnienie jest bliskie zeru, silnik obraca się z maksymalną prędkością.
Tutaj należy pamiętać, że między impulsami powinno być pewne opóźnienie. Po podaniu impulsu silnik krokowy potrzebuje kilku milisekund, aby osiągnąć swój końcowy stan. Jeśli nie ma opóźnienia między impulsami, silnik krokowy w ogóle nie będzie się poruszał. Zwykle opóźnienie 50 ms jest dobre między impulsami. Aby uzyskać dokładniejsze informacje, zajrzyj do arkusza danych.
Czyli dwoma przyciskami możemy sterować opóźnieniem, które z kolei steruje prędkością silnika krokowego.