Isi kandungan:

Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah
Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah

Video: Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah

Video: Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah
Video: Quien ganará?🤔 2024, November
Anonim
Image
Image

En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un "Robot keseimbangan dua roda" paso a paso y con explicación y concejos. Este es un sistema que terdiri daripada robot el se no de de 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.

Langkah 1: Langkah 1: Requerido Bahan

o Mecánicos:

a. 1 metro de varilla roscada (3/8)

b. 14 puting beliung M3 x.07 x 6

c. 24 tuercas M8 hex

d. 3 puting beliung M4 x.07 x 6

e. Filamento PLA (aproks 500grs)

o Elektronik:

a. 1 suis gangguan

b. Arduino uno o nano

c. 2 motor nema 17

d. 2 pemandu A4988

e. 3 resistencias 1k

f. HC-05

g. MPU-6050

h. 2 kapasitores 100uf o 47uf

i. Lippo Batería 11.1 V

o Piezas fabrikasi:

a. 3 tempat MDF (120 x 170 x 6 mm)

b. PCB Placa (aproks 8 x 14 cm)

c. Soporte batería

d. 2 soporte para motor

e. 2 llantas

o Tambahan:

Perisian perisian anjuran para la realización del proyecto.

a. Perisian Arduino IDE

b. SolidWorks 2018

c. Perisian Kidcad

Langkah 2: Langkah 2: Sistema Mecánico-estructura

Langkah 2: Sistema Mecánico-estructura
Langkah 2: Sistema Mecánico-estructura
Langkah 2: Sistema Mecánico-estructura
Langkah 2: Sistema Mecánico-estructura

El Modelado de las piezas y estructura general se realizo en SolidWorks, primero se crearon las placas de MDF para checar el espacio boleh pakai untuk posterior 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.

Langkah 3: Langkah 3: Fabricación De Piezas 3D

Para el modelado de los soportes y llantas igualmente utilizamos 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.

Langkah 4: Langkah 4: Sistema Eléctrico / electrónico

Langkah 4: Sistema Eléctrico / electrónico
Langkah 4: Sistema Eléctrico / electrónico

En este paso utilizamos una PCB, para elaborar las conexionesespondientes, haciendo el enlace entre el arduino, el modulo de Bluetooth HC-05, un giroscopio 6050 y los driver 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.

Langkah 5: Langkah 5: Perisian

Langkah 5: Perisian
Langkah 5: Perisian

Para el programa utilizamos un arduino, an Continuación anexamos una parte de la programación con su explicaciónespondiente, al igual anexo link, con el codigo complete:

Pos holdconfiguracion

// keuntungan kawalan POSHOLD lalai

#tentukan POSHOLD_P 2.00

#tentukan POSHOLD_I 0.0

#tentukan POSHOLD_IMAX 20 // darjah

#tentukan POSHOLD_RATE_P 2.0

#tentukan POSHOLD_RATE_I 0.08 // Kawalan angin

#tentukan POSHOLD_RATE_D 0.045 // cuba 2 atau 3 untuk POSHOLD_RATE 1

#tentukan POSHOLD_RATE_IMAX 20 // darjah

// keuntungan PID Navigasi lalai

#tentukan NAV_P 1.4

#tentukan NAV_I 0.20 // Kawalan angin

#tentukan NAV_D 0.08 //

#tentukan NAV_IMAX 20 // darjah

#tentukan MINCHECK 1100

#tentukan MAXCHECK 1900

Aqui se modifica rugi para el poss terus del sistema.

Configuración gyro:

batal Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // ubah kadar jam I2C menjadi 400kHz

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - PERANGKAT_RESET 1

kelewatan (5);

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - TIDUR 0; TAMADUN 0; TEMP_DIS 0; CLKSEL 3 (PLL dengan rujukan Z Gyro)

i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (matikan pin input untuk penyegerakan data); lalai DLPF_CFG = 0 => Lebar jalur ACC = 260Hz Lebar jalur GYRO = 256Hz)

i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Skala penuh ditetapkan ke 2000 darjah / saat

// aktifkan pintasan I2C untuk AUX I2C

#jika ditakrifkan (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

}

batal Gyro_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION (((rawADC [0] 2, // range: +/- 8192; +/- 2000 deg / saat

((rawADC [2] 2, ((rawADC [4] 2);

GYRO_Common ();

}

batal ACC_init () {

i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG - AFS_SEL = 2 (Skala Penuh = +/- 8G); ACCELL_HPF = 0 // perhatikan ada sesuatu yang tidak kena dalam spesifikasi.

// nota: ada sesuatu yang tidak kena dalam spesifikasi di sini. Dengan AFS = 2 1G = 4096 tetapi menurut pengukuran saya: 1G = 2048 (dan 2048/8 = 256)

// disahkan di sini:

#jika ditentukan (MPU6050_I2C_AUX_MASTER)

// pada tahap ini, MAG dikonfigurasi melalui fungsi init MAG yang asli dalam mod pintasan I2C

// sekarang kita mengkonfigurasi MPU sebagai peranti Master I2C untuk mengendalikan MAG melalui port I2C AUX (dilakukan di sini untuk HMC5883)

i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (mod induk 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; TUNGGU_FOR_ES = 0; SLV_3_FIFO_EN = 0; I2C_MST_P_NSR = 0; I2C_MST_CLK = 13 (bas laju hamba I2C = 400kHz)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (operasi baca); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 bait data MAG disimpan dalam 6 daftar. Alamat pendaftaran pertama ialah 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 bait)

#endif

}

batal ACC_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);

ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);

ACC_Common ();

}

// Fungsi pemerolehan MAG mesti diganti kerana sekarang kita bercakap dengan peranti MPU

#jika ditentukan (MPU6050_I2C_AUX_MASTER)

batal Peranti_Mag_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 adalah ruang memori pertama untuk EXT_SENS_DATA

#jika ditentukan (HMC5843)

MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));

#endif

#jika ditentukan (HMC5883)

MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));

#endif

#jika ditentukan (MAG3110)

MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));

#endif

}

#endif

#endif

Langkah 6: Langkah 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 que agregar mas conexiones o volver a imprimir el PCB.

3. Perisian Diseño: Ekspedisi asas yang baik, per tratar de hacer su propia programación, untuk memberi maklumat yang lebih baik dan lebih baik lagi.

Disyorkan: