ROBOT ARDUINO AAR - neorobots.pl · uniwersalnych pinów wejścia/wyjścia (GPIO - general purpose...

40
AAR © AREXX Engineering - V1401 INSTRUKCJE: AAR-04 ROBOT ARDUINO ®

Transcript of ROBOT ARDUINO AAR - neorobots.pl · uniwersalnych pinów wejścia/wyjścia (GPIO - general purpose...

- 1 -

AAR

© AREXX Engineering - V1401

INSTRUKCJE: AAR-04

ROBOT ARDUINO

®

- 2 -

UWAGA!AAR to znak towarowy zastrzeżony.

Wszystkie prawa zastrzeżone.Każda reprodukcja lub adaptacja całości lub części podręcznika bez pisemnej zgody jest zabroniona.Specyfikacja, forma oraz wszystkie treści tego produktu mogą być zmienione bez wczesniejszego uprzedzenia.

Wsparcie techniczne dostępne na:

www.arexx.comwww.roboternetz.de

Producent:AREXX EngineeringZwolle, The Netherlands

© 2014 AREXX Engineering

1. OPIS PRODUKTU AAR 1.1 Rodzina robotów ARDUINO 5 1.2 Specyfikacja techniczna 52. OGÓLNY OPIS ARDUINO 73. ROBOT ARDUINO 12 3.1. Opis LED robota AAR 12 3.2.UkładpłytkiPCBrobotaAAR 134. ROBOT ARDUINO (AAR) 16 4.1. Pobranie i instalacja oprogramowania 16 4.2.JęzykArduino 16 4.3. Inslatacja sterownika USB 16 4.4Montażkoszykabateryjnego 17 4.5ProgramowaniezprogramamiArduino 18 4.6WybórprogramuArduino 18 4.7WybórpoprawnegoportuCOM 19 4.8WgrywanieprogramudoRobotaArduino 20 4.9Rozwiązywanieproblemów 21 4.10AutotestAAR 225.ModułyrozszerzająceAAR 236. Poboczne informacje na temat obwodów mostka H 277.Odometria 308.ProgramowaniewBoot-loader 33

DODATEK A. Lista elementów 35 B.GłównapłytkaPCB-rzutzgóry 37 C.GłównapłytkaPCB-rzutzdołu 38 D.SchematyAAR 39 E.3DPCBAAR 40

Contents

®

- 3 -

Impressum©2013AREXXEngineeringNervistraat 16 8013RSZwolle The Netherlands

Tel.:+31(0)384542028 Fax.:+31(0)384524482

E-Mail:[email protected]

Wszystkieprawazastrzeżone.Każdareprodukcjalubadaptacjacałościlubczęścipodręcznikawymagapisemnejzgody.

Specyfikacjaproduktuorazdostarczanetreścimogąpodlegaćzmianom.Treśćpodręcznikamożeuleczmianiebezwcześniejszegouprzedzenia.

Darmoweaktualizacjepodręcznikamożnaznaleźćna:

http://www.arexx.com/

“AARandAREXX”toznakitowarowezastrzeżoneprzezAREXXEngineering.Wszystkieinneznakitowarowenależądoichwłaściciela.Nieponosimyodpowiedzialnościzatreścizawartenazewnętrznychstronachinternetowychwspomnianychwtympodręczniku!

Informacjedotycząceograniczonejgwarancjiorazodpowiedzialności GwarancjaudzielonaprzezAREXXEngineeringograniczasiędozamianylubnaprawyRa-mieniaRobotaorazjegoelementówwokresietrwaniagwarancjijeśliusterkadotyczywadprodukcyjnych:brakelementówelektronicznych,wadliwelubnieprawidłowozamontowane elementy mechaniczne itp.Gwarancjanietyczysiębezpośredniouszkodzonychelementówpodczasużytkowania.Takiezałożeniewykluczawszelkieroszczenia,którepodlegająodpowiedzialnościprawnej.

Gwarancjanieobejmujeelementówrobotalubakcesoriówrobota,którezostałytrwalezmienione,np.przylutowanieinnych,zewnętrznychelementów,wywierceniedziursamodzielnieitd.Nieobejmujerównieżuszkodzeńdokonanychpoprzezbrakwiedzylubignorowanieostrzeżeńzawartychwpodręczniku!

Gwarancjatraciważność,jeśliużytkowniknieprzestrzegazasadzpodręcznika!AREXXEngineeringnieponosiodpowiedzialnościzaszkodypowstałewskuteknieprawidłowegoużytkowanianiezgodnegozinstrukcjamizawartymiwpodręczniku.Należystosowaćsiędowszystkiego,cozawierasekcja“Zaleceniadotyczącebezpieczeństwa”.

ProszęzwrócićuwagęnaumowylicencyjneoprogramowanianaCD-ROM!

WAŻNE!Przedpierwszymużyciemramieniarobotacałkowiciezapoznajsięztreściąpodręcznika!Wpodręcznikuzawartesąinformacjenatematodpowiedniegosposobuużyciaorazpotencjalnychzagrożeń!Ponadto,zawierainformacje,któremogąbyćnieoczywistedlawszystkichużytkowników.

Ważnezaleceniadotyczącebezpieczeństwa

Ramięrobotajestzaopatrzonewwysoceczułeczęści.Elementyelektronicznesąwrażliwenawyładowanieelektrostatyczne.Elementypodnośdelikatniezabokiwbezpiecznychmie-jscach.UnikajbezpośredniegokontaktuzelementaminapłytcePCB.Nigdynieprzeciążajsilników.

- 4 -

Symbole

Wpodręcznikuużytonastępującychsymboli:

“Uwaga!” Używany, aby ostrzec lub zwrócić uwagę na ważne szczegóły. Zignorowanie ostrzeżeń może skutkować uszkod-zeniem robota i/lub jego części oraz może być szkodliwe dla twojego zdrowia lub zdrowia innych osób!

“Informacja” Symbol wskazuje użyteczne wskazówki lub in-formacje uzupełniające. Podążanie za wskazówkami nie jest konieczne, ale może ułatwić pracę.

Zaleceniadotyczącebezpieczeństwa

-Sprawdźpolaryzacjębateriiiźródłazasilania.-Unikajwilgoci.Jeślinastąpikontaktproduktuzwodą,należyusunąćbaterielubodłączyćukładodzasilania.-Jeślirobotjestnieużywanyprzezdłuższyczas,odłączgoodzasilania.-Sprawdźrobotijegokableprzedużyciem-topomożeuniknąćawarii.-Jeśliuważasz,żepracazurządzeniemniejestjużbezpieczna,odłączjeiupewnijsię,żeniezostanienieświadomieużyte.-Gdyniejesteśpewienfunkcji,bezpieczeństwalubpołączeniaelementu,skonsultujsięzespecjalistą.-Niepodejmujpracyzurządzeniemwniekorzystnychmiejscachlubwarunkach.-Nieprzeciążajserwomechanizmów.-Urządzeniezawierawysoceczułekomponenty,np.elementyelektronicznesąwrażliwenawyładowanieelektrostatyczne.Elementypodnośdelikatniezabokiwbezpiecznychmiejscach.UnikajbezpośredniegokontaktuzelementaminapłytcePCB.

Użytkowanie

Niniejszyprojektzostałstworzonydocelóweksperymentalnychdlakażdegozaintereso-wanegorobotyką.GłównymzadaniemjestnaukaprogramowaniaurządzeniawjęzykuC.Produktniejestzabawką;niejestprzeznaczonydladzieciponiżej14rokużycia!

Daneramięrobotaniejestrównieżrobotemprzemysłowymzapewniającymdokładnyprzemysłowyopisorazwydajność!

Robotmożebyćużytyjedyniewewnątrzbudynku.Produktniemożezostaćzmoczonylubpoddanydziałaniujakiejkolwiekwilgci.Unikajskraplaniawodynaelementach:zachowajostrożnośćpowniesieniurobotazzimnegomiejsca.Pozwólelementomdostosowaćsiędonowegośrodowiskaiodczekajpewienczaszanimrozpocznieszużywanie.

Nieprzestrzeganiepowyższychzaleceńmożedoprowadzićdouszkodzeniaproduktuimożewpłynąćnapowstaniedodatkowychzagrożeńtakichjakzwarcie,ogień,porażenieprądemitd.

Należydokładniezapoznaćsięztreściątegopodręcznika.

- 5 -

1.OPISPRODUKTUAAR1.1.RodzinarobotówARDUINO

Arduinotoplatformaopensourcestworzonadobudowaniaprototypówelektronicznych.Umożliwiatomikrokontroler,któryzawierawszystkiedodatkoweinterfejsyorazpotrzebnedotegoceluoprogramowanie.

KonceptArduinozostałzaprojektowanyabyuczyćnowoczesnejelektronikidlarobotyki,sterowanieoprogramowaniemorazczujnikówwnajprostszymożliwysposób.

JakonastępcęrobotaASURO,którymożnaprogramowaćwjęzykuC,zaprojektowaliśmyrobotaArduino.Nowyrobotprzypominaswo-jegopoprzednika,jednakróżnijesposóbprogramowania,którywprzypadkuukładuArduinojestznacznieprostsze.

1.2. Specyfikacja techniczna:

Silniki 2 silniki DC (3 Volt)Procesor ATmega328P-AUJęzyk programowania ARDUINONapięcie zasilające 4 x baterie typu AAA 4,8 - 5,5 VoltPrąd zasilający Min. 10 mA Max. 600 mASposób komunikacji kabel USBRozszerzenia kompatybilne z rozszerzeniami ASUROWysokość 40 mmSzerokość 120 mmDługość 180 mm

* Prawo do zwrotu przemija w momencie otwarcia plastikowych opakowań elementów.* Przeczytaj uważnie podręcznik zanim zamontujesz wszystkie elementy.* Zachowaj ostrożność podczas pracy z narzędziami. * Nie montuj robota w obecności małych dzieci. Może stać im się krzywda .* Sprawdź, czy baterie zostały umieszczone poprawnie.* Upewnij się, że koszyk bateryjny jest zawsze suchy. Jeśli robot zostanie zamoczony, usuń baterie i bardzo delikatnie osusz elementy.

* Wyjmij baterie jeśli Robot nie będzie używany dłużej niż tydzień.

Ostrzeżenia

- 6 -

1.3.Środkiostrożności

1. Uwaga! Należyprzeczytaćtenpodręcznikprzedpodłączeniemrobotadozasilania!Niepoprawnepodłączeniemożetrwaleuszkodzićcałysprzętlubjegoczęść.

2. Uwaga!Należyobejrzećdokładniewszystkieschematypołączeń!Bądźostrożnywpodłączeniachschematów.Błądwpołączeniachmożeuszkodzićmoduły.Pamiętajopoprawnejpolaryzacjibaterii(źródłazasilania).Odwrotniepodłączonezasilanietakżemożeuszkodzićsprzęt.

3. Uwaga! Nienależyużywaćnapięciazasilającegowyższegoniżpodanenapoprzedniejstroniewartości!Używajtylkoustabilizowanegoiprzefiltrowanegonapięciazasilającego,abyuniknąćprzepięć.

4.Uwaga! Układnieposiadażadnejochronywodoodpornej.Należyużywaćukładutylkowsuchymśrodowisku.

5. Uwaga! Należyunikaćzwarcianajakiejkolwiekmetalowejpowierzchniorazużywanianadmiernejsiłyorazwaginapłytcelubwtykach.

6. Uwaga! Należyunikaćwyładowańelektrostatycznych(ESD-zang. Electrostatic Discharge).

- 7 -

2.OgólnyopisARDUINO2.1. CzymikimjestARDUINO?

Arduinotopłytkaopensourcez8-bitowymmikroprocesorem,któraumożliwiałatweprogramowaniemikrokontroleraorazpracęnadprojektamizobiektamiinteraktywnymidlaarytstów,projektantów,hobbystów i innych.

PlatformaArduinoopartajestnamikrokontrolerachfirmyAtmel-ATmega168lubATmega328.Układzapewniaużytkownikomkanaływejśćanalogowychorazcyfrowych,którepozwalająnaotrzymanieiwysłaniesygnałuz/dośrodowiska.

NarynkudostępnychjestkilkapłytekArduinotakichjak:ArduinoUno,ArduinoLilyPadiArduinoMega2560.Każdaznichzostałazaprojektowanadoinnychcelów.Użytkowniksammożewybraćpłytkędopasowanądoswojegoprojektu.

Sygnaływejściowemogąbyćdoprowadzanepoprzezprzełączniki,czujnikiświatła,czujnikiprędkościiprzyspieszenia,czujnikiodległościoraztemperatury.Dodatkowo,jestmożłiwośćotrzymaniainstrukcjizdowolnegoźródłainternetowego.Syngaływyjściowemogąbyćużytedosterowaniasilnikami,pompamiczyteżinformacjaminaekranach.

Układzostałwyposażonywkompilerdlajęzykówprogramowaniawedługstandardóworazwboot-loader.Językprogramowaniazostałopartynatzw.wiringlanguage,któryprzypominajęzykC++.

ProjektArduinorozpoczętyzostałwroku2005wmieścieIvrea,weWłoszech.Głównymcelemprojektubyłowsparciestudentówwichprojektach,gdzieprototypypowinnybyćdużotańszeirówniewydajnejakwiększośćstandardowychmetod.

GrupapodopiekąMassimoBanziiDavidaCuartielleszdecydowałasięnazwaćprojektpohistorycznymcharakterze‘ArduinazIvrei’.“Arduino”towłoskawersjategoimienia.

- 8 -

2.2Mikrokontrolery

2.2.1.AplikacjeMikrokontroler(oznaczanyczęstojakoµC,uClubMCU)tomałykomputerwmałymukładziescalonym,któryzawierardzeńprocesora,pamięćorazprogramowalnewejścia/wyjście(I/O).Dodatkowowukładzieznajdujesiępamięćprogramuorazniewielkailośćpamięcidanych(RAM).

Mikrokontrolerystosujesięwurządzeniachsterowanychautomatycznie,np.samochodowesystemysterowaniasilnikiem,piloty,urządzeniabiurowe,implantymedyczne,zabawkiiinne.Dziękimikrokontroleromdochodzidominimalizacjirozmiaruorazkosztówprojektówwporównaniudourządzeń,któreużywająosobnegomikroprocesora,pamięciorazwejść/wyjść.Dziękimikrokontroleromdążysiędotego,żetworzenieurządzeńjestbardziejekonomiczne,ponieważmożeonsterowaćcyfrowodużąilościąurządzeńorazprocesów.

Wrozwiniętymkrajujestbardzoprawdopodobne,żetypowydomposiadakilkumikroprocesorówogólnegoużyciaorazwielemikrokontrolerów.Typoweautośredniejklasymatrzydzieścilubwięcejmikrokontrolerów.Możnajerównieżznaleźćwwieluurządzeniachelektronicznych,np.zmywarkidonaczyń,mikrofalówkiczy telefony.

- 9 -

2.3. Pobórmocyorazprędkość

Niektóremikrokontrolerymogąpracowaćwniskichczęstotliwościachzegara(np.4kHz)wcelupoborumałejmocy(rzędumilliwatówlubmikrowatów).Będąmogłyutrzymaćfunkcjonalnośćwmomencieoczekiwanianawydarzenie,np.naciśnięcieprzycisku;pobórmocywstanieuśpienia(zegarprocesoraiinneurządzeniasąwyłączone)możebyćnawetwnanowatach,coumożliwiaoszczędnośćbaterii.

Innemikrokontrolerymogązachowywaćsięjakcyfrowyprzetworniksygnałów,jednakwtymprzypadkupodórmocyznaczniewzrasta,ponieważwymagająonewiększejczęstotliwościzegara.

SwojezastosowaniewukładzieArduinoma8-bitowymikrokontrolerAtmelATmega328Poczęstotliwości16MHz,zwbudowanąprogramowalną32-kilobajtowąpamięciąflash.Napięciezasilającedlategomikrokontrolerazostałozaprojektowanedośćogólnie,tzn.wzakresieDC7-12V,któryzapewniastabilneibezpiecznewarunkidlachipuorazizolowaneliniemocyażdo2Adlazespołuobwodówelektrycznych silników.

2.4Programymikrokontrolera

Programymikrokontroleramusząmieścićsięwdostępnejpamięciprogramowejnachipie,ponieważdodatkowapamięćzewnętrznabyłabykosztowna.Kompileryiassemblery(programytłumaczącekodprogramuna“językkomputera”)sąużywanedokonwertowaniajęzykawysokiegopoziomunakodmaszynowydozasobupamięcimikrokontrolera.Wzależnościodurządzenia,pamięćprogramumożebyćstała,tylkodoodczytu,któramożezostaćzapełnionajedynieraz,fabrycznielubpamięćprogramumożebyćprogramowalnaprzezużytkownikalubteżtylkodoodczytu,aledającasięwymazać.

- 10 -

Mikrokontrolerynapoczątkubyłyprogramowanetylkowjęzykuassemblera,alewielerodzajówprogramowalnychjęzykamiwysokiegopoziomustałysięterazgłównymcelemuC.Tejęzykizostałyzaprojektowanespecjalniedowykorzystaniaogólnego,np.językC.Sprzedawcymikrokontrolerówzazwyczajtworząnarzędziaogólniedostępne,abyumożliwićłatwiejszezastosowanieichsprżętu.

UkładArduinozapewnianamokoło32kilobajtówpamięciflashnaprogramy,któremogąbyćprogramowanewjęzykuC.

2.5. Architekturainterfejsu

Mikrokontroleryzazwyczajzawierająodkilkudokilkudziesięciuuniwersalnychpinówwejścia/wyjścia(GPIO-generalpurposeinput/output).PinyGPIOmożnakonfigurowaćprogramującje,abybyływejściamilubwyjściami.JeślipinyGPIOzostająokreślonejakopinywejściowe,mogąbyćużywanedooczytywaniesygnałówzzewnątrz,np.zczujników.Skonfigurowanejakowyjściamogąsterowaćzewnętrznymiurządzeniami,np.diodamielektroluminescencyjymilubsilnikami.

Wielesystemówwbudowanychodczytujedanezczujników,którewytwarzająsygnałyanalogowe.Wtymmiejscuswojezastosowanieznajdująprzetwornikianalogowo-cyfrowe(ADC).Odkądstworzonoprocesorymożliwejestinterpretowanieiprzetwarzaniedanychwpostacicyfrowej.Przedtemnicniedałosięzrobićzwysłanymiprzezurządzeniadanymianalogowymi.ZatemkonwerteryADCsąużywanedokonwersjiprzychodzącychdanychdopostaci,któreprocesorjestwstanierozpoznać.MniejpopularnąopcjąwniektórychuCsąkonwerterycyfrowo-analogowe(DAC),którepozwalająprocesorowiwysłaćanalogowesygnałylubpoziomnapięcia.

- 11 -

Dodatkowo,wwielumikropocesorachznajdująsięróżnerodzajetimerów.Jednymznajbardziejznanychtypówtimerówsątzw.PIT(z ang. Programmable Interval Timer). Ten rodzaj timerów liczy odpewnejwartoścido0ikiedyjeosiągniewysyładoprocesorainformacjęozakończeniuliczenia.Jesttoprzydatnewurządzeniachtakichjaktermostaty,którecykliczniesprawdzajątemperaturęotoczenia,abysprawdzić,czynależywłączyćklimatyzacjęczygrzejnik.

UniversalAsynchronousReceiver/Transmitter(UART)umożliwiawysyłanieiodbieraniedanychzapomocątylkojednejlinii,conieobciążamocnoprocesora.Sprzętnachipierównieżprzeznaczonyzostałdokomunikacjizinnymiurządzeniami(chipami)wformiecyfrowej,np.magistralaI2CorazSPI(SerialPeripheralInterface).

UkładArduinozapewnianamaż14cyfrowychliniiwejść/wyjść(I/O)oraz7liniiwejść/wyjśćanalogowych.

- 12 -

3. ROBOT ARDUINO

3.1OPISLEDROBOTAAAR

LED1. Czerwona Czujniklinii(naspodzie)LED 2. Niebieska Dowolnie programowanaLED3. Czerwona USBDATALED4. Zielona USBDATALED 5. Niebieska Dioda zasilaniaLED6. IR Diodapodczerwona,sensorlewegokołaLED 7. NA NALED8. Czerwona Wskaźniksilnika:wlewo,wprzódLED9. Czerwona Wskaźniksilnika:wlewo,wtyłLED10. Czerwona Wskaźniksilnika:wprawo,wtyłLED11. Czerwona Wskaźniksilnika:wprawo,wprzódLED12. Zielona liniaTX(wysyłanie)LED13. Czerwona liniaRX(odbieranie)LED 14. Niebieska Dowolnie programowanaLED 15. NA NALED16. Czerwona CzujnikimpulsuprawegokołaLED17. Czerwona CzujnikimpulsulewegokołaLED18. IR Diodapodczerwona,sensorprawegokoła

LED 14 Miga jedynie z bootloaderemLED14WyłączonabezbootloaderaLED14migakrótkopowłączeniuzasilania,kiedyprogramjestzaładowany.

Rys.: Płytka PCB AAR

- 13 -

3.2UKŁADPŁYTKIPCBROBOTAAAR

ZobacznumerynaRys.:PłytkaPCBAAR

1. Wejścienakoszykbateryjny. (Uważajprzypodłączaniu!Sprawdźczypolaryzacjajestpoprawna!)2. PrzełącznikOn/OffRobota.3. Diodastatusu:sygnalizujeczyRobotzostałzasilonyzeźródła.4. Jeśliużywaszbateriiwielokrotnegoładowaniamożeszpodłączyćto podwójnewejście,któryzasilirobotapoprawnie.5. PodłączenieUSB:abyprogramowaćrobotazapomocą oprogramowaniaArduino.6. PrzyciskReset:abyręczniezresetowaćrobota.7. PodłączenieISP:umożliwiazainstalowanieinnegoprogramu bootloader.8. LED14:dostępnydocelówprogramistycznych,jeślizamiga,oznacza to,żebootloaderzostałuruchomiony.9. Linefollower:tenmodułjestdotwojejdyspozycjiprogramistycznej, ponieważpozwolirobotowipodążaćzalinią.10. Czujnikkołalewego:tenmodułgenerujeimpulsyzgodnieztym jakobracasięlewekoło.11. Czujnikkołaprawego:tenmodułgenerujeimpulsyzgodnieztym jakobracasięprawekoło.12. Diodystatusudlalewegosilnika:Tediodywskazujączysilnikobraca siędoprzodu.13. Diodystatusudlaprawegosilnika:Tediodywskazujączysilnik obracasiędotyłu.14. Miejscenarozszerzenia,gdzie,np.modułybezprzewodowemogąbyć przyłączonedoukładuArduino.15. DiodystatusudlainterfejsuszeregowegoRS232.16. Diodastatusu2:tędiodęmożnadowolnieprogramować.17. DiodystatusudlakomunikacjidanychUSB.18. Kontrolasilnika.

Na CD zawarty jest program autotestu AAR o nazwie AAR_SelftestV3. Za jego pomocą możesz testować podstawowe funkcje robota ARR.

Użyj programu do monitoringu w twoim Arduino Software, nie zapomnij o instalacji bibliotek - zobacz na stronie 22.

- 14 -

3.3 AAR-DODATKOWEINFORMACJE

DostępnyjestinterfejsfizycznydopodłączeniaUSBwrazzchipemFT232IC.ChiptenprzekształcasygnałzUSBnasygnałRS232UART,którypóźniejmożebyćjużprzetworzonyprzezprocesorATMEGA328P(znajdującysiępoprawejstronienaprzodzie).PodrugiejstronieumieściliśmyprzełącznikON/OFF,któryzawierazłączeJP3potrzebnedopodłączeniazasilaniaorazkontrolersilnikaIC2.Tylnaczęśćpłytkidrukowanej(PCB)zawieraobasilnikiorazczujnikikół.Czujnikiprzykołachtoczujnikifotoelektryczne.Wzębatkachkółco90°umieszczonezostałyotwory,czylinazębatcesączterytakiedziury.Wmomencie,gdyświatłodostajesięprzezotwórdoczujnika,wysłanazostajedoprocesoraotyminformacjawpostaciimpulsu.Dodatkowoobwodyelektrycznewłączajądiody16i17.Wysyłaneimpulsypozwalająnamkontrolowaćprędkośćkażdegoztylnychkółnapędowych.Naprzodzieznajdująsiętakżezłączadlaróżnychrozszerzeń,anaspodziepłytkiPCBmożnaznaleźćczujnikinapotrzebyobwodulinefollowera,czylirobotamobilnegopodążającegozatoremokreślonymprzezlinię.Robottypulinefollowerużywadiody,któraemitujewiązkęświatłanajegospodzie.Tuobokdiodyznajdująsiędwaczujnikipodczerwieniabymonitorowaćodbiteświatłozespodu.PłytkaPCBzawieraelementy(diodyelektroluminescencyjne,rezystoryikondensatory),którerazemdopełniajądziałaniemodułu,którypóźniejmożnanazwaćlinefollowerem.RobotużywaukładuArduino,którymożebyćporównanyzpłytkąArduinoDuemilanove.MikrokontrolerATMEGA328Pjestrdzeniemukładu,którymaaż14cyfrowychportówwejścia/wyjścia(I/O),wśródktórychsześćmożnakonfigurowaćjakowyjściowekanałyPWM(zang.Pulse-Width-Modulated).Dodatkoworobotzawierajeszczesześćanalogowychkanałówwyjściowych,oscylatorkryształowy16MHzorazzłączeUSBdoprogramowaniaisterowania.KolejnymelementemjestzłączeISP,któreumożliwiadoświadczonymhobbystomprogramowaniewłasnegoprogramubootloadera.Robotzaprojektowanonanapięciezasilające5Vimożebyćteżzasilany z wtyczki USB. Ta opcja jest wygodniejsza do testów oraz programowania.Bardzowygodnąfunkcjąprojektutegorobotasąwtyki,któreumożliwiającidodawanietwoichwłasnychmodułówrozszerzeńseriimodułówrozszerzeńASURO.

- 15 -

3.4 OPROGRAMOWANIEARDUINO-DODATKOWE INFORMACJE

OprogramowanieArduinotokategoriaoprogramowaniaopensource,którejestdostępneuniwersalniedowszystkiego,np.kodyźródłowesąujawnionedowszystkichplatformprogramistycznych.

PlatformaprogramistycznaArduinozostałazaopatrzonawedytortekstu,oknopowiadomieńorazkonsolę.PlatformamożekomunikowaćsiębezpośredniozAAR,copozwalanałatweprzesyłanieprogramówdoprocesora.ProgramynapisanewjęzykuArduinonazywanesą„sketch”(zang.szkice).Zwykłyedytortekstusłużydorozbudowaniaiedytowaniatychprogramów.Pliki„sketch”zapisująsięnadyskutwardymkomputera.Sąonerozpoznawalnepoprzezrozszerzenie„.ino”.Zapisywanedziałaniaplików„sketch”sąwyświetlanewokniepowiadomień,wktórymrównieżpojawiająsiębłędywykrytewkodzieźródłowym.WprawymdolnymroguoknaznajdująsięobecnieaktywnepłytkiArduinoorazinterfejsszeregowy.PodstawowapłytkaArduinodostarczabibliotekizdodatkowąfunkcjonalnością.Bibliotekadefiniujefunkcje,któremogązostaćużytepodczaspisaniaprogramubezkonsumpcjidodatkowegomiejsca,anidodatkowegonakładupracyprogramisty.

ProgramArduinomożnapodzielićnatrzysekcje:• struktura,• dyrektywy(dlazmiennychstałych),• funkcje. StrukturaArduinoskładasięzsetup()orazfunkcjiloop().Częśćsetupsłużydoinicjalizacjizmiennych,definicjipinów(„Pin-Modes“)orazdefinicjiużytychbibliotek.

FunkcjaLooppowtarzanabędziewnieskończonejpętli,którapozwalaprogramowiwykonywaćsięnieprzerwanie,dopókiukładniezostanieodłączony.

Wprogramieużywasięzmiennych,abyprzechowywaćwnichdaneedytowalne,podczasgdywartościstałepozostająniezmienneizapisujesięwnich,np.funkcjonalnośćpinówI/O.

- 16 -

4.ROZPOCZĘCIEPRACY

4.1.Pobranieiinstalacjaoprogramowania

Zainstalujwersję1oprogramowaniaArduinozpłyty.PóźniejmożeszpobraćnajnowsząwersjęoprogramowaniazestronyArduino.

WAŻNE:UżycieróżnychwersjioprogramowaniaArduinoiróżnychwersjiaplikacjimożestworzyćpewneproblemy.Bywa,żedlaaktualnejwersjioprogramowanianależyteżzmienićaplikacje,bobeztegomożeniezadziałać!

4.2.JęzykArduinoStrukturajęzykaArduinojestdokładnieopisananaoficjalnejstronieArduino.Nauczsięrozumiećcharakterystycznepunktyjęzykadopoziomu,któryjesttobiepotrzebnydopracy.

4.3InstalacjasterownikaUSBKiedypodłączyszpłytkę,Windowspowinienrozpoznaćnoweurządzenieirozpocząćinstalacjęsterownika(jeślinigdywcześniejnieużywałeśnatymkomputerzeArduino).NawersjachWin-dowsVistaipóźniejszych,sterownikpowiniensamsiępobraćizainstalować. WybierzurządzenieszeregowezmenuNarzędzia>Portyszeregowe.BędzietozapewneportCOM3lubwyższy(COM1orazCOM2sązazwyczajzarezerwowanedlasprzętu).

AbytosprawdzićmożeszodłączyćpłytkęArduinoiotworzyćmenuponownie:port,któryzniknie,towłaśnieten,podktóryprzypisanejestArduino.Podłączpłytkęiwybierzportszeregowy.

- 17 -

4.4MontażbateriiProjektrobotawymagaczterechbaterii“paluszków”,każdapo1,5V.Jeśliwoliszużyćbateriiwielokrotnegoładowania,należyzamontowaćzworkęJP4jakomostek,abyprzygotowaćsystemnaniższezasilanieztychbaterii(zobaczRys.1,numer4).

UWAGA!MontażzworkiJP4możewpłynąćnapolaryzacjębaterii.Sprawdź,czywszystkozostałoumieszczonepoprawnie.Dlabezpieczeństwaumieszczonazostałatamteżdiodaprostownicza.Bądźostrożny!BłędywpodłączeniuzasilaniazapomocązworkiJP4mogąpoważnieuszkodzićrobota.

Koszykbateryjnyzamontujjakponiżej(Rys.2).

Rys. 2:Montaż baterii.

TerazmożeszwłączyćrobotazapomocąprzełącznikaON/OFF.Leżącawpobliżuprzełącznikadiodazasilania(LED5)powinnasięzaświecić.

- 18 -

4.5ProgramowaniezprogramamiArduino

PodłączrobotdokomputerazapomocąkablaUSB.JeśliukładArduinojestpodłączonydoportuUSB,robotniepotrzebujebaterii-czerpiezasilaniezkomputera.

UWAGA:Robotzawszebędziesięaktywowałjaktylkopodłączonyzostaniedokomputera.PrzełącznikON/OFForazdiodazasilaniaLED5będąaktywnetylkowprzypadkuoperacjiwykonanychzbaterią.

TerazotwórzoprogramowanieArduino(zobaczRys.3a).

Rys.3aOprogramowanieArduino.Rys.3bOtwieraniepustegoprogramu 4.6WybórprogramuArduino

Zaczniemyodzaładowaniadorobotaprostegoprogramupróbnegonazwanego„blink”.Programsprawi,żedioda1(LED1)zapalisięwielokrotnie. Załadujprogrampoprzezwyszukanieikliknięcieprogramuwmenuoprogramowania: File>Examples>1.Basics>Blink(zobaczRys.3b),którypokliknięciuwyświetlisięwoknie(Rys.4a).

- 19 -

Rys.4aProgramBlink. Rys.4bWybórpłytki.

NatymetapienależyjeszczewybraźodpowiedniąpłytkęArduinowmenu:Tools>Board>ArduinoDuemilanoveLUBNanow/Atmega328(jaknaRys.4b).

4.7WybórpoprawnegoportuCOMWnastępnymkrokunależyzdefiniowaćpoprawnyportCOMdlainterfejsuArduino.BędzietozapewneCOM3lubwyższy(COM1iCOM2sąjużwużyciu). AbywybraćportCOMotwórzmenu:Tools>SerialPort>COM x.(zobacz Rys. 5)

Rys.5WybórpoprawnegoportuCOM.

- 20 -

4.8WgrywanieprogramudoRobotaArduino

Kliknijprzycisk,któryzaznaczonyzostałczerwonąstrzałką(lubzamienniewybierzzmenu:„File>UploadingtoI/Oboard“),abywgraćwybranyprogramdopodłączonegorobotaArduino(Rys.6a).

Oknostatusunabieżącowyświetlajakprzebiegaproceskompilacjiprogramuigdyzakończysięonzsukcesem,rozpoczniesięprzesyłanieprogramudoukładu.Nakoniecwgrywaniaprogramuwokniepojawisiękomunikat:„Doneuploading“(jaknaRys.6b),atakżedioda12(LED12)zaświecisiękrótko.

Rys.6a)Wgrywanieprogramu. Rys.6b)Skończonewgrywanie.

Teraz możesz usunąć kabel USB, aby odłączyć go odkomputera. Podłącz baterię i włącz robota.

Abyzaczerpnąćdalszychinformacjiorazpobraćinneproduktyodwiedźjednozforumnastronach:

www.arexxx.com www.roboternetz.de

- 21 -

4.9Rozwiązywanieproblemów

NAJPIERW sprawdź czy robot otrzymuje wystarczającozasilania z portu USB. Da się to sprawdzić usuwając bateriei zamykając zworkę JP4 - powinna zapalić się dioda zasilania.

PROBLEM;niemapołączeniazrobotemAAR.

Sprawdźczydiody3i4migająkrótkokiedypodłączaszrobotdokomputerakablemUSB.

Czyrobotjestpodłączonyzkomputeremsprawdźwmanagerzeurządzeń(panelsterowania).

Rys.6c)Managerurządzeń(nazrzucieekranuduńskawersjaWIN7).

Port Robot FTDI jest zwyklepokazany w sekcji portów jako “USBSERIALPORT”.

SprawdźczystarownikdlapoprawnegoFTDIzostałzainstalowany.

Tojestwłaśnienajczęstszyproblem.PobierzizainstalujnajnowsząwersjęsterownikaFTDInakomputer.

PROBLEM;niedasięwgraćpliku.INOdorobota.

SprawdźczywybranyzostałodpowieniportCOM.BędzietoportróżnyodCOM1iCOM3.

SprawdźczywybrałeśodpowiedniityppłytkiArduinozATmega328.

Sprawdźczypliksketchposiadazainstalowanewszystkieniezbędnebiblioteki.WejdźwMenu entry “sketch-->Library --> (zobacz na stronie 22).

- 22 -

4.10 AutotestAAR

ZpłytyCDotwórzprogramAAR_selftestiwgrajplik.inodorobotaAAR.AbywgraćwybranyprogramdopodłączonegorobotaArduinokliknijopcję,któranaRys.7zostałaoznaczonaczerwonąstrzałką(lubzamienniewejdźwmenu“File>UploadingtoI/O”board).

Ładowanie bibliotek Ładowaniebibliotekwykonujesiępoprzezmenu“sketch”>“Library”>SoftPWM oraz TimerOnezCD(przykłady).

Rys.7Wgrywanieprogramu. Rys.8Serialmonitor.

OtwórzserialmonitortakjakpokazanonaRys.8.

Pilnuj,bypołączeniezrobotemkablemUSBniezostałoprzerwane!Upewnijsię,żebateriesąnamiejscuisąnaładowane.WłączzasilanierobotaprzełącznikiemON/OFF.

Rozpocznijpierwszytestipodążajzakrokamiwserialmonitor.

serial monitor

SV1

Rys.6d)biblioteki

Otwórzbiblioteki(wersjaduńska)

- 23 -

5 MODUŁYROZSZERZAJĄCEAAR

5.1 ModułyrozszerzająceASUROdlaRobotaArduino

RobotAREXXArduinoposiadawieleróżnychpołączeńdlamodułówrozszerzających.PinyzłączyAARsąrównieżzgodnezrobotemAREXXASURO(zestawprogramowalnywjęzykuC).Oznaczato,żemożnaużywaćtychsamychrozszerzeńzarównodozestawuAREXXASURO,jakrównieżidoninejszegorobotaArduino.

NapłycieznajdujesiękilkaprzykładowychprogramówArduino,abyśmógłrozpocząćpracęzrozszerzeniamiodrazu.

RobotASUROrównieżposiadaogólnyzestawdoeksperymentowania(ARX-EXP2),któregomożnaużywaćdotwoichwłasnychrozszerzeńArduino.

PoniżejznajdujesięrozkładPINówzłączyzestawurozszerzeńAAR.NapłytcezłączatesąoznaczoneSV8,SV9orazSV10.

ARX-EXP2 AREXXPŁYTKADOEKSPERYMENTÓW

