Kazalo:
- 1. korak: 1. korak: Requerido materiala
- 2. korak: 2. korak: Sistema Mecánico-estructura
- 3. korak: 3. korak: Fabricación De Piezas 3D
- 4. korak: 4. korak: Sistema Eléctrico/electrónico
- 5. korak: 5. korak: programska oprema
- 6. korak: 6. korak: Consejos
Video: Proyecto Laboratorio De Mecatrónica (dvokolesni ravnotežni robot): 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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 posición original.
1. korak: 1. korak: Requerido materiala
o Mecánicos:
a. 1 metro de varilla roscada (3/8)
b. 14 tornil M3 x 0,07 x 6
c. 24 tuercas M8 šestkotne
d. 3 tornila M4 x 0,07 x 6
e. Filamento PLA (približno 500 g)
o Elektroniki:
a. 1 prekinitveno stikalo
b. Arduino uno o nano
c. 2 motorja 17
d. 2 gonilnika A4988
e. 3 odpornosti 1k
f. HC-05
g. MPU-6050
h 2 kondenzatorja od 100uf do 47uf
jaz. Batería lippo 11,1 V
o Piezas fabricadas:
a. 3 plošče MDF (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 Dodatki:
Priporočena programska oprema za la realización del proyecto.
a. Arduino IDE programska oprema
b. SolidWorks 2018
c. Programska oprema Kidcad
2. korak: 2. korak: Sistema Mecánico-estructura
El modelado de las piezas y estructura general se je realiziral v SolidWorks, primero se ustvarja 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.
3. korak: 3. korak: Fabricación De Piezas 3D
Para el modelado de los soportes y llantas igualmente using 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.
4. korak: 4. korak: Sistema Eléctrico/electrónico
Če uporabljate tiskano vezje, za podrobnejšo razlago ustreznih koneksov, haciendo el enlace entre el arduino, modul Bluetooth HC-05, giroskopije 6050, izgubite gonilnike. Las conexiones son las que se muestran en la imagen. Asegúrese de hacer las conexiones correctamente, ya que de no ser así puede ocadeionar que el sistema no funcione correctamente y no lo obedezca.
5. korak: 5. korak: programska oprema
Za uporabo programa un arduino, neprekinjen anexamos una parte de la programación con su explicación korespondiente, al igual anexo link, con el codigo completo:
Konfiguracija pos hold
// privzeti dobički nadzora POSHOLD
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // stopinj
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0,08 // Nadzor vetra
#define POSHOLD_RATE_D 0.045 // poskusite 2 ali 3 za POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // stopinj
// privzeto povečanje PID navigacije
#define NAV_P 1.4
#define NAV_I 0.20 // Nadzor vetra
#define NAV_D 0,08 //
#define NAV_IMAX 20 // stopinj
#define MINCHECK 1100
#define MAXCHECK 1900
Aqui se modifica los gains para el poss hold del sistema.
Konfiguracija žiroskopa:
void Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // spremenimo uro I2C na 400kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
zamuda (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SLEEP 0; CIKLUS 0; TEMP_DIS 0; CLKSEL 3 (PLL z referenco Z Gyro)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (onemogoči vhodni pin za sinhronizacijo podatkov); privzeto DLPF_CFG = 0 => pasovna širina ACC = 260Hz pasovna širina žiroskopa = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Celotno merilo je nastavljeno na 2000 stopinj/s
// omogočim obvod I2C za AUX I2C
#if 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
#endif
}
void Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // obseg: +/- 8192; +/- 2000 stopinj/s
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Skupno ();
}
void ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (polna lestvica = +/- 8G); ACCELL_HPF = 0 // upoštevajte, da je v specifikaciji nekaj narobe.
// opomba: zdi se, da je nekaj narobe v specifikacijah tukaj. Z AFS = 2 1G = 4096, vendar glede na moje meritve: 1G = 2048 (in 2048/8 = 256)
// potrjeno tukaj:
#če je definirano (MPU6050_I2C_AUX_MASTER)
// na tej stopnji je MAG konfiguriran prek prvotne funkcije inicializacije MAG v načinu obvoda I2C
// zdaj konfiguriramo MPU kot glavno napravo I2C za upravljanje MAG prek vrat AUX I2C (tukaj za HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (glavni način 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 pomožno vodilo hitrosti = 400kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (branje); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 podatkovnih bajtov MAG je shranjenih v 6 registrih. Naslov prve registracije 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)
#endif
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Skupno ();
}
// Funkcijo pridobivanja MAG je treba zamenjati, ker se zdaj pogovarjamo z napravo MPU
#če je definirano (MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 je prva pomnilniška soba za EXT_SENS_DATA
#if definirano (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
#if definirano (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#endif
#če je definirano (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
}
#endif
#endif
6. korak: 6. korak: 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 in imprimir el PCB.
3. Diseño Software: 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.
Priporočena:
Como Hacer Una Mood Lamp (proyecto Uvg): 5 korakov (s slikami)
Como Hacer Una Mood Lamp (proyecto Uvg): To je svetilka za razpoloženje, ki deluje kot osnova senzorja DHT11 in 3 potenciómetros. tiene 2 modos: el primero el color cambia con los potenciómetros, y el segundo cambia a base de las lecturas del sensor DHT11
Dvokolesni samo uravnoteževalni robot: 7 korakov
Dvokolesni samo uravnotežujoči se robot: Ta pouk bo šel skozi postopek načrtovanja in izdelave samoravnotežnega robota. Kot opombo želim samo povedati, da samo uravnotežujoči se roboti niso nov koncept in so jih zgradili in dokumentirali drugi. To priložnost želim izkoristiti
PROYECTO OSEBNI VODIČ: 5 korakov
PROYECTO OSEBNI VODIČ: Este proyecto consiste en elegir un theme libre, y crear un producto de la investici ó n de este theme. La researchci ó n, planeaci ó n, acci ó n y refleksni ó n del proyecto son escritas en un informe, y todo el registerro de
Robot za uravnoteženje / 3 -kolesni robot / STEM robot: 8 korakov
Robot za uravnoteženje / 3 -kolesni robot / STEM Robot: Zgradili smo kombiniranega balansirnega in 3 -kolesnega robota za izobraževalno uporabo v šolah in po šolah. Robot temelji na Arduino Uno, ščitu po meri (vse podrobnosti o konstrukciji), Li -Ion bateriji (vse sestavljene iz
Educaacion Proyecto Final - Video Y TV Interactiva: 6 korakov
Educaacion Proyecto Final - Video Y TV Interactiva: El producto ser á un sistem multimedia interactivo, el cual sedesplegar á a tra é s de un medio avdiovizualni y contar á con elementos software y hardware za manipulacijo ó n, teniendo en cuenta que su prop ó sito