09 ožu Primjer rada Robotic Arm Tanka – premještanje predmeta
Izradite program kojim će Robotic Arm Tank samostalno premjestiti predmet na drugo mjesto. Ideja je da robot dođe do predmeta koji se nalazi ispred njega, spusti ruku, uhvati predmet i podigne ga, skrene desno i ode naprijed te ispusti predmet.
Najprije pogledajte kratki video rada robota, a zatim izradite program prema uputama.
Otvorite mBlock program. Odaberite Arduino mode, Ultimate 2.0 (MegaPi) te povežite robot s računalom kako smo objasnili u prethodnim materijalima. Nakon ovih koraka, možete krenuti s izradom programa.
U programu najprije postavite početni blok MegaPi (iz kategorije Robots) ispod kojeg ćemo slagati naredbe.
S obzirom na zadatak potrebno nam je 9 glavnih dijelova kôda koje ćemo spojiti jedan ispod drugog.
Kretanje naprijed– naredbu run forward at speed 100 iz kategorije Robots smjestite ispod početnog bloka MegaPi. Dodajte naredbu wait 1 secs (iz Control) te kako biste zadali da se robot kreće unaprijed dvije sekunde, promijenite 1 u 2. Na kraju postavite naredbu run forward at speed 0 kako motori na kretanje ne bi bili pod opterećenjem pri stajanju. Robot će prema ovom kôdu krenuti unaprijed i stati nakon dvije sekunde ispred predmeta koji smo unaprijed postavili u prostoru gdje se robot kreće.
Spuštanje ruke – kad robot stane, potrebno je da spusti ruku . Ovisno o tome u kojem je položaju ruka prilikom pokretanja robota i koliko je visok predmet koji želimo da robot podigne, definirat ćemo argumente za brzinu i vrijeme spuštanja ruke. U našem primjeru robot je krenuo sa skroz podignutom rukom te se spustio do sredine visine predmeta koji je podignuo. Za spuštanje ruke argument za rotaciju mora biti pozitivan broj. Iz kategorije Robots odaberite naredbu set encoder motor Port1 rotate 1000 degrees at speed 180 rpm. Motor za pokretanje ruke je na Portu 3 pa promijenite u naredbi Port1u Port3 klikom na crnu strelicu uz naziv porta. Zadajte stupnjeve rotacije (360′ je 1 okretaj) i brzinu rotacije (rpm – rotation per minute). Mi smo zadali stupnjeve i brzinu kao što je prikazano na slici kôda. Dodajte vrijeme za izvršenje te radnje (iz Control – wait 1 secs) i definirajte ga. Na kraju dodajte naredbu za zaustavljanje rada motora ruke. Desnim klikom na naredbu za spuštanje ruke, kopirajte naredbu, postavite stupnjeve i brzinu na 0 te ju postavite na kraju ovog bloka. Blok „zalijepite“ ispod prethodnog bloka za kretanje unaprijed.
Hvatanje predmeta – motor koji pokreće hvataljku spojen je na port 4B. Iz kategorije Robots odaberite naredbu set motor Port1A speed 0. Klikom na crnu strelicu odaberite port 4B i promijenite brzinu na 150 (kliknite u prostor gdje piše 0 i ručno unesite brojku). Dodajte vrijeme (Control – wait naredba) i na kraju za zaustavljanje rada motora dodajte naredbu set motor 4B speed 0. Ovaj blok naredbi spojite s prethodnima.
Podizanje ruke – nakon što je hvataljka primila predmet koji je stajao na istoj površini kao i robot, potrebno je da ga robot podigne kako bi ga premjestio. Za podizanje ruke koristimo isti blok naredbi kao i za spuštanje, samo u rotaciji postavite negativan broj čime će se motor okretati u suprotnom smjeru od kazaljke na satu i na taj način podići ruku. Stupnjeve i brzinu te vrijeme podizanja možete definirati sami ovisno o tome koliko brzo, dugo i visoko želite da ruka podigne predmet.
Skretanje udesno – prema zadatku robot treba skrenuti desno nakon što podigne predmet. Iz kategorije Robots odaberite naredbu run forward at speed 0. Klikom na strelicu uz run forward odaberite turn right. Postavite brzinu i dodajte vrijeme za okretanje udesno te na kraju dodajte naredbu run forward at speed 0. Spojite ovaj blok s gornjim.
Kretanje ravno – nakon što je robot skrenuo desno, neka ide ravno prije nego spusti predmet na pod. Ponovite postupke iz prvog koraka te definirajte kojom brzinom i koliko dugo želite da robot ide naprijed. Dodajte ovaj blok ostatku.
Spuštanje predmeta – za spuštanje predmeta napravite isti kôd kao u koraku za spuštanje ruke. Mi smo smanjili rotaciju i brzinu kako bi robot predmet polako spustio na pod.
Otpuštanje predmeta – slijedi otvaranje hvataljke. Ponovite postupke iz koraka za hvatanje predmeta, ali brzinu promijenite u negativan broj kako bi se motor kretao u drugom smjeru, tj. Otvorio hvataljku i otpustio predmet.
Kretanje unatrag – na kraju neka se robot udalji od predmeta vožnjom unatrag. Dodavanje bloka naredbi na kretanje unatrag jednak je kao i za kretanje unaprijed. Potrebno je samo desnim klikom na strelicu odabrati run backwrad. Spojite ovaj zadnji blok s ostatkom cijelog kôda i time ste završili zadatak.
Cijeli program – u nastavku je slika cijeli kôda te ga možete preuzeti klikom na nju.
Ako niste, spojite robot s računalom, preko programa povežite s odgovarajućim serijskim portom te klikom na upload to Arduino prebacite program na robot i isprobajte ga.