Robot cu patru picioare bazat pe Arduino. Asamblarea roboților autopropulsați folosind Arduino

Vă prezentăm un mini proiect simplu pe Arduino pentru începători - un Robot Spider controlat de o telecomandă IR. Pentru a face acest robot cu propriile mâini, veți avea nevoie de un minim de piese și unelte. În articol puteți afla lista materialelor și instrumentelor necesare pentru fabricarea acestuia, am postat și noi instrucțiuni detaliate cu scheme de asamblare, desene de piese și o schiță finită.

Video. Păianjen robot pe panoul de control

Baza robotului este formată din două placaje lipite împreună cu un pistol termic; picioarele păianjenului sunt realizate din sârmă de oțel cu diametrul de 2 mm. Un receptor IR este folosit pentru a recepționa semnalul de la telecomandă, iar trei servomotoare sunt folosite pentru mișcare. Alimentarea este furnizată de la o baterie Krona de 9V. ÎN în acest exemplu Se folosește microcontrolerul Robotdyn UNO, dar poate fi folosită orice placă Arduino.

Robot păianjen pe Arduino

Pentru acest proiect vom avea nevoie de:

  • Placa Arduino UNO;
  • receptor IR;
  • orice telecomandă;
  • placaj 3 - 4 mm grosime;
  • sârmă cu diametrul de 1,5 - 2 mm;
  • trei servo-uri;
  • baterie de 9 V;
  • fire și bandă electrică.

Toate materialele necesare, vedeți în fotografia de mai sus. În plus, veți avea nevoie de o serie de instrumente: clește pentru tăierea și îndoirea sârmei, un ferăstrău sau un ferăstrău pentru tăierea placajului, un pistol termic pentru fixarea pieselor, lipici pentru lipirea servo-urilor, un cuțit utilitar și un fier de lipit. Am folosit și dibluri pentru picioare de păianjen pentru a proteja masa de zgârieturi și pentru a reduce zgomotul.

În fotografia următoare puteți vedea designul cu reversul, indicând dimensiunile plăcilor de placaj. Pentru comoditatea conectării servo-urilor la Arduino, am lipit toate firele pozitive (sunt roșii) împreună și am conectat și firele care merg la GND de la servo-uri (sunt maro). Am lipit un fir cu contact la firele pentru controlul servomotoarelor (galben).


Fotografie. Dispozitiv robot păianjen controlat de telecomandă IR

Decupăm conectorii cu trei pini de la servo unul dintre ei este folosit pentru a conecta receptorul IR la Arduino. Plăcile de placaj sunt lipite împreună cu un pistol termic, care asigură o fixare fiabilă și nu trebuie să așteptați mult - plasticul se întărește în câteva minute. Servocele și conectorul pentru receptorul IR pot fi lipite de corp cu lipici.

Cea mai dificilă etapă a proiectului poate fi considerată realizarea picioarelor păianjenului din sârmă. Este necesară precizie la îndoirea lor și reglaj fin, în funcție de locația centrului de greutate al robotului. Dacă labele nu sunt făcute cu precizie, robotul se poate răsturna și cădea într-o parte sau alta când merge. Bateria pentru alimentare poate fi plasată deasupra sau atașată la partea inferioară a placajului cu bandă dublu-față.

Asamblarea unui robot păianjen folosind control IR

Descărcați proiectul gratuit

1. decupați două scânduri de dimensiunea necesară

2. lipiți plăcile împreună cu un pistol termic

3. tăiați firele cu conectori de la servo

4. lipiți trei servo-uri împreună

5. lipiți firele de la servo-uri împreună

6. fire de lipit cu contacte la un conector

5. lipiți servomotoarele de corpul robotului

6. lipiți pe corp conectorul receptorului IR

7. tăiați firul de oțel la lungimea necesară

8. îndoiți sârma pentru labe conform desenului

9. lipiți pârghiile de la servo la labe

10. selectați un receptor IR pentru telecomandă

11. specificați comenzile de la telecomandă în fișierul ir_command_codes.h

12. Asamblarea unui robot păianjen cu Arduino UNO

13. testarea robotului păianjen + control IR


Puteți adresa orice întrebări despre producerea și configurarea acestui proiect în comentariile la această postare sau pe canalul nostru YouTubeîn comentariile de sub videoclipul mini-proiectului „ Robot Arduino spider + control IR”.

De asemenea, citește des:


Pentru cei care decid să-și testeze puterea în domeniul roboticii și, în același timp, doresc să exploreze capacitățile platformei Ardunio, există mod grozav Acest lucru se poate face prin asamblarea unui robot păianjen, care va fi descris în acest articol. Principalele elemente de putere datorită cărora robotul se va mișca sunt servo-urile. În ceea ce privește creierul, aici este Arduino, precum și Fischertechnik. Potrivit autorului, robotul s-a dovedit a fi destul de interesant și promițător.

Materiale și unelte pentru fabricație:
- un set de lame;
- adeziv termofuzibil;
- Dremel (ai nevoie de burghie foarte subtiri);
- șurubelniță;
- burghiu cu burghiu 7/32;
- șurubelniță Phillips;
- lama;
- compartiment baterie;
- panou.


Din electronice veți avea nevoie de:
- opt microservore cu console;
- 6 baterii AA si ac de haine;
- mulți jumperi și conectori de contact.

Ca parte software, veți avea nevoie de un Arduino cu o sursă de alimentare.

Și este nevoie de un kit Fischertechnik pentru piesele de schimb.

Procesul de fabricare a robotului. :

Pasul unu. Crearea unui cadru de robot
Pentru realizarea cadrului veți avea nevoie de un kit Fischertechnik. Puteți vedea cum ar trebui să arate în fotografie. Pentru a crea un cadru, aveți nevoie de trei „cărămizi” înalte, cu patru găuri între ele. Concret, în acest produs de casă se va folosi un element cu 11 decupaje. Este important să vă asigurați că toate servomotoarele funcționează.








Pasul doi. Instalarea servo-urilor
Servo drive-urile vor fi instalate între „cărămizi”. Servomotoarele sunt fixate cu șuruburi, mai întâi trebuie să găuriți în punctele de montare folosind un Dremel. Trebuie să forați găuri de cel mai mic diametru. Cu toate acestea, adezivul de topire la cald este potrivit pentru aceste scopuri, dar în acest caz structura nu va fi demontabilă.

Al doilea servomotor este instalat pe cealaltă parte în sens invers.








Pasul trei. Instalarea unui servomotor pe altul
În primul rând, trebuie să vă ocupați de elementele de montare ale servo-urilor. Dacă motorul se rotește în sens opus, acesta trebuie rotit până la capăt spre dreapta. Cum se face acest lucru poate fi văzut în fotografie.

Mai exact în în acest caz,Șurubul servo ar trebui să iasă deasupra plasticului, făcându-l mobil. În carcasa celui de-al doilea servomotor trebuie să faceți o adâncitură pentru capul șurubului.
Ce










Lipici fierbinte este folosit pentru a conecta cele două servo-uri.

Pasul patru. Conectarea picioarelor
Cum să faci picioare poate fi văzut în fotografie. Ar trebui să fie patru în total.






După ce picioarele sunt asamblate și conectate la robot, structura ar trebui să arate ca în fotografie.


