Roda Malena i robot ProBot

Connect IT (P)robot (pomaže) u prirodi i njenoj zaštiti

Roda Malena i robot ProBot 

Jedna od najljepših brodskih ljubavnih priča, sada već poznata i izvan granica „Lijepe naše“, priča je o rodama Malenoj i Klepetanu. Malena je vjerojatno jedina roda koja više nije selica. Zbog ozlijeđenog krila ona ne može letjeti pa je prinuđena zimu provesti ovdje, u predgrađu Slavonskog Broda. Njen „rodan“ Klepetan se pak svake jeseni uputi na 13 tisuća kilometara dalek put na jug, ali se svakog proljeća, gotovo istog datuma vraća svojoj Malenoj. Probot.

Kada je prije 25 godina gospodin Stješan Vokić, domar škole u Brodskom Varošu, pronašao rodu ozlijeđenog krila, odlučio je pomoći joj dok se ne oporavi i odleti dalje. No, slomljeno krilo nije zacijelilo, i roda nikad nije poletjela. Stjepan, koji je jako zavolio rodu, uredio joj je prostor na tavanu školske dvorišne zgrade. Dao joj je ime – Malena.

I dok tijekom ljeta, Klepetan jedva uspije pribaviti dovoljno hrane za sebe, Malenu i njihove ptiće, zimi Malena potpuno ovisi o Stjepanovoj pomoći. No godine prolaze, Stjepan je u mirovini, i sve mu je teže odlaziti do udaljenih potoka i ribnjaka po ribu za Malenu.

 

Mladi Logo programeri udruge Connect IT, odlučili su (makar virtualno) pomoći gospodinu Stjepanu, te osmislili sustav u kojemu bi ProBot pomogao u brizi o Malenoj.

Priprema

Ideja je pomoću ProBota nacrtati Malenu u njenom okruženju, a potom, na dobivenom crtežu, izvesti nekoliko akcija za pomoć Malenoj, koristeći ProBot-ove senzore, te zvučne i svjetlosne signale.

Ovaj puta, za pripremu crteža koristili smo Terrapin Logo, koji ima mogućnost komunikacije s ProBotom putem USB kabla, tj. downloada i uploada Logo procedura iz memorije, i u memoriju ProBota.

Također, uspjeli smo standardnu kornjaču Terrapin Loga zamijeniti sličicom ProBota, te prilagoditi njeno ponašanje (brzinu i veličinu koraka) kako bi se ponašala slično pravome ProBotu. Tako smo dobili pravu računalnu simulaciju rada ProBota i pregled našeg budućeg crteža.

Crtanje

Zamislili smo da se naš crtež sastoji od 5 elemenata:

  • Roda – stilizirani crtež rode Malene
  • Kuća – Dvorišna zgrada škole na kojoj Malena ima gnijezdo, i u čijem tavanu obitava tijekom zime
  • Jezero – udaljeno jezero s kojeg se Malenoj dovozi riba za prehranu
  • Put (i dvorište) – put koji vodi od jezera do dvorišta u kojem se Malena hrani
  • Riba – hrana za Malenu

Svaki učenik dobio je zadatak nacrtati neki od ovih elemenata.

Ovako smo na na ploči zamislili naš crtež:

Crteži su izrađeni u programu Terrapin Logo i to u onom mjerilu koje odgovara ProBotovim „koracima“.  Tako smo naše procedure, pomoću USB kabla direktno učitali u memoriju ProBota.

Pri tome smo pazili da koristimo samo one naredbe koje ProBot poznaje. Tako smo za crtanje zaobljenih dijelova crteža umjesto funkcije CIRCLE koristili mnogokut sa vrlo kratkim stranicama.

Naredbe PENUP i PENDOWN nisu nepoznate ProBotu, ali on ih ne može izvršavati.  One su korištene kako bi naš crtež  nacrtan u Terrapin Logu izgledao dobro, dok ih ProBot zanemaruje. Zato smo u svaku od tih naredbi dodali naredbu WAIT, koja zaustavlja rad ProBota na određeno vrijeme (mi smo koristili vrijeme 3-5 sekundi) kako bi u toj pauzi rukom spustili ili podigli flomaster.

Jezero:

TO PROC16
 PENUP
 FORWARD 30
 WAIT 3000
 PENDOWN
 FORWARD 20
 RIGHT 45
 FORWARD 7
 RIGHT 45
 FORWARD 22
 REPEAT 10 [FORWARD 2 RIGHT 18]
 FORWARD 10
 LEFT 90
 FORWARD 10
 REPEAT 10 [FORWARD 3 RIGHT 18]
 FORWARD 11
END

Riba:

TO PROC21
 WAIT 1000
 FORWARD 3
 RIGHT 120
 FORWARD 6
 REPEAT 8 [FORWARD 1 LEFT 30]
 FORWARD 7
 LEFT 60
 FORWARD 3
 PROBOT.SOUND 3
 WAIT 1000
END



Cesta i dvorište:

TO PROC17
 PENUP
 FORWARD 20
 RIGHT 90
 FORWARD 25
 LEFT 90
 PENDOWN
 WAIT 3000
 RIGHT 90
 FORWARD 3
 RIGHT 90
 FORWARD 20
 LEFT 90
 FORWARD 45
 LEFT 90
 FORWARD 20
 RIGHT 90
 FORWARD 11
 LEFT 90
 FORWARD 15
 LEFT 90
 FORWARD 19
 LEFT 90
 FORWARD 15
 LEFT 90
 FORWARD 11
 RIGHT 90
 FORWARD 23
 RIGHT 90
 FORWARD 51
 RIGHT 90
 FORWARD 23
END

Kuća:

TO PROC18
 RIGHT 30
 FORWARD 10
 RIGHT 60
 FORWARD 8
 LEFT 90
 FORWARD 2
 LEFT 90
 FORWARD 6
 LEFT 90
 FORWARD 2
 LEFT 90
 FORWARD 8
 RIGHT 60
 FORWARD 10
 RIGHT 120
 FORWARD 20
 LEFT 90
 FORWARD 10
 LEFT 90
 FORWARD 12
 LEFT 90
 FORWARD 8
 LEFT 90
 FORWARD 4
 LEFT 90
 FORWARD 8
 LEFT 90
 FORWARD 12
 LEFT 90
 FORWARD 10
END

Roda:

TO PROC19
 LEFT 30
 BACK 3
 LEFT 60
 FORWARD 3
 RIGHT 120
 FORWARD 3
 LEFT 30
 FORWARD 7
 LEFT 20
 FORWARD 7
 LEFT 70
 REPEAT 5 [RIGHT 15 FORWARD 2]
 RIGHT 105
 FORWARD 17
 LEFT 60
 FORWARD 10
 LEFT 90
 REPEAT 12 [FORWARD 1 RIGHT 24]
 LEFT 90
 FORWARD 12
 RIGHT 2
 BACK 12
 FORWARD 12
 LEFT 4
 BACK 12
 RIGHT 90
END

 

TO PROC20
 REPEAT 3 [RIGHT 24 FORWARD 1]
 LEFT 88
 FORWARD 11
 LEFT 130
 FORWARD 1
 RIGHT 100
 REPEAT 7 [RIGHT 15 FORWARD 2]
 LEFT 180
 FORWARD 2
 LEFT 15
 FORWARD 1
 RIGHT 45
 FORWARD 7
 RIGHT 110
 FORWARD 7
 RIGHT 30
 FORWARD 3
 LEFT 120
 FORWARD 3
 LEFT 120
 FORWARD 3
END
TO PROC24
 PENUP
 FORWARD 12
 RIGHT 90
 FORWARD 40
 LEFT 90
 WAIT 3000
 PENDOWN
END
TO PROC25 
 PENUP 
 FORWARD 26 
 RIGHT 90 
 FORWARD 50 
 LEFT 90 
 WAIT 3000 
 PENDOWN 
