Mini sumo robots ar AVR Atmega16 mikrokontrolieri
Piedalīties diskusijā par šo rakstu
![]()
Sumo robots ir neliels robots, kurš piedalās robotu sacensībās. Pasaulē šīs sacensības ir ļoti populāras starp robottehnikas entuziastiem. To mērķis ir izstumt pretinieka robotu ārpus melna Dohyo ringa, līdzīgi kā Japānas senajā tradicionālajā sporta veidā, un pašam neizkrist no tā, ringu izmēri ir dažādi un atkarīgi no klases ( mini sumo robotu rings ir 77 cm diametrā, bet japāņu 3kg klasē 154 cm diametrs).
Kā jau tika iepriekš minēts, pamatā starptautiskās sacensības notiek vairākās klasēs: mini
sumo un 3 kg sumo robotu klasēs, kuras ir populāras arī baltijas valstīs, kā arī mikro sumo, nano sumo un humanoīdu sumo.. 3 kg klases robotiem ir horizontālo dimensiju ierobežojums starta brīdī 20 x 20 cm platumā un garumā (augstumā nav ierobežojumu) un svars līdz 3 kg,bet mini sumo klases robotiem jāiekļaujas 10 x10 cm un zem 500g svara robežas.
Darbā aprakstītais robots ir mini sumo klases robots ar 100 x 100 mm izmēriem garumā un platumā un aptuveni 80 mm augstumā ar kopējo svaru aptuveni 500 grami.
Mini sumo robots ar AVR Atmega16 mikrokontrolieri
Bildēs redzamais mini sumo robots sastāv no alumīnija cietkausējuma izgatavotas šasijas, uz kuras novietoti plāksnes ar elektroniku. Sekojošais robots ir programmējams (autonoms), un kā loģiskais kontrolieris tika izvēlēts AVR Atmega16, kurš ar pietiekami lielu atmiņu (komandām un datiem), ievadizvades portiem un maziem gabarītiem, lai iekļautos dotajā konstrukcijā. Palte projektēta, lai lielākas atmiņas nepieciešamības gadījumā to būtu iespējams aizstāt ar Atmega32 mikrokontrolieri. Robota barošanu nodrošina četri AA tipa Ni-MH (Niķeļa metāla-hidrīda) 1,2V 750mAh, vai lielākas ietilpības akumulatori, kas novietoti pa mālam no vadības platēm (iespējams izmantot arī parastās 1,5V Alkaline baterijas, bet nav ieteicams vājāko strāvas atdeves parametru dēļ). Piedziņu nodrošina divi 5v līdzstrāvas dzinēji ar iebūvētu reduktoru, kas nodrošina pietiekami lielu griezes momentu un labu saķeri, lai izstumtu pretinieku no ringa.
Robotā tiek lietoti infrasarkanie sensori, kuri nodrošina pretinieka atrašanu, un neļauj izbraukt ārpus ringa. Pretinieka meklēšanu nodrošina SHARP firmas infrasarkanais attāluma sensors (attēlā redzams pašā priekšā, aiz bampera), kura mērijumu distance ir līdz 80cm, bet ringa ārējo balto apmali uztver pa perimetru izkārtoti fotoreflektējoši līnijas sensori.
Tālāk darbā tiks apskatīti atsevišķi robota elementi un skaidroti darbības principi.
Šasija
![]()
Robota mehāniskajai daļai ir nozīmīga loma, taču sumo sacensībās bieži vien piedalās roboti ar vāji izveidotu šasiju. Tas ir ļoti nepareizi, jo pēc vairākiem turnīriem, kad roboti regulāri krīt no ringa, tie tiek lauzti, tāpēc jāizvēlas atbilstoši materiāli. Viens no labākajiem risinājumiem ir vieglais un izturīgais alumīnija cietkausējums, kas ir lēts un izturīgs materiāls, jo nedrīkst aizmirst par svara ierobežojumiem. Darbā apskatītajam robotam šasija ir veidota no alumīnija cietkausējuma profiliem, plastmasas elementiem un 3mm tērauda skrūvēm. Šasija tika veidota, lai tā saturētu pēc iespējas mazāk detaļu un lai būtu viegli saliekama/izjaucama. Robotam ir ļoti zems bamperis, kas neļauj citiem robotiem ar ķīlveidīgu profilu apgāzt šo robotu. Svarīga prasība arī bija padarīt barošanas bloku pieejamu, lai varētu viegli samainīt akumulatorus.
Rasējumā var iepazīties ar konstrukciju.
Elektronika un sensori
Elektronika mini sumo robotā tika veidota „moduļveidīgi”- uz vairākām, atsevišķām platēm izvietota, nevis uz vienas, kā tas ierasts līdzīgos robotos. Tas tika darīts, lai vajadzības gadījumā robotu varētu ērti pārveidot un modificēt elektroniku, ar laiku iekļaujot labākus elementus, nomainīt bojātos utt. Primārais mērķis bija izstrādāt mācībām piemērotu robotu un moduļus, kurus izveidojot students varētu gūt pamatzināšannas dažādu elektronisko funkcionālo mezglu darbībā. Visas elektronikas izveidē tika lietotas standarta maketplates ar vara vadiem, un tirdzniecībā pieejamas detaļas. Moduļus iespējams lietot arī eksperimentos neatkarīgi no robota. To izveidē ņemtas vērā vienotas vadlīnijas – iekļauti barošanas stabilizācijas, ndikācijas, traucējumu (trokšņu) slāpēšanas elementi, vienoti konektori (2,54mm adatiņas). Protams koncentrējoties uz tīri sacensību robotu, būtu jāizvērtē iespēja veidot kompaktākas shēmas ar virsmas montāžas (SMD) elementiem.
Robota visa elektronika sastāv no 4 platēm:
- Līnijas sensoru plates
- H tiltu motoru kontoles plates
- Mikrokontroliera vadības plates
- BAROŠANA (sprieguma paaugstināšana)
Līnijas sensoru plate

Ko tā dara: Ringa līnijas sensoru plate palīdz nodrošināt, to, lai robots neizkristu no ringa, jo tā analogo signālu no infrasarkanā līnijas sensora padara par diskrētu, ko vēlāk pievada loģiskajam kontrolierim.
Darbības princips: Lietojot standarta infrasarkano staru sensoru, kas sastāv no infrasarkano gaismu emitējošas diodes un fototranzistora (fototranzistoram ir pārklājums, kas ierobežo caurlaižamās gaismas viļņa garumus – laiž cauri tikai infrasarkano gaismu). Signāls rodas, kad gaisma no diodes, atstarojoties pret kādu virsmu iekļūst fototranzistorā. Fiziku atceroties, jāpiemin, ka baltā krāsa atstaro ļoti lietu daudzumu no krītošās gaismas,bet melnā ļoti maz (tāpēc krāso ringu melnu ar baltu maliņu,lai analogiem sensoriem būtu lielāka jūtība). Taču analogā signāla vietā diskrētajam ir priekšroka, kad runa ir par programmēšanu, plus šī sensorplate ļauj sensoriem būt novietotiem dažādos augstumos virs virsmas un vienalga dot pareizus rādījumus.
Plates shēma: Par pamatu kalpo LM324N zemā sprieguma operāciju pastiprinātāju elements, kas darbojas komparatora režīmā (salīdzina sensora izdoto spriegumu uz neinvertējošās ieejas ar potenciometra iestādīto „atskaites” spriegumu uz invertējošās) un ja neinvertējošajai ieejai pieliktais spriegums ir lielāks, tad izdod augstu signālu izejā (kurš aptuveni vienāds ar pielikto barošanas spriegumu). Pašā sākumā shēmā drošības pēc ir ieslēgts kondensators, kas stabilizē spriegumu, gadījumā, ja ir kaut kāds ne pārāk stabils barošanas spriegums un gaismas diode,ar rezistoru, kas rāda, kad plūst strāva shēmā. LM324N elementā ir 4 OP (operacionālie pastiprin.), kam pie INPUT+ pieslēgts sensora signālvads un pie INPUT- pieslēgts potenciometrs. No OUTPUT izejas iziet jau diskrēts signāls, kas aiziet līdz 2×4 ligzdai, no kuras vēlāk tas tiks padots uz vadības plati. Par signāla esamību ziņo 4 LED diodes ar attiecīgajiem 470 omu reiztoriem.Vēl LM324N elementa barošanas + ieejā ir ielikts kondensators, kādus parasti ieliek pret trokšņiem (tantāla lāsīte 100nF)un stabilākai barošanai. LM324N elementā. Visa plate tiek barota ar 5-6 V līdzspriegumu no akumulatora.
H tilta plate
Ko tā dara: Ar H tilta palīdzību var regulēt parasta līdzstrāvas motora griešanās virzienu.
Darbības princips: H tilts darbojas ar 4 slēdžu (tranzistoru) palīdzību, kas tiekot ieslēgti dioganāli pretēji, lai liktu motoram, kurš patērē lielu strāvu, griezties uz vienu, vai otru pusi ar mazas mikrokontroliera vadības strāvas palīdzību.
Plates shēma: Plates sākumā ir zeme, zema sprieguma H tilta mikroshēmas L293D loģikas barošanas spaile, un motora barošanas sprieguma spaile. Shēma paredz iespēju barot elementu L293D un motoru ar atšķirīgiem spriegumiem, piemēram 5-6V H tilta loģikas elementiem mikroshēmā un 9V motoram. Ieguvums nodiviem barošanas avotiem ir siltuma kapacitātes ieguvums, jo citādi uz mikosh’\emas tiktu izdalīts lieks siltuma daudzums, atņemot rezerves galvenajai funkcijai; un visticamāk +5V barošanas spriegums jau ir pieejams robotā, jo ir nepieciešams citām loģiskajām shēmām. Taču, ja barošanas avots motoram un H tiltam ir viens un tas pats, tad lieto džamperi starp +VL un +VM. Barošanas spailes ar zemi savieno augstas kapacitātes kondensatori un zemākas kapacitātes kondensatori, lai barošanas spriegums būtu stabils, un motora radītie elektriskie trokšņi tiktu filtrēti. Protams ir iekļautas arī 2 LED diodes un attiecīgi rezistori ,kas rāda abus – motora un H tilta barošanas spriegumus. Shēmā katram L293D elementam ir tilta barošanas sprieguma(+VL) un motora barošanas sprieguma (+VM) spailes.
H tilta vadību nodrošina 3 izvadi: MA, MB un Enable. L293 mikroshēmai gan ir trīs izvadi vienam h-tiltam: enable (darbības atļaujas signāls, ērti pieslēgt mikrokontoliera PWM-pulsa platuma modulācijas izeju) , input1 un input2 (motora darbības režīma, tai skaitā griešanās virziena, kontolei). Lai ekonomētu mikrokontoliera ieejas, vienai L293 ieejai tiek pievadīts tiešs, otrai invertēts vadības signāls (tādējādi gan upurējot motora bremzēšanas un tukšgaitas kontoles iespējas). Enable spailē plūstošā vadības līdzstrāva ieslēdz tiltu un atkarībā no MA un MB spailē pienākošās vadības strāvas, tilts padod attiecīgā virziena strāvu caur izvadiem MOTA un MOTB un līdzsprieguma motoriem.
Vadības plate ar mikrokontrolieri AVR Atmega16
Ko tā dara: Atkarībā no saņemtiem sensoru signāliem realizē robota vadību, saskaņā ar iepriekš ieprogrammētām norādēm.
Darbības princips: Plates „sirds” ir AVR Atmega16 mikrokontrolieris, kurš tiek programmēts caur ISP (In System Programming) 10pin ligzdu, kas atrodas uz plates. No kontroliera atiet izvadi līdz spraudņiem, kas tālāk tiek savienoti ar līnijas sensoru plati , priekšējo attāluma sensoru, H tilta plati. Plate paredz iespēju pārslēgties uz vairākām programmām, restartēt kontrolieri, indicēt programmas izpildi ar LED diodēm, pieslēgt servo dzinējus pie mikrokontrolierī iebūvētajām taimeru PWM izejām.
Plates shēma: Plates sākumā ir spailes 4,5-5,5 voltu barošanai, kur tiek pieslēgti 2 kondensatori sprieguma stabilizēšanai un trokšņu filtrēšanai. Vēl tiek pieslēgta LED diode ar attiecīgu rezistoru. 1 kāja Atmega 16 ir restarts. Ja uz šīs kājas spriegums ir 0,tad kontrolieris restartējas.0V spriegumu iegūst ar slēdža palīdzību, kas saslēdz „uz īso”, jeb „nošuntē”, 1 kāju. Tās ir jāprogrammē, jo ,kad notiek programmēšana Atmega 16 var definēt kas būs katra kājiņa – izeja, vai ieeja.
Pie 12 un 13 kājiņas tiek pieslēgts ārējais 16 MHz kvarca kristāla oscilators, kas palīdz formēt impulsus taktfrekvences ģenerēšanai ar kādu darbosies MK – palīdz „skaitīt” laiku, ciklus. Par cik Atmegai var definēt, kura kājiņa kalpos par ieeju, izeju, tad šim robotam kājiņas 1, 2, 3, 5 tiek izmantotas H tilta vadībai. Kājiņas no 33-40 tiek lietotas sensorplates signālu uztveršanai, un priekšējā sensora signāla uztveršanai.4, 18, 19, 21 kājiņas ir domātas servomotoriņu slēgšanai, gadījumā,ja kādreiz ir vēlme pārveidot robotu.
Sprieguma paaugstināšanas plate
Ko tā dara: Pastiprina spriegumu līdz 16 V.
Darbības princips: Ar spoles un impulsu līdzstrāvas sprieguma pārveidotāju (34063A) palīdzību palielina izejas spriegumu.
Plates shēma: 34063A ir monolīta vadības mikroshēma, kurā ir visas galvenās funkcijas, kas nepieciešamas, lai izveidotu līdzsprieguma (DC-DC) pārveidotāju. Šīs mikoshēmas sastāv no iekšēja, temperatūras kompensēta atskaites sprieguma avota, komparātora, vadāma slodzes cikla oscilātora ar aktīvu strāvas ierobežošanas ķēdi, draivera un lielas strāvas izejas slēdža. Šīs sērijas mikroshēmas tika īpaši paredzētas pazeminošo Step-Down, paaugstinošo Step-Up un sprieguma invertoru risinājumos, un lai būtu nepieciešams minimāls skaits papildus ārējo komponentu.
IR sensori
Kā jau iepriekš tika minēts, robotā tiek lietoti infrasarkanie sensori, kas sastāv no infrasarkanās (IR) diodes, kas rada infrasarkano gaismu un gaismu uztveroša fotoelementa. Līnijas senoriem tiek izmantots fototranzistors ar apvalku, kas laiž cauri noteikta viļņa garuma gaismu. Papētot pie sensorplates shēmas pielikto augšējo zīmējumu ir redzams kā darbojas sensors: caur rezistoru un IR diodi plūst strāva, kas liek IR diodei emitēt gaismu; blakus stāv sprieguma dalītājs, ko veido rezistors (pull-up) un fototranzistors. Kad infrasarkanā gaisma atstarojas pret kādu virsmu fotorezistorā, tā to atver proporcionāli iekļuvušajai gaismai (tāpēc arī signāls ir analogs, nevis diskrēts), līdz arko samazīnās sprieguma kritums uz fototranzistoru. Principā, ja fototranzistoram virknē slēgtā rezistora pretestība ir lielāka par 5kΩ, tad sensoru var slēgt pie TTL ieejām un lāsīt kā digitālu, jo sprieguma izmaiņa būs samērā strauja, tomēr elegantāk ir izmantot kādu ātri strādājošu pārveidotāju uz stabiliem diskrētiem loģiskajiem līmeņiem; šajā gadījumā samērā lēnās darbības dēļ nav ieteicams izmantot Atmega mikrokontolierī iebūvēto analogi-digitālo pārveidotāju (ADC); labs risinājums ir operāciju pastiprinātājs komparatora režīmā, kurš ir realizēts uz augstākminētās sensoru plates.
Nedaudz līdzīgi darbojas arī priekšējais SHARP firmas attāluma sensors. Infrasakranā diode emitē gaismu, kas ar lēcas palīdzību tiek fokusēts šaurā kūlī. Savukārt viena fototranzistora vietā SHARP sensorā ir sensoru matrica (līdzīga kā skeneros, vai fotokamerās), kur kopā 512 nelielas gaismjūtīgas šūnas izvietotas rindā; arī tām priekšā noteiktā attālumā ir izvietota lēca atstarotās krītošās gaismas fokusēšanai. Atkarībā no objekta attāluma, uz kuru krīt infrasarkanās gaismas kūlis, atstarojoties tas ar atšķirīgu intensitāti aktivizēs fotoelementus. Attāluma mērīšanai pamata ideja balstās vienkāršā triganometrijā – mēs zinām, ka viens leņķis ir taisns, kā arī attālumu starp gaismu emitējošo un uztverošo lēcu centriem; lielums, ko mēr\ām ir krītošās atstarotās gaimas leņķis. Gan gaismas diodei, gan sensoram priekšā esošās lēcas ir tonētas, lai laistu cauri tikai infrasarkano gaismu, samazinot apkārtējās vides apgaismojuma ietekmi uz lasījumiem.
Robota programmēšana
AVR Atmega16 tiek programmēts C vai asm (assamblller) valodās (protams var atrast arī citus eksotiskākus kompilātorus šai platformai – BASIC, C++, Java, Pascal, SmallTalk u.c.). Programmas rakstīšanu veic AVR Studio vidē, vai ar jebkura cita teksta redaktora programmas palīdzību, kompilē ar WinAVR kompilātoru, kurš automātiski integrējas AVR Studio vidē (tomēr jāuzstāda atsevišķi! protams, var izmantot arī citus kompilātorsus – eclipse, gcc), kurš izveido .hex failu (tajā glabājas programmas izpildāmie mašīnkodi heksadecimālā formā) un tā ierakstīšana mikrokontrolierī tika veikta ar Khazama AVR Programmer programmu (var izmantot arī citas, piemēram, eXtreme Burner) un USBasp tipa programmātoru (ir nopērkami daudz dažādu citu veidu programmātori, piemēram, STK500 saderīgie spēs sadarboties tieši ar AVR Studio, vai nelielo universālo PonyProg), kurš savukārt tiek pieslēgts pie datora caur USB portu (ir risinājumi arī virknes, jeb seriālajam COM un paralēlajam, jeb printera LPT portiem). Attēlā redzamais programmators ir veidots uz Latvijas Robotistu entuziastu komandas Latmatic veidotās PCB spiestās plates.
Iepriekš tika minēts, ka programmējot Atmega8 programmas sākumā tiek definētas katra porta kājiņa (Parasti katram portam ir 8, vai mazāk kājiņas, bet Atmega32 gadījumā ir četri porti – A, B, C un D – ar tieši 8 kontaktiem (jāievēro, ka numerācija sākas ar nulli: PA0, PA1, PA2, .., PA7) katrā (kas bija papildu pluss šī mikrokontoliera ivēlei, nevis, piemēram, Atmega8, kurai ir gan mazāk atmiņas, gan kājiņas, turklāt ar komplicētāku numerāciju) un tad tiek sastādīta programma.
Vadības algoritms ir sekojošs: kad ieslēdzas barošana, robots ,pēc sumo sacensību nolikuma, drīkst kustēties pēc 5 sekundēm. Tad robots sāk griezties pa kreisi un paralēli veic laika skaitīšanu. Aptuveni pēc 3 sekundēm sāks griezties un pretējo pusi, un griežas visu laiku, līdz ierauga pretinieku, un tad mēģina viņu izgrūst braucot pretī. Robots grūž pretinieku līdz uztver balto līniju ar vismaz līnijas sensoru un tad pabrauc atpakaļ 4sekundes un griežas pret pulksteņrādītāja virzienu.Ja braucot atpakaļ ir uztverta līnija ar pretējiem sensoriem(ar vienu,vai abiem), tad robots pabrauc uz priekšu 2 sekundes un tad sāk griezties pret pulksteņrādītāja virzienu.









Gribās vairāk bildes!
Un tādas, lai var klikšķināt, un apskatīties lielākas!
Plašu shēmas ar varēja ielikt, lai vizuāli redzētu. Bet apraksts labs :)
Labs darbs!
Leave your response!
You must be logged in to post a comment.
Sākums | Visi Raksti | DIY Raksti | Pasākumi | Noteikumi | Forums
© 2010 Argus Radiodetaļu Tirdzniecība SIA | Web izstrāde Kārlis Baumanis