Taula de continguts:

Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC: 6 passos (amb imatges)
Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC: 6 passos (amb imatges)

Vídeo: Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC: 6 passos (amb imatges)

Vídeo: Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC: 6 passos (amb imatges)
Vídeo: Overview of Syncopal Disorders 2024, De novembre
Anonim
Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC
Robot de seguiment de línia basat en PID amb matriu de sensor POLOLU QTR 8RC

Hola!

aquest és el meu primer escrit sobre instruccions, i avui us portaré per la carretera i us explicaré com bulidar una línia basada en PID seguint un robot que utilitza la matriu de sensors QTR-8RC.

Abans d’anar a l’edifici del robot, hem d’entendre el que s’anomena PID,

Pas 1: principi de treball

Què és el PID ??

El terme PID significa proporcional, integral i derivada, així que simplement, el que estem fent amb la implicació de PID amb la línia següent és que estem donant una ordre al robot perquè segueixi la línia i detecti els girs calculant l’error considerant com s'ha allunyat de la pista.

termes clau tal com s’esmenten als documents de polalu

El valor proporcional és aproximadament proporcional a la posició del robot respecte a la línia. És a dir, si el vostre robot està centrat precisament a la línia, esperem un valor proporcional de 0 exactament

El valor integral registra la història del moviment del vostre robot: és una suma de tots els valors del terme proporcional registrats des que el robot va començar a funcionar

La derivada és la taxa de variació del valor proporcional

En aquest tutorial, parlarem només de termes Kp i Kd, però, els resultats també es poden obtenir utilitzant el terme Ki. Les lectures que obtenim del sensor no són només lectures analògiques, sinó també les lectures posicionals del robot.bàsicament, el sensor proporciona valors de 0 a 2500 que van des de la reflectància màxima fins a la reflectància mínima, però, al mateix temps, també proporciona informació sobre la distància del robot a la línia.)

Ara hem de considerar el terme d’error, aquesta és la diferència entre el valor de consigna dels dos valors i el valor actual. (El valor de consigna és la lectura que correspon a la col·locació “perfecta” dels sensors a la part superior de les línies. el valor són les lectures instantànies del sensor. Per exemple: si utilitzeu aquest sensor de matriu i feu servir 8 sensors, rebrà una lectura posicional de 3500 si esteu a punt, al voltant de 0 si esteu massa lluny de la línia i al voltant de 7.000 si teniu molta raó.). El nostre objectiu és que l’error sigui zero. Aleshores, només el robot pot seguir la línia sense problemes.

Després ve la part de càlcul,.

1) calculeu l’error.

Error = Valor de consigna - Valor actual = 3500 - posició

Com que estic fent servir 8 sensors. el sensor proporciona una lectura posicional de 3500 quan el robot està perfectament situat. Ara que hem calculat el nostre error, el marge pel qual el nostre robot es desplaça a través de la pista, és hora que examinem l’error i ajustem les velocitats del motor en conseqüència.

2) determineu les velocitats ajustades dels motors.

MotorSpeed = Kp * Error + Kd * (Error - LastError);

LastError = Error;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - Velocitat del motor;

Lògicament parlant, un error de 0 significa que el nostre robot surt a l’esquerra, cosa que significa que el nostre robot ha d’anar una mica a la dreta, la qual cosa al seu torn significa que el motor dret ha de frenar i el motor esquerre ha d’accelerar-se. AIX IS ÉS PID!

El valor MotorSpeed es determina a partir de la mateixa equació. RightBaseSpeed i LeftBaseSpeed són les velocitats (qualsevol valor de PWM 0-255) a les que el robot funciona quan l’error és zero.

El codi que he adjuntat també inclou com comprovar els valors de posició del sensor, de manera que pugueu obrir el monitor sèrie i penjar el codi i veureu vosaltres mateixos amb una línia com giren els motors quan varia la posició.

Si teniu problemes a l’hora d’implementar el vostre robot, només cal que comproveu si canvieu els signes de les equacions i vegeu-ho.

I ara la part més complicada TROBAR Kp i Kd, vaig haver de passar més d’una hora per ajustar perfectament el meu robot. En lloc de posar valors aleatoris, vaig trobar un mètode més fàcil per determinar-ho.

  1. Comenceu per kp i Kd igual a 0 i comenceu per Kp, primer intenteu establir Kp a 1 i observeu el robot, el nostre objectiu és seguir la línia encara que sigui vacil·lant, si el robot supera i perd la línia reduïu el valor de kp. Si el robot no pot navegar per un gir i ser lent augmenta el valor de Kp.
  2. Quan el robot sembla seguir una mica el valor d'ajust de línia Kd (valor Kd> valor Kp) comença a partir d'1 i augmenta el valor fins que vegis una unitat suau amb menor oscil·lació.
  3. Un cop el robot comenci a seguir la línia, augmenteu la velocitat i comproveu si és capaç de retenir-la i seguir-la.

