Isi kandungan:
- Langkah 1: Langkah 1: Requerido Bahan
- Langkah 2: Langkah 2: Sistema Mecánico-estructura
- Langkah 3: Langkah 3: Fabricación De Piezas 3D
- Langkah 4: Langkah 4: Sistema Eléctrico / electrónico
- Langkah 5: Langkah 5: Perisian
- Langkah 6: Langkah 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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
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
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
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:
Arduino LTC6804 BMS - Bahagian 2: Papan Imbangan: 5 Langkah
Arduino LTC6804 BMS - Bahagian 2: Papan Imbangan: Bahagian 1 ada di siniSistem Pengurusan Bateri (BMS) merangkumi fungsi untuk merasakan parameter pek bateri yang penting termasuk voltan sel, arus bateri, suhu sel, dan lain-lain. julat yang ditentukan, pek itu boleh disko
Robot Pengimbang Diri Dua Roda: 7 Langkah
Robot Pengimbangan Diri Dua Roda: Instruksional ini akan melalui proses reka bentuk dan pembinaan untuk robot pengimbangan diri. Sebagai makluman, saya hanya ingin mengatakan bahawa robot pengimbangan diri bukanlah konsep baru dan ia telah dibina dan didokumentasikan oleh orang lain. Saya mahu menggunakan peluang ini
Cara Membuat Robot Imbangan Diri Dicetak 3D yang Dikawal Jauh: 9 Langkah (dengan Gambar)
Cara Membuat Robot Pengimbangan Diri 3D yang Dikawal Dari Jauh: Ini adalah evolusi versi B-robot sebelumnya. 100% SUMBER TERBUKA / robot Arduino. KOD, bahagian 3D dan elektronik dibuka, jadi jangan ubahnya atau buat versi robot yang besar. Sekiranya anda mempunyai keraguan, idea atau memerlukan bantuan, buatlah
Cara Mengubah Roda Panas Standard ke Roda Panas R / C: D: 6 Langkah (dengan Gambar)
Cara Mengubah Roda Panas Standard ke Roda Panas R / C: D: Sejak saya kecil, saya suka Kereta Roda Panas. Ini memberi saya inspirasi untuk reka bentuk kenderaan fantasi. Kali ini mereka mengalahkan diri dengan Star War Hot Wheels, C-3PO. Namun, saya mahukan lebih daripada sekadar mendorong atau mengejar trek, saya memutuskan, “L
Skrol Roda Roda: 5 Langkah (dengan Gambar)
Skrol-Roda Hack: Cara yang sangat tidak selesa untuk menatal melalui web dengan jari-jari berderap pada butang kain. (Senyum) Roda tatal di dalam tetikus saya adalah mekanisme yang sangat mudah tetapi cemerlang yang pada dasarnya menekan dua butang berturut-turut setiap kali saya menatalnya