M*P*R – Programiranje

PROGRAMIRANJE KRETANJE ROBOTA SA
KONTINUALNIM SERVOIMA KAO POGONSKO SREDSTVO

Kretanje robota tro-točkaša je jednostavno, evo samo nekoliko primera:
– ide napred kada se oba točka okreću u istom smeru “napred”,  L=D ;
– ide nazad kada se oba točka okreću u suprotnom smeru od “napred”, -L=-D ;
– ide levo kada se oba točka istovremeno okreću ali u međusobno suprotnim smerovima,
RL=-D ;
– ide desno kada se oba točka istovremeno okreću ali u suprotnim smerovima od ‘levo’,
RD=-L ; itd…

Differential-Steering-za blog

L – oznaka za levi servo motor (strelica ukazuje na smer i brzinu obrtanja);                                                                                          D – oznaka za desni servo motor (strelica ukazuje na smer i brzinu obrtanja)

Unutar Arduino okruženja, upravljanje kontinualnih servo motora je relativno lako, koriste se sledeće komande:

servo.write (0) ;     servo se okreće maksimalnom brzinom  CW
rrrrrrrrrrrrrrrrrrr (“Clock-Wise” smer kazaljke na satu) ;

servo.write (180) ;  servo se okreće makimalnom brzinom  CCW
rrrrrrrrrrrrrrrrrrr (“Counter-Clock-Wise” suprotno smeru kazaljke na satu);

servo.write (90) ;   ukoliko je kontinualni servo dobro naštelovan*  onda
rrrrrrrrrrrrrrrrrrr ne bi trebalo da se uopšte okreće, tzv. “nulti” ili “stop”
rrrrrrrrrrrrrrrrrrr položaj.

Dakle, sve kombinacije kretanja se izvode sa odgovarajućim kombinovanjem pomenutih tri komandi.  Naravno mogu se definisati i drugi oblici kretanja kao što su složena kretanja: napred-levo; napred-desno; nazad-desno i nazad-levo….

Odgovarajuću brzinu obrtanja u odgovarajućem smeru postižemo upisivanjem odgovarjućih vrednosti respektivno: (0-89) za CW-smer; odnosno (91-180) za CCW-smer. Veoma je bitno da za kretanje robota ‘napred’ odnosno ‘nazad’ te vrednosti budu identične za oba motora da bi se obezbedilo pravolinijsko kretanje robota.

Konačni izgled kôda koji treba otpremiti na Atmegu (Arduino pločicu) izgleda ovako:

Za BLOG - kod za BT - SENA

********************    **    ********************    **    ********************
Na strani mobilnog telefona dovoljno je preuzeti  sa “Google Play Store”  aplikaciju  “SENA”, instalirati je i igranje može da počne……
Dakle, kao što je već ranije rečeno, da podsetim: u Arduino okruženju je dovoljno napisati rutine koje će biti pozvane kada se odgovarajući taster pritisne.
Na primer: „w“ – idi napred;  „s“ – idi nazad; „a“ – idi levo; „d“ – idi desno; i „e“ – stani;
Ako obratite pažnju, u datom kôdu su jasno definisane pomenute rutine.
********************    **    ********************    **    ********************

 

*ŠTELOVANJE KONTINUALNIH SERVO MOTORA
(štelovanje nultog/stop položaja)

Za razliku od običnih DC motora sa reduktorom, kod robota sa kontinualnim servo motorima potrebno je izvršiti proveru njihovog “nultog”  ili  bolje reći “stop”  položaja/stanja. Kao što je već rečeno kupovni kontinualni servo motori na sebi imaju jedan vijak za štelovanje pomenutog nultog stanja/položaja. Kada je kontinualni servo motor dobro naštelovan, tada se, programski, motor zaustavlja sa komandom

servo.write (90) ;

Dakle, kako naštelovati kupovni kontinualni servo motor? Jednostavno, otpremite sledeći kôd na Atmegu328 (Arduino) zatim odvijačem okrećite vijak (u stvari potenciometar) sa bočne strane servoa (veoma malo 1°-2°) i pratite kretanje/obrtanje motora (glavno pogonsko vratilo) . Cilj je da pronađete položaj vijka/potenciometra pri čemu će motor prestati da se okreće (pri tom ne sme da se čuje nikakvo brujanje motora).

Kod za stelovanje kontinualnog servoa - za blog

Napomena: štelovanje kupovnog kontinualnog servo motora neophodno je samo ukoliko  se prilikom rada sa samim motorom uoče odstupanja u njegovom ponašanju; npr. ako ste u programu zadali komandu „stani“, a robot ne stane.

 

PROGRAMIRANJE KRETANJE ROBOTA SA
MOTORIMA SA UGRAĐENIM REDUKTORIMA KAO POGONSKO SREDSTVO

