Indholdsfortegnelse:
- Trin 1: Trin 1: Materialebehov
- Trin 2: Trin 2: Sistema Mecánico-estructura
- Trin 3: Trin 3: Fabricación De Piezas 3D
- Trin 4: Trin 4: System Eléctrico/electrónico
- Trin 5: Trin 5: Software
- Trin 6: Trin 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (Two Wheel Balance Robot): 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un "Two wheel balance robot" paso a paso y con explicación y concejos. Este es un sistema que consiste en que el robot no se debe caer, se debe de mantener en el punto 0 de su punto de gravedad del giroscopio, y así poder moverlo y que este regrese por si mismo a su posición original.
Trin 1: Trin 1: Materialebehov
o Mecánicos:
en. 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 (ca. 500grs)
o Electrónicos:
en. 1 afbryderkontakt
b. Arduino uno o nano
c. 2 motorer nema 17
d. 2 drivere A4988
e. 3 modstande 1k
f. HC-05
g. MPU-6050
h. 2 kondensatorer de 100uf o 47uf
jeg. Batería lippo 11.1 V
o Piezas fabricadas:
en. 3 placas de MDF (120 x 170 x 6 mm)
b. Placa PCB (8 x 14 cm ca.)
c. Soporte batería
d. 2 stk. Motor
e. 2 llantas
o Ekstra:
Softwareanbefalinger til realiseringen af proyecto.
en. Arduino IDE software
b. SolidWorks 2018
c. Kidcad software
Trin 2: Trin 2: Sistema Mecánico-estructura
El modelado de las piezas og estructura general se realizo en SolidWorks, primero se crearon las placas de MDF para checar el espacio disponible para posteriores usos. 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.
Trin 3: Trin 3: Fabricación De Piezas 3D
Para el modelado de los soportes y llantas igualmente utilizos SolidWorks, estos soportes pueden ser modificados si así lo desean, para un mejor funcionamiento, los soportes tienen orificios de.35 cm de dimetro, para una major sujeción.
Trin 4: Trin 4: System Eléctrico/electrónico
En este paso utilizamos una PCB, para elaborar las conexiones correspondientes, haciendo el enlace entre el arduino, el modulo de Bluetooth HC-05, un giroscopio 6050 y los drivers of los motores. Las conexiones son las que se muestran en la imagen. Asegúrese de hacer las conexiones correctamente, ya que de no ser así puede ocasionar que el systemema no funcione correctamente y no lo obedezca.
Trin 5: Trin 5: Software
Para el programa utilizamos un arduino, a continuación anexamos una parte de la programación with su explicación correspondiente, al igual anexo link, con el codigo completeo:
Pos hold konfiguration
// standard POSHOLD kontrolgevinster
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // grader
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Vindstyring
#define POSHOLD_RATE_D 0.045 // prøv 2 eller 3 for POSHOLD_RATE 1
#definer POSHOLD_RATE_IMAX 20 // grader
// standard PID -gevinster for navigation
#define NAV_P 1.4
#define NAV_I 0,20 // Vindstyring
#define NAV_D 0.08 //
#definer NAV_IMAX 20 // grader
#define MINCHECK 1100
#define MAXCHECK 1900
Aqui se modifica los wins para el poss hold del sistema.
Konfiguration gyro:
ugid Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // ændre I2C -urfrekvensen til 400 kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
forsinkelse (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SOVE 0; CYKLUS 0; TEMP_DIS 0; CLKSEL 3 (PLL med Z Gyro -reference)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (deaktiver input -pin til datasynkronisering); standard DLPF_CFG = 0 => ACC båndbredde = 260Hz GYRO båndbredde = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Fuld skala indstillet til 2000 grader/sek
// aktiver I2C -bypass til AUX I2C
#if defineret (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_DA = 0
#Afslut Hvis
}
ugyldig Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // område: +/- 8192; +/- 2000 grader/sek.
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Common ();
}
ugyldig ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (fuld skala = +/- 8G); ACCELL_HPF = 0 // Bemærk noget er forkert i spec.
// note: der ser ud til at være noget galt i specen her. Med AFS = 2 1G = 4096 men ifølge min måling: 1G = 2048 (og 2048/8 = 256)
// bekræftet her:
#if defineret (MPU6050_I2C_AUX_MASTER)
// på dette stadium konfigureres MAG via den originale MAG init -funktion i I2C bypass -tilstand
// nu konfigurerer vi MPU som en I2C Master -enhed til at håndtere MAG via I2C AUX -porten (udført her for HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_DA = 0; I2C_MST_EN = 1 (I2C master mode); 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_DA = 0
i2c_writeReg (MPU6050_ADDRESS, 0x24, 0x0D); // I2C_MST_CTRL - MULT_MST_EN = 0; WAIT_FOR_ES = 0; SLV_3_FIFO_DA = 0; I2C_MST_P_NSR = 0; I2C_MST_CLK = 13 (I2C slavehastighedsbus = 400kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (læseoperation); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 databytes af MAG gemmes i 6 registre. Første registeradresse er MAG_DATA_REGISTER
i2c_writeReg (MPU6050_ADDRESS, 0x27, 0x86); // I2C_SLV0_CTRL - I2C_SLV0_DA = 1; I2C_SLV0_BYTE_SW = 0; I2C_SLV0_REG_DIS = 0; I2C_SLV0_GRP = 0; I2C_SLV0_LEN = 3 (3x2 bytes)
#Afslut Hvis
}
ugyldig ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Common ();
}
// Funktionen MAG -erhvervelse skal udskiftes, fordi vi nu taler med MPU -enheden
#if defineret (MPU6050_I2C_AUX_MASTER)
ugyldig Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 er det første hukommelsesrum til EXT_SENS_DATA
#if defineret (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#Afslut Hvis
#if defineret (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#Afslut Hvis
#if defineret (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#Afslut Hvis
}
#Afslut Hvis
#Afslut Hvis
Trin 6: Trin 6: Consejos
1. Diseño Mecánico: Utilizar y hacer el diseño que mas les convenga, para el uso que se le quiere dar al robot, medir todo bien, para la hora de hacer cortes láser o impresiones en 3D, no tengan que volver a hacerlo y todo quede a la perfección.
2. Diseño eléctrico: Hacer su propia PCB, para que tengan bien ubicadas las conexiones que tienen que hacer, de igual manera hacer primero las conexiones en una protoboard, para comprobar que cuando la pongan en el PCB el funcionamiento sea el correcto y no teng que agregar mas conexiones o volver a imprimir el PCB.
3. Diseño Software: Guiarse con la programación base expuesta, men kan også bruges til at programmere, men også til en entender, der kan fungere som en funktion, der ikke kan fungere som et program, der kan bruges til at instruere para que funcione correctamente.
Anbefalede:
Arduino LTC6804 BMS - Del 2: Balance Board: 5 trin
Arduino LTC6804 BMS - Del 2: Balance Board: Del 1 er her Et batteristyringssystem (BMS) inkluderer funktionalitet til at registrere vigtige batteriparametre, herunder cellespændinger, batteristrøm, celletemperaturer osv. Hvis nogen af disse er ude af en forud- defineret område, kan pakken være diskotek
Sådan driver du en Gopro med Lipo Balance -stik: 3 trin
Sådan driver du en Gopro med Lipo Balance Plug: Hej fyre, Denne gang viser jeg dig, hvordan du bruger balance -stikket til et lipo -batteri til at drive USB -enheder. Normalt bruges balancestikket ved opladning af et lipo -batteri. Det beskytter den samme spænding på alle celler. Men med dette hack kan du bruge det som en kraft
Makey -Saurus Rex - Makey Makey Balance Board: 6 trin (med billeder)
Makey-Saurus Rex-Makey Makey Balance Board: Uanset om du kalder det Chrome Dino, T-Rex Game, No Internet Game eller bare en almindelig gener, ser alle ud til at være bekendt med dette side-scrollende dinosaur-hoppespil. Dette Google-oprettede spil vises i din Chrome-webbrowser hver gang i
Balance Box Game - Arduino Powered: 4 trin (med billeder)
Balance Box Game - Arduino Powered: Balanceboks -spillet blev lavet til en udfordringsbegivenhed, det skal bæres niveau gennem en forhindringsbane eller over en bestemt afstand for at vinde udfordringen. En arduino bruges til at måle vinklen på boks og udløse en alarm, når den indstillede vinkel
Arduino - Balance - Balancing Robot - Sådan laver du ?: 6 trin (med billeder)
Arduino - Balance - Balancing Robot | Hvordan laver man ?: I denne vejledning lærer vi, hvordan man laver Arduino balancing (balance) robot, der balancerer sig selv. Først kan du se på videoundervisningen ovenfor