[PROJEKT] Robot oparty o zestaw micro:bit oraz rozszerzenie moto:bit

Robotyka z dnia na dzień staje się coraz bardziej popularna. Dzięki tanim podwoziom, silnikom oraz płytkom z mikrokontrolerami, budowa robotów dostępna jest także dla hobbystów. W artykule przedstawiono sposób budowy niewielkiego robota mobilnego z wykorzystaniem płytki micro:bit. Do sterowania silnikami podwozia 2WD Robot Car wykorzystano rozszerzenie moto:bit, które posiada dwukanałowy sterownik silników prądu stałego, a ponadto umożliwia połączenie czujników oraz serwomechanizmów.

Do wykonania robota wykorzystano następujące elementy:

Rys. 1.  SparkFun moto:bit

SparkFun moto:bit to rozszerzenie przeznaczone do współpracy z płytką micro:bit. Moduł zawiera 2-kanałowy sterownik silników prądu stałego, pozwala również na sterowanie serwomechanizmami. Na płytce znajduje się również wyprowadzenie interfejsu I2C oraz przełącznik suwakowy, który pozwala na wyłączenie działania sterownika silników np. podczas programowania. Płytkę micro:bit można połączyć z rozszerzeniem moto:bit za pomocą złącza krawędziowego. Przedstawiono to zostało na rysunku 2.

Rys. 2. Rozszerzenie moto:bit z płytką micro:bit 

Pierwszym krokiem jest przygotowanie podwozia 2WD do współpracy z rozszerzeniem moto:bit. 2 przewody męsko-męskie należy przeciąć, w miejscu cięcia należy ściągnąć izolację, a następnie przylutować do silników w podwoziu 2WD. W ten sam sposób należy podłączyć drugi silnik (warto wybrać przewody w kolorach czerwonym oraz czarnym). Następnie trzeba podłączyć silniki do płytki moto:bit, do złącz LEFT MOTOR oraz RIGHT MOTOR (jak na rysunku 3).

Rys. 3. Silniki podłączone do rozszerzenia moto:bit

Następnym krokiem jest przymocowanie płytki micro:bit z założonym rozszerzeniem moto:bit do podwozia 2DW. Można to zrobić korzystając z otworów montażowych oraz śrub M3 lub za pomocą taśmy dwustronnej.

Rys. 4. Gotowa konstrukcja robota

Po zmontowaniu elementów robota można przejść do programowania modułu micro:bit. Do tego celu wykorzystamy narzędzie MakeCode.

Pracy edytorem MakeCode zostały poświęcone artykuły: Przykładowe programy na platformę Micro:bit – część 1 oraz część 2. Warto się z nimi zapoznać przed przystąpieniem do dalszej cześć tekstu.

Pierwszym krokiem jest dodanie bloczków do obsługi silników za pomocą moto:bit – aby to zrobić klikamy na przycisk Advanced, a następnie wybieramy opcję Add Package (czerwona ramka – rysunek 5).

Rys. 5. Wybranie przycisku Add Package celem dodanie nowej kategorii bloczków 

Pojawi się okno wyszukiwarki nowych kategorii bloczków. W polu wyszukiwarki należy wpisać frazę moto:bit, a następnie wybrać pakiet przygotowany przez firmę Sparkfun (czerwona ramka – rysunek 6).

Rys. 6. Wybór pakietu bloczków dla rozszerzenia moto:bit 

Po pobraniu pakietu bloczków na liście pojawi się nowa kategoria Moto:bit (rysunek 7).

Rys. 7. Nowa paczka bloczków do obsługi moto:bit

Zawiera ona trzy bloczki: turn motor ON/OFF (włączenie lub wyłączenie silników), move left/right motor forward/reverse at 50 % (uruchomienie silnika lewego/prawego do przodu/tyłu w zakresie od 0…100 %) oraz set left/right invert to false/true (odwrócenie kierunków obrotów silnika lewego/prawego).

Przedstawię teraz program, który sprawdzi czy silniki zostały poprawnie podłączone do rozszerzenia moto:bit, Po włączeniu płytki micro:bit silniki uruchamiane na 2 sekundy, a następnie wyłączane na 2 sekundy. Program prezentuje się następująco (plik .hex znajduje się w sekcji do pobrania oraz ma stronie: makecode.microbit.org/_1uabr4DfY9jW):

Rys 8. Kod programu pierwszego – test silników 

Na początku silniki włączane są za pomocą bloczka turn motor ON, następnie ustawiane są kierunki oraz moc z jaką będą pracować prawy oraz lewy silnik. Służą do tego bloczki move left/right motor forward at 50 %. Potem umieszczony został bloczek opóźnienia pause ms 2000 (kategoria BASIC), który spowoduje że silniki będą pracować przez 2 sekundy (2000 ms). Kolejny bloczek – turn motor OFF – wyłącza silniki. Jeszcze jedno opóźnienie sprawi że silniki będą zatrzymane przez 2 sekundy (2000 ms).

 UWAGA!
Należy zwrócić uwagę żeby przełącznik znajdujący się na płytce (czerwona ramka rysunek poniżej) znajdował się w pozycji RUN MOTOR. Tylko wtedy będzie możliwe sterowanie silnikami konstrukcji za pomocą programu. Gdy przełącznik znajduje się w pozycji STOP MOTORS, nie ma możliwości sterowania silnikami podpiętymi do rozszerzenia moto:bit.

Działanie programu pierwszego zostało przedstawione na filmie.

Jeżeli któryś silnik pracuje odwrotnie niż w programie, należy zamienić przewody od silnika miejscami.

W drugim programie konstrukcja po naciśnięciu przycisku lewego wykona pełen obrót w lewo, natomiast naciśniecie przycisku prawego spowoduje wykonanie pełnego obrotu w prawo. Kod do realizacji tego programu znajduje się poniżej (plik .hex znajduje się w sekcji do pobrania oraz na stronie makecode.microbit.org/_6MWCia7YrXzA):

Rys 9. Kod programu drugiego – obrót po naciśnięciu przycisku

Do obsługi przycisku służy bloczek on buton A pressed (kategoria INPUT). Należy w nim umieścić bloczek turn motor ON, a następnie dwa bloczki move left/right motor forward at 25 %. Aby robot obracał się lewo, prawy silnik musi jechać do przodu a lewy musi pracować do tyłu. Następnie w kodzie znajduje się następuje bloczek opóźnienia – przez ten czas będzie wykonywany obrót (wartość tego opóźnienia należy dobrać doświadczalnie, w moim przypadku była to wartość 2230).

Dla przycisku B program wygląda analogicznie. W bloczku on buton B pressed (kategoria INPUT) najpierw został umieszczony bloczek do włączenia silników – turn motor ON. Następnie są dwa bloczki move left/right motor forward at 25 %. Aby robot obracał się prawo, prawy silnik musi jechać do tyłu a silnik lewy musi do przodu. Następnie znajduje się bloczek opóźnienia pause (ms) 2000. Przez ten czas będzie wykonywany obrót (wartość tego opóźnienia należy dobrać doświadczalnie).

Działanie obu programów przedstawiono na materiale wideo:

Do pobrania

O autorze