Sisukord:
- Tarvikud
- Samm: süsteemide ülevaade
- 2. samm: alustame prototüüpimisega
- 3. samm: prototüüpimine - Perfboard
- 4. samm: prototüüpimine - propkilp
- 5. samm: prototüüpimine - võimsus ja maapind
- 6. samm: prototüüpimine - mootorijuhi kandja
- Samm 7: Prototüüpimine - jooneanduri massiivi päis
- 8. samm: prototüüpimine - mikrokäigumootor ja kodeerija
- 9. samm: prototüüpimine - valgusdioodid
- 10. samm: prototüüpimine - läbimurde
- Samm 11: Tarkvara raamatukogude ülevaade
- 12. samm: raamatukogude selgitamine - nupp
- Samm 13: Raamatukogude selgitamine - liiniandur
- 14. samm: raamatukogude selgitamine - menüü TeensyviewMenu
- 15. samm: raamatukogude selgitamine - mootorid
- 16. etapp: testimine - kodeerija odomeetria
- 17. etapp: testimine - propkilbi liikumisandurid
- 18. samm: programmi ülevaade
- 19. samm: menüüs ja seadetes navigeerimine
- 20. samm: joonanduri kalibreerimine
- 21. etapp: proovisõit
- 22. etapp: lõplikud mõtted ja täiustused
Video: Täiustatud liini jälgiv robot: 22 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See on täiustatud liini järgiv robot, mis põhineb Teensy 3.6 ja QTRX liinianduril, mille olen ehitanud ja mille kallal olen juba mõnda aega töötanud. Minu varasema rida järgneva roboti kujunduses ja jõudluses on tehtud mõningaid olulisi parandusi. Roboti kiirus ja reageerimisvõime on paranenud. Üldine struktuur on kompaktne ja kerge. Komponendid on paigutatud ratta telje lähedale, et minimeerida nurkkiirust. Suure võimsusega mikrometallist hammasrataste mootorid tagavad piisava pöördemomendi ja alumiiniumist rummuga silikoonrattad pakuvad suurel kiirusel hädavajalikku veojõudu. Kilp ja rattakooderid võimaldavad robotil määrata oma asukoha ja orientatsiooni. Kui Teensyview on pardale paigaldatud, saab kogu asjakohast teavet visualiseerida ja programmi olulisi parameetreid nuppude abil värskendada.
Selle roboti ehitamise alustamiseks vajate järgmisi tarvikuid (ning teie käsutuses palju aega ja kannatust).
Tarvikud
Elektroonika
- Teensy 3.6 arendusnõukogu
- Prop Shield koos liikumisanduritega
- Sparkfun TeensyView
- Pololu QTRX-MD-16A peegeldusandur
- 15x20 cm kahepoolne prototüüp PCB
- Pololu astme-/alandamispinge regulaator S9V11F3S5
- Pololu reguleeritav 4-5-20V pingeregulaator U3V70A
- MP12 6V 1580 p / min mikrokäigukastiga mootor koos kodeerijaga (x2)
- DRV8833 kahe mootoriga draiverikandja (x2)
- 3,7 V, 750 mAh Li-Po aku
- ON/OFF lüliti
- Elektrolüütkondensaator 470uF
- Elektrolüütkondensaator 1000uF (x2)
- Keraamiline kondensaator 0.1uF (x5)
- Nupud (x3)
- 10 mm roheline LED (x2)
Riistvara
- Atomi silikoonratas 37x34mm (x2)
- Pololu palliratas 3/8”metallpalliga
- N20 mootorikinnitus (x2)
- Polt ja mutrid
Kaablid ja pistikud
- 24AWG painduvad juhtmed
- 24 -kontaktiline FFC -DIP -katkestus ja FFC -kaabel (tüüp A, pikkus 150 mm)
- Ümmargune emane tihvti päis
- Ümmargune emase tihvtiga päise pikk klemm
- Täisnurkse kaherealise naissoost päis
- Täisnurkne kaherealine isane päis
- Isase tihvti päis
- Isase nõela tihvti päis
Tööriistad
- Multimeeter
- Jootekolb
- Jootetraat
- Traadi eemaldaja
- Traadi lõikur
Samm: süsteemide ülevaade
Nagu minu varasema isetasakaalustava roboti kujunduse puhul, on ka see robot purustusplaatide kogum, mis on paigaldatud parfüürile, mis täidab ka struktuuri eesmärki.
Allpool on toodud roboti peamised süsteemid.
Mikrokontroller: Teensy 3.6 arendusplaat, millel on 32-bitine 180 MHz ARM Cortex-M4 protsessor.
Liiniandur: Pololu QTRX-MD-16A 16-kanaliline analoogväljundliini anduri massiiv keskmise tihedusega (8 mm anduri samm).
Ajam: 6 V, 1580 p / min, suure võimsusega mikrometallist hammasrataste mootorid, millel on magnetiline rattakodeerija ja alumiiniumist rummudele paigaldatud silikoonrattad.
Odomeetria: magnetilised rattakodeeripaarid koordinaatide ja läbitud vahemaa hindamiseks.
Orienteerumisandur: liikumissensoritega tugikilp roboti asukoha ja suuna hindamiseks.
Toide: 3.7V, 750mAh lipo aku toiteallikana. 3.3 V üles/alla regulaator toidab mikrokontrollerit, andureid ja kuvaseadet. Reguleeritav suurendusregulaator toidab kahte mootorit.
Kasutajaliides: Teensyview teabe kuvamiseks. Kolme vajutusega nupp kasutaja sisendite vastuvõtmiseks. Kaks numbrit 10 mm läbimõõduga rohelist LED -i, mis näitavad olekut jooksmise ajal.
2. samm: alustame prototüüpimisega
Rakendame ülaltoodud skeemi parfüüril. Peame esmalt oma murdelauad valmis hoidma, jootades neile päised. Videost saab aimu, milliseid päiseid tuleks jootma hakata.
Pärast päiste jootmist purunemisplaatidele virnastage Teensyview ja nupuvajutus Teensy peale.
3. samm: prototüüpimine - Perfboard
Hankige 15x20 cm kahepoolne prototüüp ja tehke piir püsimarkeriga, nagu pildil näidatud. Puurige M2 suurusega augud andurimassiivi, rattaratta ja mikrometallist hammasrataste mootorite paigaldamiseks valge ringiga tähistatud kohtadesse. Pärast kõigi komponentide jootmist ja katsetamist lõikame parfüümi mööda piiri.
Alustame oma prototüüpimist, jootades päisepistikud ja pistikupesad perfboardil. Jaotusplaadid lisatakse nendele päistele hiljem. Pöörake hoolikalt tähelepanu päiste asukohale laual. Me ühendame kõik juhtmed selle päiste paigutuse põhjal.
4. samm: prototüüpimine - propkilp
Esmalt jootame ühendused tugikilbiga. Kuna kasutame ainult propsi varjestuse liikumisandureid, peame ühendama ainult SCL-, SDA- ja IRQ -tihvtid, välja arvatud 3V ja maandusklapi nööpnõelad.
Kui ühendus on lõpule jõudnud, sisestage Teensy ja propkilp ning kalibreerige liikumisandurid, järgides siin kirjeldatud samme.
5. samm: prototüüpimine - võimsus ja maapind
Jootke kõik toite- ja maandusühendused vastavalt pildile. Paigaldage kõik murdelauad oma kohale ja kindlustage järjepidevus multimeetri abil. Kontrollige pardal olevaid erinevaid pingetasemeid.
- Li-po väljundpinge (tavaliselt vahemikus 3V kuni 4,2V)
- Regulaatori väljundpinge (3,3 V)
- Reguleeritav astmelise regulaatori väljundpinge (seatud 6V)
6. samm: prototüüpimine - mootorijuhi kandja
Kahemootorilise draiveri kandjaplaat DRV8833 võib edastada 1,2A pidevat ja 2A tippvoolu kanali kohta. Ühendame kaks kanalit paralleelselt ühe mootori juhtimiseks. Ühendage ühendused, järgides alltoodud samme.
- Paralleelselt mootori juhi kandja kaks sisendit ja kahte väljundit, nagu pildil näidatud.
- Ühendage sisendjuhtimisjuhtmed mootori draiveriga.
- Ühendage 1000uF elektrolüütkondensaator ja 0,1uF keraamiline kondensaator kahe kandeplaadi Vin ja Gnd klemmide külge.
- Ühendage 0,1 uF keraamiline kondensaator mootorijuhi väljundklemmidega.
Samm 7: Prototüüpimine - jooneanduri massiivi päis
Teensy 3.6 -l on kaks ADC -d - ADC0 ja ADC1, mis on multipleksitud 25 juurdepääsetavale tihvtile. Meil on juurdepääs kahele tihvtile kahest ADC -st korraga. Me ühendame kaheksa liiniandurit ADC0 ja ADC1 -ga. Paarnumbri andurid ühendatakse ADC1 -ga ja paaritu arvu andurid ADC0 -ga. Ühendage ühendused järgmiselt. Hiljem ühendame liinianduri FFC abil DIP -adapteri ja kaabliga.
- Ühendage kõik paarisanduri tihvtid (16, 14, 12, 10, 8, 6, 4, 2), nagu joonisel näidatud. Viige anduri tihvti 12 ühendamise traat läbi perfboardi tagakülje.
- Ühendage emitteri juhtnupp (EVEN) Teensy tihvtiga 30.
- Ühendage kõik paaritu anduri tihvtid (15, 13, 11, 9, 7, 5, 3, 1), nagu pildil näidatud.
- Ühendage 470uF elektrolüütkondensaator Vcc ja Gnd vahel.
Kui jälgite tähelepanelikult joondeanduri tihvte ja neile vastavaid päise nööpe perboardil, märkate, et jooneanduri ülemine rida kaardistub perboardi päise alumisele reale ja vastupidi. Selle põhjuseks on asjaolu, et kui me ühendame liinianduri kahepoolse täisnurkse päise abil perfboardiga, joonduvad read õigesti. Mul kulus üsna palju aega, et sellest aru saada ja programmis pin -ülesandeid parandada.
8. samm: prototüüpimine - mikrokäigumootor ja kodeerija
- Kinnitage mikrometallist käigumootor kodeerijaga, kasutades N20 mootorikinnitusi.
- Ühendage mootori ja kodeerija juhtmed, nagu pildil näidatud.
- Vasak kooder - Teensy tihvtid 4 ja 0
- Parem kooder - Teensy tihvtid 9 ja 27
9. samm: prototüüpimine - valgusdioodid
Kaks LED -i näitavad, kas robot on pöörde tuvastanud või mitte. Olen kasutanud 470-oomise seeria takisti LED-ide ühendamiseks Teensyga.
- Vasak LED -anood kuni Teensy tihvtini 6
- Parem LED -anood Teensy tihvtiga 8
10. samm: prototüüpimine - läbimurde
Nüüd, kui oleme lõpetanud kogu jootmise perfboardil, saame hoolikalt lõigata mööda perfboardile märgitud piiri ja eemaldada perfboardi lisatükid. Kinnitage ka kaks ratast ja ratas.
Sisestage kõik katkestusplaadid vastavatesse pistikupesadesse. FFC-DIP katkestuse sisestamise ja QTRX-MD-16A liinianduri kinnitamise kohta vaadake videot.
Samm 11: Tarkvara raamatukogude ülevaade
Programmeerime Teensy Arduino IDE -s. Enne alustamist vajame mõnda raamatukogu. Meie kasutatavad raamatukogud on järgmised:
- Kodeerija
- Teensyview
- EEPROM
- ADC
- NXPMotionSense
Ja mõned, mis on spetsiaalselt selle roboti jaoks kirjutatud,
- PushButton
- LineSensor
- Menüü Teensyview
- Mootorid
Selle roboti jaoks mõeldud raamatukogusid käsitletakse üksikasjalikult ja need on järgmiste sammude jaoks allalaadimiseks saadaval.
12. samm: raamatukogude selgitamine - nupp
See raamatukogu on mõeldud nuppude jaotusplaadi ühendamiseks Teensyga. Kasutatavad funktsioonid on
PushButton (int leftButtonPin, int centerButtonPin, int rightButtonPin);
Selle konstruktori kutsumine objekti loomisega konfigureerib nuppude tihvtid INPUT_PULLUP režiimi.
int8_t waitForButtonPress (tühine);
See funktsioon ootab nupu vajutamist ja vabastamist ning tagastab võtmekoodi.
int8_t getSingleButtonPress (tühine);
See funktsioon kontrollib, kas nuppu vajutatakse ja vabastatakse. Kui jah, tagastab võtmekood, muidu tagastab nulli.
Samm 13: Raamatukogude selgitamine - liiniandur
LineSensor on teegi liinianduri massiivi ühendamiseks Teensyga. Kasutatavad funktsioonid on järgmised.
LineSensor (tühine);
Selle konstruktori kutsumine objekti loomisega initsialiseerib ADC0 ja ADC1, loeb EEPROM -ist läve-, miinimum- ja maksimumväärtused ning konfigureerib anduri tihvtid sisendrežiimi ja emitteri juhtnupu väljundrežiimi.
void calibrate (uint8_t calibrationMode);
See funktsioon kalibreerib liiniandureid. CalibrationMode võib olla kas MIN_MAX või MEDIAN_FILTER. Seda funktsiooni selgitatakse üksikasjalikult hilisemas etapis.
void getSensorsAnalog (uint16_t *sensorValue, uint8_t režiim);
Loeb andurmassiivi mis tahes kolmest argumendina edastatud režiimist. Režiim on heitjate olek ja see võib olla SEES, VÄLJA või LÜLITATUD. TOGGLE -režiim kompenseerib anduri näidu ümbritseva valguse peegelduvuse näitu. ADC0 ja ADC1 -ga ühendatud andureid loetakse sünkroonselt.
int getLinePosition (uint16_t *sensorValue);
Arvutab andurite massiivi asukoha joone kohal kaalutud keskmise meetodil.
uint16_t getSensorsBinary (uint16_t *sensorValue);
Tagastab andurite oleku 16-bitise esituse. Binaarne näitab, et andur on üle joone ja binaarne null näitab, et andur on liinist väljas.
uint8_t countBinary (uint16_t binaryValue);
Anduriväärtuste 16-bitise esituse edastamine sellele funktsioonile tagastab üle joone olevate andurite arvu.
void getSensorsNormalized (uint16_t *sensorValue, uint8_t režiim);
Loeb anduri väärtusi ja piirab iga anduri väärtuse vastavatele min ja max väärtustele. Seejärel kaardistatakse andurite väärtused nende vastava min -maksimaalse vahemiku vahemikku 0 kuni 1000.
14. samm: raamatukogude selgitamine - menüü TeensyviewMenu
TeensyviewMenu on teek, kust pääseb juurde ekraanimenüü funktsioonidele. Kasutatavad funktsioonid on järgmised.
TeensyViewMenu (tühine);
Selle konstruktori kutsumine loob klassi LineSensor, PushButton ja TeensyView objekti.
tühine sissejuhatus (tühine);
See on menüüs navigeerimiseks.
tühine test (tühine);
Seda nimetatakse menüüsiseselt, kui liinianduri väärtused tuleb Teensyview'is testimiseks kuvada.
15. samm: raamatukogude selgitamine - mootorid
Mootorid on raamatukogu, mida kasutatakse kahe mootori juhtimiseks. Kasutatavad funktsioonid on järgmised.
Mootorid (tühjad);
Selle konstruktori kutsumine objekti loomisega konfigureerib mootori suuna juhtimise ja PWM juhtimispoldid väljundrežiimi.
void setSpeed (int leftMotorSpeed, int rightMotorSpeed);
Selle funktsiooni kutsumine juhib kaht mootorit argumentidena edastatud kiirustel. Kiiruse väärtus võib olla vahemikus -255 kuni +255, negatiivne märk näitab, et pöörlemissuund on vastupidine.
16. etapp: testimine - kodeerija odomeetria
Katsetame magnetiliste rataste kodeerijaid ja kuvame roboti läbitud asukoha ja vahemaa.
Laadige üles DualEncoderTeensyview.ino. Programm kuvab Teensyview'is kodeerija puugid. Kooder tiksub edasi, kui liigutate robotit edasi, ja kahandab, kui liigutate robotit tahapoole.
Nüüd laadige üles EncoderOdometry.ino. See programm kuvab roboti asukoha x-y koordinaatidena, kuvab kogu läbitud vahemaa sentimeetrites ja nurga, mis on pööratud kraadides.
Seadme Robootikaühingu asukoha määramiseks olen viidanud Odomeetria rakendamisele surnud arve rakendamisel robotile, millel on R/C servo diferentsiaalkäik.
17. etapp: testimine - propkilbi liikumisandurid
Veenduge, et olete liikumisandurid kalibreerinud, järgides siin kirjeldatud samme.
Nüüd laadige üles PropShieldTeensyView.ino. Teensyview'is peaksite nägema kõigi kolme telje kiirendusmõõturi, güroskoobi ja magnetomeetri väärtusi.
18. samm: programmi ülevaade
Edasijõudnutele mõeldud programm on kirjutatud Arduino IDE -s. Programm töötab järgmises järjestuses, mida selgitatakse allpool.
- EEPROM -i salvestatud väärtused loetakse ja kuvatakse menüü.
- LAUNCH vajutamisel siseneb programm silmusesse.
- Loetakse normaliseeritud liinianduri väärtusi.
- Jooneasendi binaarväärtus saadakse anduri normaliseeritud väärtuste abil.
- Liini ületavate andurite arvu arvutatakse rea asukoha binaarse väärtuse põhjal.
- Kodeerija puuke uuendatakse ja läbitud vahemaad, x-y koordinaate ja nurka uuendatakse.
- Kahendarvude erinevate väärtuste puhul vahemikus 0 kuni 16 täidetakse juhiste komplekt. Kui binaararv on vahemikus 1 kuni 5 ja kui üle joone asuvad andurid asuvad üksteise kõrval, kutsutakse välja PID -rutiin. Pööramine toimub teistes binaarse väärtuse ja kahendarvu kombinatsioonides.
- PID -rutiinis (mis on tegelikult PD -rutiin) juhitakse mootoreid kiirustel, mis arvutatakse vea, vea muutuse, Kp ja Kd väärtuste põhjal.
Praegu ei mõõda programm propaali kaitsekilbi orientatsiooniväärtusi. See on pooleli olev töö ja seda uuendatakse.
Laadige üles TestRun20.ino. Järgmistes sammudes, mille järel katsetame oma robotit, näeme, kuidas menüüs navigeerida, seadeid kohandada ja liiniandureid kalibreerida.
19. samm: menüüs ja seadetes navigeerimine
Menüüs on järgmised seaded, mida saab navigeerida vasaku ja parema nupuga ning valida keskmise nupu abil. Seadeid ja nende funktsioone kirjeldatakse allpool.
- KALIBREERIMINE: liiniandurite kalibreerimiseks.
- TEST: Jooneandurite väärtuste kuvamiseks.
- LAUNCH: Järgmise stardijoone alustamiseks.
- MAX SPEED: Roboti kiiruse ülempiiri määramiseks.
- Pöörlemiskiirus: Roboti kiiruse ülempiiri seadmiseks, kui see sooritab pööret, st kui mõlemad rattad pöörlevad võrdsetel kiirustel vastassuundades.
- KP: Proportsionaalne konstant.
- KD: tuletiskonstant.
- RUN MODE: valida kahe töörežiimi vahel - NORMAL ja ACCL. NORMAL režiimis töötab robot eelmääratud kiirustel, mis vastavad liini asukoha väärtustele. ACCL -režiimis asendatakse raja eelmääratud etappidel roboti MAX SPEED ACCL SPEED -ga. Seda saab kasutada roboti kiirendamiseks raja sirgetel lõikudel. Järgmised seaded on saadaval ainult siis, kui RUN MODE on seatud ACCL -iks.
- LAP DISTANCE: Võistlusraja kogupikkuse määramiseks.
- ACCL SPEED: Roboti kiirenduskiiruse määramiseks. See kiirus asendab MAX SPEED raja erinevatel etappidel, nagu allpool määratletud.
- EI OF STADES: ACCL SPEED -i kasutamise etappide arvu määramiseks.
- 1. ETAPP: Määrake etapi algus- ja lõppkaugus, kus MAX SPEED asendatakse ACCL SPEED -ga. Iga etapi jaoks saab stardi- ja lõppdistantsi eraldi määrata.
20. samm: joonanduri kalibreerimine
Jooneanduri kalibreerimine on protsess, mille abil määratakse iga 16 anduri läviväärtus. Seda läviväärtust kasutatakse otsustamaks, kas konkreetne andur on üle liini või mitte. 16 anduri läviväärtuste määramiseks kasutame ühte kahest meetodist.
MEEDIAFILTER: Selle meetodi korral asetatakse joonandurid valge pinna kohale ja kõigi 16 anduri jaoks võetakse etteantud arv andurite näitu. Määratakse kõigi 16 anduri mediaanväärtused. Sama protsessi korratakse pärast joonandurite asetamist mustale pinnale. Läviväärtus on mustade ja valgete pindade mediaanväärtuste keskmine.
MIN MAX: Selle meetodi korral loetakse anduri väärtusi korduvalt, kuni kasutaja palub peatada. Salvestatakse iga anduri maksimaalsed ja minimaalsed väärtused. Läviväärtus on miinimum- ja maksimumväärtuste keskmine.
Sel viisil saadud läviväärtused kaardistatakse vahemikku 0 kuni 1000.
Liiniandurite kalibreerimine MIN MAX meetodil on näidatud videos. Pärast liiniandurite kalibreerimist saab andmeid visualiseerida, nagu pildil näidatud. Kuvatakse järgmine teave.
- Jooneasendi 16-bitine binaarne esitus koos binaar 1-ga, mis näitab, et vastav jooneandur on üle joone, ja binaarne 0, mis näitab, et jooneandur on liinist väljas.
- Liini ületavate andurite koguarv.
- Miinimum-, maksimum- ja anduri väärtused (töötlemata ja normaliseeritud) 16 anduri kohta, üks andur korraga.
- Liini asukoht vahemikus -7500 kuni +7500.
Seejärel salvestatakse minimaalsed ja maksimaalsed liinianduri väärtused EEPROM -i.
21. etapp: proovisõit
Video on proovisõidust, mille käigus robot on programmeeritud peatuma pärast ühe ringi läbimist.
22. etapp: lõplikud mõtted ja täiustused
Selle roboti ehitamiseks kokku pandud riistvara ei kasuta seda käivitav programm täies ulatuses. Programmi osas saab teha palju parandusi. Toetuskilbi liikumisandureid ei kasutata praegu positsiooni ja orientatsiooni määramiseks. Koodritest saadud odomeetriaandmeid saab kombineerida propsi kaitsekilbi orientatsiooniandmetega, et täpselt kindlaks määrata roboti asukoht ja suund. Neid andmeid saab seejärel kasutada, et programmeerida robot õppima rada mitmel ringil. Soovitan teil selles osas katsetada ja oma tulemusi jagada.
Edu.
Robotite võistluse teine auhind
Soovitan:
Liini jälgiv robot: 5 sammu
Liinijälgimisrobot: Tere kõigile! Selles juhendis jagan, kuidas teha Amazonase komplekti abil liinijälgimisrobot. Kasutasin seda komplekti, et õpetada oma lapsele jootmist. Tavaliselt on need komplektid otse edasi, kogu komplekti kuuluvad materjalid, komponendid jne
Täiustatud liini jälgimisrobot: 7 sammu
Täiustatud liinijälgimisrobot: see on rea jälgimisrobot, millel on mõned lisafunktsioonid. Seda prototüüpi saab kasutada tehases juhita materjali liigutamiseks. Laadimisjaama mahalaadimisjaama on kaks jaama. Laadimisjaamast ootab robot Materiat
Autonoomne liini jälgiv droon Raspberry Pi -ga: 5 sammu
Autonoomne liini jälgiv droon Raspberry Pi abil: see õpetus näitab, kuidas saate lõpuks liinijälgija drooni teha. Sellel droonil on " autonoomne režiim " lüliti, mis lülitab drooni režiimi. Niisiis, saate ikkagi oma drooni lennata nagu varem. Palun pidage meeles, et see läheb
Liini jälgiv robot: 3 sammu
Joont jälgiv robot: joonejälgimisrobot on mitmekülgne masin, mida kasutatakse valgele pinnale tõmmatud tumedate joonte tuvastamiseks ja järelvõtmiseks. Kuna see robot on toodetud leivaplaati kasutades, on selle ehitamine erakordselt lihtne. Seda süsteemi saab ühendada
EBot8 objekti jälgiv robot: 5 sammu (piltidega)
EBot8 objekti jälgiv robot: kas olete kunagi mõelnud teha robot, mis järgib teid kõikjal? Aga lihtsalt ei saanud? Noh … Nüüd saate! Esitleme teile objekti järgnevat robotit! Mine selle õpetuse juurde, like ja hääleta ja ehk saad ka sina sellega hakkama