ProjektaiSchemosAkustikaPatarimaiTeorijae-motion.lt | |||
Autorius: Vitalij Rodnov („rodman“) Robotas savo rankomis - lengvai!Įžanga„Noriu pasidaryti robotą“ — tokia mintis aplanko daugelį elektronika besidominčių žmonių. Interneto forumuose daug klausimų šia tema, bet mažai atsakymų. Žodis „robotas“ gali būti labai plačiai traktuojamas, todėl pateiksime konkretesnį apibrėžimą. Šiame straipsnyje „Robotas“ — pramoginė platforma, galinti judėti erdvėje ir reaguoti į aplinką. Taip pat sudarysime apytikslį pradedančiojo robotų konstruktoriaus portretą: tai mokyklinio amžiaus žmogus, neturintis patirties elektronikoje ir programavime. Jis neturi nei pakankamai pinigų, kad sukonstruotų rimtesnį robotą, nei pakankamai kantrybės, kad ilgą laiką ieškotų iškilusių problemų sprendimo. 1 pav. Primityvaus boto struktūra Pamėginsime išanalizuoti dabartinę situaciją. Robotų konstravimas nėra populiarus Lietuvoje dėl kelių priežasčių:
Manote padėtis beviltiška? Labai klystate. Išeitį jau seniai rado amerikiečiai, kai pradėjo gaminti roboKITus. Tai detalių rinkinys, iš kurio per porą vakarų galima surinkti robotą, pilnai paruoštą, pavyzdžiui, Minisumo varžyboms. Į komplektą įeina programinė įranga, su kuria galima be jokių programavimo žinių išmokyti robotą judėti ringe. Žmogus, nieko bendro neturintis su elektronika ir programavimu, nusiperka roboKITą, ir per savaitę jis jau gali dalyvauti varžybose. Neoriginalu, bet paprasta ir greita. Žmogus be pasiruošimo surenka tokį robotą, sudalyvauja varžybose, gauna gerą dozę teigiamų emocijų. Jis mato, kad gali tai padaryti, įgauna pasitikėjimo savo jėgomis. Didelė tikimybė, kad jis norės patobulinti savo robotą, pradės ieškoti informacijos, mėgins giliau suprasti jo veikimą. RoboKITas suveikė! „99 litų botas“Kodėl roboKITai nėra populiarūs pas mus, Lietuvoje? Atsakymas labai paprastas — kaina. „Parallax“ roboKITas kainuoja nuo $150, kiti dar brangesni. Maža to, jų nėra pirkti Lietuvoje. Reikia pripažinti, sunku įkalbėti tėvus išleisti 500 Lt „kažkokioms nesąmonėms“. Jūs vėl manote, kad padėtis beviltiška? Jau supratote, kad vėl suklydote. Aš pamėginsiu pasiūlyti paprastą roboKITą, prieinamą kiekvienam moksleiviui. Jis vadinasi „99 litų botas“ ir buvo kuriamas pagal tris pagrindinius kriterijus:
Tai nėra komercinis produktas, todėl jis neturi nei plataus sensorių asortimento, nei daugybės paruoštų programų. Kai kam jis gali pasirodyti pernelyg primityvus, bet jis leis jums neskausmingai ir be didelių finansinių išlaidų prisiliesti prie nuostabaus robotų pasaulio ir susidraugauti su mikrovaldikliais. Tai tikras robotas, kuris pralinksmins jus, jūsų artimuosius ir bendraklasius. Jis turi du variklius ir ratus iš CD diskų. Jo akys — infraraudonųjų spindulių sensoriai, smegenys — paprastas ir greitas mikrovaldiklis. Šis botas gali:
Jis yra daug įdomesnis už kiniškus žaisliukus, nes jo elgesys priklauso tik nuo jūsų fantazijos ir išradingumo. Jūs dar bijote žodžio „mikrovaldiklis“? Nusiraminkite, šiais laikais mikrovaldiklių programavimas nereikalauja nei brangios įrangos, nei ypatingų sugebėjimų, tik trupučio kantrybės. Aš pasistengsiu kuo išsamiau aprašyti kiekvieną „99 lt boto“ gamybos etapą. Reikalingi sugebėjimai
Mokėti naudotis lituokliu ir multimetru. Bent jau minimalios elektronikos žinios: skirti maitinimo pliusą (+) nuo minuso (-), diodo anodą
(+) nuo katodo (-). Jei jūs nežinote, kas yra multimetras ir katodas, geriau susilaikykite nuo „99 litų boto“ gamybos, nes nuostoliai
gali žymiai viršyti šimtą litų. Pasigilinkite savo žinias arba susiraskite labiau elektronikoje patyrusį draugą ir grįžkite — robotai
laukia! Detalių pirkimasPilną detalių sąrašą rasite straipsnio pabaigoje ir failų archyve. Visas „99 lt boto“ gamybai reikalingas detales galima nusipirkti Lietuvoje maždaug už 100 Lt. Naujokams tai gali kainuoti truputį daugiau, nes reikės pirkti kiekvieną varželę, kiekvieną kondensatorių. Elektronikos mėgėjai, turintys daug smulkių detalių namuose, tikrai sutilps i šimtą litų. Elektronikos komponentų parduotuves (pvz. Lemona, Evita) ir parduotuvės RC modeliuotojams (pvz. RCshop.lt, Modelis.lt) yra daugelyje Lietuvos miestų. Jei jūsų mieste jų nėra, internetu užsakytas prekes pristatys į namus už standartinį 10-15 Lt mokestį. Sąskaitos apmokėjimui internetu gali prireikti tėvų pagalbos, bet procedūra labai paprasta. Galima naudoti praktiškai bet kokio banko debetines korteles, i kurias daugeliui žmonių yra pervedami atlyginimai. Arba galima susimokėti pašte ar banke grynais, atspausdinus mokėjimo nurodymą, kurį jūs gausite užsakę prekes. MaitinimasKiekvieno gero roboto pagrindas — tinkamai parinktas maitinimo šaltinis. Ličio-polimero (LiPo) akumuliatoriai yra nepakeičiami konstruojant nedidelius robotus. Jie yra labai lengvi, užima mažai vietos. Būkite atsargūs su LiPo — neleiskite jiems per daug išsikrauti. „99 litų botas“ neturi akumuliatoriaus įtampos stebėjimo funkcijos, todėl reikia nepamiršti reguliariai krauti akumuliatorių ir visada jį atjungti nuo schemos, kai robotas išjungiamas. Tam užtikrinti botas neturi maitinimo jungiklio — jūs būsite priversti atjungti akumuliatoriaus jungtį nuo schemos, jei norėsite išjungti robotą. Priešingu atveju jūs rizikuojate nepataisomai sugadinti akumuliatorių. Tai ne boto kaltė, tai tiesiog visų LiPo akumuliatorių savybė. Ir nesakykite, kad aš jūsų neperspėjau. Tai patirtis, kuri kainavo man realius pinigus, o jūs ją gaunate už dyką. Dažniausiai LiPo akumuliatoriai turi balansavimo jungtį ir Power laidus. Power laidai (storesni) jungiami prie „99 litu boto“ schemos įėjimo. Balansavimo jungtis skirta tik krovimui su specialiu įkrovikliu. RC modeliuotojų parduotuvėse galima rasti nebrangių LiPo įkroviklių (pvz. „E-sky“), kurie puikiai tinka „99 litu boto“ akumuliatoriui krauti. „E-sky“ neturi maitinimo šaltinio. Galima nusipirkti stabilizuotą 1A 12V maitinimo šaltinį, bet pigesnis variantas būtų naudoti kompiuterio maitinimo bloko laisvą „molex“ jungtį. Tiesiog pajungiame raudoną „E-sky“ krokodilą prie PC „molex“ jungties geltono laido, o juodą krokodilą — prie „molex“ juodo laido (bet kurio iš dviejų). Tokiam pajungimui puikiai tinka jungtis nuo PC papildomų ventiliatorių. Jūs galite naudoti bet kokio tipo akumuliatorius (NiCd, NiMh). Tai gali būti baterija iš radiobangomis valdomo žaislo ar kt. Svarbu, kad bendra baterijos įtampa būtų >7V, nes kitu atveju įtampos reguliatoriai negalės palaikyti 5V savo išėjimuose. SensoriaiInfraraudonųjų spindulių sensoriaus veikimas plačiai aprašytas straipsnyje „Padovanokite savo robotui regėjimą!“. „99 litų botas“ naudoja tokiu pat principu veikiantį sensorių, skiriasi tik konstrukcija. Kairėje ir dešinėje pusėje yra TSOP1738 TV imtuvai. Kiekvienas imtuvas turi po du jam priklausančius Infraraudonųjų spindulių siųstuvus (IR diodus). IR diodų spinduliai atsispindi nuo objektų ir patenka į imtuvus. „99 litų botas“ gali atskirti kur yra kliūtis — kairėje, dešinėje, ar centre. Priklausomai nuo sensorių parodymų, „99 litų botas“ gali atlikti iš anksto nustatytus veiksmus — atsitraukti, priartėti, pasisukti. Jei sensorius pakreipsime žemyn, robotas galės matyti stalo kraštą ir atitinkamai elgtis (nenukristi nuo stalo). Sensorių jautrumas reguliuojasi su potenciometrais, atskirai kairei ir dešinei pusei. Mažindami potenciometrų varžą, didiname srovę per IR diodus, kas didina jų spinduliavimo stiprumą. Kuo stipresnis spinduliavimas, tuo ilgesnė bus roboto matymo zona. Sensorių būsenų vizualinei kontrolei yra du šviesos diodai — kairei ir dešinei pusei. Tai labai palengvina sensorių jautrumo derinimą. Atitinkamas šviesos diodas užsidega, kai kairės ar dešinės pusės sensorius mato objektą. Nuosekliai potenciometrams prijungtos varžos IR diodų ir mikrovaldiklio apsaugojimui nuo viršsrovių. Potenciometrų nominalai yra parinkti taip, kad sensorių jautrumo diapazoną galima būtų reguliuoti nuo kelių iki keliasdešimt centimetrų, ko pilnai pakanka „99 litų botui“. Nustačius maksimalų jautrumą nedideliame kambaryje, imtuvai gaudys daugybę parazitinių atspindžių nuo sienų ir baldų. Sensoriai dirbs nestabiliai, todėl toks jų jautrumas nėra labai pageidaujamas. Tokio dydžio robotui idealus jautrumo atstumas turėtų būti 10...20cm ribose. Šiuo atveju robotas objektus matys pakankamai patikimai ir jam netrukdys parazitiniai atspindžiai. Atpažinimo patikimumas priklauso nuo daugelio dalykų, pavyzdžiui nuo tapetų spalvos kambaryje ir kitų iš pirmo žvilgsnio nesusijusių dalykų. Mano kovinis Minisumo botas „BADas“ naudoja tokio tipo sensorius, ir didelių problemų kol kas nebuvo pastebėta. Surinkinėjame schemą„99 litų boto“ schema nėra sudėtinga. Mes rinksime ją ant maketinės plokštės, reikalingus ryšius jungsime plonais laidukais. Toks būdas nėra geriausias, bet vienintelis galimas naujokams. Elektronikos mėgėjai failų archyve ras spausdintinės plokštės šabloną ir galės pasigaminti plokštę savo mėgstamu būdu — lygintuvu ar UV (vienintelis laidukas spausdintinėje plokštėje sujungia mikrovaldiklio Reset pin1 ir ISP jungties pirmą kojelę). Aš smulkiai aprašysiu schemos surinkimo žingsnius, kad palengvinti gyvenimą naujokams.
Patarimai:
Sveikinu, šiame etape jūs jau turite be klaidų surinktą „99 litų boto“ schemą ir esate pasiruošę mikrovaldiklio programavimui. MikrovaldiklisĮdomu kodėl „99 litų boto“ smegenims buvo parinktas būtent ATtiny2313? Turbūt todėl, kad pas mane yra jų perteklius. Juokauju. AVR šeimos mikrovaldikliai yra labai populiarūs visame pasaulyje. Jie teoriškai atlaiko iki 10000 perprogramavimo ciklų ir juos galima programuoti neišimant iš plokštės, todėl jūs galite nebijoti eksperimentuoti. ATtiny2313 — puikus šios šeimos atstovas — mažas, pigus ir galingas. Aš neminėsiu visų jo galimybių, tai galima sužinoti iš dokumentacijos. Čia jums labai pravers anglų kalbos žinios. Mikrovaldiklis pagal programą valdys servo variklius priklausomai nuo sensorių būsenų. Tam reikia parašyti programą ir užprogramuoti valdiklį. Jūs jau panikuojate? Nusiraminkite, pirmam „99 litų boto“ paleidimui nereikės rašyti programos. Tai jau padaryta. Keletas paruoštų programų (BascomAVR kodą ir sukompiliuotus HEX failus) jūs rasite failų archyve. Savo programos rašymui (ar jau paruoštos programos modifikavimui) gali būti naudojamos įvairios darbo aplinkos. „99 litų boto“ programavimui mes naudosime BascomAVR darbo aplinką. Tai labai patogi, intuityviai suprantama aplinka. Nemokama BascomAVR versija leidžia kompiliuoti iki 4 kB kodo. ATtiny2313 turi 2 kB atminties, todėl nemokamos versijos pilnai pakanka. Programos rašomos Basic kalba. Beisikas — labai protingas pasirinkimas naujokams. Jis leidžia susikoncentruoti ties užduotimi ir per daug nesijaudinti dėl sintaksės. Programos įkėlimui į mikrovaldiklio atmintį jums prireiks programatoriaus. Tam gali būti naudojamas bet koks turimas programatorius. Jei neturite jokio — per 10 minučių galite jį pasidaryti. Pats paprasčiausias programatorius — „penki laidukai“. Toks programatorius puikiai tinka naujokams. Jis jungiasi prie kompiuterio LPT jungties. Elektronikos mėgėjams galiu parekomenduoti „AVR-Doper“ programatorių. Jis jungiasi į USB ir gali būti naudojamas kompiuteriuose, kuriuose nėra LPT jungties. Bet jame naudojama Atmega8 vis tiek reikės programuoti su „penkiais laidukais“ ar su kitokiu jau turimu programatoriumi. Mikrovaldiklio programavimas Bascom aplinkoje:
Patarimai programuojant mikrovaldiklį:
Galimos problemos ir jų sprendimai:
Po šių etapų jūs jau turite veikiančią „99 litų boto“ schemą su valdiklyje įrašyta FIRST-TEST valdymo programa. Varikliai ir ratai„99 litų botas“ naudoja pačią paprasčiausią diferencinę pavarą. Tai reiškia, kad kiekvienas iš dviejų varomųjų ratų turi atskirą variklį. Kad robotas pajudėtų, kiekvienas variklis turi gauti valdymo signalą iš mikrovaldiklio. Servo varikliai buvo parinkti dėl jų paprasto valdymo ir platus asortimento RC modeliavimo parduotuvėse. Už 24 Lt gauname variklį su reduktoriumi ir valdymo schemą (viskas viename kompaktiškame korpuse). Atskira išorinė variklių valdymo mikroschema tampa nebereikalinga, servo variklio valdymo laidas gali būti jungiamas tiesiai prie mikrovaldiklio kojelės. Tai yra didelis privalumas, nes atskiras variklių kontroleris (pvz. L293D) gali naujokui atnešti daug galvos skausmo. Servo varikliai nelabai tinka robotams dėl lėtų apsukų ir sąlyginai didelio triukšmo lygio, bet gauti gerą nuolatinės srovės mikrovariklį su reduktoriumi yra praktiškai neįmanoma, todėl geriau lėčiau, negu nieko. Aš nesigilinsiu į teoriją, tik trumpai paminėsiu atskirus aspektus. Servo varikliai yra valdomi impulsais. Impulso plotis nusako servo varikliui, i kuria puse ir kokiu kampu pasisukti. Reikiamo dažnio valdymo impulsus generuoja roboto mikrovaldiklis. Programoje keičiant vienintelio registro reikšmę, mes keičiame generuojamų impulsų plotį (duty cycle) ir tokiu būdu nurodome kiekvienam varikliui sukimosi kryptį priklausomai nuo norimo veiksmo konkrečioje situacijoje. Kadangi standartiniai servo varikliai gali suktis tik 180 laipsnių kampu, juos reikia perdaryti. Perdarymo procedūra yra labai nesudėtinga. Ji gali truputi skirtis skirtingiems servo modeliams, bet perdarymo tikslas — nutraukti mechaninį ryšį tarp potenciometro ašies ir pagrindinio dantračio, taip pat panaikinti mechaninį posūkio kampo ribotuvą. Faktiškai, panaikinus grįžtamąjį ryšį, servo variklis tampa paprastu nuolatinės srovės varikliu. Galite parsisiųsti perdarymo proceso vaizdo įrašą. „TowerPro SG5010“ servo variklių perdarymas:
Visa tai užima nuo dešimties minučių iki valandos. Po perdarymo servo varikliai yra paruošti jungimui prie mikrovaldiklio. Servo laidas yra trijų gyslų. Spalvos nusako jų paskirtį ir gali skirtis priklausomai nuo gamintojo. „TowerPro SG5010“ markiruotė: rudas — maitinimo minusas (-), raudonas — maitinimo pliusas (+), oranžinis — valdymas (tiesiai prie mikrovaldiklio kojelės). Servo variklių specifikacijose nurodoma 4-7V darbinė įtampa. Gali kilti mintis maitinti servo variklius tiesiai nuo akumuliatoriaus, kad „paturbinti“ robotą, bet būkite atsargūs — nemėginkite paduoti servo varikliams pilnos akumuliatoriaus įtampos. Tikimybė sudeginti variklius yra beveik 100%. „99 litų boto“ ratams puikiai tinka miniCD diskai. Kiekvieno „TowerPro SG5010“ servo variklio komplekte yra keli skirtingų formų montažiniai flanšai. Vienas iš jų, apvalus, idealiai įsistato į CD disko griovelį (tiesa, ne į kiekvieno, iš mano turimų penkių miniCD tiko tik į tris). Tokiu būdu gaunasi praktiškai idealus rato centravimas. Patariu flanšo pirminiam fiksavimui naudoti dvipusę lipnią juostą. Kai centravimas atliktas, belieka tvirtai užfiksuoti mūsų konstrukciją su karštais klijais. Improvizuotoms padangoms galima naudoti seną pelės kilimėlį. Pjaunant jį įstrižai, gaunamų juostelių ilgio kaip tik užtenka apgaubti miniCD diską. Prapjaukite juostelę išilgai per vidurį iki puses gylio. Užmaukite ją ant CD briaunos ir užfiksuokite su klijų lašiuku ties sudūrimu. Jei rezultatas jūsų netenkina, galite pamėginti priklijuoti antrą diską prie flanšo išorines puses. Gausis platus „dvigubas“ ratas, ant kurio bus lengviau pritvirtinti padangą. Jei pelės kilimėlis netinka — pasitelkite vaizduotę, gal būt rasite geresnę medžiagą ratų padangoms. RC modelių parduotuvėse yra nebrangių, lengvų, įvairių dydžių ratų lėktuvėliams. Jie puikiai tiks „99 litų botui“. Sveikinu, sėkmingai atlikote servo variklių perdarymo procedūrą. Dabar varikliai su ratais yra paruošti jungimui į „99 litų boto“ schemą. Darome platformą„99 litų boto“ bazei surandame plastiko ar panašios medžiagos plokštę. Tai platforma, prie kurios mes tvirtinsime servo variklius ir schemą. Jos matmenys gali būti maždaug 100x100mm. Plotis turi būti pakankamas, kad tilptų du servo varikliai ir schema. Servo variklių pirminiam tvirtinimui naudosime dvipusę lipnią juostą. Kai varikliai bus gerai išlyginti ir sureguliuoti, galima bus su keliais lašiukais karštų klijų užfiksuoti jų padėtį. Karšti klijai yra nepakeičiama priemonė konstruojant robotus. Su jais galima greitai ir tvirtai sujungti įvairias detales. Jei dar neturite karštų klijų pistoleto, patariu nusipirkti — jis kainuoja nuo 10 iki 25 litų ir tikrai jums pravers ateityje. Roboto stabilumui reikalingas trečias atramos taškas (du atramos taškai — ratai). Jo parinkimas priklauso nuo jūsų fantazijos ir išradingumo. Tai gali būti tiesiog tinkamo ilgio atrama su stalo teniso kamuoliuku ant galo. Kamuoliukas gali būti standžiai pritvirtintas prie atramos. „99 litų botas“ geriausiai jausis ant stalo paviršiaus, laminuotų grindų ar nelabai minkšto kilimo, todėl kamuoliukas pakankamai gerai slys tokiu paviršiumi. Aš panaudojau priekinę žaislines mašinėles dalį. Prie platformos (sensoriais į priekį) pritvirtiname plokštę. Nenaudokite karštų klijų, nes plokštė turi būti nesunkiai nuimama. Geriausiai pradžiai naudoti lipnią juostą. Vėliau galėsite sugalvoti gražiai atrodančius tvirtinimus. Atidžiai (atsižvelgiant i poliarumą) prie plokštės prijunkite servo variklius. Prijungus maitinimą, servo varikliai pradės suktis. Nekreipkite dėmesio į jų sukimosi kryptį. Dabar reikia atlikti servo variklių centrinių taškų nustatymą. Galite parsisiųsti šio proceso vaizdo įrašą. Servo variklių centrinių taškų nustatymas:
Galimos problemos ir jų sprendimai:
Sveikinu, sėkmingai surinkote ir užprogramavote „99 litų botą“. Pagaliau visi roboto mazgai veikia. Prasideda veiksmas„99 litų botas“ atrodo nelabai įspūdingai, bet tai tikras robotas. Jo elgesys priklauso nuo mikrovaldiklyje vykdomos programos. Jūs jau mokate įkelti programą į valdiklio atmintį. Failų archyve rasite keletą labai paprastų jau paruoštų programų su skirtingais elgesio algoritmais. Prisiminkite, tai ne programavimo šedevrai. Tai pagrindas, kurio pagalba galėsite sukurti daug sudėtingesnes programos, įgyvendinti žymiai įdomesnius valdymo algoritmus. Failus su *.hex plėtiniu galite iš karto kelti į valdiklio atmintį, o atitinkamus failus su *.bas plėtiniu galite užkrauti į „BascomAVR“ ir pamatyti nesukompiliuotą programos kodą. Programų šablonų sąrašas
Papildomi moduliaiČia rasite kelių patobulinimų sąrašą „99 litų botui“. Straipsnio rašymo metu kai kurių žemiau pateiktų modulių veikimas nebuvo gerai patikrintas, o kai kurie moduliai iš vis nebuvo padaryti, todėl jie nebuvo įtraukti į standartinę roboto įrangą. Be to, straipsnio apimtis ir taip yra pakankamai didelė. Internete rasite daug įvairių sensorių schemų. Pasirinkite jums tinkamesnę, pasidarykite ir paeksperimentuokite.
Vietoj epilogoTikiuosi, kad šis straipsnis jums bus naudingas. Jo esmė keliais žodžiais:
Manau, kad dabar kitaip pažvelgsite i robotų kūrimo procesą ir įsitikinsite, kad elektronika — ne toks jau nuobodus dalykas. Nepulkite į neviltį, jei kažkas nesigaus iš pirmo karto — bet kokiu atveju įgausite patirties ir pažinsite daug įdomių dalykų. Prisiminkite vieno žymaus mokslininko žodžius: „Aš padariau ne dešimt tūkstančių klaidu. Tiesiog aš suradau dešimt tūkstančiu būdu, kurie neveikia“. Būkite optimistais ir pasitikėkite savo jėgomis. Sėkmes Jums ir Jūsų Robotams! Detalių sąrašas
|
|||
|