Sadržaj:
- Korak 1: Korak 1: Materijal Requerido
- Korak 2: Korak 2: Sistema Mecánico-estructura
- Korak 3: Korak 3: Fabricación De Piezas 3D
- Korak 4: Korak 4: Sistema Eléctrico/electrónico
- Korak 5: Korak 5: Softver
- Korak 6: Korak 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (Robot za ravnotežu na dva kotača): 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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 sistem 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 pozición original.
Korak 1: Korak 1: Materijal Requerido
o Mecánicos:
a. 1 metro de varilla roscada (3/8)
b. 14 tornila M3 x, 07 x 6
c. 24 tuercas M8 šesterokutne
d. 3 tornila M4 x.07 x 6
e. Filamento PLA (približno 500 gr.)
o Elektronički uređaji:
a. 1 prekidač prekidača
b. Arduino uno o nano
c. 2 motores nema 17
d. 2 vozača A4988
e. 3 resistencije 1k
f. HC-05
g. MPU-6050
h 2 kondenzatora od 100uf do 47uf
i. Batería lippo 11,1 V
o Piezas fabricadas:
a. 3 MDF ploče (120 x 170 x 6 mm)
b. Placa PCB (približno 8 x 14 cm)
c. Soporte batería
d. 2 soporte para motor
e. 2 llanta
o Dodaci:
Softverski preporučljivi para la realización del proyecto.
a. Arduino IDE softver
b. SolidWorks 2018
c. Kidcad softver
Korak 2: Korak 2: Sistema Mecánico-estructura
El modelido de las piezas y estructura general se realiziraju u SolidWorksu, primjereno se stvaraju 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.
Korak 3: Korak 3: Fabricación De Piezas 3D
Para el modelado de los soportes y llantas igualmente utilizmos SolidWorks, estos soportes pueden ser modificados si así lo desean, para un mejor funcionamiento, los soportes tienen orificios de.35 cm de diámetro, para una mejor sujeción.
Korak 4: Korak 4: Sistema Eléctrico/electrónico
En este paso utilizamos una PCB, para elaborar las conexiones korespondientes, haciendo el enlace entre el arduino, modulo de Bluetooth HC-05, un giroscopio 6050 y los drivers de 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 sistema no funcione correctamente y no lo obedezca.
Korak 5: Korak 5: Softver
Para el programa iskorištava un arduino, anexamos continuación una parte de la programación con su explicación korespondiente, al igual anexo link, con el codigo completo:
Pos hold config konfiguracija
// zadani POSHOLD kontrolni dobici
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // stupnjeva
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0,08 // Kontrola vjetra
#define POSHOLD_RATE_D 0.045 // pokušajte 2 ili 3 za POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // stupnjeva
// zadani dobitak PID -a navigacije
#define NAV_P 1.4
#define NAV_I 0.20 // Kontrola vjetra
#define NAV_D 0,08 //
#define NAV_IMAX 20 // stupnjeva
#define MINCHECK 1100
#define MAXCHECK 1900
Aqui se modifica los gains para el poss hold del sistema.
Konfiguracijski žiroskop:
void Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // mijenjamo brzinu takta I2C na 400 kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
kašnjenje (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SPAVANJE 0; CIKLUS 0; TEMP_DIS 0; CLKSEL 3 (PLL sa referencom Z žiroskopa)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (onemogući ulazni pin za sinkronizaciju podataka); zadani DLPF_CFG = 0 => ACC širina pojasa = 260Hz GYRO širina pojasa = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Puna skala postavljena na 2000 stupnjeva/sek
// omogućujemo zaobilaženje I2C za AUX I2C
#ako je definirano (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
#završi ako
}
void Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // raspon: +/- 8192; +/- 2000 stupnjeva/s
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Česti ();
}
void ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (Puna ljestvica = +/- 8G); ACCELL_HPF = 0 // napominjemo da nešto nije u redu sa specifikacijama.
// napomena: čini se da nešto nije u redu u specifikacijama ovdje. S AFS = 2 1G = 4096, ali prema mojim mjerenjima: 1G = 2048 (i 2048/8 = 256)
// potvrđeno ovdje:
#ako je definirano (MPU6050_I2C_AUX_MASTER)
// u ovoj fazi, MAG je konfiguriran putem izvorne funkcije inicijalnog pokretanja MAG -a u načinu zaobilaženja I2C
// sada konfiguriramo MPU kao I2C Master uređaj za rukovanje MAG -om preko I2C AUX priključka (ovdje učinjeno za HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (glavni način rada 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 (I2C sabirnica brzine slave = 400 kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (operacija čitanja); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 bajtova podataka MAG -a pohranjeno je u 6 registara. Prva adresa registra je 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 (3 x 2 bajta)
#završi ako
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Često ();
}
// Funkcija akvizicije MAG -a mora se zamijeniti jer sada razgovaramo s MPU uređajem
#ako je definirano (MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 je prva memorijska soba za EXT_SENS_DATA
#ako je definirano (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#završi ako
#ako je definirano (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#završi ako
#ako je definirano (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#završi ako
}
#završi ako
#završi ako
Korak 6: Korak 6: Consejos
1. Diseño Mecánico: Utilizar y hacer el diseño que mas les konvenga, 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 je 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 funkcionamiento sea el correcto y no tengan que agregar mas conexiones o volver a imprimir el PCB.
3. Diseño softver: Guiarse con la programación base expuesta, pero tratar de hacer su propia programción, para llegar a entender bien el funcionamiento y en caso de que no funcionar la programción sabre como cambiar las instrucciones para que funcione correctamente.
Preporučeni:
Samobalansirajući robot na dva kotača: 7 koraka
Samobalansirajući robot s dva kotača: Ovaj instruktor će proći kroz proces projektiranja i izgradnje samobalansirajućeg robota. Kao napomenu, samo želim reći da samo uravnotežujući roboti nisu novi koncept i da su ih drugi izgradili i dokumentirali. Želim iskoristiti ovu priliku
JCN: Koncept računara za ravnotežu hrane u vektorskom stanju: 9 koraka
JCN: Računalni koncept hrane za ravnotežu vektora: Otvaramo najavom nadolazeći video " JCN i astronauti; epska priča o hrani i zabavi u svemiru " .Ono što sam uzeo s video konferencija projekta je da se moramo usredotočiti na prostorne koncepte i da se ZABAVIMO! Ja sam havi
Jednostavna automatizirana željeznička linija od dva do dva vlaka: 13 koraka (sa slikama)
Jednostavni automatizirani model željeznice od točke do točke koja vozi s dva vlaka: Arduino mikrokontroleri odličan su način za automatiziranje rasporeda modela željeznica zbog svoje jeftine dostupnosti, hardvera i softvera otvorenog koda te velike zajednice koja vam može pomoći. Za modele željeznica, Arduino mikrokontroleri mogu se pokazati kao gr
Robot za balansiranje / Robot na 3 kotača / STEM robot: 8 koraka
Robot za balansiranje / Robot na tri kotača / STEM robot: Izgradili smo kombiniranog robota za balansiranje i 3 kotača za obrazovnu uporabu u školama i posliješkolskim obrazovnim programima. Robot se temelji na Arduino Uno, prilagođenom štitu (svi detalji o konstrukciji navedeni), bateriji Li -Ion baterije (sve izgrađene
Napravite vlastitu ploču za ravnotežu (i krenite na put do Wii fit -a): 6 koraka
Napravite vlastitu ploču za ravnotežu (i krenite na put prema Wii fit-u): Napravite vlastitu ploču za ravnotežu ili BalanceTile (kako smo je nazvali), kao sučelje za razne igre i treninge tjelesne kondicije, koristeći tehnologiju I-CubeX. Dizajnirajte vlastitu aplikaciju i idite dalje od Wii Fita! Videozapis pruža pregled i