RoboRemo – aplicatie Android pentru controlul robotilor

[guest post scris de Victor Berzan]

In anul 2 de facultate am construit primul line follower. Bineinteles ca n-a mers perfect din prima. Cea mai mare bataie de cap era cu algoritmul de ocolire a obstacolului, unde aveam o valoare de prag pentru senzorul Sharp, apoi un delay cat timp sa faca stanga, apoi cat sa mearga inainte, apoi dreapta, inainte, dreapta, inainte si stanga.

Pentru fiecare miscare aveam cate o constanta in cod, si toate constantele trebuiau ajustate. Fiecare ajustare insemna conectarea robotului la laptop pentru upload-area codului (ce bine ca microcontroller-ul permite 100.000 de scrieri in memoria Flash). Ca sa nu mai pierd atata timp, m-am gandit sa pastrez constantele in EEPROM si sa le modific dintr-un terminal serial.

Apoi am montat un modul Bluetooth pe robot, si modificam parametrii de la distanta, dar umblam cu laptop-ul dupa mine. Era mai ok sa folosesc un terminal serial pe telefon. Nu aveam telefon cu Android pe atunci, asa ca mi-am facut un terminal pentru Nokia e61 🙂 Acum era mult mai simplu sa “tunez” robotul. Daca vroiam ca viteza maxima sa fie 100, tastam M100 si enter, si nu mai era nevoie sa ridic robotul de pe traseu. Cand am trecut la Android, am facut cate un slider pentru fiecare parametru. Dar cand adaugam un parametru nou in cod, trebuia sa mai adaug si un slider, adica sa recompilez aplicatia si sa o instalez pe telefon. Asa a aparut ideea de aplicatie cu interfata configurabila. Acum daca mai vreau un slider – il adaug direct din aplicatie, il mut unde vreau pe ecran, ii modific dimensiunea, valoarea minima / maxima, culoarea, etc.

Robotul pe care il am acum are 30 de parametri:

‘M’ – viteza maxima
‘m’ – viteza minima
‘p’ – coeficientul proportional
‘d’ – coeficientul diferential

‘Z’ – distanta de la care sa incetineasca inainte de obstacol
‘z’ – distanta de la care sa inceapa ocolirea
‘O’ – de cate ori sa verifice daca intr-adevar l-a vazut
‘o’ – viteza cu care ocoleste

‘L’ – prin ce parte sa ocoleasca (1 = stanga, 0 = dreapta)

‘q’ – cate grade sa intoarca la stanga(dreapta) (robotul are giroscop 🙂 )
‘Q’ – cate ms sa mearga inainte
‘w’ – cate grade sa intoarca la dreapta(stanga)
‘W’ – cate ms sa mearga inainte
‘e’ – cate grade sa intoarca la dreapta(stanga)

‘t’ – pragul de culoare pentru a reveni pe linie

‘s’ – viteza de start
‘S’ – ms pana creste viteza de la s la M

‘R’ – pragul de eroare peste care franeaza daca pierde linia
‘k’ – viteza cu care franeaza
‘K’ – cate ms sa franeze

‘h’ – numarul de masurari pentru care face media erorii

‘Y’ – pragul de unghi pentru detectia podului
‘b’ – viteza maxima pe pod
‘F’ – peste cate ms sa inceapa sa verifice daca se inclina podul
‘y’ – pragul de unghi pentru detectia inclinarii podului
‘v’ – viteza cu care franeaza cand podul incepe sa se incline
‘V’ – cate ms franeaza
‘D’ – cate ms asteapta dupa ce a pus frana
‘B’ – peste cate ms incepe iar sa verifice daca da de pod

‘c’ – culoarea liniei, 0 = neagra, 1 = alba, 2 = auto

Si interfetele arata asa:

RoboRemo - interfata 1 lifo

 

 

RoboRemo - interfata 2 lifo

 

 

RoboRemo - interfata 3 lifo

 

Da, sunt 3 interfete, pentru ca nu a incaput totul pe ecranul telefonului. Poate pe o tableta ar incapea.

In afara de slidere si butoane, aplicatia permite sa adaugi si alte obiecte pe ecran:
led-uri, indicatoare de nivel, accelerometru, text, grafice, etc.

Aplicatia se poate conecta prin Bluetooth, WiFi sau internet mobil. Ca sa controlezi un (orice) cu aplicatia RoboRemo, iti trebuie un microcontroller cu port serial / uart (majoritatea au), si un modul Bluetooth sau WiFi.

Cateva exemple:

Controlez un servo prin Bluetooth:

https://www.youtube.com/watch?v=9y7STayMUHE

Controlez un led RGB prin Bluetooth:

https://www.youtube.com/watch?v=2kne9jRlN4E

Masor distanta cu un senzor Sharp:

https://www.youtube.com/watch?v=qmUQjJoCb3k

Controlez o masinuta prin WiFi:

https://www.youtube.com/watch?v=nz7vJ0woE0Y

Manualul utilizatorului (in limba engleza) se gaseste aici: http://www.roboremo.com/downloads.html
Aplicatia RoboRemoFree: https://play.google.com/store/apps/details?id=com.hardcodedjoy.roboremofree

Versiunea Free e limitata la 5 obiecte pe ecran (in afara de butonul de meniu si obiecte de tip text). Nu necesita conexiune la Internet (decat daca vrei sa controlezi ceva prin Internet).

Versiunea Full (costa cam cat o roata de robot) https://play.google.com/store/apps/details?id=com.hardcodedjoy.roboremo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s