Sommario:

Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: 8 passaggi
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: 8 passaggi

Video: Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: 8 passaggi

Video: Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: 8 passaggi
Video: Could this tiny tube of metal fix our broken suspension? - Edd China's Workshop Diaries 28 2024, Luglio
Anonim
Image
Image
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO

Di jjrobotsjjrobotsSegui di più dell'autore:

Pybot: Python + braccio robotico stampato in 3D
Pybot: Python + braccio robotico stampato in 3D
Pybot: Python + braccio robotico stampato in 3D
Pybot: Python + braccio robotico stampato in 3D
Display rotante motorizzato semplice (basato su Arduino + controllato dal tuo smartphone)
Display rotante motorizzato semplice (basato su Arduino + controllato dal tuo smartphone)
Display rotante motorizzato semplice (basato su Arduino + controllato dal tuo smartphone)
Display rotante motorizzato semplice (basato su Arduino + controllato dal tuo smartphone)
Pinza per braccio robotico
Pinza per braccio robotico
Pinza per braccio robotico
Pinza per braccio robotico

Informazioni: Amiamo i robot, il fai-da-te e la scienza divertente. JJROBOTS mira ad avvicinare i progetti robotici aperti alle persone fornendo hardware, buona documentazione, istruzioni per la costruzione + codice, informazioni su "come funziona" … Altro su jjrobots »

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

AGGIORNAMENTO: qui c'è una versione nuova e migliorata di questo robot: il B-robot EVO, con nuove funzionalità

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

Come funziona?

B-ROBOT EVO è un robot arduino autobilanciato controllato a distanza creato con parti stampate in 3D. Con solo due ruote, B-ROBOT è in grado di mantenere il suo equilibrio in ogni momento utilizzando i suoi sensori interni e azionando i motori. Puoi controllare il tuo Robot, facendolo muovere o girare, inviando comandi tramite Smartphone, Tablet o PC mentre mantiene il suo equilibrio.

Questo robot autobilanciato legge i suoi sensori inerziali (accelerometri e giroscopi integrati nel chip MPU6000) 200 volte al secondo. Calcola il suo atteggiamento (angolo rispetto all'orizzonte) e confronta questo angolo con l'angolo bersaglio (0º se vuole mantenere l'equilibrio senza muoversi, o un angolo positivo o negativo se vuole andare avanti o indietro). Usando la differenza tra l'angolo target (diciamo 0º) e l'angolo effettivo (diciamo 3º) guida un sistema di controllo per inviare i comandi giusti ai motori per mantenere il suo equilibrio. I comandi ai motori sono accelerazioni. Ad esempio, se il robot è inclinato in avanti (l'angolo del robot è 3º), invia un comando ai motori per accelerare in avanti finché questo angolo non si riduce a zero per preservare l'equilibrio.

Passaggio 1: un po' più in profondità…

Un po' più in profondità…
Un po' più in profondità…
Un po' più in profondità…
Un po' più in profondità…
Un po' più in profondità…
Un po' più in profondità…

Il problema fisico che B-ROBOT risolve si chiama Pendolo Invertito. Questo è lo stesso meccanismo di cui hai bisogno per bilanciare un ombrello sopra la tua mano. Il punto di rotazione è sotto il centro di massa dell'oggetto. Maggiori informazioni sul pendolo invertito qui. La soluzione matematica al problema non è facile, ma non abbiamo bisogno di capirla per risolvere il problema dell'equilibrio del nostro robot. Quello che dobbiamo sapere è come fare per ripristinare l'equilibrio del robot in modo da poter implementare un algoritmo di controllo per risolvere il problema.

Un sistema di controllo è molto utile nella robotica (un'automazione industriale). Fondamentalmente è un codice che riceve informazioni da sensori e comandi target come input e crea, di conseguenza, segnali in uscita per pilotare gli attuatori del Robot (i motori nel nostro esempio) al fine di regolare il sistema. Stiamo utilizzando un controller PID (Proporzionale + Derivato + Integrale). Questo tipo di controllo ha 3 costanti per regolare kP, kD, kI. Da Wikipedia: "Un controller PID calcola un valore di "errore" come differenza tra un [Input] misurato e un setpoint desiderato. Il controller tenta di ridurre al minimo l'errore regolando [un Output]”. Quindi, dici al PID cosa misurare (l'"Input"), dove vuoi che sia quella misurazione (il "Setpoint",) e la variabile che desideri regolare per farlo accadere (l'"Uscita").

Il PID quindi regola l'uscita cercando di rendere l'ingresso uguale al setpoint. Per riferimento, un serbatoio dell'acqua che vogliamo riempire fino a un livello, Input, Setpoint e Output sarebbe il livello in base al sensore di livello dell'acqua, il livello dell'acqua desiderato e l'acqua pompata nel serbatoio. kP è la parte Proporzionale ed è la parte principale del controllo, questa parte è proporzionale all'errore. kD è la parte Derivata e si applica alla derivata dell'errore. Questa parte dipende dalla dinamica del sistema (dipende dal robot, dal peso dei motori, dalle inerzie…). L'ultimo, kI viene applicato all'integrale dell'errore e viene utilizzato per ridurre gli errori costanti, è come un trim sull'output finale (pensa ai pulsanti di trim sul volante di un'auto RC per far andare l'auto completamente dritta, kI rimuove l'offset tra il target richiesto e il valore effettivo).

Su B-ROBOT il comando di sterzata da parte dell'utente viene aggiunto all'uscita dei motori (un motore con segno positivo e l'altro con segno negativo). Ad esempio se l'utente invia il comando sterzo 6 per svoltare a destra (da -10 a 10) occorre aggiungere 6 al valore del motore sinistro e sottrarre 6 dal motore destro. Se il robot non si muove in avanti o indietro, il risultato del comando di sterzata è una rotazione del robot

Passaggio 2: che dire del telecomando?

"caricamento = "pigro"

Consigliato: