Raport z budowy robota mobilnego klasy mini sumo Rudy103

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

MozhePoyedzye. Robot klasy MiniSumo. Konrad Bednarek Michał Rataj

Linefollower Torpeda. Magdalena Kaczorowska

Robot mobilny klasy minisumo Buster

Raport z budowy robota Krzysio

Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

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

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

MCAR Robot mobilny z procesorem AVR Atmega32

Robot mobilny klasy minisumo Wojak Wszechmocny. Robert Budziński

Podstawy budowy robotów

AP3.8.4 Adapter portu LPT

Robot mobilny klasy mini-sumo Żubr

MOBOT RoboSnake. Moduł wieloczłonowego robota

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

Instrukcja obsługi AP3.8.4 Adapter portu LPT

CHŁOPCZYK Robot typu Line Follower

Jak zbudować robota minisumo?

TIGER Autonomiczny robot mobilny typu Line Follower

Mobilny robot klasy minisumo QuoShyan

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

SYGNALIZATOR OPTYCZNO-AKUSTYCZNY SPL-2030

Proste układy wykonawcze

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

- WALKER Czteronożny robot kroczący

REGULATORY TRÓJFAZOWE PRĘDKOŚCI OBROTOWEJ Z SERII FCS FIRMYY CAREL

Krótka informacja o bateriach polimerowych.

Zastosowanie silników krokowych jako napęd robota mobilnego

4 Adres procesora Zworkami A0, A1 i A2 umieszczonymi pod złączem Z7 ustalamy adres (numer) procesora. Na rysunku powyżej przedstawiono układ zworek dl

HELMUT Robot klasy mini sumo

Politechnika Wrocławska

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

Robot klasy minisumo

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

Moduł mocy regulowany. Opis modułu

SPIS TREŚCI 1. OPIS I CHARAKTERYSTYKA TECHNICZNA 2. INSTALACJA 3. DZIAŁANIE 4. DZIAŁANIE MANUALNE 5. SZCZEGÓLNE ZASTOSOWANIA 6. KONSERWACJA 7.

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

Raport z robota klasy minisumo Thingrin. Rafał Jóźwik Patryk Pham Quoc Paweł Ryman

INSTRUKCJA MONTAŻU Tylko dla autoryzowanych serwisantów.

Instrukcja sterowania T4Power. Sterowanie T4Power. Instrukcja uruchomienia i obsługi.

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Centrala alarmowa ALOCK-1

Zespół Szkół Technicznych w Skarżysku - Kamiennej. Projekt budowy Zasilacza regulowanego. Opracował: Krzysztof Gałka kl. 2Te

LOKALIZATOR PRZENOŚNY KDZ-3C.

DWUKIERUNKOWY REGULATOR SILNIKA DC VDC 20A

Instrukcja obsługi sterownika PIECA SP100

JAZZ OPLC JZ20-R10 i JZ20-R16

INSTRUKCJA OBSŁUGI KAMERY obrotowej PTZ N-CAM 870

"Sterownik MASTER-SLAVE" wersja 2.0

Instrukcja użytkownika JAZZ OPLC JZ20-R31. Poradnik montażu Micro OPLC

LOKALIZATOR PRZENOŚNY KDZ-3C. 1. WSTĘP. 2. Zastosowanie. 3. Budowa. System kontroli doziemienia KDZ-3. ZPrAE Sp. z o.o. 1

ORVALDI ATS. Automatic Transfer Switch (ATS)

INSTRUKCJA INSTALATORA

Wyniki (prawie)końcowe - Elektroniczne warcaby

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Falownik FP 400. IT - Informacja Techniczna

SML3 październik

PX 151. DMX-RS232 Interface INSTRUKCJA OBSŁUGI

dokument DOK wersja 1.0

Instrukcja instalacji czujników linkowych Zawartość

Instrukcja obsługi i montażu Modułu rezystora hamującego

Projektowanie i produkcja urządzeń elektronicznych

Touch button module. Moduł przycisku dotykowy z podświetleniem LED

INSTRUKCJA OBSŁUGI. Przemysłowy Switch Ethernetowy 10SC portów 10/100 Mb/s. Niezarządzalny. Montaż na szynie DIN

TDWA-21 TABLICOWY DWUPRZEWODOWY WYŚWIETLACZ SYGNAŁÓW ANALOGOWYCH DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

PROJEKT ROBOTA MOBILNEGO TYPU LINE FOLLOWER

Moduł Komunikacyjny MCU42 do systemu AFS42

Dane techniczne analizatora CAT 7

Zasilacz laboratoryjny liniowy PS 1440

PÓŁKA TELEKOMUNIKACYJNA TM-70 INSTRUKCJA OBSŁUGI

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

POLSKA NORMA DLA SYSTEMU STEROWANIA CYFROWEGO MAKIET MODUŁOWYCH W SKALI H0

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

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Podstawy technik wytwarzania PTWII - projektowanie. Ćwiczenie 4. Instrukcja laboratoryjna

Zasilacz Buforowy LZB40V model: 1201

Nowy MULTIMETR z czujnikiem Halla

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

LABCONTROL EASYLAB. The art of handling air

ZASILACZ DC AX-3003L-3 AX-3005L-3. Instrukcja obsługi

Projekt i wykonanie robota klasy Micromouse

Sygnalizator zewnętrzny AT-3600

PX342. Driver PWM 1x10A INSTRUKCJA OBSŁUGI

SK Instrukcja instalacji regulatora węzła cieplnego CO i CWU. Lazurowa 6/55, Warszawa

Elastyczne systemy wytwarzania

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

PIŁA ELEKTRYCZNA DO METALU

Dziękujemy za zaufanie i wybór naszego urządzenia.

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

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Modem radiowy MR10-GATEWAY-S

Dalsze informacje można znaleźć w Podręczniku Programowania Sterownika Logicznego 2 i w Podręczniku Instalacji AL.2-2DA.

INSTRUKCJA INSTALACJI I UŻYTKOWANIA

Obrotomierz cyfrowy do silników wysokoprężnych 6625 Nr zam

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

Zabezpieczenie akumulatora Li-Poly

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

ZL10PLD. Moduł dippld z układem XC3S200

Obudowa komputerowa ATX

Transkrypt:

Raport z budowy robota mobilnego klasy mini sumo Rudy103 Karol Bojar Tomasz Jagielski Koło Naukowe Robotyków KoNaR www.konar.pwr.wroc.pl Wrocław 2012

1. Wstęp Celem projektu było wykonanie robota klasy minisumo. Budowa odbywała się w ramach warsztatów rekrutacyjnych organizowanych przez Koło Naukowe Robotyków KoNaR w 2011r, którego ukończenie umożliwiało przyjęcie w szeregi koła. Z tego miejsca pragniemy podziękować wszystkim starszym kolegom i koleżankom, za przekazaną wiedzę oraz podzielenie się szczegółową wiedzą i rozwiązaniami. Robot zadebiutował podczas zawodów Robotic Arena 2011, zajmując I miejsce w swojej kategorii. 2. Założenia konstrukcyjne Przed przystąpieniem do budowy wiele godzin poświęcono na szczegółowe ustalenie założeń. Autorzy projektu za cel postawili sobie stworzenie konstrukcji, która mogłaby konkurować z najlepszymi. Zdecydowano się na konstrukcję dwukołową z silnikami umieszczonymi maksymalnie z tylu. Miało to spowodować przeniesienie masy na pług oraz umożliwić defensywę w niektórych sytuacjach. Zaletą rozwiązania było zmniejszenie prawdopodobieństwa, że robot zostanie podbity przez przeciwnika, niestety, odbyło się kosztem zmniejszenia przyczepności kół. Kolejnym założeniem było skupienie większości masy w podstawie nośnej, oraz ograniczenie wysokości robota. Było to możliwe dzięki wykorzystaniu środowiska CAD 3D Inventor2012. Mechanika została w całości zaprojektowana w tym programie. Pozwoliło to na bardzo efektywne wykorzystanie przestrzeni oraz uchroniło przed błędami i kolizjami. Dodatkowo, dokładne zamodelowanie elementów, wraz z ich masami umożliwiło dobranie odpowiedniej grubości podstawy. Jako materiał wybrano mosiądz, ze względu na jego dużą gęstość, zadowalającą twardość i łatwość obróbki dostępnymi narzędziami. Autorzy dysponowali frezarką CNC własnej konstrukcji, na której zostały wykonane wszystkie podzespoły. Ostateczne wymiary to 97x98x27mm. Rysunek 1. Rudy 103

