Pratarmė
Mėgstu kurti robotus. Tik iš malonumo, nes kartais jie atrodo man lyg gyvi padarai. Mėgstu iššūkius, mėgstu spręsti problemas. Mėgstu meistrauti. Jaučiu malonumą darydamas kažką iš metalo, plastiko, medžio... Mėgstu programuoti. Myliu gyvenimą ir stengiuosi džiaugtis kiekviena jo akimirka. Myliu savo vaikus ir žmoną. Man patinka mano darbas. Ko dar trūksta?
Tikrai būsiu dar labiau laimingas jeigu tu, perskaitęs šį straipsnį, panorėsi išmėginti savo jėgas robotų konstravime. Nustebink savo merginą, draugus, tėvus! Negaišk daugiau laiko – susirask robotikos klubą ir džiaukis nauju hobiu! Linkiu tau sėkmės!
Pasidaryk savo 3 kg sumo robotą
Norėčiau pristatyti savo 3 kg klasės sumo robotą „Master of Disaster“. Jo vardas reiškia „Betvarkės Valdovas“. Jis laimėjo antrą vietą „Baltic Robot SUMO: Riga 2008 autumn CUP“ varžybose. Šio straipsnio tikslas – padėti Jums sukonstruoti savo pirmąjį sumo robotą arba patobulinti jau esamą.
Konstrukcija
Apžvalga
Norėjau sukonstruoti labai greitą ir labai žemą robotą. Žemas robotas turi šansą likti nepastebėtas priešų. Greitas robotas – visada gerai. Aišku tol, kol jis sugeba išsilaikyti ringe. „Masterio“ mechaninė konstrukcija yra labai paprasta ir efektyvi. Tai leidžia lengvai ardyti arba remontuoti robotą.
Korpusas
Korpusą sudaro dvi plokštės, pagamintos iš 5 mm storio plieno (bendras svoris ~1,5 kg). Plokštėse yra išfrezuoti grioveliai, kuriuose tvirtinami varikliai. Grioveliai idealiai išlygina variklius, visa konstrukcija sutvirtinama keturiais varžtais. Viršutinėje plokštėje išpjautos angos baterijoms įdėti. Tokios konstrukcijos privalumas – paprastumas. Trūkumas – roboto svorio centras yra paslinktas į priekį. Tai nėra labai gerai, kadangi sunku užtikrinti, kad visi šeši ratai turėtų stabilų kontaktą su ringo paviršiumi.
Priekinis kaušas
Kaušas padarytas iš standartinio aliuminio profilio. Jame yra išpjautos angos sensoriams. Kaušas tvirtinasi prie korpuso dviem varžtais. Tokio sprendimo trūkumas: kaušas gali būti nulenktas kovoje ar robotui nukritus nuo ringo, dėl ko keli ratai gali prarasti sukibimą su ringu. To negalima leisti, nes maksimalus sukibimas yra viena iš pagrindinių pergalės dedamųjų.
Važiuoklė
Ratai
Ratai yra ištekinti iš aliuminio strypo. Kiekvieno rato viduje yra paslėptas varžtelis, skirtas rato tvirtinimui ant variklio ašies. Padangose yra pradurtos mažytės skylutės, kad galima būtų su šešiakampiu rakteliu priveržti tuos varžtus. Padangos yra pagamintos iš silikoninių dviračio rankenų. Rankena užmaunama ant atitinkamo skersmens vamzdžio ir vamzdis įspaudžiamas į tekinimo stakles. Bet kokio tekinimo peilio bukąją pusę apvyniojame švitriniu popieriumi ir įspaudžiame tokį „įrankį“ į peilių laikiklį. Nuimame visus nelygumus, esant maksimalioms staklių apsukoms ir supjaustome padangas pagal plotį. Kelioms sekundėms įmeskite padangą į verdantį vandenį, kad lengviau būtų ją užmauti ant rato. Atsargiai, neperkaitinkite padangos, nes silikonas gali būti pažeistas karščio.
Varikliai
„Masteryje“ yra sumontuoti aukštos kokybės nuolatinės srovės mini-varikliai „A-Max 22 #110143“, reduktoriai „GP 22A #134162“. Variklio skersmuo yra 22 mm, nominali įtampa 6 V, greitis reduktoriaus ašyje – 320 aps/min prie 6 V.
Tokie varikliai lengvai gali dirbti prie dvigubos įtampos. Prisiminkite Omo desnį: įtampos padvigubinimas duoda mums keturis kartus daugiau galingumo. Tai kodėl nepasinaudoti proga – turėsime daugiau galingumo už dyką! Aišku, reikia nepamiršti apie geras padangas, nes ratai gali pradėti slysti ir jūs neturėsite naudos iš padidėjusio galingumo.
Aš perku variklius „eBay“ aukcione, todėl, kad perkant iš gamintojo, panašūs varikliai gali kainuoti nuo 50 iki 200 eurų už vienetą. „eBay“ aukcione sumokėjau 80 dolerių už 8 variklius ir esu labai patenkintas savo pirkiniu.
Varikliai turi sumontuotus planetarinius reduktorius su perdavimo skaičiumi 1:29 ir metaliniais dantračiais. Perdavimo skaičiaus parinkimas – tai kompromisas tarp galingumo ir greičio. Dažniausiai sumo robotams tinka perdavimo skaičiai nuo 1:15 iki 1:30. Su mažesniu perdavimo skaičiumi jūs prarasite galingumą, o su didesniu – prarasite greitį.
Paprasta programa padės jums paskaičiuoti roboto greitį: http://www.technobots.co.uk/acatalog/Calculators.html. Tai leis nuspręsti, ar jums tinka konkretūs varikliai prieš juos nuperkant.
Maitinimas
Apžvalga
„Master of Disaster“ turi atskirus maitinimo šaltinius variklių valdymo plokštei ir procesorinei plokštei. Tokiu būdu variklių triukšmai ar net gedimai jokiu būdu negali įtakoti procesorinės plokštės darbo ar ją sugadinti.
Variklių maitinimas
Aš pradėjau nuo 2-jų celių „Lipo“ baterijos (7,4 V) ir labai greitai supratau, kad robotas yra per lėtas. Netgi su 3-jų celių baterija (11,1 V) robotas nebuvo pakankamai greitas. Paskutinis žingsnis buvo dviejų 2-jų celių baterijų nuoseklus jungimas (1000 mAh, 62*35*11 mm L*W*H, svoris 52 g). Atrodo, žiauru yra maitinti 6 V variklius nuo 14 V, bet iki varžybų pabaigos aš nesudeginau nei vieno variklio ir iki šiol jie yra puikiame stovyje.
Dvi „Lipo“ baterijos yra sudėtos tarp variklių ir jėgos laidai yra prilituoti tiesiai prie schemos, užtikrindami gerą kontaktą.
Procesorinės plokštės maitinimas
Aš naudoju mažą 2-jų celių bateriją procesorinei plokštei maitinti (200 mAh, 35*21*12 mm L*W*H, svoris 13,1 g). Plokštė naudoja apie 200 mA, pusę šio kiekio naudoja „Bluetooth“ modulis ir kitą pusę - procesorius, sensoriai ir šviesos diodai. Baterijos įtampa (7,4 V) konvertuojama į 5 V LT1529-5 reguliatoriumi, ir 3,3 V įtampa „Bluetooth“ moduliui gaunama iš LT1529-3.3 reguliatoriaus.
Optinis ryšis
Procesorinė plokštė yra sujungta su variklių valdymo plokšte per 4 optoporas. Vienas signalas valdo trijų variklių kryptį, kitas signalas valdo tų pačių variklių greitį (impulsinė-platuminė moduliacija). Du šie signalai valdo kairės roboto pusės variklius, ir dar du analogiški signalai valdo variklius dešinėje pusėje.
Elektronika
Variklių valdymo plokštė
Plokštėje yra sumontuoti šeši (po vieną kiekvienam varikliui) MC33887 draiveriai ir LM78L05 įtampos reguliatorius. MC33887 gali atlaikyti 5 A nuolatinę srovę ir iki 8 A trumpalaikius srovės impulsus. Prie 14 V maitinimo įtampos vienas variklis be apkrovos naudoja apie 150 mA, o mechaniškai sustabdyto variklio srovė yra apie 4,5-5 A.
MC33887 turi daug įvairių integruotų apsaugų. Specialus išėjimas gali signalizuoti apie klaidą. Prie šių išėjimų pajungiau šviesos diodus, bet per roboto bandomuosius važiavimus jie niekada neužsidegdavo. Visa plokštė yra suprojektuota taip, kad jėgos laidai / takeliai būtų kuo trumpesni. Varikliai yra pajungti praktiškai prie pačių MC33887 kojelių, baterijų laidai irgi buvo negailestingai apkarpyti. Kiekviena pusė iš trijų draiverių yra valdoma dviem signalais (kryptis ir greitis) iš procesorinės plokštės.
Procesorinė plokštė
„Master of Disaster“ smegenys yra „AVR ATmega162“ mikrovaldiklis (taktuojamas 10 MHz). Robotas turi penkis sensorius: vieną „Sharp GP2D05“ (vieno bito skaitmeninis išėjimas) ir keturis paprastus infraraudonųjų spindulių daviklius. Du iš ju yra sumontuoti roboto priekyje ir dar du – roboto šonuose. Kiekvienas iš tų keturių sensorių turi 5 mm skersmens infraraudonųjų spindulių diodą, vieną TSOP1736 imtuvą ir 10 k potenciometrą veikimo atstumui reguliuoti. „ATmega“ generuoja 36 kHz impulsus tam tikrais laiko tarpais ir tikrina TSOP imtuvus. Jeigu infraraudonieji spinduliai atsispindi nuo kliūties, TSOP imtuvas keičia išėjimo signalo lygį. Tokių sensorių trūkumas - suveikimo atstumas labai priklauso nuo paviršiaus spalvos. „Master of Disaster“ gali pamatyti baltą objektą iš 0,6 metro atstumo, bet juoda objektą pamatys tik iš 0,2 metro atstumo.
Aš naudoju „Sharp“ sensorių, kad pagerinčiau roboto matymo galimybes. GP2D05 sensoriai dirba kitokiu principu ir jiems yra visiškai nesvarbi objekto spalva. Jie gali matyti objektus nuo 5 iki 70 cm atstumu (suveikimo riba reguliuojasi mažu trimeriu, esančiu pačiame sensoriuje). Tokius sensorius rekomenduojama tvirtinti truputį toliau nuo roboto kraštų, nes sensoriai nemato labai artimu objektų (nuo 0 iki 5 cm). Taip pat, sensorių tvirtinimas šešėlyje padėtų išvengti klaidingo suveikimo nuo išorinės šviesos.
„Atmega“ tikrina visų sensorių būsenas ir, priklausomai nuo jų, generuoja valdymo signalus varikliams.
„Parani-ESD110“ „Bluetooth“ modulis yra prijungtas prie „ATmega“ USART. Naudojau jį programinių klaidų paieškai. „Parani“ modulis gali automatiškai prisijungti prie kito modulio. Pakanka tik įjungti robotą ir paleisti bet kokią „terminal“ tipo programą kompiuteryje – ir galima bendrauti su robotu. Savaitę prieš varžybas „Agris“ patarė man nenaudoti radijo ryšio, nes tokiu būdu galima valdyti robotą kovos metu. Aišku, negalėjau rizikuoti, kad mano robotas būtų diskvalifikuotas. Pradėjau naudoti paprastą TV nuotolinio valdymo pultelį. Spaudžiant mygtukus, pulte galima pasirinkti kovos strategiją ir išsiųsti „Start“ komandą robotui. Vienas iš TSOP1736 dirba kaip nuotolinių komandų imtuvas prieš prasidedant kovai. Iškart po „Start“ komandos TSOP grįžta prie savo įprasto darbo režimo kaip sensorius. Tokio sprendimo privalumas - programa tampa labai lanksti, galime peršokti prie bet kokio programos modulio spausdami pulto mygtukus. Trūkumas – „Atmega“ reaguoja į TV pultą su 0,1–0,2 sekundės užlaikymu (RC5 protokolo specifika). Toks uždelsimas kovos pradžioje gali būti kritinis.
Programa
Naudoju „BascomAVR“ IDE mikrovaldiklį programavimui ir „AVR Studio4“ simuliacijai. „BascomAVR“ man patinka dėl draugiškos aplinkos. „AVR Studio4“ turi labai gerai padarytą vizualizaciją - reikia tik užkrauti OBJ failą (kurį sugeneruoja „Bascom“) ir pasirinkti mikrovaldiklio tipą.
Programos kilpa laukia kol bus parinkta kovos strategija, toliau kita kilpa laukia „Start“ komandos iš TV pultelio. Po „Start“ komandos gavimo robotas daugiau nebereaguoja į pultelio mygtukų paspaudimus.
Strategijos
„Master of Disaster“ turi keletą kovos strategijų. Pagrindinė strategijų idėja – kovos pradžioje atakuoti priešą iš užnugario, kad jis nesugebėtų panaudoti savo sensorių.
Kai robotai prieš kovą yra pastatomi priešingomis kryptimis, „Masteris“ važiuoja lanku, kurio pabaigoje jis tikisi surasti priešą. Jei priešo nėra, „Masteris“ apvažiuoja vieną ratą aplink ringą ir pradeda suktis vietoje. Bet kokiu momentu atliekant tuos manevrus „Masteris“ gali pamatyti priešą. Kai sensoriai mato taikinį, „Masteris“ nustoja manevruoti, pasisuka į priešą ir atakuoja jį pilnu greičiu.
Kai robotai prieš kovą yra pastatomi viena kryptimi, „Masteris“ pavažiuoja lanku atgal ir lanku į priekį, paskui apvažiuoja ringą ir vėl pradeda suktis ratu.
Visos šios strategijos gerai veikia prieš lėtus arba vidutinio greičio robotus. Kovai su greitais robotais geriausia strategija (mano manymu) yra kuo greičiau atakuoti: po starto pasisukti 90 laipsniu kampu ir pilnu greičiu važiuoti pirmyn. Tokiu atveju yra sunku nuspėti nugalėtoją, nes priešas greičiausiai turės savo strategiją. Du pagrindiniai pergalės faktoriai bus roboto greitis ir sėkmė.
„Master of Disaster“ neturi linijos sensorių, todėl išsilaikyti ringe nėra labai paprasta užduotis. Visi „Masterio“ manevrai yra apskaičiuoti taip, kad kuo ilgiau išliktų ringe, jei nepavyksta rasti priešo. Aišku, svarbiausia – kuo ankščiau pamatyti oponentą. Todėl bet kokie sensorių darbo sutrikimai gali turėti katastrofines pasekmes. „Masteris“ pastoviai filtruoja sensorių parodymus ir ignoruoja bet kokį teigiamą matavimo rezultatą, jei sekančio matavimo rezultatas yra neigiamas. Jei dėl neaiškių priežasčių sensorius išduoda seriją klaidingų matavimų, „Masteris“ nustoja manevruoti ir pradeda suktis ratu, lyg kaip jis būtų radęs ir pametęs priešą iš akių. Tai yra pats blogiausias variantas, nes jeigu robotas yra ant tiek lėtas, kad leidžia oponentui pasprukti – jis greičiausiai pralaimės kovą.
Epilogas
Jūs laisvai galite naudoti bet kokius šiame straipsnyje aprašytus sprendimus. „Master of Disaster“ bus laimingas, jei jis įkvėps naujo roboto gimimą. Nebijokite problemų, tegul problemos bijo jūsų.
Robotų konstravimas – tai linksma! Robotų konstravimas – tai įdomu!
Aš linkiu, kad jūsų robotas būtų GREITAS, PROTINGAS, NENUGALIMAS!
Susitiksime kitų sumo varžybų metu!