Sommario:

Robot Line Following basato su PID con array di sensori POLOLU QTR 8RC: 6 passaggi (con immagini)
Robot Line Following basato su PID con array di sensori POLOLU QTR 8RC: 6 passaggi (con immagini)

Video: Robot Line Following basato su PID con array di sensori POLOLU QTR 8RC: 6 passaggi (con immagini)

Video: Robot Line Following basato su PID con array di sensori POLOLU QTR 8RC: 6 passaggi (con immagini)
Video: ЭСП8266 | QTR-8RC | Робот, следящий за линией ПИД-регулятора V1 | ТБ6612FNG | N20 Мотор | www.ArnabKumarDas.com 2024, Novembre
Anonim
Robot che segue la linea basato su PID con array di sensori POLOLU QTR 8RC
Robot che segue la linea basato su PID con array di sensori POLOLU QTR 8RC

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.

  1. 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.
  2. 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.
  3. 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

la costruzione
la costruzione
la costruzione
la costruzione
la costruzione
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

Assemblaggio
Assemblaggio
Assemblaggio
Assemblaggio
Assemblaggio
Assemblaggio
Assemblaggio
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

Progetta il tuo binario di linea
Progetta il tuo binario 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

Image
Image

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: