MiniEric – modulul de control al servomotoarelor

Autor - Ro-Bot-X -21/06/2010-

Datorita faptului ca robotul meu foloseste mai multe servomotoare, am ales sa construiesc un modul dedicat pentru controlul lor. Desigur, este mai simplu sa cumperi unul gata facut, care are deja toate functiile definite si perfectionate, dar eu am vrut sa aibe aceasi forma cu restul modulelor si sa invat si eu cate ceva din programarea functiilor de control. Pe de alta parte, deja aveam portiunea de invatare a unei noi miscari cu ajutorul telecomenzii si stocare in EEPROM pe care vroiam sa le pastrez. Si bineinteles, aveam nevoie de comunicare prin I2C si nu serial, cum mai toate controlerele functioneaza.

citeste mai departe

MiniEric – modulul de control si sinteza vocala

Autor - Ro-Bot-X -19/06/2010-

Cred ca acest modul este cel mai spectaculos in momentul de fata. Contine un microcontroler ATmega328 instalat pe o placa R-Dev-Ino, un mic amplificator montat in zona de prototipare, folosind un amplificator operational LM386, dupa cum vedeti in schema alaturata.

Acest amplificator este destinat filtrarii si amplificarii semnalului dat de sinteza vocala. Pe linga acestea, am legat un modul de comanda vocala VRbot la pinii Digitali 2 si 3 si, bineinteles, un LED la pinul Digital 13. Pentru a vedea ce se intampla in timp de dau comenzile vocale, am legat un LCD serial la pinul Digital 12. Pentru teste am adaugat si un difuzor piezo la pinul Digital 7. In acest fel pot genera o melodie fie prin difuzorul piezo, fie prin amplificator.

citeste mai departe

MiniEric – modulul de control al deplasarii

Autor - Ro-Bot-X -16/06/2010-

Acest modul foloseste un microcontroler ATmega168 montat pe o placa R-Dev-Ino si un driver punte H SN754410, montat in zona de prototipare. Pe placa este montat un stabilizator de tensiune in capsula TO92 (ca un tranzistor normal),  un LED rosu de control, legat la pinul Digital 13, exact ca pe o placa Arduino, si un LED verde, care este legat la alimentare.

Motoarele sunt controlate in stil “Sign Magnitude”, adica pinul Enable este legat HIGH, unul din cei doi pini de directie este comandat de un semnal PWM si cel de-al doilea pin stabileste directia. Daca pinul de directie este LOW, latimea portiunii HIGH a semnalului PWM determina viteza motorului, iar daca pinul de directie este HIGH, latimea portiunii LOW determina viteza. Astfel, pentru aceeasi viteza, un motor primeste semnal PWM direct, iar celalalt motor primeste semnalul PWM inversat. Semnalul PWM este controlat de Timerul 1 al microcontrolerului.

citeste mai departe

MiniEric – modularizare

Autor - Ro-Bot-X -12/06/2010-

Concept

Un robot simplu are un microcontroler, cativa senzori si 2 sau mai multe motoare. Eventual un LCD, LED-uri, difuzor piezo, etc. In momentul in care robotul devine mai complex, microcontrolerul incepe sa faca fata tot mai greu multitudinii de sarcini pe care trebuie sa le rezolve. Unele actiuni trebuie facute la anumite intervale de timp, altele se bazeaza pe intreruperi pentru a fi executate intr-un timp cat mai scurt, altele au nevoie de calcule multe, care necesita un timp mai indelungat de folosire a centrului de procesare. Toate acestea fac ca uneori unele actiuni sa vrea sa intrerupa actiunea curenta, ceea ce poate sa genereze conflicte. Desigur, cu o mare atentie in programare si folosind tehnici avansate, aceste conflicte pot fi aplanate.

O alta varianta este de a imparti sarcinile intre mai multe module, fiecare continand un microcontroler, legate intr-o retea de comunicare. In felul acesta, fiecare isi vede de treaba lui si din cand in cand executa actiuni specifice la primirea unei comenzi prin retea. In retea poate sa existe o unitate centrala (creier) care sa se ocupe de partea de logica comportamentala sau chiar de inteligenta artificiala (simplista, evident). Aceasta unitate centrala poate fi un microcontroler sau chiar un PC, si poate fi montata pe robot sau sa se afle la distanta. Bineinteles ca poate fi inlocuita de factorul uman, adica de telecomanda fie de aproape, folosind infrarosu (telecomanda TV), radio (Bluetooth, telecomanda de modelism) sau chiar un gamepad PS2, fie de la distanta, folosind internet wireless.

In acest articol voi prezenta modul in care am ajuns la modularizarea robotelului MiniEric si solutia aleasa.

citeste mai departe