Taula de continguts:
- Pas 1: Pas 1: Requerido material
- Pas 2: Pas 2: Sistema Mecànic-estructura
- Pas 3: Pas 3: Fabricació de peces 3D
- Pas 4: Pas 4: Sistema Elèctric / electrònic
- Pas 5: Pas 5: Programari
- Pas 6: Pas 6: Consells
Vídeo: Projecte Laboratori de Mecatrònica (Robot d’equilibri de dues rodes): 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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 el punt 0 del seu punt de gravetat del giroscopi, i així poder moure-ho i que es regrese per si mateix a la seva posició original.
Pas 1: Pas 1: Requerido material
o Mecànics:
a. 1 metro de varilla roscada (3/8)
b. 14 tornillos M3 x.07 x 6
c. 24 tuercas M8 hex
d. 3 tornillos M4 x.07 x 6
e. Filamento PLA (500grs aprox)
o Electrònics:
a. 1 interruptor interruptor
b. Arduino uno o nano
c. 2 motors nema 17
d. 2 conductors A4988
e. 3 resistències 1k
f. HC-05
g. MPU-6050
h. 2 capacitores de 100uf o 47uf
jo. Batería lippo 11,1 V
o Piezas fabricades:
a. 3 plaques de MDF (120 x 170 x 6 mm)
b. Placa PCB (8 x 14 cm aprox)
c. Soporte bateria
d. 2 suport per a motor
e. 2 llantes
o Extres:
Programes recomanats per a la realització del projecte.
a. Programari IDE Arduino
b. SolidWorks 2018
c. Programari Kidcad
Pas 2: Pas 2: Sistema Mecànic-estructura
El modelat de les peces i l’estructura general es realitzen a SolidWorks, primer es creen les plaques de MDF per a l’espai disponible per a usos posteriors. Estas placas son diferentes entre ellas, la placa inferior tendrá los orificios para los soportes de motores y batería, la central para nuestra PCB y la superior solo tendrá los orificios para darle su estructura.
Pas 3: Pas 3: Fabricació de peces 3D
Per al modelat dels suports i llantes que utilitzem de manera habitual SolidWorks, aquests suports poden ser modificats si així ho desitgin, per a un millor funcionament, els suports tenen orificis de.35 cm de diàmetre, per a una millor sujecció.
Pas 4: Pas 4: Sistema Elèctric / electrònic
En aquest pas s’utilitza una PCB, per elaborar les connexions corresponents, fent l’enllaç entre l’arduino, el mòdul de Bluetooth HC-05, un giroscopi 6050 i els conductors dels motors. Las conexiones son las que se muestran en la imagen. Assegurar-se de fer les connexions correctament, ja que de no ser així pot ocasionar que el sistema no funcioni correctament i no ho obedi.
Pas 5: Pas 5: Programari
Per al programa utilitzem un arduino, a continuació anexem una part de la programació amb la seva explicació corresponent, al mateix anexo link, amb el codi complet:
Pos holdconfiguracion
// guanys predeterminats del control POSHOLD
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // graus
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0,08 // Control del vent
#define POSHOLD_RATE_D 0,045 // prova 2 o 3 per POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // graus
// guanys predeterminats de PID de navegació
#define NAV_P 1.4
#define NAV_I 0.20 // Control del vent
#define NAV_D 0.08 //
#define NAV_IMAX 20 // graus
#define MINCHECK 1100
#defineix MAXCHECK 1900
Aqui es modifica els guanys per tenir el sistema.
Configuració giroscòpica:
void Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // canvieu la freqüència de rellotge I2C a 400 kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
retard (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - DORMIR 0; CICLE 0; TEMP_DIS 0; CLKSEL 3 (PLL amb referència Gyro Z)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (desactiva el pin d'entrada per a la sincronització de dades); DLPF_CFG per defecte = 0 => amplada de banda ACC = ample de banda GYRO = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: escala completa definida a 2000 deg / seg
// habilita la derivació I2C per a AUX I2C
#if definit (MAG)
i2c_writeReg (MPU6050_ADDRESS, 0x37, 0x02); // INT_PIN_CFG - INT_LEVEL = 0; INT_OPEN = 0; LATCH_INT_EN = 0; INT_RD_CLEAR = 0; FSYNC_INT_LEVEL = 0; FSYNC_INT_EN = 0; I2C_BYPASS_EN = 1; CLKOUT_EN = 0
#endif
}
void Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // interval: +/- 8192; +/- 2000 deg / seg)
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Common ();
}
void ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG - AFS_SEL = 2 (escala completa = +/- 8G); ACCELL_HPF = 0 // tingueu en compte que alguna cosa no funciona a l'especificació.
// nota: alguna cosa sembla que no funciona a l'especificació aquí. Amb AFS = 2 1G = 4096 però segons la meva mesura: 1G = 2048 (i 2048/8 = 256)
// confirmat aquí:
#if definit (MPU6050_I2C_AUX_MASTER)
// en aquesta etapa, el MAG es configura mitjançant la funció inicial MAG inicial en mode de bypass I2C
// ara configurem MPU com a dispositiu mestre I2C per gestionar el MAG a través del port AUX I2C (fet aquí per a HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (mode mestre I2C); I2C_IF_DIS = 0; FIFO_RESET = 0; I2C_MST_RESET = 0; SIG_COND_RESET = 0
i2c_writeReg (MPU6050_ADDRESS, 0x37, 0x00); // INT_PIN_CFG - INT_LEVEL = 0; INT_OPEN = 0; LATCH_INT_EN = 0; INT_RD_CLEAR = 0; FSYNC_INT_LEVEL = 0; FSYNC_INT_EN = 0; I2C_BYPASS_EN = 0; CLKOUT_EN = 0
i2c_writeReg (MPU6050_ADDRESS, 0x24, 0x0D); // I2C_MST_CTRL - MULT_MST_EN = 0; WAIT_FOR_ES = 0; SLV_3_FIFO_EN = 0; I2C_MST_P_NSR = 0; I2C_MST_CLK = 13 (bus de velocitat esclau I2C = 400 kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (operació de lectura); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG: 6 bytes de dades de MAG s’emmagatzemen en 6 registres. La primera adreça de registre és MAG_DATA_REGISTER
i2c_writeReg (MPU6050_ADDRESS, 0x27, 0x86); // I2C_SLV0_CTRL - I2C_SLV0_EN = 1; I2C_SLV0_BYTE_SW = 0; I2C_SLV0_REG_DIS = 0; I2C_SLV0_GRP = 0; I2C_SLV0_LEN = 3 (3x2 bytes)
#endif
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Common ();
}
// Cal substituir la funció d'adquisició MAG perquè ara parlem amb el dispositiu MPU
#if definit (MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 és la primera sala de memòria per a EXT_SENS_DATA
#if definit (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
#if definit (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#endif
#if definit (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
}
#endif
#endif
Pas 6: Pas 6: Consells
1. Disseny Mecànic: Utilitzar i fer el disseny que es converteixin, per a l’ús que se li doni al robot, medir tot bé, per a l’hora de fer corts làser o impressions en 3D, sense tenir que tornar a fer-ho i tot quede a la perfecció.
2. Disseny elèctric: Feu la seva pròpia PCB, per a que tingueu ben ubicades les connexions que tinguin que fer, de igual manera fer primer les connexions en un protoboard, per comprendre que quan el pongan en el PCB el funcionament sigui correcte i no tingui. que agregar més connexions o tornar a imprimir el PCB.
3. Disseny de programari: Guiarse amb la programació base exposta, però tractar de fer la seva pròpia programació, per arribar a entendre bé el funcionament i en cas que no funcioni la programació sabent com canviar les instruccions per a que funcioni correctament.
Recomanat:
Robot autoequilibrant de dues rodes: 7 passos
Robot autoequilibrant de dues rodes: aquest instructiu 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
Robot d'equilibri automàtic de 2 rodes: 4 passos
Robot d'equilibri automàtic de 2 rodes: segons la meva modesta opinió, no sou un autèntic fabricant, tret que no construïu el vostre propi robot d'equilibri automàtic de 2 rodes. :-) Així que, aquí està … i, el més important, funciona !!! Aquest projecte sembla molt senzill. En el seu lloc, requereix un bon nivell de coneixement o
Robot d'equilibri / robot de 3 rodes / robot STEM: 8 passos
Robot d'equilibri / robot de 3 rodes / robot STEM: hem construït un robot d'equilibri combinat i de 3 rodes per a ús educatiu a les escoles i programes educatius extraescolars. El robot es basa en un Arduino Uno, un blindatge personalitzat (es proporcionen tots els detalls de la construcció), un paquet de bateries Li Ion (tot constr
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
Creació d’un robot d’equilibri Arduino controlat remotament: robot B EVO: 8 passos
Creació d’un robot d’equilibri Arduino controlat remotament: robot B EVO: ------------------------------------ -------------- ACTUALITZACIÓ: aquí hi ha una versió nova i millorada d’aquest robot: el robot B EVO, amb noves funcions. -------------------------------------- Com funciona? B-ROBOT EVO és un sistema remot control