Sommario:
- Passaggio 1: principio di funzionamento
- Passaggio 2: la costruzione
- Passaggio 3: assemblaggio
- Passaggio 4: Progetta la tua traccia di linea
- Passaggio 5: programma il tuo codice
- Passaggio 6: FATTO
Video: Robot Line Following basato su PID con array di sensori POLOLU QTR 8RC: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Ciao!
questo è il mio primo articolo sulle istruzioni e oggi ti porterò lungo la strada e spiegherò come costruire una linea basata su PID che segue il robot utilizzando l'array di sensori QTR-8RC.
Prima di passare alla costruzione del robot, dobbiamo capire cosa si chiama PID,
Passaggio 1: principio di funzionamento
Cos'è il PID??
Il termine PID sta per proporzionale, integrale, derivativo. Quindi, semplicemente, quello che stiamo facendo coinvolgendo il PID con l'inseguimento di linea è, stiamo dando un comando al robot di seguire la linea e di rilevare i giri calcolando l'errore considerando come lontano si è spostato fuori pista.
termini chiave menzionati nei documenti polalu
Il valore proporzionale è approssimativamente proporzionale alla posizione del tuo robot rispetto alla linea. Cioè, se il tuo robot è esattamente centrato sulla linea, ci aspettiamo un valore proporzionale di esattamente 0
Il valore integrale registra la cronologia del movimento del tuo robot: è una somma di tutti i valori del termine proporzionale che sono stati registrati da quando il robot ha iniziato a funzionare
La derivata è il tasso di variazione del valore proporzionale
In questo tutorial parleremo solo dei termini Kp e Kd, tuttavia, i risultati possono essere ottenuti anche utilizzando il termine Ki. le letture che otteniamo dal sensore non sono solo letture analogiche ma anche le letture posizionali del robot.so in sostanza il sensore fornisce valori da 0 a 2500 che vanno dalla riflettanza massima alla riflettanza minima, ma, allo stesso tempo, fornisce anche informazioni su quanto il robot si è arenato dalla linea.)
Ora dobbiamo considerare il termine di errore, questa è la differenza tra i due valori valore di setpoint e il valore corrente. (Il valore di setpoint è la lettura che corrisponde al posizionamento "perfetto" dei sensori sopra le linee. e L'attuale valore è la lettura istantanea del sensore. Ad esempio: se si utilizza questo sensore array e si utilizzano 8 sensori, si riceverà una lettura posizionale di 3500 se si è azzeccati, intorno a 0 se si è troppo lontani da la linea e circa 7000 se hai ragione.). Il nostro obiettivo è azzerare l'errore. Solo allora il robot può seguire senza problemi la linea.
Poi arriva la parte di calcolo,.
1) calcolare l'errore.
Errore = Valore Setpoint - Valore Attuale = 3500 - posizione
Come sto usando 8 sensori. il sensore fornisce una lettura posizionale di 3500 quando il robot è posizionato perfettamente. Ora che abbiamo calcolato il nostro errore, il margine con cui il nostro robot si sposta lungo il binario, è tempo per noi di esaminare l'errore e regolare di conseguenza la velocità del motore
2) determinare le velocità regolate dei motori.
MotorSpeed = Kp * Error + Kd * (Error - LastError);
LastError = Errore;
RightMotorSpeed = RightBaseSpeed + MotorSpeed;
LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;
Logicamente parlando, un errore di 0 significa che il nostro robot è fuori a sinistra, il che significa che il nostro robot deve andare un po' a destra, il che a sua volta significa che il motore destro deve rallentare e il motore sinistro deve accelerare. QUESTO È PID!
Il valore di MotorSpeed è determinato dall'equazione stessa. RightBaseSpeed e LeftBaseSpeed sono le velocità (qualsiasi valore di PWM 0-255) a cui il robot funziona quando l'errore è zero.
Il codice che ho allegato include anche come verificare i valori di posizione del sensore, quindi puoi aprire il monitor seriale e caricare il codice e vedere di persona con una linea come ruotano i motori al variare della posizione.
Se incontri problemi durante l'implementazione del tuo robot, controlla se e vedi cambiando i segni delle equazioni !!!
E ora la parte più complicata TROVARE Kp E Kd, ho dovuto impiegare più di 1 ora per mettere a punto perfettamente il mio robot. Invece di inserire valori casuali ho trovato un metodo più semplice per determinarlo.
- Inizia con kp e Kd uguale a 0, e inizia con Kp, prima prova a impostare Kp a 1 e osserva il robot, il nostro obiettivo è seguire la linea anche se traballa, se il robot supera e perde la linea riduci il valore di kp.se il robot non riesce a percorrere una curva ed è lento aumentare il valore Kp.
- Una volta che il robot sembra seguire in qualche modo la linea, regolare il valore Kd (valore Kd > valore Kp) iniziare da 1 e aumentare il valore fino a quando non si vede una guida fluida con meno oscillazioni.
- Una volta che il robot inizia a seguire la linea, aumentare la velocità e vedere se è in grado di mantenere e seguire la linea.
Tieni presente che la velocità ha un impatto diretto sulla regolazione del PID e che a volte potresti dover risintonizzare per adattarla alla velocità del tuo robot.
Ora possiamo passare alla costruzione del nostro robot.
Passaggio 2: la costruzione
Arduino atmega 2560 con cavo USB – questo è il principale microcontrollore utilizzato.
Telaio: per il telaio del robot ho usato 2 piastre circolari acriliche che vengono utilizzate per un altro progetto che è perfetto per questo. Usando dadi e viti ho costruito un telaio a 2 piani, in modo da poter attaccare altri moduli alla piastra superiore.o è possibile utilizzare chassis già pronti disponibili.
www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…
Motoriduttori in micrometallo: il robot aveva bisogno di motori a rotazione rapida per far fronte alla routine PID, per questo ho usato motori da 6V 400 giri/min e ruote con aderenza adeguata.
www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…
www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…
Array di sensori QTR 8Rc: questo può essere utilizzato per il tracciamento della linea, come accennato in precedenza, penso che ora tu abbia una chiara comprensione di come utilizzare l'array di sensori con PID. Il codice è molto semplice e utilizzando le librerie arduino esistenti sarai in grado per costruire un seguace di linea veloce.
www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…
TB6612FNG Driver del motore: volevo utilizzare un driver del motore in grado di gestire le svolte e cambiare direzione in un attimo, in grado di frenare efficacemente i motori quando il segnale PWM è basso.
www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…
Batteria Lipo- La batteria lipo da 11,1 V viene utilizzata per fornire energia al robot. Anche se ho usato una batteria lipo da 11,1 V, questa capacità è superiore a quella necessaria per l'arduino e i motori. Se riesci a trovare un 7,4 V leggero batteria lipo o pacco batterie 6V Ni-MH sarà perfetto. Per questo motivo devo usare un convertitore buck per convertire la tensione a 6V.
11.1V-
7.4 V-
Modulo convertitore buck-
In aggiunta a ciò hai bisogno di cavi per ponticelli, dadi e bulloni, cacciaviti e nastri elettrici e anche fascette per assicurarti che tutto sia a posto.
Passaggio 3: assemblaggio
collegare i motori e una piccola ruota girevole in una piastra utilizzando dadi e viti, quindi montare il sensore QTR, il driver del motore, la scheda arduino e infine la batteria sul telaio.
Ecco un diagramma perfetto che ho trovato su internet, che ti dice come dovrebbero essere fatti i collegamenti.
Passaggio 4: Progetta la tua traccia di linea
Ora il tuo progetto sembra essere quasi finito. Per l'ultima fase devi avere una piccola arena per testare il tuo robot. Ho usato una linea casuale di 3 cm di larghezza, una linea bianca su uno sfondo nero. Assicurati di incollare tutto bene. e per il momento evita le croci e le sezioni trasversali con angoli di 90 gradi, perché è un caso complicato di codifica.
Passaggio 5: programma il tuo codice
1. Scarica e installa Arduino
IDE desktop
· finestre -
· Mac OS X -
· Linux -
2. Scaricare e incollare il file dell'array di sensori QTR 8 RC nella cartella delle librerie Arduino.
·
· Incolla i file nel percorso - C:\Arduino\libraries
3. Scarica e apriLINEFOLLOWING.ino
4. Carica il codice sulla scheda arduino tramite un cavo USB
Passaggio 6: FATTO
ora hai una linea che segue il robot creato da te.
Spero che questo tutorial sia stato utile. Non esitare a contattarmi tramite [email protected] in caso di problemi.
a presto con un altro nuovo progetto.
Divertiti a costruire!!
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
EBot8 Object Following Robot: 5 passaggi (con immagini)
EBot8 Object Following Robot: ti sei mai chiesto di creare un robot che ti segua ovunque tu vada? Ma proprio non poteva? Beh… Ora puoi! Ti presentiamo l'oggetto che segue il robot! Vai per questo tutorial, metti mi piace e vota e forse puoi farlo anche tu
Controllo dell'array di matrici LED con Arduino Uno (Arduino Powered Robot Face): 4 passaggi (con immagini)
Controllo dell'array di matrici LED con Arduino Uno (Arduino Powered Robot Face): questa istruzione mostra come controllare un array di matrici LED 8x8 utilizzando un Arduino Uno. Questa guida può essere utilizzata per creare un display semplice (e relativamente economico) per i tuoi progetti. In questo modo potresti visualizzare lettere, numeri o animazioni personalizzate
EBot Light Following Robot: 5 passaggi (con immagini)
EBot Light Following Robot: Il Light Following Robot è realizzato con alcuni semplici componenti e può avere un grande impatto in luoghi molto bui. Vediamo come realizzarlo ora