1. D82. D43. A34. GND5. VCC6. A27. TXD8. RXD

SV1 SV8,SV9orazSV10 SV2

1. SET2. AUX3. TXD4. RXD5. EN6. VCC7. GND

1. SCK/PB52. SCL/ ADC5/PC53. WS_RIGHT/INT0/PD24. RGND5. PWM1_L/AIN0/OC0A/PD66. MOSI/OSC2A/PB37. MISO/PB48. SDA/ ADC4/PC4

Czerwonakropkatopin1Rys.9. Stykidlarozszerzeń

- 24 -

5.2 KonfiguracjerozszerzeńASURO

ARX-ULT10 AREXX ULTRA SOUND KIT

UżyjprzykładowegoprogramuArduinoAAR_ULTRA zCD.Ztymprogramemrobotcofasię,gdynapotkaprzeszkodę.

ARX-SNK20 AREXXSNAKEVISION(PYRO)KIT

UżyjprzykładowegoprogramuArduinoAAR_SNAKEzCD.

Ztymprogramemrobotbędziepodążałzaciepłymobiektem.

ARX-DSP30 AREXX DISPLAY KIT

UżyjprzykładowegoprogramuArduinoAAR_DISPLAYzCD.

Ztymprogramemnawyświetlaczupokazujesiętekst,aprzyciskimożnadowolniezaprogramować.

- 25 -

ARX-MNSP55 AREXX MINE SWEEPER KIT

UżyjprzykładowegoprogramuArduinoAAR_MINEzCD.

Ztymprogramemrobotbędziewykrywałmetal.

ARX-APC220 AREXX WIRELESS KIT

ZobaczprogramAAR_APC220spośródprzykładowychplikównaCD.

UżyjprzykładowegoprogramuArduinoAAR_SRC.

PotrzebnybędzieteżprogramVisualBasicnakomputerze(AAR_VB).

ZzestawemAREXXARX-APC-220możnasterowaćrobotemAAR bezprzewodowo.

Poniżejopisanezostało,jaktodziała:-PodłączRP6v2USBProgrammerorazAPC-220dokomputera.-PodłączinnyAPCdorobotaAAR(środkowezłącze).-ZaładujdaneAAR_SRC do procesora robota AAR.-ZainstalujoprogramowanieAAR_VBnakomputerze.-WybierzodpowiedniportCOMwoprogramowaniuAAR-VB.

RP6v2USBProgrammerzAPC-220

- 26 -

ANDROID–PROGRAM

ARX-BT3 AREXX BLUETOOTH KIT

ZestawARX-BT03umożliwiacisterowanierobotaAARpoprzezBluetoothiaplikacjęnaANDROID.

Otwórz plik AAR_AndroidappzpłytyizainstalujaplikacjęBLUETOOTH_AAR.APKnaswoimurządzeniu.ZtegosamegoplikuzainstalujplikAAR_SRC_BluetoothnarobocieAAR.

Podążajzainstrukcjamiponiżej:- PodłączmodułBluetoothdopłytkiPCBrobota.- ZaładujdaneBluetoothANDROIDdoprocesorarobota.- ZaładujdaneANDROIDAPKdoswojegosmartfonalubtabletu.

MożeszznaleźćteżaplikacjeAREXXnapłyciepodnazwąAAR_AndroidapplubwsklepieGOOGLEPLAY.

- 27 -

6.POBOCZNEINFORMACJENATEMAT OBWODÓW MOSTKA HMostekHtoobwódelektroniczny,któryodwracapolaryzacjęurządzenia(np.silnikaprądustałego-DC)poprzezsterowanieczteremaprzełącznikami.Bardzoczestoużywasięgowrobotycedosterowania obrotami silnika w dwie przeciwne strony. Nowoczesne systemyużywająukładówscalonychdosterowaniasilnikiem,aleabypoznaćpodstawoweproblemyzwiązaneznapięciemzasilającymkluczowymmożesięokazaćużyciearchaicznegoukładudosterowania.

6.1 MostekHdlanapięciazasilającego3VoltObwódsterującywrobotachHyperPeppyzawierajądwatranzystoryPNPTR7orazTR8,atakżetranzystoryNPNTR9orazTR10.Wtymprojekciepracęzezwalamyjedyniedwómtranzystorom,abyprzewodziłyprądydosilnikaMjednocześnie:

przezTR7iTR10lubzamiennieprzezTR8iTR9.

SymulatorMicrocap(darmowawersjatestowategoprogramu)toprogram,którypozwalanałatwąiwygodnąsymulacjęukładuDCorazodczytwartościzoknaschematu:

Rys. 10: Symulacja mostka H robota Hyper Peppy.

- 28 -

PrzyjrzyjmysięsilnikowiprądustałegoM.WobwodzierezystorR14imitujedziałanieprzedwzmacniacza.Tenrezystormapóźniejwpływnawyprowadzeniatranzystorównazywanebazą,akonkretnienatranzystoryTR6iTR5,którychnapięciebazybędzierówne0V.Ztegopowoduprawagałąźprzewodziistotneprądy.

TranzystoryTR8,TR5iTR9przewodzą,ainnesąwtymczasiezablokowane.JaktylkoR14dostanienapięciedodatnie,prawagałąźzostaniezablokowanaiprądnasilnikuzostanieodwrócony.SymulatorMicrocapobliczaprądydlawszystkichkomponentóworazodczytujewartościzoknaschematów.Całyprądzasilania3-woltowejbateriibędziewynosiłokoło300mA(miliamperów).TakniezwykleniskienapięciezasilającetegoobwoduzależyodkombinacjikrzemutranzystorówPNPiNPN,którepracująprzynapięciuprzwodzeniarównym0.7V.Jednakżesilnikumieszczonyzostałpomiędzydwomapinamitranzystoranazwanymikolektorami,którejedyniewstanienasyconymprzewodząprzynapięciu0.3V.DlasilnikaMteprzełączenianapięcianastępująprzyszacowanymnapięciu1.5V.WartościobliczoneprzezMicrocapwidniejąnaRys.11..

Rys.11:UstawieniasilnikaDCdlamostkaHwrobocieHyperPeppy.

- 29 -

3-woltowenapięciezasilającejestidealnymrozwiązaniemdlarobota,któryswojenapięcieczerpieztylkodwóchpaluszkówbaterii.TrudnojednakzawrzećtanzystoryPNPwukadziescalonymtakimjakL293D.Układyscalone(IC-ang.integratedcircuit)mająwieleplusów:niezawodność,ochronaprzednieodpowiednimbudowaniemobwodów,atakżemałyrozmiariwaga.ZtegopowoduzdecydowaliśmysięużyćchipuL293DzobwodempodwójnegomostkaH,abymócjednocześniesterowaćdwomasilnikamiprądustałego.

6.2 MostekHdla4,5VoltChipL293D(Rys.10)pozwalanasterowanieprądamiwyjściowymiażdo600mAnakażdykanał(prądmaksymalny:1.2A).Napięciezasilającesterownika(VCC2)możewahaćsięmiędzy4.5Va36V,coczynichipL293DjednymznajlepszychdosterowaniasilnikówDC.

Minimalnenapięciezasilające(VCC2)wynosiwłaśnie4.5V,coponiekądzmuszanasdowybraniaażczterechbateriijakoźródłozasilania.Takiewymogizwiększająrównieżwagęcałkowitąrobota.Takącenępłacisięzaużycienowoczesnychrozwiązańdlaobwodów.

Rys. 12 Obwód z mostkiem H oraz chipem L293D.

- 30 -

7. OdometriaTenrozdziałpoświęconyjestinteresującympomysłomnaaplikacjędlarobotaAARdlaosób,któresązainteresowanepogłębieniemtematuprojektówzwiązanychzrobotyką.

7.1 ReakcjanaświatłoikolorSensoryświatłoczułepozwoląnamprogramowaćrobota,abyreagowałnalinięorazkolory.Wpierwszymzprzedstawionychprzykładówrobotpowinienjeździćpotorzewkształcieósemki.Programnapisanyzostałwpętli,czylirobotjestzmuszonydonieprzerwanej pracy.

Drugiitrzeciprzykładuczyrobotaunikaćźródełczerwonegoświatłaorazjednocześnielgnąćdozielonego.Takiezachowaniejestznanezżycia,m.in.owadów,któredziękitemupotrafiąprzetrwać.

7.2 RobotmelomanInteresującymmożnaodnaleźćtakżewzórzachowań,którezależąodhałasuwjegośrodowisku.Niespokojnegorobotawyposażonegowwrażliwymikrofonmożna“nauczyć”jakunikaćostrejmuzykizbasemijednocześnielgnąćdowysokiejmuzykifletowej.Jegozainteresowaniewysokimiczęstotliwościamidźwiękumogąnawetbyćważniejszeniżjegostrachprzedtyminiskimi.Wtensposóbrobotbędziemiałzazadanieuciekaćodźródłamuzykiheavymetalowejikierowaćsięwstronęwysokiejmuzykifletu.

Wzoryzachowań,którezależąodwysokichiniskichczęstotliwości,światłaorazkolorów,wymagająjedyniekilkuczujników,dwóchfiltrówczęstotliwościikilkuczujnikówświatławyposażonychwfiltrykoloru.

- 31 -

7.3 ZłożonerobotytypulinefollowerRoboty,którepodążajązaświatłemlubpotorzejkrzywejwymagająźródłaświatła,np.diodylubwiększejilościczujnikówświatła.Takieurządzeniapozwalająukładowinaidentyfikacjęlinii,poktórejrobotmapodążać.Pierwszymkrokiemwprogramiepowinnybyćinstrukcjepozwalającerobotowinapoczątkoweodnalezienielinii,któratworzywzór,poktórymrobotmasięporuszać.Takiwzórmożesięskładaćzinstrukcji,gdziewzoremjest,np.spirala,czyliokrągozwiększającymsiępromieniu.Robotbędziepodążałzaliniątoruwyznaczonymprzezliniędopókiczujniktęliniębędziewykrywać.Pisanietakichprogramównależydoosobnejkategoriioprogramowaniairozwiązujeproblemypodążaniazakażdym,nawettrudnymwzorem,np.zostrymizakrętamiitd.

7.3.1 Złożonezachowania(jakozadanieprogramistyczne)Projektmożebyćspomplikowany,np.jeślimusipracowaćwśródskomplikowanego,wielokolorowegootoczeniaorazlinii,azazadaniemapodążaniezaczerwonąlinią,którazaprowadzigodobezpiecznegoicichego“garażu”.

Jaktylkohałasustanie,robotmożeopuścić“garaż”izacząćszukaćzielonejliniiprowadzącejdokolejnego,pełnegomuzyki.

Jeślimuzykazawierawsobiewysokieczęstotliwości,którychrobotnielubi,opuścitomiejscewposzukiwaniudrogidodomu,czypierwszegobezpiecznego“garażu”.

- 32 -

Doświadczeniprogramiścizdająsobiesprawęzezłożonościorazwymogówprojektowychprogramu,którywymagawieluróżnychzależnościodkolorówioddźwięków.Programiścistojąwtedyprzedzadaniemstworzeniaprogramu,któryopieraćsiębędzienahierar-chiczniewykonujcychsięfunkcjach.Stworzenietakiegokonceptupozwalananapisaniezłożonegoirzetelnegooprogramowania,którewykonywaćbędziekonkretnezadanie.Złożonośćoprogramowaniamożesprawić,żeprogramistazaczniepodziwiaćzłożonośćmałychorganizmówżywych,któreprzecieżkorzystająztakichmechanizmówwcodziennymżyciupodczasposzukiwaniapożywienialubschronienia.Naturasamawienajlepiej,jakiemechanizmysąnajdoskonalszeiulepszaje,byprzetrwaćmoglinawetteoretycznienajsłabsi!

- 33 -

8.ProgramowaniewBoot-loader

UWAGA!Opisane w tym rozdziale opcje wymagajądużego doświadczenia programistycznego.

MożeszzaładowaćdomikrokontroleraArduino-bootloaderprzypomocySTK500.AbywgraćdomikrokontroleraAtmegajakikolwiekprogram,któryzostałnapisanywjęzykuArduino,procesorAtmegamusibyćwyposażonywspecjalnyArduino-bootloader.Tenboot-loaderzadbaopoprawnąlokalizacjęwszystkichużytychznakówwewnątrzpamięciAtmega.Abyzainstalowaćboot-ladera,potrzebnebędą:*płytkaprogramowalnaAVR(naprzykładpłytkaSTK500)*12-woltowenapięciezasilające(dlaSTK500)*RobotAARzawierającynapłytcezłączeISP(Rys.7)*PCzfizycznymportemCOM(lepiej,żebyniebyłotokonwerterUSB-RS232,którymożepowodowaćbłędyoprzekroczeniulimituczasu).

Należyzainstalowaćaktualną(lubzaktualizowaćistniejącą)wersjęprogramuArduino,którymożnaznaleźćnastronieinternetowejwww.arduino.cc.Pobranyplikbędziemiałrozszerzenie.ZIPlub.RAR.Rozpakujteplikiiumieśćgdzieśnadyskutwardym.

AbyzaładowaćArduino-bootloaderdorobotaużyjnp.programuWINAVR.

Uwaga!OprogramowanieARDUINOjesttypufreewareiodczasudoczasumożeniewspółpracowaćprawidłowozboatloaderamiArduino!

Jeślidoświadczychproblemówtegotypulubpodobne,możeszposzukaćpomocynawieludostępnychforumistroninternetowych

Arduino,gdziebyćmożektośmiałjużpodobnyproblem.

Rys.12:ZłączeISP

- 34 -

DODATEK

- 35 -

A. LISTA ELEMENTÓW Element Wartość Pakiet

C1 18pF 0805 C2 18pF 0805 C3 0.1uF C0805K C4 0,1uF 0805 C6 0,1uF 0805 C7 470uF CPOL-USF C8 0,1uF 0805 C9 4,7uF 1206 C11 0,1uF 0805 C12 0,1uF 0805 C13 0,1uF 0805 C14 0,1uF 0805 C15 0,1uF 0805 C16 470uF CPOL-USF C17 470uF CPOL-USF C19 470uF CPOL-USF D1 MBR0520 SOD-123 D2 1N4001 DO41-10 IC1 FT232RL SSOP28 IC2 L293D DIL16 IC3 ATMEGA328AU ATMEGA328P-AU IC4 74AHC1G14DCK 74AHC1G14DCK IC5 74AHC1G14DCK 74AHC1G14DCK JP1 M1 1X02 JP2 M2 1X02 JP3 BAT 1X02 JP4 4,8V 1X02 JP5 ISP 2X03 SV2 złącze żeńskie FE07-1 T1 SFH300 LED5MM T2 SFH300 LED5MM T3 LPT80A LPT80A T4 LPT80A LPT80A U$1 3,3V PIN-T U$2 FE03-1 FE03-1 U$3 FE03-1 FE03-1 U$4 FE02-1 FE02-1 X1 PN61729-S PN61729-S LED1 Rd LED5MM LED2 Bl LEDCHIP-LED0805LED3 Rd LEDCHIP-LED0805 LED4 Gn LEDCHIP-LED0805 LED5 Bl LEDCHIP-LED0805 LED6 Rd LEDIRL80A

- 36 -

Element Wartość Pakiet

LED8 Rd LEDCHIP-LED0805LED9 Rd LEDCHIP-LED0805LED10 Rd LEDCHIP-LED0805LED11 Rd LEDCHIP-LED0805LED12 Gn LEDCHIP-LED0805LED13 Rd LEDCHIP-LED0805LED14 Bl LEDCHIP-LED0805LED16 Rd LEDCHIP-LED0805LED17 Rd LEDCHIP-LED0805LED18 Rd LEDIRL80A Q1 16MHz CRYSTALHC49UP R1 20k R-US_R0805 R2 20k R-US_R0805 R3 1k5 R-US_R0805 R4 220 R-US_R0805 R5 1k5 R-US_R0805 R6 1k R-US_R0805 R7 680 R-US_R0805 R8 680 R-US_R0805 R9 20k R-US_R0805 R10 20k R-US_R0805 R11 220 R-US_R0805 R12 220 R-US_R0805 R13 10k R-US_R0805 R14 220 R-US_R0805 R15 220 R-US_R0805 R16 220 R-US_R0805 R17 220 R-US_R0805 R18 220 R-US_R0805 R19 220 R-US_R0805 R20 10k R-US_R0805 R21 10k R-US_R0805 R22 10k R-US_R0805 R23 10k R-US_R0805 R24 220 R-US_R0805 R25 220 R-US_R0805 R26 220 R-US_R0805 R27 220 R-US_R0805 R28 220 R-US_R0805 R29/C3 0.1uF C0805 R31 10k R-US_R0805 R32 12k R-US_R0805 S1 TACT SWITCH TACT_SWITCH S2 255SB 255SB SV1 złącze żeńskie FE08-1

- 37 -

B. GŁÓWNA PŁYTKA PCB - RZUT Z GÓRY

LED1T2

T1

+-

E L

E C

T R

O N

I C

S

18

17

12

AR

EX

X A

RD

UIN

O R

OB

OT

AR

EX

X A

RD

UIN

O R

OB

OT

RX

D

TX

D

A2

VC

C

GN

D

A3

D4

D8

GN

D

VC

C

EN

RX

D

TX

D

AU

X

SE

T

SC

K

SD

A

SC

L

INT

0

RG

ND

PD

6

MO

SI

MIS

O

LEFTRIGHT

Q1

IC1

C1

C2

C4

JP

5

R4

R7

R8

C6

R9

R1

0

R11

R12LED2

D1

LE

D3

LE

D4

IC2

JP

1

JP

2

R13

D2

JP

3

JP

4

S1

X1

C7

LE

D5

C9

C11

R5

R6

R3

T3

T4

R1

5

R1

4

R1

6

R1

7

R1

8

R1

9

LE

D8

LE

D9

LE

D1

0

LE

D11

IC3R

20

R2

1

R2

2R

23

C8

C12

C1

3

C1

4

C15

R24 LED12

R25 LED13

R2

6L

ED

