Linefollower Pantera. Paweł Jakubowski Michał Zasłona

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

Linefollower Torpeda. Magdalena Kaczorowska

Raport z budowy robota Krzysio

Autonomiczny robot mobilny LF3 klasy linefollower. Jacek Jankowski

TIGER Autonomiczny robot mobilny typu Line Follower

Podstawy budowy robotów

MozhePoyedzye. Robot klasy MiniSumo. Konrad Bednarek Michał Rataj

Wyniki (prawie)końcowe - Elektroniczne warcaby

Robot mobilny klasy minisumo Buster

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

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

Sygnalizator zewnętrzny AT-3600

MCAR Robot mobilny z procesorem AVR Atmega32

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

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Mobilny robot klasy minisumo QuoShyan

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

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

CHŁOPCZYK Robot typu Line Follower

U W A G I D O M O N T A ś U Z E S T A W U L A B O R A T O R Y J N E G O A B C 0 1 U S B 3, A B C 0 2

Robot mobilny klasy mini-sumo Żubr

PRZEDWZMACNIACZ PASYWNY Z SELEKTOREM WEJŚĆ. dokumentacja. (wersja 1.1

STEROWNIKI ROBOTÓW ( PROJEKT ) ROBOT KLASY LINEFOLLOWER

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

Montaż i uruchomienie

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Tester samochodowych sond lambda

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

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Nowy MULTIMETR z czujnikiem Halla

Projekt i wykonanie robota klasy Micromouse

Nazwa kwalifikacji: Montaż układów i urządzeń elektronicznych Oznaczenie kwalifikacji: E.05 Numer zadania: 01

Konwerter DAN485-MDIP

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

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

Instrukcja obsługi sterownika TB6560-3v2 oraz programu Mach3

W semestrze letnim studenci kierunku Aplikacje Internetu Rzeczy podczas ćwiczeń z programowania CAD/CAM

Moduł RS232 E054. TAP - Systemy Alarmowe Sp. z o. o. os. Armii Krajowej Poznań tel ; fax:

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

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Politechnika Wrocławska

Robot mobilny klasy minisumo Wojak Wszechmocny. Robert Budziński

Instrukcja użytkownika

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Instrukcja użytkownika

Przełącznik kolumn głośnikowych

KIT ZR-01 Zasilacz stabilizowany V, 1.5A

SZCZECIN Telefon:

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

CZYM RÓŻNI SIĘ ZESTAW LEGO MINDSTORMS EV3 W WERSJI DOMOWEJ (31313) OD ZESTAWU W WERSJI EDUKACYJNEJ (45544)?

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

AUTOMATYCZNY REGULATOR OŚWIETLENIA ARO

SML3 październik

Xelee Mini IR / DMX512

SYGNALIZATOR OPTYCZNO-AKUSTYCZNY SPL-2030

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

ELEKTROMECHANICZNY SYGNALIZATOR POZIOMU SPMS-4

eldrim Uniwersalny odbiornik radiowy zgodny ze standardem transmisji KEELOQ Basic Pulse Element Rev.1.2

DOKUMENTACJA TECHNICZNO-RUCHOWA. Sterownik klimatu FT-27

SWITCH & Fmeter. Fmax 210MHz. opr. Piotrek SP2DMB. Aktualizacja

KWDI. Wykład 6/2016. Literatura do zagadnień montażu: J. Felba, Montaż w elektronice, Wrocław, O/W PWr, 2010

. Polski. Dekoder rozjazdów GEODec C1O. DEKODER ROZJAZDÓW ROCO GeoLine. GEODec C1O. Instrukcja obsługi, programowania i budowy dekodera

Falownik FP 400. IT - Informacja Techniczna

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

Autonomiczny robot mobilny w kategorii linefollower MORPROF

STEROWANIE ROBOTEM MOBILNYM TYPU LINE-FOLLOWER

Elektroniczny sterownik cyfrowy (oświetlenie)

MOBOT RoboSnake. Moduł wieloczłonowego robota

Generator tonów CTCSS, 1750Hz i innych.

PROGRAMOWANIE PWM. Porty, które mogą być zamienione na PWM w każdym module RaT16 to port 3,4,5,6

dv-2ps INSTRUKCJA OBSŁUGI

INSTRUKCJA OBSŁUGI DO WYSWIETLACZA LCD C600

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

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

INSTRUKCJA OBSŁUGI. Instrukcja obsługi ładowarki XTAR SP1

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

ROGUE RF. Instrukcja obsługi (wersja poprawiona) Wireless Gamepad PC with headphones MT1503

Zastosowanie silników krokowych jako napęd robota mobilnego

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

Mateusz Skiba Jakub Szymaczek. LINEFOLLOWER WiX

Commander

E-TRONIX Sterownik Uniwersalny SU 1.2

Konstrukcja mostka mocy typu "H" opartego o układ HIP4081A Robert Szlawski

Warsztaty AVR. Budowa zestawu uruchomieniowego. Opracowanie: Damian Łukawski

Instrukcja użytkownika

REGULATOR ŁADOWANIA 12V / 24V / 36V / 48V DC DO INSTALACJI ELEKTROWNI WIATROWEJ

WCS-3 WYŚWIETLACZ CZASU POZOSTAŁEGO DO ZMIANY ŚWIATŁA. Instrukcja montażu, obsługi i konserwacji

Micromouse Rapid Raport końcowy. Marcin Niestrój

ARS3 RZC. z torem radiowym z układem CC1101, zegarem RTC, kartą Micro SD dostosowany do mikro kodu ARS3 Rxx. dokument DOK wersja 1.

CM Konwerter ModBus RTU slave ModBus RTU slave

SML3 październik

usbcat OPTOIZOLOWANY INTERFEJS USB<->CAT OPTOIZOLOWANE STEROWANIE PTT, CW, FSK GALWANICZNA IZOLACJA AUDIO IN, AUDIO OUT Podręcznik użytkownika

LICZNIK IMPULSÓW Z WYŚWIETLACZEM LED NA SZYNĘ DIN LIMP-1 ZASILANY 230VAC

GAMMA_X_1Cw. 1. Dane techniczne. 2. Opis urządzenia Sterowanie: możliwość sterowania 1 napędem. 2. Pamięć: do 20 nadajników

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

AUTOMATYCZNY REGULATOR OŚWIETLENIA ARO 2010

REGULOWANE ZASILACZE DC SERIA DPD

DOKUMENTACJA. dot. Budowy i przebiegu konstrukcji linefollower-a. Data: MCHT2 Jakub Tomczyk Łukasz Pawelec Mateusz Wróbel

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Transkrypt:

Paweł Jakubowski Michał Zasłona Koło Naukowe Robotyków KoNaR www.konar.pwr.wroc.pl lutego 0

Spis treści Wstęp................................. Założenia............................... Projektowanie............................ Układ zasilania............................ 5 Układ napędowy........................... 6 Czujniki................................ 7 Komunikacja z robotem...................... 5 8 Oprogramowanie........................... 6 9 Wnioski................................ 6

Wstęp Wstęp Linefollower Pantera to robot skonstruowany na potrzeby warsztatów organizowanych przez koło naukowe KoNaR i jest wynikiem współpracy dwóch studentów drugiego roku z wydziału Elektroniki. Naszym głównym celem było stworzenie własnego, w pełni działającego robota oraz spróbowanie swoich sił na zawodach Robotic Arena 0. Od pomysłu do realizacji minęły dwa miesiące, jednak przez ten cały okres mogliśmy korzystać z dużej wiedzy i doświadczenia starszych kolegów prowadzących warsztaty oraz liczyć na pomoc ze strony znajomych. Nasze zamierzenia zostały osiągnięte z nawiązką pomimo braku doświadczenia w tworzeniu robotów, zdołaliśmy wystartować w zawodach, a nasza Pantera wskoczyła na. pozycję w kategorii linefollower. Rysunek : LF Pantera Założenia Ponieważ zdecydowaliśmy się na budowę robota typu linefollower, jedynym ograniczeniem ze strony regulaminu zawodów był wymiar robota - miał on zmieścić się na kartce formatu A. Oprócz tego zdecydowaliśmy się uściślić nasze założenia, aby łatwiej było wykonać projekt. Naszym głównym celem była możliwie najprostsza konstrukcja robota. O ile strona mechaniczna nie sprawiała kłopotów, o tyle często zastanawialiśmy się nad dodatkowymi układami (typu sczytywanie parametrów za pomocą USART czy startowanie robota za pomocą pilota). Jako, że nasza wiedza z elektroniki była wtedy na podstawowym poziomie, dobrze, że uniknęliśmy niepotrzebnego skomplikowania, które prawdopodobnie uniemożliwiłoby ukończenie robota na czas. Ważnym czynnikiem, uwzględnionym przez nas przy projekcie była masa Pantery. Stwierdziliśmy, że niska masa zapewni nam lepsze osiągi na torach, a umieszczenie jej możliwie nisko i blisko osi kół zapobiegnie nadmiernej bezwładności. Dodatkowo koszt robota miał być relatywnie niski.

Projektowanie Cały układ był sterowany za pomocą popularnego mikrokontrolera ATmega8A w obudowie TQFP. Projektowanie Do projektowania wykorzystaliśmy oprogramowanie Autodesk Inventor oraz Altium Designer. Projekt rozpoczęliśmy od stworzenia strony mechanicznej układu, a więc jego modelu w Inventorze. Dopiero gdy ustaliliśmy zakładane wymiary rozpoczęliśmy pracę nad stworzeniem schematu, a następnie projektu płytki PCB. Rysunek : Model robota w programie Autodesk Inventor 0 W Panterze zastosowaliśmy nieczęsto spotykane rozwiązanie w postaci umieszczenia elementów elektronicznych na spodzie robota. To, razem z wyborem większości części w obudowie SMD, pozwoliło na zmniejszenie rozmiarów płytki. Dzięki temu rozwiązaniu na górnej części robota oprócz kondensatorów elektrolitycznych pozostały jedynie elementy mechaniczne, bateria i gniazdo do podłączenia baterii, oraz elementy niezbędne do sterowania robotem. Układ zasilania Jako źródło zasilania zdecydowaliśmy się wykorzystać akumulator litowopolimerowy o pojemności 50mAh. Wybór ten wynikał z możliwości pożyczenia go od naszego kolegi z KoNaRu (a więc znacząco zmniejszył koszt konstrukcji). Zdawaliśmy sobie przy tym sprawę z nadmiernej wagi (ok. 80g) i wymiarów akumulatora, zdecydowały jednak ograniczone fundusze. Jednak

Układ napędowy podczas zawodów udało nam się pożyczyć mniejszą i lżejszą (ok. 6g) baterię o pojemności 00mAh, która w znaczący sposób przyczyniła się do poprawienia czasów na torach (na bardziej skomplikowanym torze różnica wynosiła nawet 5s!). Do zasilania silników wykorzystaliśmy bezpośredni prąd z baterii, natomiast część cyfrową poprzedziliśmy stabilizatorem L7805. Całość dodatkowo miała być zabezpieczona układem opracowanym przez Adama Pykę, jednak przez błędy w trakcie projektowania płytki zabezpieczenie nie działało poprawnie. Ponieważ na początku nie zdawaliśmy sobie z tego sprawy udało nam się spalić dwa mostki TB66. Po tych problemach zdecydowaliśmy się na mechaniczne zabezpieczenie przed odwrotną polaryzacją w postaci zwykłego podwójnego goldpina z kluczem. A B C D POPRZE³¹CZNIK Przełącznik COR COS 0 COBAT PIS0 PIS0 PIS0 PIR0 PIS0 PIR0 + PIBAT0 - PIBAT0 A_ DIP Switch COATmega8A0AU ATmega8A-AU COR PIS0 Przycisk PIS0 PIS0 PIS0 PIR0 PIR0 6 9 PIATmega8A0AU06 VCC ADC6 PIATmega8A0AU09 COS 0 COP PIATmega8A0AU0 VCC ADC7 PIATmega8A0AU0 PIL0 PIP06 6 5 PIP05 COL 8 PIATmega8A0AU08 AVCC PC0 (ADC0) PIATmega8A0AU0 PIP0 PIP0 0uH COR PC (ADC) PIATmega8A0AU0 PIP0 PIP0 Przycisk PIS0 PIS0 PIS0 PIS0 PIR0 PIR0 0 5 PIATmega8A0AU00 AREF PC (ADC) PIATmega8A0AU05POPIN PIN 5 5 COS 0 6 PC (ADC) PIATmega8A0AU06POPIN PIN 6 6 PIN 6 PIP06 6 5 PIP05 PIN 5 7 5 Układ PIL0 PC (ADC/SDA) PIATmega8A0AU07 PIN 7 PIN 7 PIC0 PIC0 napędowy POPIN 7 PIP0 PIP0 PIC0 8 PC5 (ADC5/SCL) PIATmega8A0AU08POPIN PIN 8 8 PIN 8 PIP0 PIP0 COC C COC C COC C 9 PC6 (RESET) PIATmega8A0AU09PORESET 00nF PIC0 00nF PIC0 00nF PIC0 COP 0 PD0 (RXD) PIATmega8A0AU00 Panterę PD (TXD) napędzały dwa silniki PIATmega8A0AU0 Przełącznik Pololu 0: z obustronną osią. Podobnie PD (INT0) PIATmega8A0AU0POPRZYCISK Przycisk PIR0 COR PD (INT) PIATmega8A0AU0POPRZYCISK Przycisk 0K jak akumulator wybraliśmy PD (XCK/T0) te PIATmega8A0AU0 silniki PODIODA Dioda ze względu na możliwość pożyczenia 9 PIR0 ich PD5 (T) PIATmega8A0AU09POAIN 0 PD6 (AIN0) PIATmega8A0AU00POAIN RESET i tym samym odciążenia PD7 naszych (AIN) PIATmega8A0AU0POBIN portfeli. Jako koła wykorzystaliśmy stare PIS50 PIS50 COS5 PB0 (ICP) PIATmega8A0AU0POBIN RESET koła z LEGO Technic o średnicy PB (OCA) PIATmega8A0AU0POPWMA 0mm. PWMA Niezbędne również były mocowania PIS50 PIS50 COISP PIR0 PB (SS/OCB) PIATmega8A0AU0POPWMB PWMB 5 C COC PIC0 COR PB (MOSI/OC) PIATmega8A0AU05 PIISP0 PIISP0 kół na osiach silników, które wykonaliśmy 6 z części LEGO. Stworzyliśmy 00nF 0je PB (MISO) PIATmega8A0AU06 PIISP0 PIISP0 7 PIATmega8A0AU0 PB5 (SCK) PIATmega8A0AU07 POPROG PROG RST RST 5 6 PIC0 PIR0 PIISP05 PIISP06 5 7 PIATmega8A0AU05 PB6 (XTAL/TOSC) PIATmega8A0AU07PODIODA Dioda PIISP07 7 8 PIISP08 z podwójnego gniazda i dwóch 8 krzyżaków. Jeden z nich został przyklejony, przecięty napół i przewiercony mm wiertłem. W tak stworzony otwór PIATmega8A0AU0 PB7 (XTAL/TOSC) PIATmega8A0AU08PODIODA Dioda PIISP09 9 0 PIISP00 Mikrokontroler KANDA Title Płyta główna oś od silnika weszła na wcisk, bez żadnych luzów. Silniki sterowane były Size: PIR0 PIR0 PIR0 PIR0 PID0 PID0 COR COQ 0 BC807-0 COR 50 COD 5V PIQ0 PIQ0 PIQ0 PIR60 PIC90 PIC90 PIQ0 PIR60 COR6 M COC9 C9 uf PIQ0 PIQ0 A_ PIS0 PIS0 COS PIS0 PIS0 BATT PIR50 COQ IRFZN pojedynczym mostkiem TB66. COR5 70 PIR50 PID0 PID0 COD Czerwona COL7805 VCC Stabilizator PIL78050 IN OUT PIL78050 PIR00 COR0 50 COC6 C6 COC8 C8 PIL78050 C COC C5 COC5 PIR00 00nF 000uF 0uF 00nF COD6 Czerwona PIC60 PIC60 Rysunek : Schemat zasilania Pantery PIC80 PIC80 PIC0 PIC0 PIC50 PIC50 PID60 PID60 PROG RST Date: File: * * A Number: * Revision: A * 0-0- Time: :0: Sheet of * D:\Paweł\Documents\Google Drive\Dysk Google\[KoNaR 0] Linefollower\Pliki_pro PID70 PID70 COD7 5V6 COTB66 AIN PITB660 AIN VM AIN PITB660 AIN VM PWMA PITB660 PWMA VM 7 BIN PITB6607 BIN VCC 6 BIN PITB6606 BIN 5 PWMB PITB6605 PWMB PITB6609 9 AO STBY AO PITB660 PITB660 PITB660 PITB6600 0 PITB660 PITB660 PITB6608 8 AO PITB6605 5 6 AO PITB6606 PITB660 P PITB660 P BO PITB660 PITB6609 9 P BO PITB660 0 PITB6600 P 7 BO PITB6607 8 BO PITB6608 Mostek Dioda Dioda Dioda VCC COR7 PIR70 PIR70 PID0 50 PISilnik0 PISilnik0 C COC 00 + Silnik COSilni PISilnik0 PISilnik0 Silnik COSilni COD Zielona PID0 COR8 PIR80 PIR80 PID0 PID0 50 COD Czerwona COR9 PIR90 PIR90 PID50 PID50 50 COD5 Zielona C7 COC7 0u PIC70 PIC0 6 Czujniki Jako czujniki wykorzystaliśmy popularne transoptory. W naszym robocie znalazło się ich osiem sztuk, ze względu na taką właśnie ilość

5 6 7 8 9 Linefollower Pantera Komunikacja z robotem A portów przetwornika analogowo-cyfrowego w mikrokontrolerze. Sama płytka została stworzona na wzór płytki z Bizonka. Jeśli chodzi zaś o rozmieszczenie czujników, to zdecydowaliśmy, aby dwa środkowe czujniki mogły widzieć linię jednocześnie, żeby szybciej wychwytywać odchyłki. Skrajne czujniki były za to wyraźniej dalej i niżej od innych, ponieważ w założeniu miały służyć do wykrywania kątów prostych. A B PIR90 PIR0 PIR00 PIR0 PIR0 PIR0 PIR0 PIR0 PIR0 PIR50 PIR0 PIR60 PIR50 PIR70 PIR60 PIR80 COR9 COR COR0 COR COR COR COR COR COR COR5 COR COR6 COR5 COR7 COR6 COR8 0 7K 0 7K 0 7K 0 7K 0 7K 0 7K 0 7K 0 7K PIR90 PIR0 PIR00 PIR0 PIR0 PIR0 PIR0 PIR0 PIR0 PIR50 PIR0 PIR60 PIR50 PIR70 PIR60 PIR80 COU COU COU COU COU5 COU6 COU7 COU8 KNLK ANLA PIU0A PIU0K PIU0A PIU0K PIU0A PIU0K PIU0A PIU0K PIU50A PIU50K PIU60A PIU60K PIU70A PIU70K PIU80A PIU80K B PIU0E E NLE CNLC PIU0C PIU0E PIU0C PIU0E PIU0C PIU0E PIU0C PIU50E PIU50C PIU60E PIU60C PIU70E PIU70C PIU80E PIU80C C PIP0 PIP0 PIP0 PIP0 PIP05 PIP06 PIP07 PIP08 PIP09 PIP00 C 0 COP Rysunek : Schemat płytki z czujnikami D Title D Size Number Revision A COR9 PAR90 COR PAR0 PAR90 PAR0 COU PAU0K PAU0C PAU0A PAU0E COR0 COR PAR00 PAR0 PAR00 PAR0 COU PAU0K PAU0C PAU0A PAU0E COR COR PAR0 PAR0 COR COR COR COR5 PAR0 PAR0 PAR0 PAR0 PAR0 PAR0 PAR50 PAR50 PAR0 PAR0 COU PAU0K PAU0C PAU50K PAU50C COU5 COU PAU0K PAU0C PAU0A PAU0E PAU50A PAU50E PAU0A PAU0E PAP0 PAP0 PAP06 PAP08 PAP00 PAP0 PAP0 PAP05 PAP07 PAP09 COR PAR0 PAR60 COR6 PAR0 PAR60 PAU60K PAU60C COU6 PAU60A PAU60E Date: 0-0- Sheet of File: D:\Paweł\..\Schemat_z_czujnikami_linefollower_0.SchDoc Drawn By: COR5 COR7 PAR50 PAR70 COR6 COR8 PAR50 PAR70 PAR60 PAR80 PAU70K PAU70C COU7 PAU70A PAU70E PAR60 PAR80 COU8 PAU80K PAU80C PAU80A PAU80E COP Rysunek 5: Projekt płytki z czujnikami 7 Komunikacja z robotem Cała komunikacja z robotem odbywała się za pomocą jednego podwójnego przełącznika, oraz pięciu przycisków. Jeden przełącznik odpowiadał za załączenie zasilania, natomiast drugi za ustawienie trybu serwisowego. Dwa z pięciu przycisków były zamieszczone w celu innym niż komunikacja z linefollowerem (jeden do zabezpieczenia li-pola, natomiast drugi do resetu mikrokontrolera), a pozostałe, podłączone pod piny ATmegi, odpowiadały za ustawienie robota. Naszym wyświetlaczem były trzy diody LED (zielona-czerwona-zielona), które informowały o stanie Pantery. I tak np. mruganie pierwszej (zielonej) diody informowało o gotowości do jazdy (wyłączony tryb serwisowy), mru- 5

Oprogramowanie ganie pierwszej diody i zapalenie się drugiej informowało o ustawieniu dokładnego trybu jazdy (maksymalna prędkość robota była teraz ustawiona na połowę jego maksymalnej prędkości) itd. 8 Oprogramowanie Przy pisaniu programu do linefollowera opieraliśmy się głównie na jednym z artykułów na forbot.pl. Program napisaliśmy w języku C. Do sterowania silnikami wykorzystany został tryb fast PWM, a obsługa przycisków została zawarta w przerwaniach. Czujniki były sczytywane bezpośrednio przez porty ADC i podczas włączenia robota została uruchomiana autokalibracja. Jak zostało wspomniane, zdecydowaliśmy się na dwa tryby pracy robota - tryb jazdy i tryb serwisowy. Dostęp do tych dwóch trybów zrealizowaliśmy jako dwie osobne pętle, które program wybiera na początku swojego działania. Ponieważ poza jazdą prędkość przetwarzania danych nie była dla nas istotna nie zajmowaliśmy się optymalizacją. Rozwiązaliśmy problem ograniczenia ilości instrukcji podczas jazdy zastosowaniem osobnej pętli po starcie robota i w czasie jej działania nie są sprawdzane żadne przyciski, a jedynie tryby jazdy oraz dane niezbędne do sterowania. Zatrzymanie robota następowało jedynie poprzez reset mikrokontrolera. W programie zawarliśmy dwa tryby jazdy - jeden normalny, a drugi powolny (nazywany przez nas dokładnym), gdzie brana była połowa wyniku sterowania dla trybu normalnego. Przełączanie między nimi było możliwe przed jazdą za pomocą jednego z przycisków. Tryb serwisowy umożliwiał testowanie silników oraz każdego z czujników. 9 Wnioski Podsumowując, tworzenie Pantery było prostsze, niż z początku sądziliśmy, jednak w trakcie konstrukcji natrafiliśmy również na parę problemów, których się nie spodziewaliśmy. Nowością były dla nas programy do projektowania. I tak jak Inventor okazał się zaskakująco prosty, tak Altium sprawił parę niespodzianek. Tworzenie schematu było bardzo proste i intuicyjne, ale nie mogliśmy ruszyć z projektem płytki, dopóki nie znaleźliśmy kursu na myelectronics.pl. Mnogość opcji przytłoczyła nas i ciężko nam było zacząć pracę z tym programem. Z drugiej strony korzystanie z Inventora było samą przyjemnością. Przydatną i zaskakująco dokładną opcją była możliwość wyliczenia masy dla naszego modelu (program wyliczył 6g, bez płyty z czujnikami i przedłużek do kół, natomiast waga faktyczna wyniosła 8g). Warto wspomnieć, że nie przyłożyliśmy się do szczegółowego określania materiałów - wszystkie plastiki oznaczyliśmy jako plastik ABS, elementy metalowe jako stal - prawdopodobnie, gdybyśmy poświęcili temu więcej uwagi szacowane wyliczenia 6

Wnioski byłyby jeszcze dokładniejsze. Rysunek 6: Masa obliczona w programie Rysunek 7: Wyznaczony środek ciężkości Przy programowaniu musieliśmy się zmierzyć z różnymi wartościami optymalnych parametrów regulatora PD w różnych warunkach. Z tego względu, za każdym razem tworzyliśmy inne wersje programu, które testowaliśmy w dniu zawodów - tylko jedna okazała się być właściwa, inne zazwyczaj gubiły tor dla normalnego trybu jazdy. Bardzo przydatną opcją okazał się spowolniony tryb jazdy robota. Umożliwiło to szybkie dostosowanie robota, gdy trasa okazała się zbyt wymagająca. Mieliśmy ciekawe spostrzeżenia dotyczące kół. Koła LEGO okazały się wyjątkowo przyczepne (chociaż nie robiliśmy dokładnych badań, widoczna była przewaga nad kołami Pololu). Ważną sprawą okazało się dokładne czyszczenie kół z brudu. Różnica między brudnymi a czystymi kołami wynosiła nawet do 0% (dla przykładu - robot na czystych kołach pokonał trasę z czasem 5,5s, natomiast na zabrudzonych 6,78s). Brud przyczepiający się do kół zwiększał boczny poślizg, a przez to częstsze wypadanie z toru. Oprócz tego, było parę spraw projektowych, które zmienilibyśmy przy następnej konstrukcji. Zastosowane przez nas połączenie między główną płytą robota, a płytką z czujnikami nie do końca nas zadowalało. Powodem były zbytnie luzy, przez co pomimo dokręcenia śrub płyta z czujnikami zmieniała swoje położenie względem płyty głównej (zwłaszcza po uderzeniu). Lepszym rozwiązaniem byłoby stworzenie jednej płyty bez żadnych łączeń. Poza tym mankamentem było również kiepskie ułożenie dipswitcha. Znajdowało się ono w miejscu, w którym ciężko go było dosięgnąć. Sam przełącznik też z pewnością byśmy wymienili, ponieważ jest on przystosowany do pracy z niższymi napięciami i do załączania zasilania lepiej zastosować pojedynczy przełącznik, który może pracować przy napięciu V. Z pewnością również zastosowalibyśmy od razu gniazdo, które mechanicznie zabezpiecza przed odwrotnym podłączeniem baterii. Pozytywną rzeczą z jaką się spotkaliśmy były elementy w obudowie SMD. Kiedy decydowaliśmy, że większość z nich będzie w takiej właśnie obudowie 7

Wnioski obawialiśmy się problemów przy lutowaniu. Okazało się, że mieliśmy więcej problemów z lutowaniem elementów THT (nadmienię tu jeszcze, że to była nasza pierwsza płytka, a mostek TB66, który jest przestawiany jako koszmarny do lutowania, udało nam się przylutować za pomocą zwykłej kolbówki). W następnym projekcie także będziemy dążyć, by jak najwięcej elementów było montowanych powierzchniowo. Prawdopodobnie zadbamy również o odpowiednie zabezpieczenie ścieżek. Zauważyliśmy, że przez ułożenie ścieżek na spodzie płytki, a także przez nie zabezpieczenie ich soldermaską, często zdarzało się przypadkowe włączenie przycisku, przez zwarcie ścieżek palcem (powodowało to niechciane starty robota, czy nieplanowane tryby jazdy). Podsumowując, robota tworzyliśmy przez mniej więcej dwa miesiące, z czego około miesiąc na projektowanie, trzy tygodnie na konstrukcję i tydzień na program. Udało nam się zminimalizować koszty do ok. 0zł (wliczając cynę, spalone mostki, wiertła, taśmy do tras i śrubki). Pantera spełniła z nawiązką nasze oczekiwania, czyli wystartowanie w Robotic Arena 0, zajmując przy tym. miejsce. 8