Pasul cinci. Crearea unei diagrame de raporturi
Diagrama este necesară pentru a înțelege ce unghi se poate roti fiecare dintre servo. În continuare, fiecare servomotor este alocată număr specific, iar pe baza acestui număr va fi creat firmware-ul robotului.


Pasul șase. Placa de dezvoltare
Trebuie să eliminați toate cele 30 de jumperi. În continuare, totul trebuie conectat cu fire așa cum este indicat în diagramă. Fiecare servo are trei contacte, unul este responsabil de împământare, unul furnizează energie și unul este necesar pentru a controla motorul.

Pinii Vcc și GND ai servo trebuie să fie conectați la pinii Vcc și GND ai panoului. De asemenea, o sursă de alimentare de 7,5 V este conectată la canalele de layout GND și Vcc.

Firele de control servo sunt portocalii și galben. Ele sunt conectate la pinii 2 și 9. De exemplu, pinul de la primul motor este conectat la al doilea pin de pe Arduino. Al doilea motor este conectat la al treilea contact și așa mai departe.



Pasul șapte. Configurarea servo-urilor.
Acum este timpul să creați codul software pentru robot. În primul rând, trebuie să creați pe Arduino proiect nou pentru a sincroniza motoarele. Puteți vedea cum ar trebui să arate codul în fotografie. Datorită acestui cod, picioarele robotului sunt aliniate.


Pentru ca păianjenul să se cațere, trebuie să creăm un alt proiect numit Up and Down. Datorită acestui cod, picioarele păianjenului se vor putea mișca în sus și în jos.


Pentru ca robotul să se deplaseze înainte și înapoi, trebuie să creați și un alt proiect. Puteti vedea cum va arata in poza.


Și, în sfârșit, pentru ca robotul să se miște, trebuie să combinați partea din față și spate. După cum puteți observa, codul de program al robotului este format din patru blocuri.

Asta e tot, robotul este gata. Acum îl puteți instala diverși senzori, care va permite robotului să navigheze în spațiu. De asemenea, puteți face brațe pentru robot, astfel încât acesta să poată ridica obiecte. În general, totul aici depinde de entuziasmul și imaginația constructorului de roboți. Cu toate acestea, chiar și în această formă robotul se comportă destul de interesant.

Firmware: (descărcări: 152)

Salutare tuturor. Acest articol este o scurtă poveste despre cum do robot lor mâinile. De ce o poveste, te întrebi? Acest lucru se datorează faptului că pentru fabricarea unor astfel de meşteşuguri este necesar să folosiți o cantitate semnificativă de cunoștințe, care este foarte dificil de prezentat într-un articol. Vom parcurge procesul de construire, vom arunca o privire asupra codului și, în cele din urmă, vom aduce la viață o creație din Silicon Valley. Vă sfătuiesc să urmăriți videoclipul pentru a vă face o idee cu ce ar trebui să ajungeți.

Înainte de a continua, vă rugăm să rețineți următoarele: în timpul producției meşteşuguri a fost folosit un cutter cu laser. Puteți evita utilizarea unui tăietor cu laser dacă aveți suficientă experiență în lucrul cu mâinile. Precizia este cheia pentru finalizarea cu succes a proiectului!

Pasul 1: Cum funcționează?

Robotul are 4 picioare, cu câte 3 servo-uri pe fiecare dintre ele, care îi permit să-și miște membrele în 3 grade de libertate. Se mișcă cu un „mers târât”. Poate fi lent, dar este unul dintre cele mai fine.

Mai întâi trebuie să înveți robotul să se miște înainte, înapoi, stânga și dreapta, apoi adaugă senzor ultrasonic, care va ajuta la detectarea obstacolelor/obstacolelor, iar după aceea un modul Bluetooth, datorită căruia controlul robotului va atinge un nou nivel.

Pasul 2: Piese necesare

Schelet din plexiglas de 2 mm grosime.

Partea electronică a produsului de casă va consta din:

  • 12 servo-uri;
  • arduino nano (poate fi înlocuit cu orice altă placă arduino);

  • Scut pentru controlul servo-urilor;
  • alimentare (în proiect a fost folosită o sursă de alimentare de 5V 4A);

  • senzor ultrasonic;
  • modul bluetooth hc 05;

Pentru a face un scut veți avea nevoie de:

  • placa de circuit (de preferință cu linii comune(autobuze) putere și masă);
  • conectori pini inter-placă - 30 buc;
  • prize pe placă – 36 buc;

  • fire.

Instrumente:

  • Cutter cu laser (sau maini pricepute);
  • Superglue;
  • Adeziv topitor la cald.

Pasul 3: Scheletul

Să profităm program de grafică pentru a desena componentele scheletului.

După aceasta, la orice mod accesibil tăiați 30 de părți ale viitorului robot.

Pasul 4: Asamblare

După tăiere, îndepărtați învelișul de hârtie de protecție de pe plexiglas.

În continuare începem asamblarea picioarelor. Elemente de fixare încorporate în părți ale scheletului. Tot ce rămâne de făcut este să conectați piesele între ele. Legătura este destul de strânsă, dar pentru o mai mare fiabilitate puteți aplica o picătură de superglue pe elementele de prindere.

Apoi trebuie să modificați servomotoarele (lipiți un șurub opus arborilor servo).

Cu această modificare vom face robotul mai stabil. Doar 8 servo-uri trebuie modificate, restul de 4 vor fi atașate direct la caroserie.

Atașăm picioarele la elementul de legătură (o parte curbată) și aceasta, la rândul său, la servomotor de pe corp.

Pasul 5: Realizarea scutului

Realizarea plăcii este destul de simplă dacă urmați fotografiile prezentate în pas.

Pasul 6: Electronică

Să atașăm pinii servo drive-ului la placa arduino. Pinii trebuie conectați în ordinea corectă, altfel nimic nu va funcționa!

Pasul 7: Programare

Este timpul să-l aducem la viață pe Frankenstein. Mai întâi, să încărcăm programul legs_init și să ne asigurăm că robotul este în poziția ca în imagine. Apoi, să încărcăm quattro_test pentru a verifica dacă robotul răspunde la mișcările de bază, cum ar fi deplasarea înainte, înapoi, la stânga și la dreapta.

IMPORTANT: Trebuie să adăugați o bibliotecă suplimentară la software mediu arduino IDE. Link-ul către bibliotecă este oferit mai jos:

Robotul trebuie să facă 5 pași înainte, 5 pași înapoi, să facă 90 de grade la stânga, 90 de grade la dreapta. Dacă Frankenstein face totul corect, ne îndreptăm în direcția corectă.

P. S: Așezați robotul pe ceașcă, ca pe un suport, astfel încât să nu trebuiască să îl puneți la punctul de plecare de fiecare dată. De îndată ce testele au arătat munca normala robot, putem continua testarea așezându-l pe sol/podeu.

Pasul 8: Cinematică inversă

Cinematica inversă (inversa) este ceea ce controlează de fapt robotul (dacă nu sunteți interesat de partea matematică a acestui proiect și vă grăbiți să finalizați proiectul, puteți sări peste acest pas, dar a ști ce face ca un robot să bifeze va fi întotdeauna de ajutor).

În termeni simpli, cinematica inversă, sau pe scurt IR, este „partea” ecuațiilor trigonometrice care determină poziția capătului ascuțit al piciorului, unghiul fiecărui servo etc., care determină în cele din urmă câteva setări preliminare. De exemplu, lungimea fiecărui pas al robotului sau înălțimea la care va fi amplasat corpul în timpul mișcării/odihnului. Folosind acestea parametri predefiniti, sistemul va extrage cantitatea cu care fiecare servo ar trebui să fie mișcat pentru a controla robotul folosind comenzile date.

Este foarte ușor să faci diferite mașini cu Arduino telecomanda, senzori simpli si logica. De aceea, această linie este incredibil de populară. Sunt vândute mulți senzori și plăci de expansiune compatibili. Internetul este plin de biblioteci de software gata făcute și proiecte open source pentru toate ocaziile. Aproape toate întrebările pe care le veți avea în procesul de stăpânire a Arduino au fost deja puse de cineva și veți găsi întotdeauna răspunsul.

Să începem de undeva? Întrebarea principală- selectarea controlerului. Există multe revizuiri ale Arduino, precum și clone terțe construite pe deasupra acestor versiuni. Iată, poate, cele două clase cele mai interesante pentru noi:

  • Arduino Uno - cea mai buna alegere pentru un începător, cea mai simplă, bugetară și cea mai comună placă. Se bazează pe un cip ATmega328 cu frecvența ceasului la 16 MHz, 32 KB memorie flash, 2 KB RAM și 1 KB EEPROM. Uno are 14 intrări/ieșiri digitale care pot fi folosite pentru a controla senzori și servo-uri și alte dispozitive;
  • Arduino Mega/ Mega 2560 este o placă potrivită atunci când știi dinainte că proiectul va fi complex. Principala diferență este numărul mai mare de intrări/ieșiri (48 în Mega, 54 în Mega 2560). Există, de asemenea, multe mai multa memorie: 8 KB RAM, 4 KB EEPROM și memorie flash 128 și 256 KB (în Mega și, respectiv, Mega 2560). Plăcile diferă între ele și prin cip Viteza USBși alte câteva caracteristici.

Desigur, există și Arduino Pro, Arduino LilyPad și multe altele. Dar deocamdată să ne concentrăm pe primele două modele. În cazul nostru, totul este destul de simplu: Mega este necesar pentru un robot cu un număr mare picioare

Primul cod

Mai întâi să instalăm Arduino IDE(arduino.cc) este o platformă încrucișată mediu liber dezvoltare. Acum, dacă ne conectăm Arduino, putem încerca să scriem primul cod cu cel mai simplu exemplu: un program de LED intermitent. Majoritatea controlerelor Arduino o au și sunt conectate la pinul 13. Apropo, în lumea Arduino, programele se numesc de obicei schițe. Iată textul schiței cu comentarii:

// Să dăm acestui pin numele LED: const int LED = 13; void setup() ( // Inițializați pinul digital // pentru ieșire: pinMode(LED, OUTPUT); ) void loop() ( // Aplică un nivel logic // la pinul 13 (aprinde LED-ul): digitalWrite(LED) , HIGH) ; // Întrerupeți execuția schiței // pentru o secundă: delay(1000 // Aplicați un nivel logic de zero // la pinul 13 (stinge LED-ul): digitalWrite(LED, LOW); / Întrerupeți execuția schiței // pentru o secundă: delay(1000);

Acordați atenție funcțiilor de configurare și buclă. Ele trebuie să fie prezente în orice schiță Arduino. Configurarea este apelată o dată la pornire sau după ce controlerul este repornit. Dacă doriți ca codul să fie executat o singură dată, aici ar trebui să îl plasați. Cel mai adesea acestea sunt tot felul de proceduri de inițializare a ceva. Schița noastră nu face excepție: pinii digitali Arduino pot funcționa atât ca intrări, cât și ca ieșiri. În funcția de configurare spunem că pinul 13 va funcționa ca ieșire digitală controlor.

După ce funcția de configurare își finalizează activitatea, este lansată automat o buclă închisă, în cadrul căreia va fi apelată funcția de buclă. Ni se cere să scriem ce vrem să facem acolo. Și vrem să aplicăm un nivel logic (5 V) la pinul 13, adică să aprindem LED-ul, apoi să așteptăm o secundă (1000 în milisecunde), apoi să aplicăm un nivel logic zero (0 V) și să așteptăm din nou o secundă. Următorul apel la buclă va repeta totul.

Acum încărcăm schița noastră în controler. Nu, nu avem nevoie de un programator. Controlerele Arduino, pe lângă schițele noastre, conțin program special- bootloader, care, în special, controlează încărcarea codului de pe computer. Deci, pentru a încărca schița, avem nevoie doar de un cablu USB și de elementul de meniu File → Upload (Ctrl + U) din Arduino IDE.

Întrebare cheie

De câte picioare avem de fapt nevoie? Să definim multe configurații ale roboților care merg pe jos. După numărul de picioare:

  • biped - biped (prototip - om);
  • patruped - patruped (prototip - majoritatea mamiferelor);
  • hexapod - cu șase picioare (prototip - majoritatea insectelor);
  • octopod - cu opt picioare (prototip - păianjeni, scorpioni, crabi și alte artropode).

Pe lângă numărul de picioare, este importantă și configurația fiecăruia. Caracteristica principală picioare este numărul de grade de libertate sau dimensiuni de libertate (DOF). Gradul de libertate este capacitatea de a se roti sau îndoi în jurul unei axe (mai rar, de a se deplasa înainte de-a lungul ei). Evident, dacă există un singur grad de libertate, atunci nu vei merge prea departe pe un astfel de picior. Picioarele cu două grade de libertate (2DOF) permit deja mișcării roboților cu mai multe picioare, deși 2DOF permite doar vârfului piciorului să se miște liber într-un singur plan. Și un picior 3DOF mișcă „piciorul” în spațiul 3D (cu excepția cazului, desigur, toate cele trei axe sunt paralele). Există și picioare 4DOF, care pur și simplu măresc flexibilitatea și gama de mișcare a piciorului. Insectele au cel mai adesea picioare de 4DOF.

Ce înseamnă asta pentru noi? La roboții amatori ieftini, fiecare grad de libertate este realizat de un motor, mai precis, un servomotor sau serv. Configurația picioarelor determină în mod unic câte dintre aceste servo-uri sunt necesare. Așadar, un hexapod 3DOF va necesita 18 servo-uri, iar un spider 4DOF va necesita 32. Nu vă speriați de cantitate, servo-urile mici folosite la modelele RC de amatori sunt foarte ieftine. Le puteți găsi în magazinele online căutând micro servo.

Pentru a programa servo, este suficient să știți că au deja un controler care face munca principală. Și tot ceea ce este necesar este să furnizăm energie și un semnal digital care să spună controlerului în ce poziție vrem să rotim arborele de antrenare. Informațiile despre designul lor sunt ușor de găsit. Protocolul lor este cel mai simplu dintre toate protocoalele de comunicații digitale: modularea lățimii impulsului- PWM (PWM în engleză). Toate servomotoarele simple au un conector cu trei pini: masă, +5 V (tensiunea poate varia în funcție de dimensiune și putere) și intrare de semnal. Controlerele Arduino pot avea două în diverse moduri generează un astfel de semnal. Primul este PWM hardware, pe care cipul însuși îl poate scoate pe mai mulți dintre pinii săi I/O digitale. Al doilea este software-ul. Software-ul vă permite să primiți simultan mai multe semnale PWM diferite decât hardware-ul. Este furnizat un înveliș convenabil pentru acesta sub Arduino - biblioteca Servo. Vă permite să utilizați 12 servo-uri simultan pe majoritatea controlerelor de dimensiuni mici (Uno, Due, Nano) și 48 de servo-uri pe Arduino Mega și altele asemenea. Pinul de semnal servo este conectat la pinul digital Arduino. Pământ și putere - evident la pământ și putere, acestea pot fi comune tuturor serviciilor. În buclele servo cu trei fire, negru sau maro este împământat, în mijloc este de obicei roșu +5 V și, în final, alb sau galben este semnal. Din punct de vedere software, controlul este extrem de simplu:

Servo myservo; // Servo pe pinul 9 al Arduino myservo.attach(9); // Rotire la 90º myservo.write(90);

Majoritatea servomotoarelor pot roti arborele cu 180°, iar pentru ele 90° este poziția medie. Pentru a simplifica conectarea servo-urilor la placa Arduino, există o serie de soluții. Cel mai canonic este Sensors Shield. Instalându-l pe Uno și furnizând putere la bornele servo-urilor, puteți conecta conectorii acestora direct la acesta.

Baterie

O altă problemă importantă este alimentația. Dacă aveți o placă avansată care vă permite să alimentați întregul sistem printr-o singură linie de alimentare (și servomotoarele nu vor interfera cu funcționarea controlerului), atunci vă puteți descurca cu o singură sursă. Alegerea este uriașă, cele mai bune, desigur, sunt brichetele Li-Ion/Li-Po pentru modelele radio. Dar au nevoie și de corespunzătoare încărcătoare. Dacă aveți un controler mai simplu (Uno/Due/Nano), atunci îl puteți alimenta separat, de exemplu, cu o „Krona” de 9 volți și conectați servo-urile la cel principal baterie puternică. În acest fel servo-urile vor avea cu siguranță suficientă putere. În cazul în care baterii cu litiu trebuie să monitorizați tensiunea chiar mai atent decât de obicei, astfel încât să nu existe supradescărcare (tensiunile permise trebuie clarificate pentru tip specific baterii). În acest scop, robotul Sleipnir, despre care vom discuta în continuare, are atașat și un mic voltmetru digital.

Gândacul robot fă-ți-o singur

Kit

  • Controler Arduino Uno: 1150 de ruble.
  • Trei servomotoare. Am folosit HXT500, 200 rub. pe bucată
  • Compartiment baterie pentru Krona cu comutator: 50 de ruble.
  • Bateria „Krona”: 145 de ruble.
  • Receptor IR: 90 de frecări.
  • Sârmă de oțel cu un diametru de aproximativ 1,5 mm. De exemplu, am folosit un tel spart pentru a bate ouăle

Total: 2035 rub.

DmitryDzz: Vreau să vă invit să faceți un mic bug robotic cu șase picioare, controlat de la distanță, bazat pe controlerul Arduino Uno. Picioarele vor avea un grad de libertate, iar controlul va avea loc folosind o telecomandă obișnuită a televizorului.

Trebuie să spun că acestea sunt prețurile magazinelor scumpe din Moscova. ÎN magazine online chinezești toate acestea vor costa de două ori mai mult. Se numără livrarea. Adevărat, va trebui să așteptați, din experiența mea, de la două săptămâni la trei luni.

O modalitate mai ușoară este să luați un set de constructori, deoarece în primii pași un controler nu va fi suficient. Acum multe magazine oferă astfel de seturi. De exemplu, există un minunat magazin online „Amperka”. Aici vi se vor oferi mai multe seturi de construcție similare, care diferă ca conținut și, desigur, preț. Cel mai simplu a fost suficient pentru mine - „Matryoshka X”. Include un controler Arduino Uno, un cablu USB pentru conectarea la un computer, o placă de prototipare (un lucru de neînlocuit!), un set de jumperi, LED-uri, rezistențe și alte obiecte mici.

În același magazin există o secțiune „Wiki”, unde veți găsi chiar și scurte tutoriale video minunate traduse în limba rusă. Asigurați-vă că le verificați. Și, desigur, există un forum unde probabil vor încerca să te ajute.

De ce instrumente veți avea nevoie:

  • fier de lipit și tot ce aveți nevoie pentru lipit. Nu va trebui să lipiți mult și nu veți avea nevoie de nicio abilitate specială;
  • pistol de lipici fierbinte și tije pentru acesta;
  • clești pentru lucrul cu sârmă.

Dacă ai adunat totul, să începem!

Controla

Să trecem la primul pas: trebuie să învățăm cum să interacționăm cu telecomanda și să aflăm codurile pentru apăsarea unor butoane ale acesteia. Aceste coduri vor fi mai târziu utile pentru schița de control al robotului.

În această etapă veți avea nevoie și de un receptor IR și ar fi bine să aveți o placă de prototipare. Marea majoritate a telecomenzilor IR operează la frecvențe purtătoare de 36 kHz, 38 kHz sau 40 kHz (Panasonic, Sony). Excepție fac telecomenzile de la Sharp (56 kHz), Bang & Olufsen (455 kHz) și poate cineva și mai exotic. Prin urmare, orice receptor IR la 36, ​​38 sau 40 kHz este destul de potrivit pentru noi. Este posibil ca frecvența să nu se potrivească exact frecvență purtătoare semnal. În acest caz, sensibilitatea receptorului va scădea, dar în practică nu am observat niciun disconfort folosind receptorul IR TSOP2136 (36 kHz - ultimele două cifre sunt frecvența) și telecomanda Sony (40 kHz).

Deci, receptoarele IR TSOP21xx, TSOP22xx, TSOP312xx sunt potrivite pentru majoritatea telecomenzilor. Ultimele două cifre pot fi 36, 37, 38 sau 40. Înainte de a porni receptorul IR, verificați cablarea contactelor acestuia - există doar trei dintre ele: +5V (putere), GND (masă), Vs (ieșire) . Să asamblam circuitul ca în ilustrație (cablare pentru TSOP2136).


După cum puteți vedea, am conectat ieșirea receptorului IR la intrarea analogică a controlerului A0.

Iată cum arată codul de schiță:

#include "IRremote.h" // Intrarea analogică a controlerului, // la care este conectat receptorul IR: const int IR_PIN = A0; // Creați un obiect receptor IR: IRrecv irrecv(IR_PIN); void setup() ( Serial.begin(9600); Serial.println("gata"); // Începeți să ascultați semnalele IR: irrecv.enableIRIn(); ) void loop() ( // Descrieți structura rezultatelor, // în care // primite și decodate // vor fi plasate comenzi IR: rezultate decode_results // Dacă comanda IR este primită și // decodificată cu succes, atunci // scoate codul primit în portul // serial al controlerului: dacă; (irrecv.decode (&rezultate)) ( Serial.println(results.value); irrecv.resume(); ) )

Schița folosește bibliotecă specială IRremote.h, care decodifică semnale de la o mare varietate de telecomenzi IR. Această bibliotecă este un proiect deschis, îl puteți descărca de pe https://github.com/shirriff/Arduino-IRremote. Și pentru a-l conecta la proiectul nostru, trebuie să parcurgem trei pași:

  • copiați directorul bibliotecii în directorul biblioteci, care, la rândul său, se află în directorul de instalare Arduino IDE;
  • reporniți IDE;
  • adăugați linia #include „IRremote.h” la începutul schiței noastre.

Acum schița va avea disponibile funcții de decodare a semnalului IR. Dar pentru a vedea codurile primite, vom folosi și obiectul Serial. Cu ajutorul lui, port serial(același cablu USB) vom transfera codurile pe computer. În funcția de configurare inițializam obiectul Serial. „9600” este 9600 baud - viteza care va fi folosită pentru transmiterea datelor. După inițializare, putem scrie pe portul serial folosind funcția println. Pentru a vedea rezultatul acestei ieșiri pe computerul dvs. în Arduino IDE, selectați elementul de meniu Instrumente → Monitor serial (Ctrl + Shift + M). Doar asigurați-vă că este setat la 9600 baud.

Deci, controlerul primește energie printr-un cablu USB și transmite date prin intermediul acestuia. Încărcați schița, lansați Serial Monitor și începeți să apăsați butoanele telecomenzii. Codurile ar trebui să apară în fereastra Monitor serial. Protocoalele de telecomandă diferă, uneori poate fi un cod, alteori mai multe. În orice caz, puteți selecta oricând coduri unice pentru fiecare buton al telecomenzii.

Avem nevoie de 13 butoane de telecomandă. Am folosit următoarele:

  • 1 - viraj lină la stânga;
  • 2 - mișcare înainte;
  • 3 - viraj lină la dreapta;
  • 4 - virați la stânga pe loc;
  • 5 - oprire;
  • 6 - virați la dreapta pe loc;
  • 7 - deplasarea înapoi cu viraj la dreapta;
  • 8 - mișcare înapoi;
  • 9 - deplasarea înapoi cu viraj la stânga;
  • buton albastru - foarte lent;
  • galben - lent;
  • verde - rapid;
  • roșu - foarte rapid.

Notați codurile acestor butoane, acestea vor fi necesare ulterior pentru schița de control al robotului.

Algoritm de mișcare

Schița de control al robotului este disponibilă pe pagina proiectului nostru (bit.ly/1dEwNDC). Nu uitați să schimbați valorile constantelor pentru codurile butoanelor apăsate de pe telecomandă cu codurile telecomenzii dvs. (constantele IR_COMMAND_XXX_CODES din fișierul ir_command_codes.h).

Nu ne vom uita la schiță în detaliu, cred că comentariile din cod sunt suficiente, dar o întrebare merită totuși luată în considerare.

Mișcările insectelor sunt foarte interesante. Și deși toți acești gândaci sunt foarte aproape de a cădea la pământ, din anumite motive sunt întotdeauna stabili: la un moment dat, cel puțin trei picioare (două pe o parte și unul pe cealaltă) stau la suprafață. Și în timp ce aceste picioare trag gândacul spre o țintă, celelalte trei sunt trase în sus pentru a repeta această mișcare. Sarcina noastră este să facem ceva similar.

Gândacul nostru robot are trei servomotoare dispuse într-un rând perpendicular pe mișcare. Pentru servomotoarele din stânga și din dreapta, axa arborelui este îndreptată în sus, iar pentru servomotorul central este îndreptată înainte. Sarcina, de exemplu, a servomotorului din stânga este să pompeze două picioare simultan: partea stângă față și stânga spate. Apropo, sunt conectate rigid între ele și lipite de balansoarul acestui servo. Sarcina servo-ului central este de a ridica fie partea stângă a gândacului, fie partea dreaptă. Prin urmare, picioarele centrale stânga și dreapta, care sunt o singură piesă în formă de U, sunt atașate la culbutorul acestui motor.

Schița ar trebui să asigure că robotul se mișcă înainte, înapoi, viraje netede în mișcare și se rotește pe loc. De asemenea, aș dori să controlez viteza gândacului. Pentru a descrie aceste mișcări în mod programatic, vom avea nevoie de matematică. Uită-te la diagramă.

Cercuri albastre Picioarele gândacului robotic care stau la suprafață sunt indicate, iar cele din aer sunt albe. Vă rugăm să rețineți că atunci când vă deplasați înainte sau înapoi, servomotoarele stânga și dreapta trebuie să se miște exact la fel. Și când se rotesc pe loc, motoarele ar trebui să se învârtească în direcții diferite (simetric). Un alt lucru interesant este că mișcarea înainte și înapoi diferă doar în faza servomotorului central.

Deci, cum este implementat acest lucru? Ne amintim că controlerul apelează în mod constant funcția buclă. Aceasta înseamnă că în această funcție trebuie să plasăm un cod care determină poziția curentă a servo-urilor și le setează în această poziție. Fiecare servomotor trebuie să efectueze mișcări oscilatorii. Putem calcula poziția servomotorului la momentul t folosind următoarea formulă:

X = A sin(2πt/T),

unde X este poziția dorită a servomotorului, A este amplitudinea oscilațiilor, T este perioada oscilațiilor.

Deci, în funcție de momentul de timp t, vom obține o modificare a valorii lui X în intervalul de la –A la +A. Servomotoarele pot fi poziționate de la 0 la 180°. Prin urmare, este mai bine pentru noi să oscilam în jurul poziției „zero” de 90°. Și dacă dorim să oferim oscilații cu o perioadă de 1 s în jurul unei poziții de 90° cu o amplitudine de 30°, atunci formula se transformă în următoarea formă:

X = 90 + 30 sin(2πt/1000),

unde t este timpul în milisecunde care a trecut de la începutul oscilațiilor. Pentru a controla viteza gândacului robot, putem schimba perioada de oscilații. Cu cât este mai mare, cu atât viteza este mai mică.

Acum să revenim încă o dată la diagrama noastră, deoarece formula scrisă mai sus nu este încă finalizată. Cum se asigură fie mișcarea sincronă, fie contra-miscarea servomotoarelor din stânga și din dreapta? Cum se schimbă faza servomotorului central? Trebuie să adăugăm faza de oscilație la formula noastră. Schimbarea argumentului sinusului cu o sumă π pentru, de exemplu, motorul din dreapta îl va face să funcționeze în antifază spre cel din stânga, adică modul în care avem nevoie de el pentru a se întoarce pe loc. Iată cum va arăta acum formula noastră:

X = 90 + 30 sin(2πt/1000 + Φ),

unde Φ este faza de oscilație, valoarea este de la 0 la 2π.

Priviți tabelul pentru a înțelege care ar trebui să fie fazele de oscilație pentru servomotoare pentru fiecare tip de mișcare.

Asamblare

Acum să asamblam robotul pe o placă de prototip și să încărcăm schița de control.

Acest lucru este foarte etapa importantaînainte de asamblare. Încercați să deconectați cablul USB și să alimentați placa cu ajutorul unei baterii Krona. Verificați toate fazele de mișcare și asigurați-vă că totul funcționează. După asamblarea robotului, schimbarea a ceva (de exemplu, înlocuirea unui servomotor care nu funcționează) va fi mai dificilă.

Acum să trecem la asamblarea în sine. Elementul portant principal este compartimentul bateriei. Recomand să folosiți un compartiment închis și întotdeauna cu un întrerupător.

Cel mai simplu mod de a asigura piesele gândacului este cu lipici fierbinte. Începeți cu servomotoare. Îndepărtați urechile de fixare inutile și conectați mașinile între ele. Apoi lipiți acest ansamblu de trei „serva” de capacul compartimentului bateriei. Nu uitați că compartimentul bateriei trebuie să se deschidă liber pentru a schimba bateria.

Cel mai simplu mod este să lipiți controlerul de compartiment, dar nu prea îmi place această opțiune, deoarece va trebui să dau Arduino Uno bug-ului pentru totdeauna. Prin urmare, vă puteți complica viața și utilizați conectori Arduino pentru a atașa compartimentul bateriei. Pe partea inferioară a compartimentului, lipiți un conector cu pini cu un pas între pini de 2,54 mm. Ar trebui să fie poziționat astfel încât să se potrivească în priza controlerului în zona pinii digitali 8-11. Oricum nu vom avea nevoie de ele încă. Dacă nu aveți un conector la îndemână, o agrafă în formă de U va fi potrivită.

Firele care provin din compartimentul bateriei trebuie conectate la pinii Vin și la GND adiacent. Nu amestecați polaritatea! Plus „Crowns” pe Vin, minus pe GND. Pentru a asigura un contact fiabil al firelor cu conectorii Arduino, pur și simplu puteți cosi vârful firului mai gros, dar am folosit o bucată scurtă de agrafă ca mufă. Și am acoperit zona de lipit cu tub termocontractabil.

Conectorii de la cablurile servomotor ar trebui să fie tăiați, firele de alimentare (+5 V - de obicei roșu și GND - negru sau maro) trebuie combinate și direcționate către prizele de 5V și GND adiacent de pe controler. Ne conectăm puțin mai târziu. Firele de semnal de control (de obicei galbene) sunt transmise la ieșirile digitale ale controlerului: servomotorul din stânga la pinul 2, cel central la pinul 4, cel din dreapta la pinul 7.

„+” și „–” receptorului IR pot fi pur și simplu conectate la conectorul Arduino (5V și GND adiacent). Adevărat, îndoindu-le în jumătate, dublându-le grosimea. Lipim firele de alimentare conectate anterior ale servomotoarelor la aceleași picioare de putere ale receptorului IR. Este puțin probabil ca ieșirea semnalului receptorului IR să ajungă la intrarea analogică a controlerului A0 și va trebui să o măriți cu un fir.

Câteva sfaturi pentru a face picioare. Pregătiți mai întâi picioarele stânga și dreapta „față-spate”. Asigurați-vă că sunt simetrice (atenție atât la lungimi, cât și la unghiurile de îndoire). Începeți să lipiți picioarele numai după ce v-ați asigurat că servo-urile sunt setate în poziția „zero” (90°).

Este mai bine să instalați ultima pereche de picioare din mijloc. Vă sfătuiesc să faceți mai întâi picioarele din mijloc mai lungi, iar apoi după instalare, să le tăiați la lungimea dorită. În poziția „zero”, toate cele șase picioare ar trebui să fie la suprafață. Oscilația picioarelor mijlocii cu o amplitudine de 15° nu trebuie să interfereze cu virajele anterior-posterioare.

Ce urmează?

Robozhuk este un gata făcut platforma mobila bazat pe unul dintre cele mai populare și mai accesibile controlere. Proiectul este deschis: https://github.com/beetle-ringo/arduino. Faceți o furcă (ramură) în GitHub și adăugați-vă propria funcționalitate. Dă frâu liber imaginației tale - adaugă un LED IR, iar robotul este pregătit pentru lupta cu robotul. Conectați telemetru, senzori tactili, un giroscop... Învățați robotul să evite obstacolele sau să meargă de-a lungul unei linii, încercați să instalați o cameră web pe el. Pot exista un milion de idei și o poți alege oricând pe cea mai interesantă.

Robot Sleipnir

Kit

  • Controler robot Arduino Uno Dagu Spider: 2530 de rub.
  • Servoacționări SG90 9g (16 bucăți) 1150 rub.
  • Baterie Pachet acumulator LiPo, 7,4 V, 1800 mAh RUR 490
  • Modul radio Transceiver Bluetooth RF cu 4 pini RUR 270
  • Indicator de tensiune (opțional) DC 3,3–30 V Contor de panou LED roșu RUR 100
  • Coltar din aluminiu. Pe cea mai apropiată piață a construcțiilor 135 de ruble.
  • Șuruburi și piulițe. La cea mai apropiată piață de vechituri 35 de ruble.

Total: 4710 rub.

*Componentele au fost achiziționate de la timpuri diferite, iar multe poziții pot fi optimizate

poconoco: Să încercăm să asamblam o configurație non-standard - un robot 2DOF cu opt picioare. Picioarele 2DOF sunt mult mai ușor de programat și am, de asemenea, o grămadă de servo-uri nefolosite. Și cel mai important, va fi posibil să-l denumim în onoarea calului cu opt picioare al zeului Odin, Sleipnir (a visat mereu la el!).

Sleipnir-ul nostru va avea patru picioare pe fiecare parte cu două articulații. Fiecare articulație este un servomotor, ceea ce înseamnă opt servo-uri pe fiecare parte. Pentru simplitate, toate cele opt articulații de pe o parte a calului se vor roti în același plan. Deși acest lucru nu este deloc necesar. Mai mult decât atât, dacă picioarele de pe o parte sunt ușor „tablă de șah”, astfel încât două picioare adiacente să nu se atingă, acest lucru va fi și mai bine, vă va permite să faceți un pas mai larg și să galopați.

O soluție îngrijită și funcțională, dar departe de a fi cea mai ieftină soluție este utilizarea unei plăci de control personalizată optimizată pentru conectarea servo-urilor în cantitati mari. Am dat peste controlerul robot Dagu Spider - acesta este același Arduino Mega, dar pe o placă cu conectori pini cu 3 pini pre-lipiți, unde puteți conecta imediat acele 48 de servo fără scuturi. Ideal pentru roboții cu mai multe picioare pe Arduino.

Controla

Vom fi controlați prin Bluetooth. Există diverse soluții hardware pentru aceasta. Acestea includ scuturi și eșarfe individuale cu Serial UART interfață (ca un port COM obișnuit, doar cu niveluri de semnal de 5 V). Mi s-a părut că cel mai mic card cu interfață UART era cel mai practic. Se conectează la pinii corespunzătoare UART/Serial ai portului Arduino. Să remarcăm două nuanțe: pe Uno/Due/Nano și altele similare există un singur astfel de port și este folosit și pentru firmware prin USB. Prin urmare, poate fi necesar să dezactivați modulul Bluetooth în timpul actualizării firmware-ului. Și a doua nuanță - nu uitați că pinul RX al modulului este conectat la pinul TX al Arduino și TX la RX. Astfel de lucruri se întâmplă în UART.

Programarea Bluetooth nu este mai complicată decât datele pot fi citite octet cu octet, ceea ce vom folosi:

Char cmd; Serial.begin(9600); if (Serial.available()) cmd = Serial.read();

