Spisu treści:

DIY edukacyjny robot Micro:bit: 8 kroków (ze zdjęciami)
DIY edukacyjny robot Micro:bit: 8 kroków (ze zdjęciami)

Wideo: DIY edukacyjny robot Micro:bit: 8 kroków (ze zdjęciami)

Wideo: DIY edukacyjny robot Micro:bit: 8 kroków (ze zdjęciami)
Wideo: Robot Edukacyjny: Odc. 8 Jak prowadzić zajęcia z kodowania z zaawansowanymi uczniami? 2024, Lipiec
Anonim
DIY edukacyjny mikro: bitowy robot
DIY edukacyjny mikro: bitowy robot
DIY edukacyjny mikro: bitowy robot
DIY edukacyjny mikro: bitowy robot

Ta instrukcja pokaże Ci, jak zbudować stosunkowo dostępnego, zdolnego i taniego robota. Moim celem przy projektowaniu tego robota było zaproponowanie czegoś, na co większość ludzi może sobie pozwolić, aby mogli w ciekawy sposób uczyć informatyki lub uczyć się o niej.

Po zbudowaniu tego robota możesz cieszyć się jego różnorodnością czujników i siłowników do wykonywania podstawowych, ale także dość zaawansowanych rzeczy, w zależności od wersji, którą zbudujesz (podam dwie wersje). Z tym robotem dajesz micro:bit oczy (widok (180°!) i nogi (możliwy precyzyjny ruch!), podczas gdy micro:bit zapewnia wspaniałe funkcje, takie jak matryca LED, komunikacja radiowa, komunikacja bluetooth, akcelerometr, compas, ale także dostęp do wszystkich tych rzeczy za pomocą MicroPythona lub wizualnego języka programowania podobnego do zera (właściwie także w C++ i javascript, ale te uważam za mniej odpowiednie do edukacji).

Będę również pracował nad tym instruktażem, abym mógł skierować czytelników i twórców na tor, aby dowiedzieć się więcej o robotyce mobilnej, elektronice, projektowaniu i cięciu drewna. Aby to zrobić, zaprojektowałem wszystko tak, aby było jak najbardziej modułowe. Na przykład nie użyję żadnego kleju, aby umożliwić swobodny montaż i demontaż, ułatwiając aktualizacje i debugowanie. Zrobię również kroki tak przyrostowe, jak tylko mogę, abyście mogli stopniowo rozumieć, co się dzieje, sprawdzać, czy wszystko działa tak, jak powinno, i dotrzeć do końca z robotem, który działa.

Krok 1: Zbieranie kawałków

Zbieranie kawałków
Zbieranie kawałków

Do tego projektu niedźwiedź minimum, którego potrzebujesz, to:

  • Drewno MDF o grubości 5 mm i wycinarka laserowa do szkieletu
  • 1x18650 bateria litowa, 1x osłona baterii na energię i przerywacz
  • Karta 1xMicro:Bit i karta rozszerzeń 1xMicro:bit dla mózgu (chociaż obie mogą być łatwo zastąpione przez Arduino)
  • Silniki krokowe 2x28BYJ-5V, sterowniki silników krokowych 2xA4988 i 2x płytka rozwojowa do montażu sterowników nóg
  • 1x TOF10120 i 1x Mini 9g Servosilnik do oczu Niektóre kable i śruby
  • 1x koło uniwersalne, wysokość = 15mm

Wśród nich tylko trzy części nie są standardami, dlatego oto linki do ich odnalezienia: znajdź kartę rozszerzeń, której użyłem tutaj (ale radzę użyć tego zamiast zgrabnej wersji robota. Będziesz musiał Nie zmieniaj prawie nic w projekcie, a okablowanie będzie znacznie prostsze z wygiętymi żeńskimi nagłówkami), osłoną akumulatora tutaj i uniwersalnym kołem tutaj.

Idealnie będziesz mieć również do swojej dyspozycji:

  • Multimetr
  • Deska do krojenia chleba
  • Lutownica

W przypadku tych, a także wycinarki laserowej, sprawdź, czy masz w pobliżu jakiś fablab! To świetne miejsca na spotkanie z inspirującymi twórcami!

Krok 2: Przygotowanie nóg

Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg
Przygotowanie nóg

Twoją pierwszą misją, jeśli ją zaakceptujesz, będzie sprawienie, by nasz silnik krokowy obracał się, używając micro:bit jako kontrolera! Dlaczego silnik krokowy? Mogłem wybrać silnik prądu stałego z reduktorami, ale wypróbowałem je i trudno mi uzyskać tanie silniki do pracy z niską prędkością. Pomyślałem też, że fajnie byłoby wiedzieć dokładnie, z jaką prędkością obracają się moje koła. Z tych powodów silniki krokowe były najlepszą opcją.

Jak więc teraz sterować silnikiem 28BYJ za pomocą sterownika 4988 ? Odpowiedź jest… trochę długa. Nie udało mi się go zgrabnie zmieścić w tej instrukcji, więc zrobiłem kolejny tylko w tym celu, który znajdziesz tutaj. Zapraszam do wykonania tych kroków do końca, tworząc małą płytkę prototypową o wymiarach 26x22mm z otworami 2x2mm 17 mm, aby zamontować ją po bokach, jak pokazano na powyższym obrazku (zwróć uwagę, że jak podano w przywołanym artykule, żółty przewód po lewej stronie wystaje tylko po to, aby przypomnieć o lutowaniu razem SLP i RST).

Po uruchomieniu tego z jednym silnikiem z płytką prototypową, zaprojektowałem również własną płytkę drukowaną, aby wszystko było trochę bardziej uporządkowane. Załączyłem odpowiedni plik easyEDA. Jest to plik txt, ale nadal możesz go otworzyć za pomocą bezpłatnej platformy do edycji online easyEDA.

Krok 3: Widzę Światło!! (Opcjonalny)

Widzę światło !! (Opcjonalny)
Widzę światło !! (Opcjonalny)
Widzę światło !! (Opcjonalny)
Widzę światło !! (Opcjonalny)
Widzę światło !! (Opcjonalny)
Widzę światło !! (Opcjonalny)

Jeśli chcesz tylko budować i nic więcej, przejdź do przedostatniego akapitu tego kroku, aby zobaczyć, jak podłączyć TOF10120 do micro:bit. Jeśli nie, kontynuuj.

Ponieważ nasz micro:bit nie jest dostarczany z żadną kamerą ani czujnikiem zbliżeniowym, sprawia, że jest trochę ślepy na każdą aplikację robotyki mobilnej. Jest wyposażony w nadajnik radiowy i receptor, co pozwoliłoby nam zbudować szkielet na tym, co już mamy i uzyskać zdalnie sterowanego robota. Ale czy nie byłoby wspaniale, gdyby nasz robot był autonomiczny? Tak byłoby! Zobaczmy więc, jak się tam dostać.

To, co nas teraz interesuje, to wyposażenie naszego robota w czujniki, aby nasz robot mógł pozyskiwać informacje o swoim otoczeniu. Dostępnych jest wiele rodzajów czujników, ale tutaj skupimy się na czujniku zbliżeniowym. Kiedy projektowałem tego robota, moim celem było przede wszystkim, aby robot nie zderzał się z niczym, dlatego chciałem, aby wyczuwał przeszkody. Do tego jest też kilka opcji. Pierwszym, bardzo prostym, mogłoby być zastosowanie zderzaków, ale uważam, że informacje o środowisku są nieco ograniczone. Z drugiej strony możesz pomyśleć o dodaniu aparatu (lub Lidara lub kinecta!). Kocham aparaty, wizje komputerowe i wszystkie te rzeczy, ale niestety Micro:bit ich nie obsługuje (do obsługi takich urządzeń musielibyśmy użyć raspberry Pi, a nie micro:bit czy Arduino).

Co więc obsługuje micro:bit, który znajduje się pomiędzy kamerą a przerywnikami? Istnieją małe aktywne czujniki, które wysyłają światło do otoczenia i sprawdzają, co jest odbierane, aby uzyskać informacje o świecie. Ten, o którym już wiedziałem, to GP2Y0A41SK0F, który wykorzystuje metodę triangulacji do oszacowania odległości do przeszkód. Zastanawiałem się jednak, czy mógłbym znaleźć coś lepszego, więc zrobiłem trochę badań i w końcu odkryłem TOF10120 (i GY-VL53L0XV2, ale jeszcze go nie otrzymałem:(). Oto fajny artykuł, który możesz odkryć. Zasadniczo czujnik ten emituje sygnał podczerwieni, który odbija się od przeszkód, a następnie odbiera odbite światło. W zależności od czasu potrzebnego na przejście światła w tę i z powrotem, czujnik może oszacować odległość od przeszkody (stąd nazwa TOF = czas lotu Ze względu na niewielkie rozmiary, zasięg i zapotrzebowanie na moc zdecydowałem się na TOF10120.

Podczas gdy moim pierwszym pomysłem było umieszczenie trzech z nich na robocie (jednego z przodu i dwóch po bokach), chiński nowy rok i pandemia COVID-19 nie chciały tego, ponieważ wydawało się, że powoduje problemy z przesyłkami. Ponieważ byłem ograniczony do jednego TOF10120, który również chciałem zobaczyć po bokach i że miałem jakieś serwosilniki leżące dookoła, postanowiłem zamontować mój czujnik na serwo. Tak więc brakuje teraz dwóch rzeczy: jak używać TOF10120 z micro:bit ? I to samo pytanie z serwomechanizmem.

Na szczęście micro:bit jest wyposażony w protokół komunikacyjny I2C i bardzo ułatwia nam życie: podłącz czerwony przewód do 3.3V, czarny do uziemienia, zielony do SCL i niebieski do SDA i to wszystko, jeśli chodzi o część sprzętową. Jeśli chodzi o oprogramowanie, zachęcam do przeczytania trochę o komunikacji I2C i wypróbowania kodu Pythona, który załączyłem na micro:bit. Program ten powinien wydrukować odległość zmierzoną przez czujnik na REPL (Read Evaluate Print Loop). Otóż to. Po prostu spojrzeliśmy na nasz micro:bit.

A teraz sprawmy, żeby wykręciło mu szyję, jeśli pozwolicie mi kontynuować moje analogie z anatomią zwierząt. Jedyne, czego potrzebujemy, to napędzanie serwomotoru za pomocą micro:bit. Ta część robi się coraz dłuższa, więc podam ci ten link, który zawiera wszystkie potrzebne informacje i kod, którego użyłem do jej przetestowania. Jeśli chcesz dodałem też prosty kod do sterowania serwo za pomocą pin0. Tylko nie zapomnij o zasilaniu serwonapędu napięciem 5V, a nie 3,3V.

Krok 4: Hakowanie osłony baterii

Hakowanie osłony baterii
Hakowanie osłony baterii
Hakowanie osłony baterii
Hakowanie osłony baterii
Hakowanie osłony baterii
Hakowanie osłony baterii

Teraz, gdy mamy gotowe siłowniki i czujniki, nadszedł czas, aby przyjrzeć się systemowi zarządzania akumulatorami. Aby dowiedzieć się więcej o osłonie baterii, którą wybrałem, radzę przeczytać ten artykuł. Uważam, że jest to bardzo jasne i przystępne. Z tego artykułu widzimy wiele zalet tej osłony baterii, ale jest jedna ważna wada, której nie chciałem zaakceptować: przełącznik ON/OFF wpływa tylko na wyjście USB. Oznacza to, że jeśli wyłączysz przełącznik, wszystkie pozostałe piny 3,3 V i 5 V będą zasilane. W rezultacie, ponieważ używamy tych pinów dla naszego robota, przełącznik nic nie zrobi…

Ale chcę móc wyłączyć robota, aby nie rozładować baterii za darmo, więc musiałem zhakować osłonę baterii. Nie będzie ładna, ale działa i nic nie kosztuje. Dlatego chcę, aby przełącznik otwierał lub zamykał obwód, aby odizolował ogniwo akumulatora od osłony akumulatora. Nie mam sprzętu do dotykania PCB, ale dookoła mam kawałki plastiku. A teraz wyobraź sobie, że wyciąłem kawałek plastiku, aby zmieścił się na jednym końcu mojej baterii w osłonie, jak na pierwszym obrazku powyżej. Obwód jest teraz otwarty, a moja bateria jest bezpiecznie przechowywana.

Tak, ale nie chcę otwierać robota, aby uzyskać dostęp do osłony baterii, aby włożyć i wyjąć ten kawałek plastiku! To proste: weź przełącznik i przyklej dwa małe kwadraty aluminium do każdego z przewodów podłączonych do przełącznika. Teraz przyklej te dwa kawałki aluminium do kawałka plastiku, aby odizolować te dwa kawałki aluminium od siebie i aby aluminium było wystawione na zewnątrz systemu. Normalnie powinno wystarczyć. Włóż swoje nowe dzieło w osłonę baterii obok ogniwa, a przełącznik powinien umożliwiać otwarcie lub zamknięcie obwodu podłączonego do ogniwa.

Ostatnia rzecz: aby ułatwić montaż i demontaż robota, radziłbym przylutować żeńskie nakładki do osłony akumulatora. W ten sposób możesz łatwo podłączać i odłączać to, co zbudujesz z silnikami i ich sterownikami.

Krok 5: Projektowanie i cięcie 3D

Projektowanie i cięcie 3D
Projektowanie i cięcie 3D
Projektowanie i cięcie 3D
Projektowanie i cięcie 3D

Jedyne, czego teraz brakuje, to zbudowanie struktury, która pomieści wszystkie nasze komponenty razem. W tym celu skorzystałem z internetowej platformy tinkercad. To naprawdę fajne środowisko do zrobienia podstawowego CAD, które często wystarcza do projektowania rzeczy dla wycinarki laserowej.

Po pewnym czasie namysłu nadszedł czas na majsterkowanie. Aby to zrobić, zacząłem składać modele 3D różnych części, które posiadałem (najpierw wyłączając serwomechanizm i TOF). Obejmuje to baterię i osłonę, silniki krokowe i sterowniki silników oraz oczywiście micro:bit z płytką rozszerzeń. Załączyłem wszystkie odpowiadające modele 3D jako pliki stl. Aby ułatwić ten proces, postanowiłem, że mój robot będzie symetryczny. W rezultacie majstrowałem tylko przy połowie robota i osiągnąłem projekt pokazany na powyższym obrazku.

Z tego powstało kilka wersji, z których wybrałem dwie:

  • Jeden całkiem schludny, bez czujnika zbliżeniowego, dzięki któremu nie pojawiają się żadne przewody. Chociaż nie jest autonomiczna, ta wersja może być nadal programowana przez Bluetooth na przykład przez iPada lub może być zaprogramowana do sterowania za pomocą sygnałów radiowych, które mogą być na przykład wysyłane przez inny micro:bit, jak pokazano na powyższym filmie.
  • Jedno znacznie mniej schludne, co pozwala zagłębić się w robotykę mobilną, ponieważ pozwala na uchwycenie odległości przeszkody w widoku 180° dzięki czujnikowi zbliżeniowemu zbudowanemu na serwomotorze.

Aby to zbudować, przejdź do swojego ulubionego Fablabu i użyj wycinarki laserowej, którą znajdziesz, aby wyciąć preferowany model: pierwsza odpowiada plikom design1_5mmMDF.svg i design1_3mmMDF, które odpowiadają odpowiednio częściom do wycięcia w 5mm MDF drewno i te do wycięcia z 3mm; drugi odpowiada plikowi design2_5mmMDF.svg. Ustaw czarne kontury do wycięcia, a czerwone do grawerowania.

Uwaga na marginesie: dodałem czerwony wzór tylko po to, by go podrasować. Jest to funkcja wypełniania Hilberta, którą wygenerowałem za pomocą dołączonego kodu Pythona.

Krok 6: Montaż bestii

Wspinanie się na bestię
Wspinanie się na bestię
Wspinanie się na bestię
Wspinanie się na bestię
Wspinanie się na bestię
Wspinanie się na bestię

Kroki, które wykonałem, aby zamontować pierwszą wersję robota, są następujące (zdjęcia powinny normalnie być w odpowiedniej kolejności):

  1. Zdejmij niebieską zaślepkę silników i trochę ją odetnij, aby kabel wystawał z tyłu silnika.
  2. Zamontuj silniki po każdej stronie za pomocą śrub i śrub M2.
  3. Zamontuj płytkę prototypową po bokach za pomocą otworów 2x2mm oraz kilku śrub i śrub.
  4. Umieść sterowniki A4988 i oklej kable silnika, aby utrzymać porządek.
  5. Zamontuj uniwersalne koło pod dolną częścią i dodaj boki.
  6. Zamontuj płytkę rozszerzeń micro:bit w górnej części.
  7. Zamontuj spód elastycznej osłony przedniej.
  8. Załóż osłonę baterii i podłącz wszystko (w tym celu, ponieważ wciąż czekałem na dostawę płyty rozszerzeń, której chciałem i że mam tylko taki z wystającymi żeńskimi nagłówkami, zutylizowałem kabel IDE ze starego komputera, aby sobie poradzić nie mam moich kabli przyklejanych do płyty, aby to wszystko zakryć składaną przednią pokrywą). Chociaż podany przeze mnie kod jest bardzo łatwy do dostosowania, aby użyć go bezpośrednio, musisz podłączyć lewy STEP do pinu 2, prawy STEP do pinu 8, lewy DIR do pinu 12, prawy DIR do pinu 1.
  9. Umieść micro:bit w rozszerzeniu.
  10. Sprawdź, czy wszystko działa z MoveTest.py, zanim przejdziesz dalej.
  11. Zamontuj przełącznik na górnej części i umieść plastikową końcówkę obok ogniwa litowego.
  12. Przykręć górną część przedniej pokrywy.
  13. Zamontuj z tyłu i gotowe! Uff! Nie spodziewałem się tylu kroków! O wiele łatwiej o tym pomyśleć i zrobić, niż wyjaśnić to słowami! (I jestem pewien, że nadal będzie brakować informacji!)

Jeśli budujesz drugą wersję z czujnikiem zbliżeniowym, to:

  1. Postępuj zgodnie z instrukcją powyżej. Jedyną różnicą będzie to, że będziesz musiał dodać kilka przekładek M2 w kroku 7 (chociaż tak zrobiłem, ale nie jest to wymagane), zignoruj krok 8 i krok 13 (ponieważ nie ma przedniej okładki)
  2. Zamontuj serwosilnik za pomocą śrub M2 i podłącz VCC i GND serwomechanizmu bezpośrednio do 5V osłony akumulatora i podłącz wejście sterujące do pinu 0 micro:bit.
  3. Zamontuj dwa kawałki drewna, które wejdą na górę serwomechanizmu za pomocą śruby, przykręć do niego czujnik TOF, a także biały plastikowy element, który jest dołączony do serwomechanizmu.
  4. Zamontuj to ostatnie urządzenie na serwo i podłącz czujnik za pomocą I2C micro:bit, jak opisano w kroku 3.

Krok 7: Program

Otóż to ! Masz robota, którego możesz zaprogramować w micro:pythonie lub w makecode. Załączam tutaj przykładowy kod, którego użyłem do zrobienia powyższych filmów:

  • Przykład 1: Umieść radioControl.py na micro:bit robota i ReadAccelero.py na innym micro:bit, aby sterować robotem za pomocą nachylenia drugiego micro:bit.
  • Przykład 2: Umieść Autonomous.py w wersji 2 robota, który będzie badał środowisko.

To tylko podstawowe przykłady, których możesz użyć, aby pójść znacznie dalej. Na przykład bardzo lubię jednoczesną lokalizację i mapowanie, a normalnie jest wszystko, czego potrzebujesz w wersji 2 tego robota! Chociaż jedną dużą wadą dla mnie, aby wykonać taki projekt, jest to, że sterownik micro:bit PWM jest sterownikiem programowym, który używa tego samego timera dla wszystkich kanałów, co oznacza, że wszystkie ustawione przez nas PWM muszą mieć tę samą częstotliwość (co zrobiłem nie wiem, kiedy napisałem przykładowe kody, chociaż wykryłem coś dziwnego, gdy pisałem Autonomous.py).

Krok 8: Idź dalej

Nie wahaj się poprawić projektu, rozwiązać niektóre problemy, których nie widziałem. Na przykład chciałbym ostatecznie:

  • Dodaj czujnik podczerwieni na spodzie robota, aby wykrywał, czy ziemia jest czarna czy biała lub czy dochodzi do końca mojego biurka.
  • Zmień system zarządzania baterią, ponieważ jeszcze nie jestem z niego zadowolony. Rzeczywiście, w tej chwili, aby naładować akumulator, trzeba rozebrać robota, aby wyjąć ogniwo lub osłonę akumulatora… Dlatego planuję: 1. dodać złącze mini-USB z tyłu robota, które mam połączę się z osłoną akumulatora, żebym mógł go naładować; 2. Wytnij otwór na dole, aby zobaczyć diody LED z osłony akumulatora, aby zobaczyć, kiedy ładowanie się skończyło.
  • Sprawdź, czy istnieje akceptowalny sposób wysyłania PWM o różnych częstotliwościach.
  • Wypróbuj VL53L0XV2, aby zastąpić TOF10120, ponieważ może to być tańsza opcja, dzięki której będzie dostępna dla jeszcze większej liczby osób. Chociaż czytałem więcej o tym czujniku i wydaje się, że firma, która zrobiła ten tanio, celowo bardzo ciężko sobie z tym poradzić…
  • Przetestuj różne projekty kół, aby były bardziej wytrzymałe (w tej chwili spodziewałbym się, że jeśli będę wkładał i wyjmował koła wiele razy, drewno będzie stopniowo ulegać uszkodzeniu. Jeśli uczynię drewno bardziej elastycznym, modyfikując projekt, mogę być w stanie sprawić, że będzie trwać dłużej)

Ogromne podziękowania dla ludzi z zespołu robotyki mobilnej (obecnie część laboratorium Biorobotyki) EPFL, którzy pomogli mi bardzo poszerzyć moją wiedzę z zakresu elektroniki i mechaniki!

Zalecana: