Cuprins:

Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO: 8 pași
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO: 8 pași

Video: Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO: 8 pași

Video: Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO: 8 pași
Video: High Density 2022 2024, Noiembrie
Anonim
Image
Image
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO

De jjrobotsjjrobots Urmăriți mai multe de la autor:

Pybot: Python + braț robotizat tipărit 3D
Pybot: Python + braț robotizat tipărit 3D
Pybot: Python + braț robotizat tipărit 3D
Pybot: Python + braț robotizat tipărit 3D
Afișaj rotativ motorizat simplu (bazat pe Arduino + controlat de pe telefonul dvs. inteligent)
Afișaj rotativ motorizat simplu (bazat pe Arduino + controlat de pe telefonul dvs. inteligent)
Afișaj rotativ motorizat simplu (bazat pe Arduino + controlat de pe telefonul dvs. inteligent)
Afișaj rotativ motorizat simplu (bazat pe Arduino + controlat de pe telefonul dvs. inteligent)
Robotic Arm Gripper
Robotic Arm Gripper
Robotic Arm Gripper
Robotic Arm Gripper

Despre: Ne plac roboții, bricolajul și știința amuzantă. JJROBOTS își propune să apropie proiectele robotizate deschise de oameni prin furnizarea de hardware, documentație bună, instrucțiuni de construcție + cod, informații despre „cum funcționează” … Mai multe despre jjrobots »

------------------------------------------------

ACTUALIZARE: există o versiune nouă și îmbunătățită a acestui robot aici: B-robot EVO, cu noi caracteristici

------------------------------------------------

Cum functioneazã?

B-ROBOT EVO este un robot arduino de auto-echilibrare controlat de la distanță creat cu piese imprimate 3D. Cu doar două roți, B-ROBOT este capabil să își mențină echilibrul tot timpul folosind senzorii interni și acționând motoarele. Puteți să vă controlați robotul, făcându-l să se miște sau să se rotească, trimițând comenzi prin intermediul unui smartphone, tabletă sau PC, în timp ce acesta își menține echilibrul.

Acest robot de auto-echilibrare își citește senzorii inerțiali (accelerometre și giroscopuri integrate pe cipul MPU6000) de 200 de ori pe secundă. El își calculează atitudinea (unghiul față de orizont) și compară acest unghi cu unghiul țintă (0º dacă dorește să mențină echilibrul fără să se miște, sau un unghi pozitiv sau negativ dacă dorește să se deplaseze înainte sau înapoi). Folosind diferența dintre unghiul țintă (să zicem 0º) și unghiul real (să zicem 3º), el conduce un sistem de control pentru a trimite comenzile corecte către motoare pentru a-și menține echilibrul. Comenzile către motoare sunt accelerații. De exemplu, dacă robotul este înclinat înainte (unghiul robotului este de 3 °), atunci el trimite o comandă motoarelor pentru a accelera înainte până când acest unghi este redus la zero pentru a păstra echilibrul.

Pasul 1: Un pic mai mult în adâncime …

Un pic mai mult în adâncime …
Un pic mai mult în adâncime …
Un pic mai mult în profunzime …
Un pic mai mult în profunzime …
Un pic mai mult în profunzime …
Un pic mai mult în profunzime …

Problema fizică rezolvată de B-ROBOT se numește Pendul inversat. Acesta este același mecanism de care aveți nevoie pentru a echilibra o umbrelă deasupra mâinii. Punctul pivot este sub centrul de masă al obiectului. Mai multe informații despre Pendul inversat aici. Soluția matematică a problemei nu este ușoară, dar nu este nevoie să o înțelegem pentru a rezolva problema echilibrului robotului nostru. Ceea ce trebuie să știm este cum ar trebui să facem pentru a restabili echilibrul robotului, astfel încât să putem implementa un algoritm de control pentru a rezolva problema.

Un sistem de control este foarte util în robotică (o automatizare industrială). Practic este un cod care primește informații de la senzori și comenzi țintă ca intrări și creează, în consecință, semnale de ieșire pentru a acționa actuatoarele robotului (motoarele din exemplul nostru) pentru a regla sistemul. Folosim un controler PID (Proporțional + Derivat + Integral). Acest tip de control are 3 constante pentru ajustarea kP, kD, kI. Din Wikipedia: „Un controler PID calculează o valoare„ eroare”ca diferență între o [Intrare] măsurată și un punct de referință dorit. Controlerul încearcă să minimizeze eroarea ajustând [o ieșire].” Deci, îi spuneți PID ce trebuie să măsoare („Intrarea”), unde doriți să fie măsurarea respectivă („Punctul de referință”) și variabila pe care doriți să o ajustați pentru ca acest lucru să se întâmple („Ieșirea”.)

PID ajustează apoi ieșirea încercând să facă intrarea egală cu valoarea de referință. Pentru referință, un rezervor de apă pe care dorim să îl umplem până la un nivel, intrarea, valoarea de referință și ieșirea ar fi nivelul în funcție de senzorul de nivel al apei, nivelul dorit al apei și apa pompată în rezervor. kP este partea proporțională și este partea principală a controlului, această parte este proporțională cu eroarea. kD este partea derivată și se aplică derivatului erorii. Această parte depinde de dinamica sistemului (depinde de robot, de motoarele de greutate, de inerții …). Ultimul, kI se aplică integralei erorii și este utilizat pentru a reduce erorile constante, este ca o tăiere pe ieșirea finală (gândiți-vă la butoanele de tăiere de pe volanul unei mașini RC pentru a face mașina să meargă complet dreaptă, kI elimină decalajul dintre ținta necesară și valoarea reală).

Pe B-ROBOT comanda de direcție de la utilizator este adăugată la ieșirea motoarelor (un motor cu semn pozitiv și celălalt cu semn negativ). De exemplu, dacă utilizatorul trimite comanda de direcție 6 pentru a vira la dreapta (de la -10 la 10) trebuie să adăugăm 6 la valoarea motorului din stânga și să scădem 6 din motorul din dreapta. Dacă robotul nu se mișcă înainte sau înapoi, rezultatul comenzii de direcție este o rotire a robotului

Pasul 2: Dar telecomanda?

"încărcare =" leneș"

Recomandat: