Sommario:
- Passaggio 1: costruzione del robot
- Passaggio 2: Robot di stampa 3D
- Passaggio 3: algoritmo di controllo PID
Video: Robot di autobilanciamento - Algoritmo di controllo PID: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Questo progetto è stato concepito perché ero interessato a saperne di più sugli algoritmi di controllo e su come implementare in modo efficace i loop PID funzionali. Il progetto è ancora in fase di sviluppo poiché deve ancora essere aggiunto un modulo Bluetooth che consentirà il controllo del robot da uno smartphone abilitato Bluetooth.
I motori DC N20 utilizzati erano relativamente economici e quindi hanno una notevole quantità di gioco. Ciò porta a una piccola quantità di sobbalzi quando i motori superano il "gioco" applicando la coppia alle ruote. Quindi, è quasi impossibile ottenere un movimento perfettamente fluido. Il codice che ho scritto è ragionevolmente semplice ma dimostra efficacemente le capacità dell'algoritmo PID.
Sintesi del progetto:
Il telaio del robot è stampato in 3D utilizzando una stampante Ender 3 ed è progettato per incastrarsi a pressione.
Il robot è controllato da un Arduino Uno che prende i dati del sensore dall'MPU6050 e controlla i motori CC tramite un driver motore esterno. Funziona con una batteria da 7,4 V, 1500 mAh. Il driver del motore lo regola a 5 V per alimentare Arduino e fornisce 7,4 V ai motori.
Il software è stato scritto da zero con l'ausilio delle librerie "Arduino-KalmanFilter-master" e "Arduino-MPU6050-master" di gitHub.
Forniture:
- Parti stampate in 3D
- Arduino UNO
- Sensore a 6 assi MPU6050
- Driver del motore CC
- N20 motori CC (x2)
- Batteria da 9V
Passaggio 1: costruzione del robot
Stampa e assemblaggio
L'intera costruzione dovrebbe essere press-fit, ma ho usato la supercolla per fissare i componenti per garantire che il robot sia completamente rigido durante il bilanciamento.
Ho progettato le parti in Fusion 360 e ho ottimizzato ogni parte per la stampa senza supporti per consentire tolleranze più strette e una finitura superficiale più pulita.
Le impostazioni utilizzate sulla stampante Ender 3 erano: Altezza strato di 0,16 mm @ riempimento del 40% per tutte le parti.
Passaggio 2: Robot di stampa 3D
Telaio (x1)
Ruota sinistra (x2)
Alloggiamento motore sinistro (x2)
Custodia Arduino (x1)
Passaggio 3: algoritmo di controllo PID
Ho scritto un algoritmo di controllo PID da zero utilizzando le librerie "Arduino-KalmanFilter-master" e "Arduino-MPU6050-master" di gitHub.
La premessa dell'algoritmo è la seguente:
- Leggi i dati grezzi da MPU6050
- Usa il filtro di Kalman per analizzare i dati sia dal giroscopio che dall'accelerometro per eliminare le imprecisioni nelle letture del giroscopio dovute all'accelerazione del sensore. Ciò restituisce un valore relativamente livellato per il passo del sensore in gradi fino a due cifre decimali.
- Calcolare l'errore nell'angolo, ovvero: l'angolo tra il sensore e il setpoint.
- Calcola l'errore proporzionale come (costante di proporzionalità x errore).
- Calcola l'errore integrale come somma corrente di (Costante di integrazione x errore).
- Calcola errore derivato come costante come [(Costante di differenziazione) x (Variazione nell'errore/Variazione nel tempo)]
- Sommare tutti gli errori per fornire l'uscita di velocità da inviare ai motori.
- Calcola in quale direzione far girare i motori in base al segno dell'angolo di errore.
- Il ciclo verrà eseguito indefinitamente e si baserà sull'output al variare dell'input. È un ciclo di feedback, che utilizza i valori di output come nuovi valori di input per l'iterazione successiva.
Il passaggio finale consiste nel regolare i parametri Kp, Ki e Kd del loop PID.
- Un buon punto di partenza è aumentare lentamente Kp finché il robot non oscilla intorno al punto di equilibrio e può cadere.
- Successivamente, avviare Kd intorno all'1% del valore di Kp e aumentare lentamente fino a quando le oscillazioni scompaiono e il robot scivola dolcemente quando viene spinto.
- Infine, inizia con Ki intorno al 20% di Kp e varia fino a quando il robot "supera" il setpoint per catturare attivamente una caduta e tornare in verticale.
Consigliato:
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: 8 passaggi (con immagini)
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: stavo cercando di trovare un modo per spiegare come funzionava il PWM ai miei studenti, quindi mi sono posto il compito di provare a controllare la luminosità di un LED utilizzando 2 pulsanti - un pulsante aumenta la luminosità di un LED e l'altro lo attenua. Per programmare
ESP8266 RGB LED STRIP Controllo WIFI - NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi - STRIP LED RGB Controllo smartphone: 4 passaggi
ESP8266 RGB LED STRIP Controllo WIFI | NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi | Controllo Smartphone STRIP LED RGB: Ciao ragazzi in questo tutorial impareremo come utilizzare nodemcu o esp8266 come telecomando IR per controllare una striscia LED RGB e Nodemcu sarà controllato dallo smartphone tramite wifi. Quindi in pratica puoi controllare la STRISCIA LED RGB con il tuo smartphone
Controllo della temperatura a casa con PID e Labview: 4 passaggi
Controllo della temperatura a casa con PID e Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan menggunakan labview
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: ------------------------------------ --------------AGGIORNAMENTO: c'è una versione nuova e migliorata di questo robot qui: Il B-robot EVO, con nuove funzionalità!------------ --------------------------------------Come funziona?B-ROBOT EVO è un telecomando controllo
Insegnare il controllo PID con i robot Lego: 14 passaggi
Insegnare il controllo PID con i robot Lego: molti giovani appassionati di robot sono interessati ad argomenti di controllo più avanzati, ma potrebbero essere ostacolati dal calcolo spesso richiesto per analizzare i sistemi a circuito chiuso. Ci sono meravigliose risorse disponibili online che semplificano la costruzione di un "