END
TO PROC22
 PENUP
 FORWARD 35 
 LEFT 90
 FORWARD 50
 LEFT 90
 FORWARD 30
 PENDOWN
END
TO PROC26
 PENUP
 FORWARD 32
 RIGHT 90
 FORWARD 50
 RIGHT 90
 FORWARD 37
 RIGHT 180
 PENDOWN
END

U dodatne dvije procedure spremili smo početne pozicije Probota za crtanje kuće (PROC24) i rode (PROC25)

Procedure PROC22 i PROC26 također ne služe za crtanje, nego za pozicioniranje ProBota. PROC22 odvodi ga od jezera do dvorišta, dok ga PROC26 vraća istim putem nazad. Ove ćemo procedure koristiti nešto kasnije, prilikom rada sa senzorima.

Prije nego što smo krenuli na crtanje ProBotom po papiru, odlučili smo upotrijebiti našeg “virtualnog” ProBota te crtanje simulirati u Terrapin Logu. Evo kako je to izgledalo:

Crtanje na papiru

Zatim smo krenuli na crtanje pomoću ProBota na papiru. Cijeli proces crtanja može se vidjeti na sljedećem video zapisu i nekoliko fotogafija:

Kao što se može primjetiti na videu, crtanje nije prošlo “glatko”. Zbog neravnine na površini po kojoj se ProBot kretao (a vjerojatno i zbog dotrajalih baterija) ProBot je u jednom trenutku malo skrenuo sa zadane putanje, te smo ga, kako bi izbjegli ponovno iscrtavanje cijele slike, rukom lagano ispravili.

Iako je opet pokazao neke nedostatke, ProBot je vrlo dobro odradio svoj zadatak, te smo svi zadovoljni dobivenim rezultatom.

Sada nas, kao i Probota, čeka novo iskušenje… otkriti tajne njegovih senzora… i pomoći Malenoj.

Akcija

Saznali smo da ProBot ima 3 različita senzora, te 5 predviđenih procedura koje se izvršavaju na aktivaciju senzora.

  1. Zvučni senzor:
    • procedura ON.SOUND aktivira se na zvučni signal
  2. Svjetlosni senzor :
    • procedura ON:LIGHT aktivira se na povećano osvjetljenje
    • procedura ON:DARK aktivira se na smanjeno osvjetljenje
  3. Senzor dodira
    • procedura ON.FRONT aktivira se na uključen prednji senzor dodira
    • procedura ON.REAR aktivira se na uključen stražnji senzor dodira

Također, otkrili smo da ProBot može proizvesti nekoliko različitih zvučnih signala, te upaliti ili ugasiti svjetla.

Odlučili smo ProBota “parkirati” pored jezera, na početku ucrtanog puta, gdje će čekati naredbe o odakle će obavljati svoje zadaće.

 

Zadatak 1 – Jutarnje hranjenje

Malena je ujutro gladna, i treba je nahraniti. Budući da naš ProBot ima svjetlosni senzor, i prepoznaje kada sviće dan, on će se po izlasku sunca uputiti prema dvorištu, kako bi Malenoj donio ribu (koju će iscrtati na za to određenom mjestu), te će se vratiti nazad do jezera.

Aktivacijom svjetlosnog senzora, ProBot će odraditi 3 procedure: otići do dvorišta (PROC22), nacrtati ribu (PROC21) te se vratiti do jezera (PROC26)

TO ON.LIGHT
 PROC22
 PROC21
 PROC26
END

Akcija 2 – Dnevno hranjenje

Malena mora još jednom jesti tijekom dana. Svi znamo da rode proizvode karakterističan zvuk klepetanja svojim kljunom (sada znamo i kako je Klepetan dobio ime). Taj zvuk prepoznaje i naš ProBot. Klepetanjem mu Malena dojavljuje da je gladna, te će se on na isti način uputiti prema dvorištu i “odnijeti” ribu.

ProBot će na zvučni signal izvesti iste procedure kao i u prethodnom primjeru.

TO ON.SOUND
 PROC22
 PROC21
 PROC26
END

Akcija 3 – Večernji obilazak

Uvečer Malena ne jede (kaže: pazi na liniju) ali ju je potrebno obići i provjeriti je li sve u redu. Spuštanjem mraka, kod našeg ProBota će se aktivirati svjetlosni senzor te detektirati smanjeno osvjetljenje. To će biti znak da se uputi prema dvorištu. Tamo je sada već mrkli mrak, te će ProBot upaliti svoja svjetla, okrenuti se prema Malenoj kako bi provjerio je li sve u redu. Posebnim će joj zvučnim signalom (koji samo ona razumije) poželjeti laku noć te se vratiti na svoje parkiralište

TO ON.DARK
 PROC22
 LEFT 45
 PROBOT.LIGHTS TRUE
 WAIT 3000
 PROBOT.SOUND 6
 LEFT 135
 PROC26
 PROBOT.LIGHTS FALSE
END

Akcija 4 – Zapreke

Na svom putu od ribnjaka do Malene (koji na našem crtežu izgleda kratak, ali je ustvari jako dug), ProBot može naići na razne prepreke. Drvo koje je srušila oluja, prometna nesreća ili prosvjedi seljaka mogu spriječiti ProBota u obavljanju njegovih zadataka.

Zapreka se može pojaviti bilo gdje na putu. Ako prednji senzor dodira detektira prepreku, ProBot će se odaljiti nekoliko koraka unazad, stati, nekoliko puta zatrubiti, te dati signal svjetlima, kako bi dao do znanja da želi proći dalje. Pošto je put i dalje neprohodan, ProBot se treba vratit natrag do jezera, i ponovno pokušati svoj zadatak kasnije.

Problem nastaje zbog toga što naš ProBot nema GPS ni neki drugi senzor koji bi mu rekao gdje se nalazi i kako sa se vrati do jezera. No, uz našu pomoć, ProBot ipak nije bespomoćan. Znajući da on ima i stražnji senzor dodira, uputit ćemo ga da se vozi unatraške sve do početka ulice kojom se vozi. Kada stražnji senzor aktivira, ProBot će prepoznati mjesto s kojega mu je poznat put natrag do jezera.

(Iako smo razmišljali o tome da u projekt uključimo i mBotove, nismo smislili neki adekvatan način. No zato uspjeli uključiti kutije od mBotova koje su nam odlično poslužile kao “zapreke”)

TO ON.FRONT
 BACK 5
 PROBOT.LIGHTS TRUE
 PROBOT.SOUND 3
 WAIT 1000
 PROBOT.SOUND 3
 PROBOT.SOUND 3
 WAIT 1000
 BACK 100
END

TO ON.REAR
 FORWARD 23
 RIGHT 90
 BACK 36
END

Akcija 5 – Budućnost

Ova akcija se zapravo ne odnosi na Pro-Bota, nego na sve nas.

Našim malim projektom željeli smo potaknuti sve one koji imaju mogućnost da pomognu Malenoj, a možda i dali ideju za nekakav “stvarni” projekt na sličnom principu. I ne samo za Malenu, nego za cijelu prirodu, i sve one koji u njoj žive.

Roboti možda jesu proizvod suvremenog, industrijskog, i tehnološki razvijenog društva, koje čini mnogo štete prirodi i okolišu. No čovjekova svijest i briga o prirodi sve više raste, i upravo bi roboti mogli biti ti, koji će upravljani programerima (što i sami želimo postati) u budućnosti biti glavna snaga u zaštiti prirode.

 

Projekt su izradili učenici članovi udruge Connect IT Slavonski Brod:

  • Tin Mršić (3.a. OŠ Blaž Tadijanović)
  • Patrik Sajfert (4.d. OŠ Bogoslav Šulek)
  • Dominik Lovrić (5.d. OŠ Antun Mihanović)
  • Mihael Lovrić (5.d. OŠ Antun Mihanović).

Mentor: Hrvoje Ćosić (Connect IT)