Innehållsförteckning:
- Steg 1: Steg 1: Materialbehov
- Steg 2: Steg 2: Sistema Mecánico-estructura
- Steg 3: Steg 3: Fabricación De Piezas 3D
- Steg 4: Steg 4: Sistema Eléctrico/electrónico
- Steg 5: Steg 5: Programvara
- Steg 6: Steg 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (tvåhjulsbalansrobot): 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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.
Steg 1: Steg 1: Materialbehov
o Mecánicos:
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 (cirka 500 gram)
o Electrónicos:
a. 1 avbrytare
b. Arduino uno o nano
c. 2 motorer nema 17
d. 2 drivrutiner A4988
e. 3 motstånd 1k
f. HC-05
g. MPU-6050
h. 2 kondensatorer de 100uf o 47uf
i. Batería lippo 11.1 V
o Piezas fabricadas:
a. 3 placas de MDF (120 x 170 x 6 mm)
b. Placa PCB (8 x 14 cm ca)
c. Soporte batería
d. 2 soporte para motor
e. 2 lantor
o Tillägg:
Programvaror rekommenderas för realiseringen av projekten.
a. Arduino IDE -programvara
b. SolidWorks 2018
c. Kidcad programvara
Steg 2: Steg 2: Sistema Mecánico-estructura
Elmodellen för lasersektorn och den allmänna uppbyggnaden av 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.
Steg 3: Steg 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 major funcionamiento, los soportes tienen orificios de.35 cm de dimetro, para una major sujeción.
Steg 4: Steg 4: Sistema 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 for 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.
Steg 5: Steg 5: Programvara
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 complete:
Pos hold -konfiguration
// standard POSHOLD kontrollvinster
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#definiera POSHOLD_IMAX 20 // grader
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Vindkontroll
#define POSHOLD_RATE_D 0.045 // prova 2 eller 3 för POSHOLD_RATE 1
#definiera POSHOLD_RATE_IMAX 20 // grader
// standard PID -vinster för navigering
#define NAV_P 1.4
#define NAV_I 0,20 // Vindkontroll
#define NAV_D 0.08 //
#definiera NAV_IMAX 20 // grader
#define MINCHECK 1100
#define MAXCHECK 1900
Aqui se modifica los wins para el poss hold del system.
Konfiguration gyro:
ogiltigt Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // ändra I2C -klockfrekvensen till 400 kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
fördröjning (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SOV 0; CYKEL 0; TEMP_DIS 0; CLKSEL 3 (PLL med Z Gyro -referens)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (inaktivera inmatningsstift för datasynkronisering); standard DLPF_CFG = 0 => ACC -bandbredd = 260Hz GYRO -bandbredd = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Full skala inställd på 2000 grader/sek
// aktivera I2C -bypass för AUX I2C
#if definierat (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_SV = 0
#endif
}
ogiltig Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // intervall: +/- 8192; +/- 2000 grader/sek
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Common ();
}
ogiltig ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (Full skala = +/- 8G); ACCELL_HPF = 0 // observera att något är fel i specifikationen.
// Obs: något verkar vara fel i specifikationen här. Med AFS = 2 1G = 4096 men enligt min mätning: 1G = 2048 (och 2048/8 = 256)
// bekräftat här:
#if definierat (MPU6050_I2C_AUX_MASTER)
// i detta skede konfigureras MAG via den ursprungliga MAG init -funktionen i I2C bypass -läge
// nu konfigurerar vi MPU som en I2C Master -enhet för att hantera MAG via I2C AUX -porten (görs här för HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_SV = 0; I2C_MST_EN = 1 (I2C huvudläge); 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_SV = 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 slavhastighetsbuss = 400kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (läsoperation); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 databyte för MAG lagras i 6 register. Första registeradressen är 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 byte)
#endif
}
ogiltig ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Common ();
}
// MAG -förvärvsfunktionen måste bytas ut eftersom vi nu pratar med MPU -enheten
#if definierat (MPU6050_I2C_AUX_MASTER)
ogiltig Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 är det första minnesrummet för EXT_SENS_DATA
#if definierat (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
#if definierat (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#endif
#if definierat (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
}
#endif
#endif
Steg 6: Steg 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, pero tratar de hacer su propia programación, para llegar a entender bien el funcionamiento y en caso de que no funcionar la programación saber como cambiar las instrucciones para que funcione correctamente.
Rekommenderad:
Proyecto 1 De Manufactura Digital UVG: 4 steg
Proyecto 1 de Manufactura Digital UVG: Diagrama Esquemático del circuito de la lámpara. Material: 3 NeoPixels Kabeldragning 3 kapacitet 10K Un botón Un sensor DHT11 Un Arduino Unna resistenscia 220 ohm Un interruptor Un protoboardEl proyecto consistió and realizar una
Como Hacer Una Mood Lamp (proyecto Uvg): 5 steg (med bilder)
Como Hacer Una Mood Lamp (proyecto Uvg): En stämningslampa som fungerar som en bas för en sensor DHT11 och 3 potentiometrar. tiene 2 modos: el primero el color cambia con los potenciómetros, y el segundo cambia a base de las lecturas del sensor DHT11
Proyecto Museo De Herling Y Paula De La Cámara: 4 steg
Proyecto Museo De Herling Y Paula De La Cámara: En este proyecto vamos a relizar un museo, en el cual vamos ha programar varias alarmas para que salte cuando intenten robar la joya, tambien vamos a utilizar sensores de luz para que dectecten los distintos movimiento que intentiono robar la joya
PROYECTO PERSONLIGA HANDBOK: 5 steg
PROYECTO PERSONLÄGGNING: Este proyecto consiste en elegir un theme libre, y crear un producto de la investigaci ó n de este tema. La investigaci ó n, planeaci ó n, acci ó n y reflexi ó n del proyecto son escritas en un informe, y todo el registro de
Proyecto Rockola Manufactura Digital: 4 steg
Proyecto Rockola Manufactura Digital: Nombre de alumnos: Javier Molina 19714Angel Murli 19057 Las limitantes establecidas para este proyecto es que tenía que te