Robot micromouse Rzuf nincza. Hubert Grzegorczyk

Podobne dokumenty
Linefollower Torpeda. Magdalena Kaczorowska

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

MozhePoyedzye. Robot klasy MiniSumo. Konrad Bednarek Michał Rataj

Raport z budowy robota Krzysio

TIGER Autonomiczny robot mobilny typu Line Follower

Podstawy budowy robotów

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

Konstrukcja Micro Mouse

Micromouse Rapid Raport końcowy. Marcin Niestrój

Zastosowanie silników krokowych jako napęd robota mobilnego

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Raport z budowy robota mobilnego klasy minisumo Łotrzyk. Maciej Majka Mateusz Ciszek

Robot mobilny klasy Line Follower Maverick. Łukasz Michalczak Anna Postawka

Projekt i wykonanie robota klasy Micromouse

Raport Robot mobilny klasy micromouse. Adrian Gałęziowski Paweł Urbaniak

MCAR Robot mobilny z procesorem AVR Atmega32

Raport z budowy robota mobilnego klasy minisumo John Cena. Jędrzej Boczar Jan Bednarski Dominik Świerzko

Wyniki (prawie)końcowe - Elektroniczne warcaby

ROBOT MOBILNY TYPU LINE FOLLOWER JACK. Michał Rybczyński

SDD287 - wysokoprądowy, podwójny driver silnika DC

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Robot mobilny klasy minisumo Wojak Wszechmocny. Robert Budziński

Proste układy wykonawcze

HELMUT Robot klasy mini sumo

STEROWNIKI ROBOTÓW ( PROJEKT ) ROBOT KLASY LINEFOLLOWER

SDD287 - wysokoprądowy, podwójny driver silnika DC

MOBOT RoboSnake. Moduł wieloczłonowego robota

Robot mobilny klasy minisumo Buster

- WALKER Czteronożny robot kroczący

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Autonomiczny robot mobilny w kategorii linefollower MORPROF

Zabezpieczenie akumulatora Li-Poly

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

SIMSON. Raport. Robot moblilny klasy Line follower. Łukasz Kaźmierczak. Dawid Kwaśnik. Małgorzata Lewandowska. Wrocław, r.

E-TRONIX Sterownik Uniwersalny SU 1.2

Mobilny robot klasy minisumo QuoShyan

Rysunek 1 Schemat ideowy sterownika GSM

System zdalnego sterowania

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Wyświetlacz funkcyjny C600E

Serwonapędy AC Serie EDC, EDB, ProNet

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Robot mobilny klasy mini-sumo Żubr

CHŁOPCZYK Robot typu Line Follower

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Sterownik momentu obrotowego silnika prądu stałego

1.2. Architektura rdzenia ARM Cortex-M3...16

KAmduino UNO. Rev Źródło:

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

PROJEKT ROBOTA MOBILNEGO TYPU LINE FOLLOWER

Instrukcja obsługi. PLD 24 - pixel LED driver DMX V MODUS S.J. Wadowicka Kraków, Polska.

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

dokument DOK wersja 1.0

Cyfrowy konwerter 0-10V na PWM EC-10V

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Robot mobilny klasy micromouse. IPreferPI. Elżbieta Bundz. Bartosz Wawrzacz. Koło Naukowe Robotyków KoNaR.

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

IRB PODSUMOWANIE:

PLD48 PIXEL DMX LED Driver

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

KAmodQTR8A. Moduł QTR8A z ośmioma czujnikami odbiciowymi

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

DEKODER DDC. 1). Adres lokomotywy. - Adres krótki i długi. CV1 Do 127

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

PX 151. DMX-RS232 Interface INSTRUKCJA OBSŁUGI

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

Falowniki Wektorowe Rexroth Fv Parametryzacja

Zestaw Startowy EvB. Więcej informacji na stronie:

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Kod produktu: MP01611

Mateusz Skiba Jakub Szymaczek. LINEFOLLOWER WiX

Xelee Mini IR / DMX512

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

SERIA D STABILIZATOR PRĄDU DEDYKOWANY DO UKŁADÓW LED

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL8AVR. Płyta bazowa dla modułów dipavr

Wysokiej jakości elementy renomowanych producentów takich jak WURTH, VISHAY, IR, MURATA zapewniają długą bezawaryjną pracę.

SPECYFIKACJA PRZETWORNIK RÓŻNICY CIŚNIEŃ DPC250; DPC250-D; DPC4000; DPC4000-D

Funkcjonowanie i budowa modelu układu regulacji temperatury. Jakub Rotkiewicz AIR 2018

Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18

1. INSTRUKCJA OBSŁUGI WYŚWIETLACZA LCD C600E USB

Robot mobilny kategorii minisumo - CyKozak 1

Wyjścia analogowe w sterownikach, regulatorach

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

Wyświetlacz funkcyjny C600E

PiXiMo Driver LED 12x350 ma

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

2.1 Porównanie procesorów

Raport z budowy robota minisumo Django Fat. Krzysztof Dąbek Szymon Jasak

POLITECHNIKA WARSZAWSKA. Wydział Elektroniki i Technik Informacyjnych. Mikrokontrolery ARM

ROBOT MOBILNY ZBIERAJĄCY INFORMACJE O POMIESZCZENIU

Modem radiowy MR10-GATEWAY-S

Moduł sterujący Air-Kit do agregatów inwerterowych AlpicAir

Płyta uruchomieniowa EBX51

Transkrypt:

Robot micromouse Rzuf nincza Hubert Grzegorczyk Koło Naukowe Robotyków KoNaR www.konar.pwr.edu.pl 3 stycznia 2016

SPIS TREŚCI SPIS TREŚCI Spis treści 1 Wstęp 2 2 Micromouse Rzuf Nincza 2 2.1 Mechanika............................. 3 2.1.1 Koła i napęd....................... 3 2.1.2 Enkodery......................... 3 2.1.3 Podsumowanie...................... 4 2.2 Elektronika............................ 4 2.2.1 Zasilanie.......................... 5 2.2.2 Mikrokontroler...................... 5 2.2.3 Czujniki.......................... 7 2.2.4 Sterowanie silnikami................... 8 2.2.5 Interfejs komunikacyjny................. 8 2.3 Program.............................. 9 2.3.1 Konfiguracja peryferii................... 9 2.3.2 Algorytm sterowania................... 9 3 Podsumowanie 10 4 Materiały źródłowe 11 1

2 MICROMOUSE RZUF NINCZA Rysunek 1: Rzuf nincza 1 Wstęp Dokument opisuje projekt robota typu micromouse, proces jego budowy i przygotowania do wystartowania w zawodach Robotic Arena 2015. Projekt był tworzony w ramach warsztatów robotycznych organizowanych przez KNR KoNaR i będzie dalej rozwijany. Opiekunem projektu był członek KNR KoNaR Witold Lipieta. Zdjęcie zbudowanego robota 1 Celem projektu było zapoznanie się z konstrukcją robota typu micromouse, problemami jakie z niej wynikają, jak i algorytmami pozwalającymi pokonać labirynt. Głównym założeniem było wystartowanie w konkurencji Micromouse 8X8 wykorzystując algorytm prawej ręki co po części udało się osiągnąć. Udało się także zmieścić w czasie z uruchomieniem robota przed zawodami. 2 Micromouse Rzuf Nincza W ramach projektu został zaprojektowany robot klasy (2,0). Taki typ robota został wybrany ponieważ najlepiej radzi sobie z jazdą w wąskich korytarzach i może rozwijać znaczne prędkości. Ponadto wszystkie topowe konstrukcje wykorzystują taki właśnie sposób poruszania. 2

2.1 Mechanika 2 MICROMOUSE RZUF NINCZA 2.1 Mechanika Konstrukcja opiera się na płytce laminatu PCB o wymiarach 7x9 cm ze ściętymi rogami. Dzięki temu robot jest lekki, solidny i zajmuję mało miejsca co jest ważne dla robotów typu micromouse. Całkowita szerokość wynosi 9 cm co pozwoli w przyszłości na pokonywanie zakrętów w labiryncie skosami. 2.1.1 Koła i napęd Jako napędu użyto dwóch silników z podwójną osią firmy Pololu z przekładnią 50:1. Obustronna oś pozwoliła na użycie enkoderów niezbędnych dla robotów micromouse, zostaną one opisane dalej. Silniki zamontowane są za pomocą plastikowych mocowań i śrub bezpośrednio do laminatu będącego podwoziem. Do poruszania się robot używa standardowych kół Pololu o średnicy 32 mm. Zapewniają one wystarczającą przyczepność przy małych przyspieszeniach i są łatwe w montażu na wał typu D. Jako trzeci punkt podparcia użyto kulki podporowej zamontowanej z tyłu robota pod akumulatorem aby robot nie wywracał się podczas przyspieszania i hamowania. Wszystkie elementy napędu okazały się dobrym wyborem. Silniki nie są nowe i działają już długi czas, a ich parametry są zgodne z notą katalogową. 2.1.2 Enkodery W konstrukcji zastosowano nowatorskie rozwiązanie dotyczące enkoderów. Na wały wystające bezpośrednio z silników za pomocą kleju na gorąco zostały zamontowane tekturowe tarcze z nadrukowanymi polami biało-czarnymi (5 pól białych i 5 pól czarnych). Przed nimi w odległości około 1 mm znajdują się małe moduły z dwoma czujnikami odbiciowymi KTIR0711S. Zamontowane są one do podwozia za pomocą listw kątowych goldpin. Taka budowa enkoderów jest solidna i pozwoliła na tanie pozycjonowanie robota. Dzięki zastosowanym enkoderom i dużej przekładni silników udało się uzyskać 1029 impulsów na obrót koła co daje około 0.1 mm pokonanej drogi na impuls. Zastosowane enkodery spełniają swoje zadanie, działają pewnie i nie gubią impulsów, jednak w przyszłości potrzebna będzie większa ilość impulsów na obrót koła. Łatwo można to osiągnąć zmieniając tarcze enkoderów na takie z większa ilością pól. 3