Dacă se folosește Arduino Mega și Bluetooth este conectat la al doilea port, atunci Serial1 este scris în loc de Serial. Este de remarcat faptul că nu trebuie să utilizați Bluetooth, ci să controlați robotul direct prin USB. Și nimic nu se va schimba în codul de mai sus! Doar lucrează cu port serial, dar dacă există un transmițător BT sau un convertor serial USB suspendat, nu este important pentru noi.

Cealaltă parte a Bluetooth

Cel mai convenabil mod de conectare este standard Utilitare Linux. Pentru a funcționa, vom avea nevoie de utilitățile sdptool, rfcomm (incluse în pachetul bluez din Arhivele Ubuntu), precum și minicom (așa se numește pachetul). Instrucțiunile pentru lucrul cu aceste utilitare pot fi găsite pe Internet.

Algoritm de mișcare

Pentru un hexapod, mersul cel mai simplu ar fi acesta: picioarele sunt împărțite în două grupuri de trei picioare, iar unul dintre grupuri este complet pe pământ, celălalt este în aer, rearanjat înainte. Acesta este departe de a fi singurul mers posibil. Poți ține doar două labe în aer, sau chiar una, iar celelalte patru sau cinci pe pământ. Există, de asemenea, multe mersuri pentru un octapod. O vom lua pe cea mai simplă, tot cu două grupe de patru picioare.

Deci, ce trebuie să facem pentru a lucra cu 16 servo-uri și un mers selectat? Răspunsul corect este să citiți despre cinematica inversă (IR). Lungimea articolului nu ne permite să ne extindem pe scară largă asupra subiectului, dar există o mulțime de material pe Internet. Pe scurt, IR rezolvă problema găsirii semnalelor de control necesare astfel încât sistemul din spațiu să ocupe poziția dorită. Pentru picior, aceasta înseamnă că pe baza coordonatele punctului în care piciorul ar trebui să lovească, ar trebui determinate unghiurile servo-urilor care trebuie setate pentru aceasta. Și controlând coordonatele picioarelor, puteți controla poziția corpului. Avem picioare 2DOF, axele sunt paralele, deci piciorul se mișcă întotdeauna în același plan. Problema IR în acest caz se reduce la spațiu 2D, ceea ce o simplifică foarte mult.

Fie originea locală a coordonatelor O pentru fiecare picior să fie arborele servo-ului superior, adică șoldurile. Și avem coordonatele punctului A unde piciorul trebuie să lovească. Apoi, este ușor de observat că trebuie să rezolvați problema găsirii punctelor de intersecție a două cercuri (vezi diagrama picioarelor unei laturi, aceasta este ilustrată pe piciorul din dreapta). După ce am găsit punctul de intersecție B al cercurilor (alegând oricare dintre ele), este ușor să calculați unghiurile necesare folosind conversia din coordonatele carteziene în cele polare. În cod, soluția la această problemă arată astfel:

Float A = -2 * x; float B = -2 * y; float C = sqr(x) + sqr(y) + sqr(HipLength) - sqr(shinLength); float X0 = -A * C / (sqr(A) + sqr(B)); float Y0 = -B * C / (sqr(A) + sqr(B)); float D = sqrt(sqr(hipLength) - (sqr(C) / (sqr(A) + sqr(B)))); float mult = sqrt(sqr(D) / (sqr(A) + sqr(B))); float ax, ay, bx, by; ax = X0 + B * mult; bx = X0 - B * mult; ay = Y0 - A * mult; prin = Y0 + A * mult; // sau bx pentru alt punct de intersecție float jointLocalX = ax; // sau prin pentru alt punct de intersecție float jointLocalY = ay; float hipPrimaryAngle = polarAngle(jointLocalX, jointLocalY); float hipAngle = hipPrimaryAngle - hipStartAngle; float shinPrimaryAngle = polarAngle (x - jointLocalX, y - jointLocalY); float shinAngle = (shinPrimaryAngle - hipAngle) - shinStartAngle;

unde x și y sunt coordonatele punctului unde trebuie să ajungeți cu piciorul; hipStartAngle - unghiul la care „șoldul” este rotit inițial (cu servo-ul în poziția de mijloc), în mod similar - shinStartAngle. Apropo, în aceste calcule unghiurile sunt în mod evident în radiani, dar trebuie să fie transferate la obiectele Servo în grade. Codul complet de firmware funcțional, inclusiv această piesă, este postat pe GitHub, vezi linkul de la sfârșitul articolului. Aceasta este o bucată de IR, dar pe lângă aceasta aveți nevoie de puțin mai mult cod simplu pentru a utiliza acest IR pe toate picioarele (vezi funcțiile legsReachTo(), legWrite()). De asemenea, veți avea nevoie de cod care implementează de fapt mersul - deplasarea unui set de picioare „înapoi” (deci robotul se mișcă înainte), în timp ce celălalt set de picioare este ridicat și mutat înainte pentru pasul următor, consultați funcția stepForward(). Ea face un pas cu parametrii dați. Cu acești parametri, apropo, puteți face un pas înapoi, în ciuda numelui funcției. Dacă această funcție este apelată într-o buclă, robotul va face un pas înainte.

Acum primim comenzi și le interpretez. Să adăugăm o stare la program:

Stare Enum ( STOP, FORWARD, BACKWARD, FORWARD_RIGHT, FORWARD_LEFT );

Și în bucla principală de execuție loop() ne vom uita la starea curentă (variabila de stare) și vom trage stepForward() dacă ne mișcăm înainte (cu sau fără rotație), și din nou stepForward(), dar cu un argument negativ xamp, dacă trebuie să mergem înapoi. Virajele în acest caz vor fi procesate în legWrite(), iar pentru întoarcerea la dreapta picioarele cu partea dreaptă va sta pe loc (în timp ce rândurile din stânga). Iată un astfel de tanc de cai. Brutal, dar foarte simplu și funcționează. Rotirea lină se poate face numai cu picioare 3DOF, un exemplu în acest sens poate fi văzut în depozitul buggybug.

Comutare (stare) (case FORWARD: case FORWARD_RIGHT: case FORWARD_LEFT: pas înainte(h, dh, xamp, xshift); pauză; case BACKWARD: pas înainte (h, dh, - xamp, xshift); pauză; )

