Podczas budowy robotów mobilnych lepiej unikać plątaniny przewodów i płytek stykowych. Drgania, które pojawiają się podczas jazdy mogą prowadzić do błędów w działaniu konstrukcji.
Właśnie dlatego zaczniemy od zapoznania się z shieldem Arduino, który został zaprojektowany specjalnie na potrzeby tego kursu!
Nakładka pasująca do złącz Arduino (shield) została zaprojektowana i złożona przez polską firmę MSX, która zajmuje się między innymi produkcją uniwersalnych modułów. Dzięki współpracy z tak doświadczonym partnerem udało się przygotować płytkę idealną, która zawiera praktycznie wszystko, co może przydać się w prostych robotach mobilnych!
Kurs budowy robotów (tak, jak wszystkie inne) kierowany jest głównie do początkujących. Dlatego w tym odcinku skupimy się na dokładnym poznaniu całego shielda.
Gotowe zestawy do kursów Forbota
Komplet elementów Gwarancja pomocy Wysyłka w 24h
Części pozwalające wykonać ćwiczenia z kursu budowy robotów dostępne są w formie gotowych zestawów! W komplecie znajdują się elementy mechaniczne (w tym koła i silniki), baterie oraz shield!
Masz już zestaw? Zarejestruj go wykorzystując dołączony do niego kod. Szczegóły »
Zasilanie robota
Podczas budowy robotów należy pamiętać, że z jednego źródła zasilania musimy "ożywić" część elektroniczną (m.in. Arduino) oraz silniki. Niestety napędy potrafią wprowadzić bardzo dużo złego na liniach zasilania.
W przypadku tego robota musimy zasilać minimum dwa silniki z przekładniami. Każdy silnik podczas startu pobiera stosunkowo wysoki prąd (wyższy od tego, który pobierany jest podczas normalnej pracy napędu).
Takie nagłe zapotrzebowanie na dużą ilość prądu może doprowadzić
do spadku napięcia w całym układzie, a to już krok od resetowania się Arduino.
Aby uniknąć takich problemów konieczne jest odpowiednie zaprojektowanie części zasilającej. W naszym wypadku w jej skład wchodzi kilka elementów:
Złącze zasilania
Idąc od lewej strony, na płytce znajdziemy zielone złącze zasilania. To właśnie w to miejsce trzeba podłączyć baterię. W naszym przypadku będzie to 6 połączonych szeregowo baterii AA. takie połączenie da nam około 9V.
Dlaczego właśnie tak? Nie można było podłączyć 1 baterii 9V? Nie można. Baterie 9V mają bardzo małą pojemność i nie nadają się do zasilania "prądożernych układów". W najlepszym przypadku nasz robot działałby na niej kilkanaście minut. W przypadku niektórych konfiguracji może się zdarzyć, że robot nie da rady nawet ruszyć, gdy będzie zasilany z małej baterii 9V. Baterie AA wytrzymają w takim robocie znacznie dłużej.
Baterie podłączone do tego gniazda zasilają shield (5V), Arduino (5V)
oraz bezpośrednio silniki (o tym więcej w dalszej części).
Podczas podłączania zasilania należy pamiętać o odpowiedniej polaryzacji. Symbole "+" oraz "-" można znaleźć na płytce. W razie pomyłki nie powinno się jednak nic stać, ponieważ shield ma wbudowane zabezpieczenie przed odwrotnym zasilaniem.
Na tym etapie nie podłączaj jeszcze zasilania - zrobimy to później!
Bezpiecznik
Kolejnym elementem czuwającym nad bezpieczeństwem elektroniki jest bezpiecznik polimerowy. Od innych bezpieczników odróżnia go możliwość wielokrotnego użycia. W momencie, gdy prąd płynący przez bezpiecznik osiągnie krytyczną wartość, bezpiecznik zaczyna się nagrzewać, aż następuje rozwarcie obwodu.
Po usunięciu usterki (wyłączeniu lub zredukowaniu płynącego prądu)
i ochłodzeniu bezpiecznika, może on dalej pełnić swoją funkcję.
Włącznik suwakowy
Zasilanie konstrukcji (Arduino, shield, napędy) można włączać i wyłączać za pomocą włącznika suwakowego, który znalazł się na pokładzie naszej nakładki. Oczywiście ma on wpływ na zasilanie doprowadzane z naszego shielda przez złącze zasilania.
Po podłączeniu kabla USB Arduino nadal może być zasilane z portu USB
i ustawienia przełącznika nie będą wpływały na jego działanie.
Osobne zasilanie dla serwomechanizmów
O możliwości sterowania napędami będzie jeszcze za chwilę. Już teraz widać jednak, że nasza płytka pozwala dodatkowo na podłączenie serwomechanizmu modelarskiego. Tak jak było to już mówione podczas kursu podstaw programowania Arduino #6, nie wolno zasilać z tego samego stabilizatora elementów elektronicznych oraz prądożernego serwa. W związku z tym wbudowaliśmy stabilizator, który poradzi sobie idealnie z zasilaniem małych serwomechanizmów.
Filtrowanie zakłóceń - kondensatory
W celu eliminacji zakłóceń na płytce znajduje się kilka kondensatorów ceramicznych. Ważną rolę odgrywają tutaj również dwa duże kondensatory elektrolityczne - czyli te srebrne, małe puszki. Z wyglądu odbiegają od kondensatorów elektrolitycznych znanych nam z kursu podstaw elektroniki, jednak nie ma się czego obawiać. Po prostu kondensatory, które przeznaczone są do montażu powierzchniowego (bez długich nóżek) są produkowane właśnie w takich obudowach.
Zworka odcinająca dopływ zasilania do napędów
Ta niepozorna zworka to jeden z moich ulubionych "gadżetów" umieszczonych na płytce. Podczas konstruowanie robotów często konieczna jest zmiana oprogramowania. Mało kto ma czas, aby za każdym razem wyciągać Arduino. Najwygodniej postawić robota obok komputera, wpiąć kabel USB i wgrać nowy algorytm.
Łatwo jednak wtedy zapomnieć, że nasz pojazd po wgraniu programu
może popełnić próbę samobójczą i zjechać z biurka...
Często wygodnie jest również przetestować pewne fragmenty programu (np. działanie czujników), gdy robot stoi w miejscu. Każdorazowe odłączanie silników nie jest zbyt wygodne - stąd pomysł na jeszcze prostsze rozwiązanie.
Zmieniając położenie zworki można natychmiast odciąć zasilanie od wszystkich
napędów. W tym przypadku będą to silniki z przekładniami oraz serwo.
Zworka po lewej – zasilanie silników wyłączone.
Zworka po prawej – zasilanie silników włączone.
Zworki to małe elementy, które (jak nazwa wskazuje) zwierają sygnał, czyli łączą dwa piny złącza. Przykład takich elementów widoczny jest na zdjęciu (często mają różne kształty i kolory).
Przykłady zworek.
Dioda sygnalizacyjna
Nie zabrakło również diody, która sygnalizuje poprawne zasilanie i uruchomienie modułu.
Sterowanie napędami
Żaden robot nie będzie mógł się poruszać bez odpowiednich napędów. W naszym przypadku są to dwa silniki DC z przekładniami. Oczywiście elementami takimi nie można sterować bezpośrednio z Arduino (szczegóły w kursie Arduino - poziom I). Niezbędny jest mostek-h, tym razem będziemy korzystać z małego DRV8835, który pozwala na wysterowanie dwóch silników.
Układ ten może sterować silnikami wymagającymi do 11V (stąd ograniczenia napięcia dla całego shielda). Każdy z silników może pobierać do 1,2 A.
Drugim ważnym elementem jest 3-pinowe złącze, które służy do podłączenia serwomechanizmu. Podczas tego kursu nie będziemy go wykorzystywać, ale jeśli ktoś ma taki napęd po I poziomie kursu programowania Arduino, to będzie mógł podłączyć go właśnie tutaj.
Tak samo, jak przy zasilaniu części elektronicznej, tutaj również znajdziemy osobną diodę, która będzie sygnalizowała dopływ zasilania do napędów.
Dioda ta świeci się tylko, gdy zworka zasilania napędów znajduje się w pozycji ON.
Dodatkowe funkcje shieldu
Oprócz naprawdę podstawowych dla robotów funkcji nasz shield wyposażony jest w całą gamę ciekawych dodatków.
Złącza dedykowane do czujników
Blisko lewej i prawej krawędzi płytki znajdują się 3-pinowe złącza. Każde z nich, to wyprowadzenie zasilania (Vcc, masa) oraz jednego wejścia analogowego. Za każdym razem będziemy podłączać tam czujniki (linii, światła, przeszkód itd).
Odbiornik podczerwieni
W jednym z narożników płytki umieszczony został odbiornik podczerwieni TSOP. Za jego pomocą możliwe będzie zdalne sterowanie robota. W tym celu wykorzystamy dołączony do zestawu pilot IR, który generuje kody w standardzie RC5.
Ekspander portów
Zdarza się, że ilość wejść/wyjść dostępnych w Arduino nas ogranicza. Wtedy bardzo wygodnym rozwiązaniem okazuje się ekspander portów. Czyli układ, który komunikuje się z Arduino wyłącznie za pomocą 2 pinów, a w zamian oferuje nam dodatkowe 8 cyfrowych wejść/wyjść!
Przycisk, dioda, buzzer
W celu łatwiejszego testowania, na shieldzie znalazło się jeszcze kilka użytecznych drobiazgów. Po pierwsze pojawiła się dioda podłączona do pinu 13. Dzięki temu nie trzeba zerkać pod shield, aby sprawdzić diodę, która jest domyślnie łączona z tym wyprowadzeniem już na płytce Arduino.
Dioda świecąca jest wygodna podczas testowania układów "statycznych". Jednak, gdy zajmujemy się jeżdżącymi robotami, to ciężko biegać za naszym pojazdem i obserwować świecenie małego punktu. Dlatego dodatkowo na płytce znalazło się również miejsce dla buzzera z generatorem.
Podczas testowania nowego programu w robocie
zdecydowanie łatwiej wychwytywać dźwięk.
Na płytce znalazł się również przycisk podłączony do Arduino z wykorzystaniem filtra RC. Dzięki temu nie trzeba przejmować się drganiami styków!
UART
Dla większej wygody wyprowadzono również osobne złącza z sygnałami od UARTa. Mogą one w przyszłości posłużyć do podłączenia dodatkowych modułów m.in. komunikacji bezprzewodowej przez WiFi lub Bluetooth. Na ten moment jednak nie będziemy z nich korzystać - można je więc traktować jak zwykłe piny I/O.
Pozostałe porty I/O, wejścia analogowe
Wszystkie wolne porty Arduino (w tym wejścia analogowe) zostały wyprowadzone na złącza, więc bez problemu można jeszcze dalej rozbudowywać naszego robota o kolejne podzespoły.
Czujniki uniwersalne
Budując roboty mobilne można podłączać do nich naprawdę wiele różnych czujników. Kurs budowy robotów z założenia ma być uniwersalny, więc nie chcieliśmy stosować tutaj wyszukanych i drogich czujników. Postawiliśmy na proste rozwiążania. W związku z tym w zestawie znalazły się dwa typy sensorów (po 2 szt. każdego z nich, łącznie 4).
Czujniki mechaniczne
Najprostsze, skuteczne i często stosowane czujniki przeszkód to najzwyklejsze przełączniki. Po uderzeniu robota w przeszkodę następuje zwarcie sygnału wewnątrz czujnika. W naszym robocie korzystamy z krańcówek, które mają wyjątkowo długie blaszki.
Podstawowe, mechaniczne czujniki.
Oczywiście czasami nawet takie wyprowadzenia mogą okazać się za małe. Dlatego wykorzystamy popularny sposób na ich przedłużenie. Kawałki opasek zaciskowych oraz rurki termokurczliwe sprawdzą się tutaj idealnie!
Przedłużone i zamontowane w robocie czujniki (zrobimy to w kolejnej części kursu).
Czujniki optyczne
Drugi typ czujników, to połączenie fotorezystora i niebieskiej diody świecącej. Czujniki te pozwolą nam na zbudowanie Światłoluba, czyli robota poruszającego się w kierunku najsilniejszego źródła światła. Po ich obróceniu, założeniu zworki i odpowiednim ustawieniu, całość posłuży do budowy robota, który jeździ po torze wyklejonym z czarnej taśmy izolacyjnej (LineFollower).
Uniwersalne czujniki optyczne.
Dokładne informacje na temat czujników, ich podłączenia
i wykorzystywania będą pojawiać się w odpowiednich momentach tego kursu.
Pierwszy test shieldu
Na tym etapie możliwe jest już przetestowanie najprostszych funkcji modułu. Zacznijmy od kodu, który po wciśnięciu przycisku umieszczonego na płytce wyda dźwięk (buzzerem) i zamiga diodą.
Zacznijmy od podłączenia zasilania. W tym celu wyciągamy pustą wtyczkę włożoną w gniazdo i odkręcamy śrubokrętem mocowanie.
Wyciągamy wtyczkę z gniazda zasilania.
Następnie wkładamy do środka przewód i skręcamy całość. Ważne jest, aby przewód umieścić w górnej części złącza, zgodnie z ilustracją:
Poprawne umiejscowienie przewodu w złączu.
Uwaga! Do środka złącza należy włożyć jedynie odizolowaną część przewodu!
Do środka złącza wkładamy jedynie odizolowaną część przewodu.
Należy pamiętać o odpowiedniej polaryzacji złącza. Plus (czerwony
przewód) po lewej stronie, a masa (czarny przewód) po prawej stronie.
Podłączenie przewodów z koszyka.
Do tak przygotowanego koszyka wkładamy 6 baterii, a następnie całość łączymy z shieldem. Jeśli wszystko zostało zrobione poprawnie, to zmieniając pozycję przełącznika powinniśmy włączać lub wyłączać cały układ (położenie zworki zasilania napędów nie ma w tej chwili znaczenia).
Włączone zasilanie Arduino i shielda.
Następnie można już wgrać prosty program. Sam proces wgrywania przebiega identycznie, jak w kursie podstaw Arduino dlatego nie będę go tutaj opisywał. Mam nadzieję, że program również nie wymaga szerszego opisu. W razie kłopotów polecam lekturę kursu podstaw programowania.
Działanie programu w praktyce widoczne jest na poniższym, krótkim wideo:
Podsumowanie
Po dokładnym zapoznaniu się z elektroniką, którą dysponujemy można teraz spokojnie przejść do złożenia części mechanicznej. Właśnie tym zajmiemy się w kolejnej części, będzie to już ostatni krok przed uruchomieniem robota!
Czy wpis był pomocny? Oceń go:
Średnia ocena 4.8 / 5. Głosów łącznie: 122
Nikt jeszcze nie głosował, bądź pierwszy!
Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!
Dołącz do 30 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
Dołącz do 30 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...