Taula de continguts:
- Subministraments
- Pas 1: construcció
- Pas 2: cablejat
- Pas 3: teoria de control
- Pas 4: utilitzar MPU 6050
- Pas 5: Codificació
- Pas 6: Procediment de sintonització PID
- Pas 7: Conclusió
Vídeo: Robot autoequilibrant de dues rodes: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Aquesta instrucció passarà pel procés de disseny i construcció d’un robot autoequilibrant. Com a nota, només vull dir que els robots d’autoequilibri no són un concepte nou i que han estat construïts i documentats per altres. Vull aprofitar aquesta oportunitat per compartir amb vosaltres la meva interpretació d’aquest robot.
Què és un robot autoequilibrant?
Un robot d’equilibri automàtic és un sistema que utilitza dades de mesura inercial, recollides a partir d’un sensor incorporat, per ajustar contínuament la seva posició per mantenir-se en posició vertical.
Com funciona?
Una analogia simple a tenir en compte és un pèndol invertit. On el centre de massa està per sobre del punt de pivot. Tot i això, en el nostre cas, restringim el pèndol a 1 grau de llibertat en tenir un eix de rotació, en el nostre cas l’eix de rotació de les dues rodes. Com que qualsevol tipus de pertorbació causarà la caiguda del robot, necessitem un mètode per mantenir el robot activament equilibrat. Aquí és on entra en joc el nostre algorisme de bucle tancat (controlador PID), sabent en quina direcció està caient el nostre robot, podem ajustar la direcció de rotació dels nostres motors per mantenir el sistema equilibrat.
Com funciona l'algorisme de bucle tancat?
El principi bàsic per mantenir el robot equilibrat és que, si el robot cau cap endavant, compensarà movent la part inferior del robot cap endavant per atrapar-se i, per tant, mantenir-se vertical. De la mateixa manera, si el robot cau cap enrere, compensarà movent la part inferior del robot cap enrere per atrapar-se.
Per tant, hem de fer dues coses aquí, primer, hem de calcular l’angle d’inclinació (Roll) que experimenta el robot i, en conseqüència, hem de controlar el sentit de gir dels motors.
Com mesurarem l’angle d’inclinació?
Per mesurar l’angle d’inclinació utilitzarem una unitat de mesura inercial. Aquests mòduls incorporen un acceleròmetre i un giroscopi.
- L’acceleròmetre és un dispositiu electromagnètic que mesura l’acceleració adequada, és a dir l’acceleració d’un cos en un marc de repòs instantani.
- Un giroscopi és un dispositiu electromecànic que mesura la velocitat angular i que s’utilitza per determinar l’orientació del dispositiu.
No obstant això, el problema amb l’ús d’aquests sensors és que:
- L’acceleròmetre és molt sorollós però és constant en el temps, l’angle varia amb moviments horitzontals bruscos
- El valor del giroscopi, en canvi, es desplaçarà amb el pas del temps, però inicialment és bastant precís
Per a aquesta instrucció, no implementaré un filtre en lloc d'utilitzar el processament de moviment digital (DMP) incorporat. Altres han utilitzat un filtre complementari per obtenir un senyal suau i podeu triar el mètode que vulgueu. ja que el robot s'equilibra amb qualsevol de les dues implementacions.
Subministraments
Parts:
- Arduino Pro Mini 3.3V 8 amb un ATMEGA328 de 8 Mhz
- FT232RL 3.3V 5.5V FTDI USB a TTL mòdul adaptador sèrie
- Mòdul GY-521 amb MPU-6050
- Un parell de micromotors N20 de 6V a 300rpm
- Controlador de motor L298N
- LM2596S convertidor de CC a CC
- Bateria (paquet de bateria recarregable de 9,7 V Li-ion)
- Corretja de la bateria
- Dues plaques de circuits de prototipatge de PCB
- Filferes de pont dels passadors de capçalera masculins i femenins
Eines:
- Soldador i soldador
- Distanci de separador hexagonal de niló
- Joc de tornavisos de precisió
- Impressora 3D
Pas 1: construcció
Com que tenia accés a una impressora 3D, vaig decidir imprimir en 3D el xassís i fer servir separadors per connectar-ho tot.
El robot consta de 4 capes
- La capa inferior connecta els motors i té punts de muntatge per al mòdul del controlador del motor L298N
- La següent capa allotja el prototip de placa amb l’Arduino pro mini i les capçaleres soldades
- La tercera capa munta l’IMU
- La capa superior, que anomeno “capa de para-xocs”, fa passar la bateria, el convertidor de dòlars i un interruptor monetari
El meu principal principi de disseny era mantenir-ho tot modular. El motiu d'això va ser si alguna cosa va sortir malament amb un dels components, el podria substituir fàcilment o si necessitava un component per a un altre projecte, el puc prendre fàcilment sense preocupar-me de no poder tornar a utilitzar el sistema.
Pas 2: cablejat
Vaig soldar algunes pintes de capçaleres femenines a un tauler de perf per combinar-les amb els passadors de capçalera Arduino pro mini. Després d'això, he soldat els pins de capçalera masculins al tauler per permetre l'accés a la E / S. La resta de components es van muntar al marc imprès en 3D i es van connectar mitjançant cables de pont.
Pas 3: teoria de control
Ara passem al nucli del projecte. Per mantenir el robot equilibrat, hem de generar un senyal de control adequat per conduir els motors en la direcció correcta i a la velocitat correcta per mantenir el robot equilibrat i estable. Per fer-ho utilitzarem un popular algoritme de bucle de control conegut com a controlador PID. Com suggereix l'acrònim, hi ha tres termes per a aquest controlador, que són els termes proporcional, integral i derivat. Cadascun dels quals va acompanyat de coeficients que determinen la seva influència en el sistema. Sovint, la part més llarga de la implementació del controlador és ajustar els guanys de cada sistema únic per obtenir la resposta més òptima.
- El terme proporcional multiplica directament l’error per donar una sortida, de manera que, com més gran sigui l’error, més gran serà la resposta
- El terme integral genera una resposta basada en una acumulació de l'error per reduir l'error d'estat estacionari. Com més temps es desequilibri el sistema, més ràpid respondran els motors
- El terme derivat és la derivada de l’error que s’utilitza per predir la resposta futura i, en fer-ho, redueix l’oscil·lació a causa de la superació de l’estat estacionari.
El principi bàsic d’aquest algorisme és calcular contínuament l’angle d’inclinació que és la diferència entre la posició desitjada i la posició actual, això es coneix com a error. A continuació, utilitza aquests valors d'error i calcula la suma de les respostes proporcionals, integrals i derivades per obtenir una sortida, que són els senyals de control que s'envien als motors. Com a resultat, si l’error és gran, el senyal de control enviat als motors farà girar els motors a gran velocitat per arribar a un estat equilibrat. De la mateixa manera, si l'error és petit, el senyal de control farà girar els motors a baixa velocitat per mantenir el robot equilibrat.
Pas 4: utilitzar MPU 6050
Biblioteca MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
Calibració de les compensacions No tots els sensors són rèpliques exactes entre si. Com a resultat, si proveu dues MPU 6050, podeu obtenir valors diferents per a l’acceleròmetre i el giroscopi quan es col·loquen a la mateixa superfície. Per superar aquest desplaçament d’angle constant, hem de celebrar cada sensor que fem servir. S'està executant aquest script:
www.i2cdevlib.com/forums/topic/96-arduino-…
escrit per Luis Rodenas, obtindrem compensacions. Els errors de desplaçament es poden eliminar definint els valors de desplaçament a la rutina setup ().
Utilització del processador de moviment digital
El MPU6050 conté un processador digital de moviment (DMP).
Què és un DMP? Podeu pensar en el DMP com un microcontrolador integrat que processa el moviment complex des del giroscopi de 3 eixos i l’acceleròmetre de 3 eixos a bord del mpu6050, mitjançant els seus propis algorismes de fusió de moviment. Descarregant el processament que, en cas contrari, faria Arduino
Com utilitzar-lo? Per esbrinar com utilitzar el DMP, consulteu l’esquema d’exemple MPU6050_DMP6 que inclou la biblioteca MPU6050 (a l’IDE Arduino: Fitxer-> Exemple-> MPU6050-> MPU6050_DMP6). Aquesta també és una bona oportunitat per comprovar que el sensor funciona i que el cablejat és correcte
Pas 5: Codificació
Vaig utilitzar l’Arduino IDE i una interfície FTDI per programar l’Arduino pro mini.
Utilitzant l’esbós d’exemple (MPU6050_DMP6) que ve amb la biblioteca MPU6050 com a codi base, he afegit funcions PID () i MotorDriver ().
Afegiu la biblioteca
- MPU6050: Per utilitzar el sensor MPU6050 haurem de descarregar la biblioteca de desenvolupadors I2C de Jeff Rowberg i afegir-la a la carpeta Arduino de "biblioteques" que es troba als fitxers del programa de l'ordinador.
- Wire: també necessitem la biblioteca Wire que ens permeti comunicar-nos amb dispositius I2C.
Pseudo Codi
Inclou biblioteques:
- Wire.h
- MPU6050
- I2Cdev.h
Inicialitzar variables, constants i objectes
Configuració ()
- Estableix el mode de pin per controlar motors
- Estableix el mode de pin per al LED d'estat
- Inicialitzeu el MPU6050 i configureu els valors de desplaçament
PID ()
Calculeu el valor PID
MotorDriver (resposta PID)
Utilitzeu el valor PID per controlar la velocitat i la direcció dels motors
Bucle ()
- Obteniu dades de DMP
- Truqueu a les funcions PID () a MotorDriver ()
Pas 6: Procediment de sintonització PID
Aquesta és la part més tediosa del projecte i requereix una mica de paciència, tret que tingueu molta sort. Aquests són els passos següents:
- Estableix el terme I i D a 0
- Sostenint el robot, ajusteu P de manera que el robot comenci a oscil·lar sobre la posició de l'equilibri
- Amb P set, augmenteu I perquè el robot acceleri més ràpidament quan no estigui en equilibri. Amb P i I ajustats adequadament, el robot hauria de poder auto-equilibrar-se durant almenys uns segons, amb alguna oscil·lació
- Finalment, augmenta D redueix l'oscil·lació
Si el primer intent no dóna resultats satisfactoris, repetiu els passos amb un valor diferent de P. També tingueu en compte que podeu ajustar els valors PID després per augmentar encara més el rendiment. Els valors aquí depenen del maquinari, no us sorprengueu si obteniu valors PID molt grans o molt petits.
Pas 7: Conclusió
Els motors de micro engranatges que s’utilitzaven eren lents per reaccionar davant de grans pertorbacions i, atès que el sistema era massa lleuger, no hi havia prou inèrcia per obtenir l’efecte de pèndol desitjat, de manera que si el robot s’inclina cap endavant, només s’inclinaria en un angle i correria cap endavant. Finalment, les rodes impreses en 3D són una mala opció, ja que continuen relliscant.
Suggeriments de millora:
- Els motors més ràpids amb un parell més elevat, és a dir, per als motors de corrent continu són més elevats el voltatge nominal més elevat
- aconseguir una bateria més pesada o simplement moure la massa una mica més amunt
- Substitueix les rodes impreses en 3D per unes de goma per aconseguir més tracció
Recomanat:
Robot autoequilibrant de Magicbit: 6 passos
Robot d'equilibri automàtic de Magicbit: aquest tutorial mostra com fer un robot d'equilibri automàtic mitjançant el tauler de desenvolupament de Magicbit. Estem utilitzant Magicbit com a tauler de desenvolupament d’aquest projecte basat en ESP32. Per tant, qualsevol placa de desenvolupament ESP32 es pot utilitzar en aquest projecte
HeadBot: un robot autoequilibrant per a l'aprenentatge i divulgació STEM: 7 passos (amb imatges)
HeadBot: un robot d’equilibri propi per a l’aprenentatge i la difusió STEM: Headbot, un robot d’equilibri de dos peus d’alçada, és la creació de South Eugene Robotics Team (SERT, FRC 2521), un equip competitiu de robòtica de secundària al PRIMER Concurs de robòtica, d’Eugene, Oregon. Aquest popular robot de divulgació fa que
Projecte Laboratori de Mecatrònica (Robot d’equilibri de dues rodes): 6 passos
Proyecto Laboratorio De Mecatrónica (Two Wheel Balance Robot): En aquest projecte es mostra, el funcionament i com fer per elaborar un " Two wheel balance robot " pas a pas i amb explicació i conceptes. Aquest és un sistema que consisteix en que el robot no ha de caure, ha de mantenir-se en
Convertiu 120 rodes de pel·lícula en 620 rodes de film: 6 passos
Converteix 120 Roll Film a 620 Roll Film: per tant, heu trobat una càmera antiga de format mitjà i, tot i que sembla que funciona, la pel·lícula de 120 rollos de format mitjà actual no s’adapta perquè el carret està una mica massa gros i les dents de transmissió també ho són petit per adaptar-se al carret de 120, probablement necessiti 620 f
Robot autoequilibrant: 6 passos (amb imatges)
Robot d’equilibri automàtic: en aquest instructiu us mostrarem com construir el robot d’equilibri automàtic que vam fer com a projecte escolar. Es basa en altres robots, com ara el nBot i un altre instructable. El robot es pot controlar des d'un telèfon intel·ligent Android vi