3. Konstrukcja mechaniczna 3.1. Podstawa nośna Wykonana została z blachy mosiężnej o grubości 5mm. Wybór podyktowany był łatwością obróbki oraz dużą gęstością stopu. Niestety, brak możliwości zdobycia małej ilości blachy o stosunkowo dużej grubości, zmusił do przetopienia i odlania bryły własnoręcznie, która następnie mogła zostać poddana obróbce. Z powodu braku dostępności nie zastosowano topnika, skutkiem czego w strukturze powstały pęcherze powietrza (Rys.2). Rysunek 2. Niedoskonałości powstałe podczas odlewu. Podczas planowania powierzchni, na skutek obecności w materiale kawałka twardego metalu, nastąpiło zniszczenie frezu i praca musiała być kontynuowana innym, stępionym narzędziem. Spowodowało to powstanie nierównej powierzchni i złej jakości krawędzi (Rys. 3). Od spodu wyfrezowano otwory, wraz z napuszczeniami na łby śrub, oraz gniazda na czujniki białej linii. Podstawa, oprócz nośnej, spełnia również funkcję pługu. Dysponując maszyną jedynie 3osiową, niemożliwe było bezpośrednie wykonanie skosu, dlatego frezowano go metodą raz, przy razie, ze skokiem 0.1mm, co pozwoliło uzyskać w miarę równą powierzchnię.

Rysunek 3. Podstawa, widok z dołu 3.2. Napęd Jako napęd użyto silniki Pololu HP z przekładnią 50:1. Zapewniają one dobre osiągi prędkości i zadowalający moment obrotowy, który ma bezpośredni wpływ na dynamikę. Koła jakie zastosowano to standardowe Solarbotics RW2i. Silniki przykręcono do podstawy stosując podkładki dystansowe (Rys. 4), które pozwalają regulować prześwit i dodatkowo tworzą kanał, którym przeprowadzone są przewody czujników białej linii. Rysunek 4. Podkładki dystansowe

3.3. Obudowa Obudowa została wykonana z laminatu jednostronnego o grubości 1mm. Poszczególne ściany zostały wyfrezowane (Rys. 6), a następnie zlutowane. Wbrew pozorom, konstrukcja jest bardzo sztywna i solidna, a za razem lekka, co pozwoliło przenieść kilka dodatkowych gramów w podstawę. Stabilność zawdzięczana jest pochyłej ściance, która przeciwdziała siłom koszącym. Obudowa przykręcana jest do robota za pomocą śrub M3. Uchwyty do tego przystosowane, również zostały wycięte z laminatu i przylutowane (Rys. 7). Problemem okazało się to, iż wszystkie mocowania wykonano takie same. Brak elementów prawych i lewych zmusił do lutowania ich miedzią do dołu, co po pierwsze, było uciążliwe, a po drugie przyczyniło się do powstania w późniejszym czasie poważnych problemów. Całość została pomalowana czarnym spray em, by ograniczyć widzialność przez przeciwnika Rysunek 5. Kompletna obudowa Rysunek 6. Wyfrezowane elementy obudowy (nie zostały one użyte, gdyż przez niedopatrzenie, napis wygrawerowany został po złej stronie, co uniemożliwiłoby zlutowanie) Rysunek 7. Uchwyt mocujący

3.4. Osłona Z powodu umiejscowienia płytki PCB na w górnej części robota, była ona bezpośrednio narażona na uszkodzenie podczas walki. Jego stosunkowo niski profil, stwarzał zagrożenie przejechania pod przeciwnikiem, co dla delikatnej elektroniki mogłoby mieć tragiczny skutek. Dlatego zdecydowano się na zainstalowanie osłony. Została ona wykonana z 2mm plexi i zamocowana na gnieździe KANDA, co umożliwia szybki demontaż, a ponieważ jest przezroczysta, nie utrudniała kontroli i czynności serwisowych. (Rys. 8) Rysunek 8. Osłona PCB 3.5. Płytka PCB Płytkę zaprojektowano w programie Eagle. Najwięcej trudności sprawiło dopasowanie rozmieszczenia elementów do ukształtowania dostępnej przestrzeni. Jest to płytka dwustronna, wykonana została metodą termo transferu. Kształt został wycięty frezarką CNC, została również wtedy powiercona. 4. Zasilanie Robot zasilany jest pakietem li-po 7.4V firmy Kokam o pojemności 910mAh. Wybór tej wielkości akumulatora okazał się zgubny, gdyż wymuszał zastosowanie wielu zmian w konstrukcji. Problemem okazało się znalezienie odpowiedniego miejsca do jego zainstalowania. Umieszczono go pod płytką PCB, miedzy czujnikami a silnikami. Brak przenośności plików między Inventorem a Eaglem uniemożliwiał wizualizację płytki i odpowiednie rozmieszczenie elementów, co w połączeniu ze źle zwymiarowanym przez dystrybutora pakietem spowodowało, iż stabilizatory zostały rozmieszczone w zbyt małej odległości. Przy użyciu nieco drastycznych metod udało się dostosować ich kształt (Rys.11) by spełniały wymogi. Konieczna okazała się również przeróbka samego li-pol a. Standardowe, znacznej grubości przewody zasilające oraz złącze balastera skutecznie powiększało jeden z wymiarów akumulatora, dlatego zdecydowano się na jego rozebranie i przylutowanie własnych kabli. Na szczęście okazało się, że ogniwa połączone są miniaturową

płytką PCB, dlatego przeróbka ograniczała się jedynie do rozcięcia folii zaciśniętej na baterii, przelutowania przewodów oraz zaizolowania(rys.9). Zostało zainstalowane złącze prądowe D-DINS, które umożliwia odłączenie pakietu od płyty głównej. Na płycie zamontowano gniazdo golpinowe do ładowania pakietu. Rysunek 9. Akumulator po przeróbkach Zauważono, iż po stoczeniu ok. 10 walk, z akumulatora pobrane zostało niewiele ponad 100mAh co świadczy o zbędnym przewymiarowaniu jego wielkości. Układ załączany jest w dość prymitywny, lecz skuteczny sposób- poprzez zworkę (Rys.10). Długo zastanawiano się nad typem włącznika, który musiał być przede wszystkim mały. Podczas zawodów pożegnane zostało ok. 8 zworek, lecz bynajmniej nie z powodu ich zniszczenia przepływającym prądem. Zwyczajnie się gubiły. Dlatego też rozwiązanie można nazwać zawodnym. Z racji umieszczenia części zasilającej w przedniej części robota, złącze służące do włączanie układu również musiało się tam znajdować. Aby uniknąć sytuacji wyciągnięcia zworki podczas walki, goldpiny do tego służące zostały pochylone. Rysunek 10. Złącze ładowarki (po lewej) oraz włącznik zasilania