14

IC4

IC5 LED16LED17 R

27

R2

8

LE

D1

8

LE

D6

C1

6

C1

9

C3

R3

1R

32

C17

SV1

SV2

S2

R2

9

16

mh

z

FT232RL

18

pF

18

pF

0,1uf

ISP

68

0

68

0

MBR0520

rd

gn

L2

93

D

M1

M2

10k

BA

T

4,8

V

TA

CT

SW

ITC

H

PN61729-S

47

0u

f

4,7

uf

0,1uf

22

0

22

0

22

0

22

0

RD

RD RD

RD

3,3

V3

,3V

AT

ME

GA

328P

-AU

0,1uf

0,1

uf

0,1

uf

0,1uf

470uf

47

0u

f

0.1uf

470u 1k

MO

TO

R1

MO

TO

R2

- 38 -

C. GŁÓWNA PŁYTKA PCB - RZUT Z DOŁU

LED1T2

T1

+-

E L

E C

T R

O N

I C

S

18

17

12

AR

EX

X A

RD

UIN

O R

OB

OT

AR

EX

X A

RD

UIN

O R

OB

OT

RX

D

TX

D

A2

VC

C

GN

D

A3

D4

D8

GN

D

VC

C

EN

RX

D

TX

D

AU

X

SE

T

SC

K

SD

A

SC

L

INT

0

RG

ND

PD

6

MO

SI

MIS

O

LEFTRIGHT

Q1

IC1

C1

C2

C4

JP

5

R4

R7

R8

C6

R9

R1

0

R11

R12LED2

D1

LE

D3

LE

D4

IC2

JP

1

JP

2

R13

D2

JP

3

JP

4

S1

X1

C7

LE

D5

C9

C11

R5

R6

R3

T3

T4

R1

5

R1

4

R1

6

R1

7

R1

8

R1

9

LE

D8

LE

D9

LE

D1

0

LE

D11

IC3R

20

R2

1

R2

2R

23

C8

C12

C1

3

C1

4

C15

R24 LED12

R25 LED13

R2

6L

ED

14

IC4

IC5 LED16LED17 R

27

R2

8

LE

D1

8

LE

D6

C1

6

C1

9

C3

R3

1R

32

C17

SV1

SV2

S2

R2

9

16

mh

z

FT232RL

18

pF

18

pF

0,1uf

ISP

68

0

68

0

MBR0520

rd

gn

L2

93

D

M1

M2

10k

BA

T

4,8

V

TA

CT

SW

ITC

H

PN61729-S

47

0u

f

4,7

uf

0,1uf

22

0

22

0

22

0

22

0

RD

RD RD

RD

3,3

V3

,3V

AT

ME

GA

328P

-AU

0,1uf

0,1

uf

0,1

uf

0,1uf

470uf

47

0u

f

0.1uf

470u 1k

MO

TO

R1

MO

TO

R2

- 39 -

12

16mhz

FT

232R

L

18pF

18pF

0,1

uf

GN

D

GN

DIS

P

GN

D

220

GN

D

GN

D

680

680

Rd

0,1uf

GN

D

20k

20k

220

GN

D

220

VCC

VCC

VCC

Bl GN

D

MB

R0520

VCC

rd gn

VCC

L293D

GN

D

M1

M2

GN

D

VCC

10k

VCC

1N

4001VCC

BA

T

4,8V

PN

61729-S

470uf

Bl

4,7

uf

0,1

uf

1k5

1k

1k5 GN

DG

ND

220

220

220

220

220

220

RD

RD

RD

RD GN

DG

ND

GN

DG

ND

VCC

VCC

VCC

VCC

VCC

VCC

VCC

AT

ME

GA

328P

-AU

10k

10k

GN

D

10k

10k

GN

D0,1uf

0,1uf

0,1uf

0,1uf

0,1uf

220

GN220

RD

220

Bl GN

D

RD

RD

220

220

RD

RD

470uf

GND

470uf

GND

0.1uf

SF

H300

SF

H300

10k

12k

470u1kQ1

IC1 V

CC

20

3V

3O

UT

17

US

BD

P15

US

BD

M16

OS

CO

28

OS

CI

27

GN

D7

TX

D1

RX

D5

RT

S3

CT

S11

DT

R2

DS

R9

DC

D10

RI

6

CB

US

023

CB

US

122

CB

US

213

CB

US

314

CB

US

412

VC

CIO

4

RE

SE

T19

GN

D25

GN

D18

TE

ST

26

GN

D21

C1

C2

C4

12

34

56

JP

5

R4

R7

R8

LED1

C6

R9

R10

R11

R12

LE

D2

D1

LE

D3

LE

D4

1-2

EN

1

1A

2

1Y

3

GN

D1

4

GN

D2

5

2Y

6

2A

7

VC

C2

8

VC

C1

16

4A

15

4Y

14

GN

D3

13

GN

D4

12

3Y

11

3A

10

3-4

EN

9

IC2

12 JP

1

1 2

JP

2

R13

D2

12 JP

312

JP4

1234

X1

C7

LED5

C9

C11

R5

R6

R3 T3

T4

R15

R14

R16

R17

R18

R19

LED8

LED9

LED10

LED11

DIG

ITA

L_13

17

CR

YS

TA

L2

8

CR

YS

TA

L1

7

GN

D1

3

VC

C1

4

GN

D/A

NA

LO

G21

AN

ALO

G_R

EF

ER

EN

CE

20

VC

C/A

NA

LO

G18

DIG

ITA

L_12

16

DIG

ITA

L_11

(PW

M)

15

DIG

ITA

L_10(P

WM

)14

DIG

ITA

L_9(P

WM

)13

DIG

ITA

L_8

12

DIG

ITA

L_7

11D

IGIT

AL_6(P

WM

)10

DIG

ITA

L_5(P

WM

)9

DIG

ITA

L_4

2D

IGIT

AL_3(P

WM

)1

DIG

ITA

L_2

32

DIG

ITA

L_1(T

X)

31

DIG

ITA

L_0(R

X)

30

AN

ALO

G_5

28

AN

ALO

G_4

27

AN

ALO

G_3

26

AN

ALO

G_2

25

AN

ALO

G_1

24

AN

ALO

G_0

23

RE

SE

T29

IC3 G

ND

25

VC

C2

6

AN

ALO

G_7

22

AN

ALO

G_6

19

R20

R21

R22

R23

C8

C12

C13

C14

C15

R24

LED12

R25

LED13

R26

LED14

24

24

LED16

LED17

R27

R28

LED18

LED6

C16

C19

C3

T2

T1

R31

R32

C17

12345678

SV

1

1 2 3 1 2 31 2

12345

SV

2

67

S2

231

R29

GN

D

GN

D

MO

SI

MO

SI

MO

SI

MIS

O

MIS

O

MIS

O

SC

K

SC

K

SC

K

RE

SE

T

RE

SE

T

RE

SE

TS

CL

SC

L

SD

A

SD

A

PW

M2_R

RX

RX

RX

RX

RX

TX

TX

TX

TX

TX

D4

D4

PW

M2_L

A2

A2

A3

A3

LIJ

N_S

EN

1

LIJ

N_S

EN

1

LIJ

N_S

EN

2

LIJ

N_S

EN

2

D8

D8

LE

D_LS

LED_LS

VC

C

VC

C

RG

ND

PW

M1_L

3V

3

3V

3

WS_RIGHT

WS

_R

IGH

T

WS_LEFT

WS

_LE

FT

PW

M1_R

EN

AU

XS

ET

INT

0

INT

0

PD

6

PD

6

ICS

PE

xte

nsio

n b

oa

rd c

on

.

US

BA

rdu

ino

Lin

e t

racin

g s

en

so

r

Mo

tor

Dri

ve

r

PO

WE

R S

UP

PLY

ba

t

Wh

ee

l-se

nso

rs

USB

3,3

V

FE

03-1

SV

8

FE

03-1

SV

10

SV

9

FE

02-1

D. SCHEMATY AAR

ATm

ega3

28P

- 40 -

E. 3D PCB AAR