Roboteală

Una din ocupațiile mele de la facultate este să robotesc. Adică să construiesc roboți, în special autonomi (mai multe informații despre grupul nostru de robotiști aici). Ultimele 3 săptămâni m-am luptat cu fel și fel de probleme la unul din roboții pe care îi avem la laborator, și, deși încă nu am reușit să rezolv toate problemele, am învățat o grămadă de lucruri în proces. Eu n-am reușit niciodata în cele 5 – 6 materii cu și despre electronică din facultate să înțeleg cum funcționează trăznăile alea de pe-acolo, dar acum, cu ajutorul domnului profesor Vârbănescu (aka profu’) și cu „ajutorul” problemelor cu robotul cu care lucrez, am înțeles și eu în sfârșit ce-i aia o punte H, cum merge un tranzistor (în mare), cum funcționează MOSFET-urile, să mă joc cu osciloscopul, faptul că trebuie o masă comună între diferite alimentări (care e destul de LMCu, dar dacă-l uiți îi bai)…

Robotul ăsta, care n-are încă un nume (altul decât robotu’ mare) este o mașinuță cu 4 roți și cu control al direcției ca la mașină (cu diferențial și direcție pe față), și are două motoare, unul care angrenează toate 4 roțile și unul care comandă unghiul la care se întorc roțile. Partea de control este făcută cu o placă destul de deșteaptă, pe nume PMS5005 de la Dr. Robot, care printre alte drăcovenii are un adaptor serial to 802.11 (wireless) ceea ce înseamnă că poate comunica pe WiFi cu un calculator. De fapt, placa e gândită să aibă logica separat (pe un computer) și ea se ocupă strict cu controlul și cu primirea feedback-ului de la senzori (nu e programabilă).

Până acum, etapele pe care le-am isprăvit au fost:

  • determinat cum funcționează modulul serial to 802.11
  • configurat 802.11 pentru ad-hoc cu laptop-ul meu
  • determinat că softul de la placă nu funcționează la mine pe comp nici după update de firmware
  • sniffuit pachete, determinat că de fapt placa funcționează corect, softu nu
  • cerut și primit documentație despre protocolul de comunicație al plăcii de la Dr. Robot
  • implementat protocolul în Java într-o formă barbară
  • testat servo motorul pentru direcție
  • ars servo motorul pentru direcție
  • comandat servo nou pentru direcție
  • stabilit că servo s-a ars din lipsa de masă comună
  • instalat servo nou, testat că funcționează
  • reparat servo vechi (aici eu am avut contribuție minimă :)
  • refactorizat și rearanjat implementarea protocolului, mutat partea de conexiune într-un layer inferior, implementat pentru serial și pentru wifi
  • încercat conexiune prin rfcomm0 (bluetooth), stricat placa mea veche pentru bluetooth
  • configurat 802.11 pentru infrastructure (finally!)
  • testat modul control motor mare
  • ars sursă de calculator (prea puțin curent)
  • multe teste și demontări pentru stabilirea curentului necesar motorului mare
  • reușit comandă PWM motor mare
  • determinat că controllerul de motor are un maxim de 5A (peak)
  • determinat că controllerul de motor fierbe și sub 5A
  • renunțat la ideea de a folosi controllerul de motor
  • petrecut o săptămână citind despre punte H, învățat mult despre tranzistori
  • realizat sursă comună de alimentare pentru toate intrările plăcii de control (6V, 5V, 9/12V)
  • implementat soluție poartă H varianta profu (darlington + relee, 8A max), încercarea 1 (merge)
  • decis că încercarea 1 e prea mare ca și suprafață, implementat încercarea 2, cu sursa comună de alimentare ȘI punte H pe aceeași placă
  • determinat că sub sarcină sursa de 6V fierbe
  • ars un tranzistor
  • ars un releu
  • ars alt releu
  • învățat că rating-urile maxime de curent din documentație sunt pentru răcire eficientă (nu ce făceam eu)
  • făcut radiatoare din aluminiu (bonfaier + bormașină, mersi Adi)
  • făcut cabluri de conectare (ATMega către puntea H, PMS5005 către ATMega)
  • testat super placă pe robot, determinat că nu primește suficient curent și merge bleg
  • consulare de ora 12 cu dl. profesor, micit rezistența dintre +Vbatt și baza Darlingtonului la jumate, adăugat radiator barbar pe Darlington (regulă empirică – dacă are carcasă TO220 – de-aia cu șurub – o să-i trebuiască radiator)
  • testat super placă modificată pe robot, determinată ca merge mai bine, dar tot prea bleg

De fapt, robotul ăsta trebuie să poată să recunoască și să ocolească obstacole, să iasă dintr-un labirint, să nu se bage în pereți și, eventual, la un moment dat să devină ceva mai interesant cum ar fi proiectul meu de diplomă. Mai avem până acolo :)

Azi am făcut și câteva poze bestiei:

Poză ca la mașini :)
Poză ca la mașini :)
Drept dintre ochi
Drept dintre ochi
Punte H + surse de alimentare (check out radiatoarele de pe o placă de bază :P)
Punte H + surse de alimentare (check out radiatoarele de pe o placă de bază :P)
Un ATMega32 lipit cu scotch :P
Un ATMega32 lipit cu scotch :P

Un comentariu la „Roboteală”

Dă-i un răspuns lui Ciprian Anulează răspunsul

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.