Zasilanie logiki składa się z dwóch części: zasilanie cyfrowych czujników przeciwnika (6x Sharp GP2Y0D340K) oraz pozostałej elektroniki (procesor, czujniki białej linii). Napięcie stabilizowane jest przy pomocy regulatorów liniowych LM2940. Są to układy low-drop, o wydajności 1A. W bezruchu robot pobiera 500mA, z czego 240mA pobierają dalmierze, 200mA czujniki białej linii, a resztę pozostała elektronika. W tych warunkach na stabilizatorach odkłada się ok. 0.6W (w zależności od napięcie na baterii). Tab y układów zostały przylutowane do pola masy w celu zapewnienia odpowiedniego odprowadzania ciepła (Rys. 11), co sprawia, że podczas pracy ich temperatura nie przekracza 45. Rysunek 11. Stabilizator z wyprofilowanymi pinami W układzie zamontowany został bezpiecznik oraz system zabezpieczający przed odwrotną polaryzacją (prąd płynący przez diodę przepali bezpiecznik). 5. Stopień mocy Jako sterownik silników zastosowane znane mostki TB6612FNG. Charakteryzują się one maksymalnym, ciągłym prądem na poziomie 1.2A. Z powodu zastosowania konstrukcji wykorzystującej całą dopuszczalną masę i balansem nacisku koła-pług na poziomie 50% należało zapewnić możliwość szybkiego hamowania i zmiany kierunku jazdy. Wykorzystanie hamowania poprzez zwarcie zacisków silnika byłoby mało skuteczne, dlatego konstrukcja hamowana jest przeciw prądem. Powoduje to chwilowy przepływ prądu znacznie przekraczający prąd przy zatrzymanej osi, który dla zastosowanych silników wynosi 1.6A. W związku z powyższym sterownik musi wytrzymywać udary prądowe na poziomie 3A. Dlatego, by uniknąć uszkodzenia zmostkowano kanały każdego z układów. 6. Czujniki białej linii Do wykrywania skraju ringu użyto czterech czujników odbiciowych KTIR0711S. Charakteryzują się one małymi wymiarami i stosunkowo łagodnym przebiegiem czułość i funkcji odległości (Rys. 12). Zostały one przylutowane do płytki o wymiarach 12x5mm, na której mieściły się również rezystory ograniczające prąd diody nadawczej, oraz podciągający do wyjście fototranzystora. Płytki wklejono w odpowiednie kieszenie klejem dwuskładnikowym (Rys. 13). Sygnał analogowy pochodzący z czujników podawany jest na wejście nieodwracające wzmacniacza operacyjnego, pracującego w konfiguracji komparatora. Zastosowano układ typu rail-to-rail AD8648ARZ niewymagający zasilania symetrycznego. System wyposażony jest w automatyczną kalibrację. Wykorzystano w tym celu poczwórny scalony potencjometr cyfrowy MCP4462. Komunikacja odbywa się po szynie.

Kalibracja to proces dwuetapowy, powtarzany dla każdego z czujników. Początkowo robot stawiany jest na białej powierzchni i następuje zwiększanie napięcia odniesienia od minimalnego, do momentu zmiany stanu na wyjściu wzmacniacza. Następnie gdy robot ustawiony jest na białej powierzchni napięcie jest zmniejszane od maksimum do uzyskania tego samego efektu. W ten prowizoryczny sposób mierzone jest przybliżone napięcie na jasnej i ciemnej powierzchni. Jako napięcie odniesienia ustawiany jest środek zmierzonego przedziału. Rysunek 12. Czułość czujników KTIR0711S w funkcji odległości Rysunek 13. Czujnik białej linii osadzony w gnieździe

7. Wykrywanie przeciwnika Do lokalizacji przeciwnika wykorzystano sześć czujników Sharp GP2Y0D340K rozmieszczonych jak na Rys. 14. Cechują się one zasięgiem do 40cm (zmierzone 55cm), czasem reakcji na poziomie 8ms i punktową charakterystyką. Dzięki temu, umieszczenie dwóch równoległych czujników z przodu pozwoliło na śledzenie przeciwnika i szybkie wykrywanie kierunku jego ucieczki. Kolejne dwa czujniki, umieszczone po bokach pod kątem 60, mają za zadanie obserwację otoczenia. Umieszczono również dwa czujniki z tyłu, pod kątem 15 względem pcb. Umożliwiały one szybką reakcję w przypadku zajechania robota od tyłu. Elementy te zostały przylutowane do płytki w sposób widoczny na Rys. 15 Rysunek 14. Rozmieszczenie czujników przeciwnika Rysunek 15. Sposób montażu czujników przeciwnika 8. Sterowanie Układ zarządzany jest przez mikrokontroler Atmega324A. Wybór serii xx4 podyktowany był możliwością wywoływania przerwań zmianą stanu na każdym z pinów, co umożliwiło niemal natychmiastowe podejmowanie decyzji. Procesor taktowany jest zewnętrznym zegarem 20MHz. Problemem okazał się programator, gdyż popularny USBasp, nawet po aktualizacji firmware, nie współpracuje z zastosowanym układem. Komunikacja ze światem zewnętrznym odbywa się za pomocą dwóch przycisków i trzech diod. Przewidziano możliwość późniejszego dodania obsługi RS232 i komunikacji z PC poprzez moduł oparty na układzie MCP2200. 9. Software Program został napisany w języku C i skompilowany w środowisku AVRStudio 5 i zajmuje 3,8kB. Świadczy to o tym, że został wybrany procesor o zbyt dużej pamięci flash. Do komunikacji z potencjometrem cyfrowym wykorzystano sprzętową obsługę TWI ( ) z procedurami zaczerpniętymi wprost z noty katalogowej. Silniki sterowane są sygnałem PWM, generowanym przez Timer1 działający w trybie fastpwm. Cały algorytm sterowania realizowany jest w obsłudze przerwań. Analogowy sygnał z czujników białej linii przechodząc przez wzmacniacz jest progowany, skutkiem czego uzyskany na wyjściu poziom to 0-1. Czujniki przeciwnika mają zintegrowany układ formujący i bez dodatkowych elementów, na wyjściu mamy do dyspozycji sygnał cyfrowy. Dążono do tego, by wszystkie sygnały ze świata zewnętrznego docierające do procesora były sygnałami zero-jedynkowymi. Pozwoliło to użyć sprzętowe przerwania do wykrywania

przeciwnika oraz krańca dohio. Ciekawą rzeczą z tym związaną jest niemal pusta pętla główna. Znajduje się w niej jedynie obsługa menu i procedura uruchamiania przerwań. Sam algorytm jest prosty go granic możliwości. Powstawał w ostatnią noc przed zawodami, ale jest żywym przykładem na to, że prowizorki działają najlepiej. Opiera się na dwóch stanach- odwrotu od białej linii oraz ataku połączonego z szukaniem. Jego idea opiera się na prostym założeniu: skoro któryś czujnik zauważył przeciwnika, to wysoce prawdopodobne jest również to, że jeśli robot obróci się o pewien kąt, to któryś z kolejnych czujników wykryje oponenta. W programie wygląda to następująco: zadeklarowane są dwie globalne tablice volatile int8_t atack_diff[11]={0,70,50,10,0,-10,-50,-70,-70,80,70}, attack_v[11]= {50,30,30,90,100,90,30,30,0,0,0}; W momencie otrzymania przerwania, które wyzwalane jest zmianą stanu na którymś z pinów danego portu (dla danego portu istnieje tylko jeden wektor przerwań), w jego obsłudze analizowane są stany wejść z czujników przeciwnika i przydzielany jest odpowiedni indeks i zapisywany pod zmienną sharp. Przykładowo: stan aktywny pojawił się na wejściu z czujnika lewego bocznego, odpowiednia zmienna sharp przyjmuje wartość 1, stan aktywny na lewym bocznym i lewym przednim- zmienna=2, itp. Wartość 0 jest to wartość jaką inicjalizowana jest zmienna Sharp i odpowiada za start robota. Następnie, na podstawie tej wartości sterowane są silniki w sposób: left_m(attack_v[sharp]+attack_diff[sharp]); right_m(attack_v[sharp]-attack_diff[sharp]); Wartość zmiennej sharp aktualizowana jest wyłącznie w przerwaniu, co oznacza, że gdy nie następuje żadna zmiana wejść, robot jedzie w kierunku, w którym ostatnio znajdował się przeciwnik. W momencie dojechania do skraju ringu, blokowana jest możliwość zmiany prędkości w obsłudze Sharpów, lecz dzięki wykorzystaniu priorytetu przerwań, czujniki przeciwnika są aktywne i aktualizacja indeksu odbywa się. Sam proces ucieczki od białej linii nie jest czymś niezwykłym. Istnieje tablica, z której w zależności od czujnika, pobierane są wartości prędkości. Właściwie jest to sekwencja, gdyż co pewien czas (ok. 100-150ms) pobierana jest następna wartość z tejże tablicy. Było to konieczne ze względu na wspomniane problemy z hamowaniem. Zawracanie polega na wysterowaniu silników z maksymalną mocą w przeciwnym kierunku do kierunku jazdy przez kilka cykli, następnie jedno z kół, w zależności który czujnik zauważył białą linię, zaczyna kręcić się do przodu. Po wykonaniu tej sekwencji silniki sterowane są zgodnie ze stanem reprezentowanym przez zmienną sharp i odblokowywana jest możliwość zmiany prędkości w obsłudze sharpów. Jeśli w trakcie odwrotu, nastąpiło wywołanie tego przerwania, robot porusza się w kierunku, w którym ostatnio widziano przeciwnika. 10. Błędy, wnioski, spostrzeżenia Głównym problemem konstrukcji były koła słabej przyczepności. Nawet minimalne zabrudzenie opon skutkowało wpadaniem w poślizg oraz wypadaniem z ringu. Dlatego konieczne było systematyczne ich czyszczenie. W trakcie projektowanie zrezygnowano z czujników bocznych, pod kątem 90. Powodem była ograniczona ilość przestrzeni. Lecz stwierdzono, iż warto byłoby je zainstalować. Dałoby to możliwość obserwacji otoczenia niemal we wszystkich kierunkach. Jak zostało wspomniane, niedopatrzenie podczas wykonywania uchwytów obudowy poskutkowało problemami. W dniu zawodów, robot zaczął zachowywać się dziwnie. Stwierdzono iż jest to spowodowane ciągłym wywoływaniem obsługi odwroty od białej linii. Wyłączono tylne czujniki i w takim stanie robot startował przez pierwszą rundę. W późniejszym czasie zdiagnozowano usterkę. Winnym okazało się właśnie mocowanie obudowy, przylutowane miedzią do dołu które stykało się z jedną ze ścieżek. A z racji, iż obudowa ma potencjał masy, sygnał był silnie ściągany do zera. Wada ta ujawniła się dopiero po pewnym czasie, gdyż warstwa lakieru, jakim pokryta została obudowa, stanowiła izolację. Po jej przetarci nastąpiło zwarcie.

Na miano wad konstrukcyjnych zasługuje również umieszczenie tylnych czujników białej linii. Założeniem było, by w przypadku uniesienia przodu, nie następowała zmiana odległości czujników od podłoża. Dlatego też umieszczono je bezpośrednio pod osiami silnika. Spowodowało to, iż są one znacznie odsunięte od obrysu robota, co opóźnia wykrywanie krańca dohio. Okazało się, że w występującym zakresie, układ jest odporny na zmiany odległości od podłoża. Stwierdzono iż o zwycięstwie robota zadecydowała konstrukcja mechaniczna, w mniejszym stopniu programowa. Skupienie całej dostępnej masy w podstawie zadecydowało o odporności na podbicia i zrekompensowało niską przyczepność kół.