2.2 Elektronika 2 MICROMOUSE RZUF NINCZA Rysunek 2: Wytrawiona płytka PCB 2.1.3 Podsumowanie Konstrukcja mechaniczna robota została dobrze przemyślana i nie sprawia problemów. Mankamentem jest brak miejsca na baterie. W dalszych etapach konieczna będzie zmiana baterii na mniejszą. Można także dodać mały radiator na stabilizator napięcia, ale nie jest to konieczne,temperatura mieści się w normie. 2.2 Elektronika Schemat elektroniczny powstał w programie Eagle. Płytka PCB była projektowana tak, aby można ją było wytrawić w domu za pomocą termotransferu. Jest dwustronna, co zwiększa ilość przelotek ale dzięki temu robot jest solidniejszy i nie ma na nim plątaniny kabli. Możliwe dzięki temu było użycie szerszych ścieżek dla zasilania, które głównie przebiegają dolną warstwą. Zdjęcie wytrawionej płytki 2. Podczas termotransferu pojawiło się wiele problemów związanych z wytworzeniem w warunkach domowych płytki z dużą dokładnością. W wyniku zbyt dużego nacisku ścieżki delikatnie się rozmyły. Udało się to naprawić za pomocą igły i dalej płytka została poprawnie wytrawiona. W następnych projektach konieczne będzie zastosowanie druku o wyższej jakości. 4

2.2 Elektronika 2 MICROMOUSE RZUF NINCZA 2.2.1 Zasilanie Robot zasilany jest akumulatorem litowo polimerowym, który jest lekki, cechuje go wysoka gęstość energii i wydajność prądowa. Aby zapewnić maksymalną wydajność silników zastosowano akumulator z dwoma ogniwami połączonymi szeregowo co daję napięcie nominalne 7.4 V. Jest to napięcie idealne dla użytych silników. Zasilane są one bezpośrednio z baterii przez mostek H. Schemat zasilania został przedstawiony na rysunku 3. Zabezpieczenie przed odwrotną polaryzacją zostało zamontowane przed stabilizatorem napięcia 3.3 V, który zasila mikrokontroler i czujniki. Przed odwrotnym podłączeniem baterii zabezpiecza gniazdo baterii. Nie wykorzystano diody zabezpieczającej bezpośrednio za baterią ponieważ powodowałaby ona spadek napięcia zasilania silników. Przez dzielnik napięcia doprowadzone jest napięcie baterii do mikrokontrolera. Pozwala to za pomocą przetwornika ADC kontrolować zużycie baterii. Dioda informująca o poprawnym zasilaniu robota jest sterowana przez mikrokontroler. Pozwala to nie tylko na sprawdzenie czy jest poprawnie podpięte zasilanie, ale także czy udało się poprawnie zainicjować robota. Użyty przełącznik odcina zasilanie logiki robota i tym samym wyłącza go. Mostek H podpięty bezpośrednio do baterii po odłączeniu napięcia logiki zużywa minimalną ilość prądu rzędu mikro amperów. 2.2.2 Mikrokontroler W robocie użyty został mikrokontroler STM32F103RCT6. Ma on następujące cechy: Maksymalne taktowanie to 72MHz. Typowy pobór prądu przy włączonych peryferiach to 60 ma. Posiada trzy dwunastobitowe przetworniki ADC z 21 kanałami. Posiada 2 dwunastobitowe przetworniki DAC. Umożliwia korzystanie z DMA. 5

2.2 Elektronika 2 MICROMOUSE RZUF NINCZA Rysunek 3: Schemat zasilania Rysunek 4: Schemat podłączenia mikrokontrolera 6

