Spiderman pe servomecanisme de control IK

Un robot cu patru picioare este creat pentru a demonstra funcționarea servo-urilor conduse de controlerul Arduino (pentru cercul robotic).

Robotul are două moduri:







  • autonomă - robotul se mișcă înainte, dacă se detectează un obstacol (folosind un senzor ultrasonic), acesta se rotește și se mișcă mai departe;
  • control extern cu telecomandă IR.

Servomotoarele Turnigy TGY-9025MG au fost utilizate cu un reductor metalic.

Spiderman pe servomecanisme de control IK

Deoarece picioarele robotului au folosit dopuri pentru cartușe cu jet de cerneală, lipite cu policaprolactonă

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Cazul a fost făcut din material de ambalaj pentru calculatoare. Pentru servere, este necesară o sursă de alimentare separată. Sursa de alimentare este bateria Li-po Turnigy 2S 1600 mAh.

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Iată o vedere de sus și de jos a robotului în timpul procesului de asamblare.

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Pentru a controla servomotorul din Arduino, există o bibliotecă servo standard. Pe altele decât Mega placi, utilizarea bibliotecii dezactivează capacitatea de a utiliza analogWrite () (PWM) pe pinah 9 și 10 (dacă aceste pini sunt conectate la servo sau nu). Pe placi Mega serv la 12 pot fi utilizate fără a afecta funcționalitatea PWM, dar utilizarea 12-23 va dezactiva PWM servo pe pinah 11 și 12. Cervoprivod se conectează cu 3 fire: putere, la sol și de semnal. Putere - fir roșu. Negru (sau maro) sârmă - este conectat la terminalul de masă GND Arduino, semnal (alb oranj / galben /) sârmă este conectat la un controler Arduino terminalul digital. Vom folosi concluziile 5,6,7,8 Arduino.







Tensiunea furnizată de baterie este de 7,4 - 8,4 V. pentru a furniza serverelor nevoie de o tensiune de 4,8 - 6,0 V, vom folosi regulatorul de tensiune 5V, asamblat pe cipul L7805. Un cip continuu supraîncălzit, problema a decis să instaleze două chips-uri L7805 în paralel.

Pentru a detecta obstacolele va utiliza un ultrasonic senzor HC-SR04, care permite determinarea distanței obiectului în intervalul de la 2 la 500 cm, cu o precizie de 0,3 cm. În cazul în care distanța față de obstacol este mai mică de 10 cm, robotul face un viraj și se deplasează mai departe înainte.

Spiderman pe servomecanisme de control IK

Ca telecomandă, este utilizat telecomanda lg, receptorul IR este TSOP31238 (1-GND, 2 - + 5V, 3-OUT).

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Și întregul robot din colecție (placa Arduino este alimentată de o baterie Crown).

Spiderman pe servomecanisme de control IK

Spiderman pe servomecanisme de control IK

Să începem să schițăm

Servomotoarele sunt controlate de biblioteca Arduino Servo. Trebuie să pună în aplicare un set de mișcări servo pentru robotul de circulație păianjen înainte, înapoi, rotiți în sens orar și rotiți în sens antiorar. Mai mult decât atât robotul este necesară pentru a pune în aplicare o funcție de oprire, cât și pentru economisirea de energie prevăzute în modul adormire (în cazul în care elementele de acționare se află în modul de detașare) și trezirea (traducere servo modul de conectare). Prin urmare, fiecare mișcare a robotului constă în mai multe etape.

De exemplu, mișcarea spre înainte constă în următorii pași:

  1. stânga față înainte;
  2. drept înainte;
  3. stânga înapoi înainte;
  4. drept picior înainte;
  5. patru picioare împreună în spate (ceea ce va duce la tragerea corpului robotului păianjen).

Datele pentru unghiul de rotație al fiecărui servo la fiecare pas pentru fiecare mișcare a robotului păianjen sunt stocate în matricea tridimensională arr_pos.

curs Procedura (varianta int) implementează servo pentru fiecare pas urmând mișcările robotului-păianjen: înainte, înapoi, rotiți în sens orar și rotiți în sens antiorar.

Pentru a opri, a adormi și a trezi robotul păianjen, există o procedură go_hor_all ()

Implementăm un control IR simplu din consola. Selectăm 7 chei, stocăm datele din cod în schiță sub formă de constante. Și în buclă () buclă, vom implementa logica pentru selectarea mișcărilor robotului păianjen atunci când apăsați tastele telecomenzii IR. Programul get_ir_kod () este apelat de întreruperea CHANGE la intrarea 2. Se folosește biblioteca Arduino.

La modul de control al robotului cu consola IR, adăugăm modul autonom. În modul independent, robotul va merge mai departe atunci când obstacolul robotul va face un viraj și merge mai departe din nou. HC-SR04 senzor ultrasonic permite determinarea distanței obiectului în intervalul de la 2 la 500 cm, cu o precizie de 0,3 cm. Senzorul emite puls ultrasonic scurt (la momentul 0), care se reflectă din obiectul și recepționate de către senzor. Distanța se calculează de la momentul până la ecou și viteza sunetului în aer. Dacă distanța față de obstacol este mai mică de 10 cm, robotul face o întoarcere și se mișcă mai departe. Trecerea de la modul de control IR la modul off-line se face prin apăsarea tastelor "galben" și "albastru".

Pentru a lucra cu senzorul HC-SR04 vom folosi biblioteca de Ultrasonic Arduino. Designer Ultrasonic acceptă doi parametri - numerele de pin pe care sunt conectate pinii Trig și Echo:

Se dovedește acest cod

Arhiva cu schița și bibliotecile de Ultrasonic și IRremote poate fi descărcată mai jos







Trimiteți-le prietenilor: