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.

Si acest modul este construit pe o placa R-Dev-Ino, folosind un microcontroler ATmega168, are un LED rosu la pinul Digital 13, condensatori de valoare mare montati pe portiunea de prototipare impreuna cu un stabilizator de tensiune de putere, in comutatie, pe care l-am reglat sa scoata tensiunea de 6V la iesire (montat sub placa). Acest stabilizator are avantajul ca mentine tensiunea la iesire constanta, chiar daca tensiunea la intrare scade foarte mult, ceea ce face ca servomotoarele sa functioneze pina in momentul in care bateria este consumata complet. Un alt avantaj evident este eliminarea nevoii de a folosi 2 baterii de tensiuni diferite pe robot, una de 6V care sa alimenteze servomotoarele si una de 9V care sa alimenteze motoarele.

Cateva cuvinte despre acele condensatoare. In montajele cu microcontrolere intalnite in robotica, se obisnuieste sa se foloseasca in general condensatori de 3 valori standard, montati in paralel cu pinii de alimentare. Linga fiecare circuit integrat (chiar si la unii senzori) se monteaza cate un condensator ceramic de 0.1uF, care are rolul de a filtra oscilatiile rapide de tensiune care apar in urma functionarii intermitente a unor senzori si a motoarelor in regim de PWM, si un condensator de 10uF, care are rolul de a furniza o mica rezerva de tensiune pentru acel circuit integrat in momentul in care tensiunea de alimentare scade brusc in urma pornirii unui motor sau a unui sensor care absoarbe un curent mare. In paralel cu bateria, inainte de stabilizatorul de tensiune (uneori chiar si la iesirea stabilizatorului) se monteaza un condensator de valoare mare, de la 100uF in sus, in functie de cat curent absorb motoarele si servomotoarele la pornire sau la blocare (stall), pentru a evita scaderea tensiunii sub valoarea critica care poate reseta microcontrolerul. Aceasta valoare a tensiunii care determina resetarea microcontrolerului (brown out) se poate seta din “fuse bits” si, daca programul nu scrie in EEPROM, poate fi mai mica de 4,5V. Trebuie intotdeauna sa avem grija ca acesti condensatori sa functioneze la o tensiune maxima de cel putin dublul tensiunii de alimentare, pentru a evita distrugerea lor prin varfuri de tensiune scapate in circuitul de alimentare de la puntea H prin distrugerea (sau lipsa) diodelor de protectie.

Pentru moment, controlerul are conectat doar senzorul de receptia a semnalului de telecomanda. Urmeaza sa mai instalez 2 sensori sensibili la forta de apasare, care vor fi montati pe bratele robotului, ca sa “simta” cand un obiect este prins in brate. Acesti senzori sunt rezistivi si se conecteaza la un pin analogic al microcontrolerului.

Programul consta intr-o bucla infinita care proceseaza comenzile primite prin I2C. Aceste comenzi sunt de a executa o anumita miscare, stocata in EEPROM. Am experimentat cu invatarea de noi miscari folosind comanda vocala, dar ceva nu a functionat corect in logica folosita, asa ca, deocamdata se poate folosi doar metoda de invatare prin telecomanda TV.

Atasez cele 2 fisiere, aveti grija sa creati un folder cu denumirea ServoController in care sa copiati ambele fisiere. ServoControllerMoves.


, ,

Ceva neclar in articolul de mai sus ? Ai vrea sa discuti cu cineva despre proiectul tau ? Vino in fiecare marti seara de la ora 19:00 la Intalnirea Tehnorama, sau ne poti contacta direct.
Vezi aici detalii complete.

Despre... Ro-Bot-X

Acest autor a publicat 14 articole.

Share

FacebookTwitterEmailWindows LiveTechnoratiDeliciousDiggStumbleponMyspaceLikedin

Comentarii

[...] http://www.tehnorama.ro/minieric-modulul-de-control-al-servomotoarelor/ comanda vocala , R-Dev-Ino , sinteza vocala , text to speech , VRbot proiecte 6 Comments [...]

Trimite un comentariu