2.2 Elektronika 2 MICROMOUSE RZUF NINCZA Rysunek 5: Schemat czujnika odbiciowego Posiada osiem szesnastobitowych timerów, z czego 2 mają interfejs dla enkoderów. Posiada wiele interfejsów komunikacyjnych USART, I 2 C, SPI. Ten mikrontroler został wybrany głównie ze względu na łatwą dostępność, przystępną cenę i fakt, że posiada sprzętowy interfejs dla enkoderów. Wybrany został mikrokontroler STM w celu poznania jego architektury i sposobów programowania. Ważną cechą jest także możliwość łatwego debugowania za pomocą interfejsu JTAG. Schemat podłączenia mikrokontrolera pokazany został na rysunku 4. 2.2.3 Czujniki Jedynymi czujnikami w robocie są enkodery oraz cztery czujniki odbiciowe złożone z diody IR i fototranzystora. Dwa skierowane do przodu i dwa skierowane na boki. Dzięki czujnikom odbiciowym możemy określić odległość od ścian i pozycjonować robota w labiryncie. Pozwalają się one także orientować, którędy można jechać. Enkodery służą do określania prędkości, położenia i przejechanej drogi. Wszystkie czujniki mają wyjścia analogowe, sygnały z enkoderów są zamieniane w impulsy cyfrowe przez interfejs mikrokontrolera. Sygnały z fototranzystorów są także podpięte bezpośrednio do mikrokontrolera do przetwornika ADC. Do sterowania diodą IR użyto tranzystorów NPN. Schemat podłączenia czujnika odbiciowego można zobaczyć na rysunku 5. Zastosowane diody IR maja kąt świecenia 25 dlatego dodane zostały osłonki na diody, jak i fototranzystory. Rezystor dla diody led oraz rezystor pull-up przy fototranzystorze zostały dobrane doświadczalnie. 7

2.2 Elektronika 2 MICROMOUSE RZUF NINCZA Rysunek 6: Schemat podłączenia silników i mostka H 2.2.4 Sterowanie silnikami Do sterowania silnikami użyto popularnego mostka TB6612FNG, którego budowa oparta jest na tranzystorach MOSFET. Ma on niską rezystencję przewodzenia i może przewodzić stosunkowo duże prądy - około 1.2 ampera na kanał. Dla robota typu micromouse jeden mostek wystarcza na dwa użyte silniki ponieważ rzadko kiedy dochodzi do blokowania się kół. Może on być bez problemu zasilany napięciem logiki do 6 V i napięciem dla silników do 15 V. Silniki zasilane są bezpośrednio z baterii napięciem z zakresu 8.4-6.3 V w zależności od stopnia naładowania akumulatora. Schemat został przedstawiony na rysunku 6 2.2.5 Interfejs komunikacyjny Do komunikacji z robotem został przewidziany interfejs szeregowy USART. Pozwala on na komunikacje z komputerem i umożliwia podłączenie dodatkowych modułów. Ponadto robot posiada 3 przyciski i 4 diody LED służące do prostej komunikacji z użytkownikiem. Wyprowadzony został także interfejs I 2 C, który w przyszłości może służyć do podłączenia na przykład żyroskopu. Dodany może zostać także moduł bluetooth, który można podłączyć do interfejsu USART. Podstawowym sposobem komunikacji z robotem jest interfejs debugowania i programowania JTAG. Okazało się, że do poprawnej komunikacji potrzebne są 3 przewody SWCLK, SWDIO oraz NRST. Bez NRST programowanie możliwe było tylko przy odpowiednim sprowadzeniu mikrokontrolera w stan zresetowany ręcznie. Ponadto użycie długich kabli do programowania 8

2.3 Program 2 MICROMOUSE RZUF NINCZA Rysunek 7: Błędne podłączenie interfejsu JTAG może powodować nieprawidłową komunikacje między programatorem i mikrokontrolerem. Błędy zostały poprawione i mikrontroler bez problemu daje się programować i debugować. Schemat z błędnym podłączeniem interfejsów 7. 2.3 Program Program sterujący robotem jest napisany w środowisku C. Struktura inicjalizacyjna dla mikrokontrolera została wygenerowana za pomocą programu STM32CubeMX, który pozwolił na szybkie uruchomienie robota. Dalej algorytm był rozwijany w środowisku Eclipse. Wszystkie programy są w pełni darmowe. 2.3.1 Konfiguracja peryferii Algorytm wspomagany jest przez wykorzystanie różnych peryferii mikrontrolera. Podstawą czasu dla robota jest przerwanie od systemowego zegara SysTick wywoływane z częstotliwością 1 khz. Dalmierze robota są odczytywane za pomocą ADC, do ciągłego aktualizowania zmiennej zawierającej aktualne odczyty wykorzystywane jest DMA. Enkodery są podpięte do specjalnych interfejsów timerów skonfigurowanych do pracy z enkoderami. Odciąża to w znacznym stopniu procesor i pomaga w dokładnym pozycjonowaniu robota. PWM dla silników jest sprzętowo generowane przez timer z częstotliwością 24 khz. 2.3.2 Algorytm sterowania Do sterowania robotem zastosowany został pofiler translacji, rotacji i skrętów oraz regulator PD na każde koło. Dodatkowo używany jest także regulator PD przy kalibrowaniu robota względem ścian. Główna pętla PD sterowania silnikami, która dąży do zadanej pozycji chodzi z częstotliwością 1 khz, 9