Comanda Char; while (Serial1.available()) comanda = Serial1.read(); comutați (comandă) (case „w”: stare = FORWARD; pauză; case „s”: stare = BACKWARD; break; case „d”: stare = FORWARD_RIGHT; break; case „a”: stare = FORWARD_LEFT; pauză; implicit : stare = STOP;

Aici s-au terminat punctele principale ale firmware-ului, restul sunt tot felul de lucruri mărunte. Deși probabil mai există unul punct important- capacitatea de reglare fină a servomotoarelor. Chiar și cu cea mai atentă asamblare, dacă comandați tuturor servo-ului să se rotească cu 90°, unele dintre ele vor ajunge totuși cu un unghi ușor deplasat. Prin urmare, avem nevoie de capacitatea de a o ajusta. Puteți vedea cum am făcut asta în metodele hipsWrite() și shinsWrite() și în tablourile în sine ajustări fine solduriTune și shinsTune.

Asamblare

Pentru astfel de modele, nu aveți nevoie de nimic special: o foaie de plexiglas de grosimea potrivită (de la cea mai apropiată piață de vechituri) și un ferăstrău sau un ferăstrău pentru tăierea pieselor vor fi potrivite. Și, desigur, un burghiu pentru a găuri. În loc de plexiglas, puteți folosi placaj (apoi puteți face și o inscripție memorabilă folosind un arzător pe structura finală). De asemenea, puteți folosi foi sau colțuri din aluminiu. Cu Sleipnir am mers exact pe calea folosirii unui colt de aluminiu cu nervuri de 1 cm (cumparat de undeva intr-un supermarket de constructii).

Baza va fi un cadru dreptunghiular. Membre - dungi de 4 centimetri. De asemenea, merită să faceți aprovizionare cu o mulțime de șuruburi și piulițe mici. Tăiem colțul în bucățile necesare, tăiem caneluri pentru servo și găurim pentru șuruburile și șuruburile de montare. Este mai bine să arăți designul decât să-l descrii. Dimensiunile pot fi orice, roboții trebuie să fie variați. Dar amintiți-vă: cu cât picioarele sunt mai lungi, cu atât va trebui să împingă mai mult pârghia servo și cu atât va avea mai multă sarcină. Până la punctul de a nu se putea întoarce și chiar de a se rupe. Dar 4-5 cm nu este o problemă.

Pentru roboții ușori de buget, de multe ori nu se deranjează cu o articulație articulată separată pentru membre, iar întreaga sarcină cade în întregime pe arborele de antrenare servo. Având în vedere greutatea redusă, acest lucru nu este deloc critic. Și cu o greutate mai mare, ar trebui să te gândești la servo-uri cu roți dințate metalice și lagăr cu bile.

Fiecare servo vine de obicei cu câteva șuruburi și un set de atașamente care pot fi înșurubate pe arbore pentru aplicatii diverse. Cea mai bună alegere a noastră este un singur „claxon” (sau claxon), care vă permite să atașați o bară la servo. Deci, axele a două servo-uri sunt atașate la o bară, iar bara devine un „șold”. În acest caz, un servo este atașat de corp, iar celălalt devine parte a piciorului inferior. Merită să-i atașați o altă bară, doar pentru a o prelungi sau a face membrul mai interesant. Un pic de muncă minuțioasă - și platforma este gata ( seturi convenabileșurubelnițe, chei, pensete, tăietori de sârmă etc. accelerează foarte mult procesul).


Ce urmează?

Întregul proiect este disponibil la https://github.com/poconoco/sleipnir. Am descris una dintre cele mai nepractice configurații - o mulțime de picioare 2DOF, înalte, înguste, ușor de căzut pe o parte. Încercați să faceți un robot mai bun cu picioare 3DOF. Cu picioare 4DOF. Cu gheare sau fălci. Ca exemplu de cinematică inversă 3DOF, vă puteți referi la depozitul buggybug - firmware-ul hexapod este acolo. Puteți face, de asemenea, nu controlat, dar roboți inteligenți Instalând senzori de distanță în loc de Bluetooth, învață robotul să evite pereții și obstacolele. Dacă puneți un astfel de senzor pe un servomotor și îl rotiți, puteți scana zona, aproape cu un sonar.

Salutare tuturor!

Acum un an m-am interesat de microcontrolere Arduino și de construirea unui robot păianjen cu patru picioare folosind Arduino Uno R3. Interesul a apărut după citirea diverselor articole și vizionarea videoclipurilor pe YouTube. Cei mai impresionanți au fost roboții „PhantomX hexapod” și furnica „A-pod”, care au fost reproiectați de un tip sub porecla Zenta (Kore Halvorsen). Primul său robot a fost creat pe servo Dynamixel AX-18 de la compania Robotis, iar al doilea pe servo Hitec. Aceste servo sunt unele dintre cele mai scumpe. Va depăși puterea mea să creez modelul de testare pe care l-am planificat pe baza acestor mașini. Pentru servo, alegerea a căzut pe „Tunigy TGY-S9010” (13 kg), am comandat scutul dfrobot i/o expansio v 5.0, care va fi instalat în viitor modul bluetooth xbee, baterie 7.4v 5100mah, și SBEC 20A, curentul de mers va depăși cel mai probabil 12A, așa că am comandat cu rezervă. După ce m-am uitat la o mulțime de poze și fotografii, am decis să creez un robot cu designul meu. A făcut schițe. Am transferat aceste desene în desene, am făcut ceva într-o busolă sau ceva în Solidworks.

Desene -

După finalizarea desenelor, am creat un model 3D aproximativ. Animația s-a dovedit a fi stângace și nu voi posta videoclipul.

Am comandat toate piesele de schimb pentru robot pe ParkFlyer. Prima parte a pieselor a sosit în 1,5 luni, iar următoarele 2 colete au sosit în 7-8 luni. Întârzierea livrării s-a datorat unei defecțiuni în hobby și vama rusă. În colțul din stânga din fotografie se află ansamblul preliminar al robotului.

Lista pieselor robotului:

În timp ce așteptam un colet din Regatul Mijlociu, am început să caut unde să pot face tăierea cu laser. Am ales plexiglas de 4 mm pentru corp și îmbinarea picioarelor, și folie acrilică de 8 mm pentru picioare, deoarece zona de susținere va fi mai mare. Compania a calculat toate detaliile și a anunțat o sumă uriașă. Am găsit altul și am comandat piesele pe o mașină de frezat. După frezare, toate piesele au fost prelucrate și lustruite manual.

Treptat am completat piesele si am asamblat robotul. Șuruburile imbus M3, piulițele cu cap sunt toate din oțel inoxidabil. Fotografia prezintă pregătirile pentru asamblarea conexiunii dintre servo-corp și șold.

Asa arata in formă asamblată -

Picior plin de păianjen. Șuruburi și șuruburi de fixare m2

Corpul, coapsele și articulațiile labelor sunt întărite. Toate tuburile de la antena TV. Controlerul este montat pe suporturi din nailon și fixat cu șuruburi din nailon. Sub controler va fi o baterie instalată sub sbec 20A. Totul s-a dovedit compact și accesibil. Inaltime de la podea pana jos 4 cm.

Am plănuit ca greutatea să fie de până la 1,5 kg, dar s-a dovedit cu o baterie de 1,6 kg. Fotografia de mai jos arată greutatea fără baterie.

Vedere generală. În timpul asamblarii, au apărut două neajunsuri - 1. picioarele alunecă, 2. conexiunile de sub carcasa servo sunt îndoite. Există o soluție la al doilea dezavantaj. Pe cealaltă parte a servo, voi freza benzi de plexiglas pe mașină și le voi atașa la șuruburi printr-un tub. Prima întrebare este fie să puneți cauciuc pe șuruburi, fie să umpleți capetele cu cauciuc lichid.

Mai multe fotografii -

Vedere de sus -

După asamblarea finală, stăpânesc limbajul de programare. Există o mulțime de lucruri diferite pe site-uri șabloane gata făcuteși programe scrise. Nu sunt programator și pot face mișcări de bază, de exemplu: mișcă o labă sau mișcă întregul picior într-un anumit unghi, dar nu înțeleg cum să descriu ciclul mișcării într-o direcție sau alta. Mai mult, faceți controlul prin Bluetooth de la un computer.
Peste codul programului Acum lucrez.