Postupak programiranja mikrokontrolera koji će biti zadužen za pravilno kretanje vašeg prvog robota sa pogonom motora sa ugrađenim reduktorom sastoji se iz više faza. Najpre treba testirati da li je zaista sve povezano kako treba. Dovoljno je da se pomešaju priključna mesta  za  “ + ”   i   “ – ”   na motorima i da se robot kreće unazad umesto u napred itd…

Sledeći kôd upravo služi da se proveri ispravno povezivanje motora na odgovarajući drajver za motore (L298 ili L293)  odnosno mikrokontroler. Kao što je ranije rečeno bez obzira na drajver, šema/princip povezivanja je isti.

proba -L298 - test motora

Ukoliko je program uspešno otpremljen i testiranje uspešno obavljeno, dakle ako su eventualne greške otklonjene (zamena mesta   “ + ”   i   “ – ” na priključnim mestima motora) može se pristupiti izradi glavnog programa za upravljanje robota.

Program za upravljanje robotom (Arduino-strana) na bazi motora sa ugrađenim reduktorom (važi i za motore iz kompleta za 7.raz.OŠ) – ******USKORO******

 

ANDROID PROGRAM (*.APK) ZA BEŽIČNO UPRAVLJANJE ROBOTA
(Mobilni telefon kao “džojstik” –
via BlueTooth)  Primenljivo na robote sa obe vrste pogona; kontinualni servo motori i motori sa ugrađenim reduktorima

Kao što sam već pomenuo u odeljku/strani M*P*R – Moj prvi robot,  najlakši način da bežično upravljate vaš robot jeste putem BlueTooth modula na robotu i vašim mobilnim telefonom  koristeći Android aplikaciju “SENA” – jer praktično nema programiranja sa strane Androida. Ukucavanjem pojedinih „slova“ preko tastature ostvaruje se tzv. BlueTooth serijsko upravljanje (Na primer: “w” – idi napred;  “s” – idi nazad; “a” – idi levo; “d” – idi desno; i “e” – stani;).

za blog - SENA + moja aplikacija

Izgled ikona programa „SENA“ i aplikacije izrađene u APP Inventoru 2…. „MOJ_PRVI_ROBOT.APK“

Međutim za entuzijaste koji žele svoju sopstvenu “aplikaciju”  za bežično upravljanje svog robota to i mogu da urade korišćenjem on-line  alatke zvaneAPP inventor 2. Interfejs odnosno programsko okruženje je veoma intuitivno, dok samo programiranje veoma podseća na svima dobro poznat “SCRATCH”.

Evo izgled programa (*.AIA – datoteka – može da se edituje/menja)  koji je potrebno instalirati na telefon. Sam program koji se zapravo instalira ima ekstenziju  *.APK (Linkovi za preuzimanje: preko dropbox  ili preko Google Drive) i u takvom obliku korisnik nije u mogućnosti da ga menja.

Moj Prvi Robot - android APP - blocks - cirirlica-za blog

Izgled *.AIA fajla – Android aplikacije za bežično upravljanje robota putem mobilnog telefona

Sledi, izgled pomenute Android aplikacije  (*.APK)  nakon instalacije i pokretanja iste  na  Lenovo 7″  tabletu.

za blog - ceo ekran moja aplikacija + STANI

Izgled aplikacije izrađene pomoću APP Inventor2 nakon instalacije i pokretanja iste na 7″ – tabletu . Kada se klikne na bilo koje od pet komandnih dugmića (STOP + 4 strelice) javlja se povratna informacija kao npr. СТАНИ ! … ЛЕВО… ДЕСНО… НАПРЕД… itd. u zavisnosti od toga koje smo dugme poslednje pritisnuli.

 

 

Video snimak primene novog programa za upravljanje robota 4-točkaša sa klasičnim mehanizmom za upravljanje prednjih točkova – putem servo motora. pogledajte OVDE.
Odgovarajući  *.APK  fajl možete preuzeti OVDE.
Izgled samog programa (u obliku  *.AIA – datoteke) koji može da se menja, izgleda ovako:

Android AIA - 7thgradeMOT+servo - ver_2

Izgled *.AIA fajla – Android aplikacije za bežično upravljanje robota (4-točkaš sa jednim ‘motorom sa reduktorom’ i jednim servo-motorom) putem mobilnog telefona

A nakon instalacije APK fajla na telefon, interfejs izgleda ovako:

za blog - MPR - var2

Izgled aplikacije izrađene pomoću APP Inventor2 nakon instalacije i pokretanja iste na 7″ – tabletu . Kada se klikne na bilo koje od sedam komandnih dugmića (STOP + 6 strelice) javlja se povratna informacija kao npr. СТАНИ ! … НАПРЕД, НАЗАД, НАПРЕД – ЛЕВО… НАПРЕД – ДЕСНО… НАЗАД – ЛЕВО… itd. u zavisnosti od toga koje smo dugme poslednje pritisnuli.