3 PODSUMOWANIE a pętla profilera położenia odświeża zadaną pozycje z częstotliwością 100 Hz. Pozwala to na płynne sterowanie robotem i dotarcie na zadaną pozycje z zadanym przyspieszeniem i opóźnieniem. Aby uprościć implementacje profilerów położenia przed każdym ruchem odczyty z enkoderów muszą być zerowane. Przez brak zerowania pojawiał się błąd przez, który robot robił nagły niekontrolowany obrót. Algorytm poruszania się po labiryncie jest prosty i używa reguły prawej ręki. W dalszych planach jest ulepszenie pozycjonowania w labiryncie i zaimplementowanie przeszukiwania labiryntu w celu znalezienia najszybszej trasy. Na chwile obecną robot potrafi ustawić się odpowiednio względem ścian tylko kiedy znajduję się naprzeciwko ściany albo gdy zawraca. 3 Podsumowanie W dokumencie opisano projekt i proces budowy robota mobilnego klasy micromouse. Udało się stworzyć działający pojazd zdolny do rozwiązywania najprostszych labiryntów. Zostały zrealizowane wszystkie cele postawione na początku projektu, które zakładały uruchomienie najprostszych algorytmów rozwiązywania labiryntów. Okazało się, że prowizoryczne rozwiązanie budowy enkoderów spisuję się znakomicie, także mechanicznie konstrukcji nie można nic zarzucić. Dużą wadą robota są słabej jakości dalmierze. Warto będzie wymienić je na lepsze, diody IR mogły by mieć mniejszy kąt świecenia. Także koła mogły by mieć lepszą przyczepność. Projekt z pewnością będzie dalej rozwijany i nie jest jeszcze zakończony. Dużo rzeczy można poprawić. Algorytm wymaga dalszego rozwijania i udoskonalania. Na pewno warto będzie zaimplementować algorytm przeszukiwania labiryntu oraz dla czujników odległości kompensacje oświetlenia. Ponadto potrzebna będzie funkcjonalność pozwalająca na pozycjonowanie robota względem ścian w czasie ruchu. Enkodery można także wymienić na lepsze. Projekt pozwolił zaznajomić się z mikrokontrolerami STM oraz poznać konstrukcje typu micromouse. Ponadto zdobyte zostało cenne doświadczenie w projektowaniu robotów tego typu i układów z mikrokontrolerami STM. Konstrukcja wystartowała w Robotic Arenie 2015 w kategorii micromouse 8X8. Nie udało się dojechać do końca labiryntu przez drobny błąd w programie, który teraz został już naprawiony. Robot w pewnych szczególnych przypadkach robił gwałtowny obrót przez co tracił kontrolę nad swoją pozycją. Działo się to przez błędne założenie przy projektowaniu profilera rotacji. Kiedy nie pojawiał się ten przypadek Rzuf Nincza potrafił pokonywać fragmenty labiryntu regułą prawej ręki. Film ze startu [4]. 10

LITERATURA Rysunek 8: Zdjecie robota 4 Materiały źródłowe Ogólny zarys robota został oparty na innych konstrukcjach tego typu. Dużo wiedzy zostało zaczerpnięte ze strony Forbot[1], a głównie z artykułu o robotach mobilnych klasy (2,0)[2] i kursu programowania mikrokontrolerów STM32[3]. Część informacji o mikrokontrolerach STM32 zostało wzięte z warsztatów organizowanych przez KNR KoNaR. Literatura [1] www.forbot.pl [2] http://forbot.pl/blog/artykuly/programowanie/ sterowanie-robotem-mobilnym-klasy-20-id2708 [3] http://forbot.pl/blog/artykuly/programowanie/ stm32-praktyce-1-platforma-srodowisko-id2733 [4] https://www.youtube.com/watch?v=do0qzupj58w 11