Tingueu en compte que la velocitat té un impacte directe en la sintonització PID i, de vegades, és possible que hàgiu de tornar a sintonitzar per igualar la velocitat del vostre robot.

Ara podem començar a construir el nostre robot.

Pas 2: la compilació

El Build
El Build
El Build
El Build
El Build
El Build

Arduino atmega 2560 amb cable USB: aquest és el principal microcontrolador utilitzat.

Xassís: per al xassís del robot he utilitzat 2 plaques circulars d’acrílic que s’utilitzen per a un altre projecte perfecte per a això. Mitjançant cargols i femelles he construït un xassís de 2 pisos per poder connectar altres mòduls a la placa superior. O Podeu utilitzar xassís ja disponible.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Motors d'engranatges micromètrics: el robot necessitava motors de rotació ràpida per fer front a la rutina PID, per això he utilitzat motors de 6V 400rpm i rodes de subjecció adequades.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

QTR 8Rc array array de sensors: això es pot utilitzar per al seguiment de línia, com es va esmentar anteriorment, crec que ara teniu una comprensió clara de com operar el array de sensors amb PID. El codi és molt senzill i amb les biblioteques arduino existents podreu per crear un seguidor de línia ràpid.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Controlador de motor: volia utilitzar un controlador de motor que pogués gestionar girs i canviar de direcció en un instant, que sigui capaç de frenar eficaçment els motors quan el senyal PWM baixés.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Bateria lipo: la bateria lipo de 11,1 V s’utilitza per alimentar el robot. Tot i que he utilitzat una bateria lipo de 11,1 V, aquesta capacitat és més que la que es necessita per a l’arduino i els motors. Si podeu trobar un pes de 7,4 V la bateria lipo o la bateria Ni-MH de 6V serà perfecta. Per aquest motiu he d’utilitzar un convertidor de conversió per convertir el voltatge a 6V.

11.1V-

7,4 V-

Mòdul convertidor Buck-

A més, necessiteu cables, femelles i cargols, tornavisos i cintes elèctriques i també tirants per assegurar-vos que tot estigui al seu lloc.

Pas 3: Muntatge

Muntatge
Muntatge
Muntatge
Muntatge
Muntatge
Muntatge
Muntatge
Muntatge

connecteu els motors i una petita roda rodet a una placa mitjançant cargols i femelles i, a continuació, munteu el sensor QTR, el controlador del motor, la placa arduino i, finalment, la bateria al xassís.

Aquí teniu un diagrama perfecte que he trobat a Internet, que us explica com s’haurien de fer les connexions.

Pas 4: Dissenyeu la vostra pista de línia

Dissenyeu la vostra línia de seguiment
Dissenyeu la vostra línia de seguiment

Ara el vostre projecte sembla que s’ha acabat. Com que per a l’última etapa, heu de tenir una petita pista per provar el vostre robot. He utilitzat una línia aleatòria d’amplada de 3 cm de línia blanca sobre fons negre. Assegureu-vos que enganxeu-ho tot bé i, de moment, eviteu 90 creus angulars i seccions transversals, perquè és un cas complicat pel que fa a la codificació.

Pas 5: programeu el vostre codi

1. Descarregueu i instal·leu l'Arduino

IDE d'escriptori

· Windows:

· Mac OS X:

· Linux:

2. Descarregueu i enganxeu el fitxer de matriu del sensor QTR 8 RC a la carpeta de biblioteques Arduino.

·

· Enganxa fitxers al camí d'accés: biblioteques C: / Arduino

3. Descarregueu i obriuLINEFOLLOWING.ino

4. Pengeu el codi a la placa arduino mitjançant un cable USB

Pas 6: FET

Image
Image

ara teniu un robot de seguiment de línies fet per vosaltres mateixos.

Espero que aquest tutorial sigui útil. No dubteu en posar-vos en contacte amb mi a través de [email protected] si teniu algun problema.

Ens veiem aviat amb un altre projecte nou.

Gaudeix de la construcció !!

Recomanat: