Daftar Isi:
- Langkah 1: Langkah 1: Permintaan Materi
- 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: Perangkat Lunak
- Langkah 6: Langkah 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (Robot Keseimbangan Roda Dua): 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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 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 asli.
Langkah 1: Langkah 1: Permintaan Materi
o Meksiko:
A. 1 metro de varilla roscada (3/8)
B. 14 tornillo M3 x.07 x 6
C. 24 tuercas M8 hex
D. 3 tornillo M4 x.07 x 6
e. Filamento PLA (kira-kira 500gr)
o Elektronik:
A. 1 sakelar pemutus
B. Arduino uno atau nano
C. 2 motor nema 17
D. 2 driver A4988
e. 3 resistensi 1k
F. HC-05
G. MPU-6050
H. 2 kapasitor de 100uf atau 47uf
Saya. Baterai lippo 11.1 V
o Piezas fabricadas:
A. 3 plakat MDF (120 x 170 x 6 mm)
B. Placa PCB (kira-kira 8 x 14 cm)
C. Baterai ringan
D. 2 soporte para motor
e. 2 llantas
o Ekstra:
Perangkat lunak yang direkomendasikan untuk para la realización del proyecto.
A. Perangkat lunak Arduino IDE
B. SolidWorks 2018
C. Perangkat lunak 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 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 esstructura.
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 conexiones koresponden, 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. Lakukan perbaikan untuk memperbaikinya, tidak ada kesalahan yang harus dilakukan untuk memperbaikinya.
Langkah 5: Langkah 5: Perangkat Lunak
Para el programa utilizamos un arduino, a continuación anexamos una parte de la programación con su explicación koresponden, tautan tambahan lainnya, con el codigo completo:
Konfigurasi pos hold
// keuntungan kontrol POSHOLD default
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // derajat
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0,08 // Kontrol angin
#define POSHOLD_RATE_D 0,045 // coba 2 atau 3 untuk POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // derajat
// keuntungan PID Navigasi default
#menentukan NAV_P 1.4
#define NAV_I 0.20 // Kontrol angin
#menentukan NAV_D 0,08 //
#define NAV_IMAX 20 // derajat
#tentukan MINCHECK 1100
#tentukan MAXCHECK 1900
Aqui se modifica los gain para el poss hold del sistema.
Konfigurasi gyro:
batal Gyro_init() {
TWBR = ((F_CPU / 400000L) - 16) / 2; // ubah kecepatan clock I2C menjadi 400kHz
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x80); //PWR_MGMT_1 -- DEVICE_RESET 1
penundaan (5);
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x03); //PWR_MGMT_1 -- TIDUR 0; SIKLUS 0; TEMP_DIS 0; CLKSEL 3 (PLL dengan referensi Z Gyro)
i2c_writeReg(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); //CONFIG -- EXT_SYNC_SET 0 (nonaktifkan pin input untuk sinkronisasi data); default DLPF_CFG = 0 => ACC bandwidth = 260Hz GYRO bandwidth = 256Hz)
i2c_writeReg(MPU6050_ADDRESS, 0x1B, 0x18); //GYRO_CONFIG -- FS_SEL = 3: Skala penuh disetel ke 2000 derajat/dtk
// aktifkan bypass I2C untuk AUX I2C
#jika ditentukan(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
#berakhir jika
}
batal Gyro_getADC () {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION(((rawADC[0]2, // rentang: +/- 8192; +/- 2000 deg/dtk
((rawADC[2]2, ((rawADC[4]2);
GYRO_Umum();
}
batal ACC_init () {
i2c_writeReg(MPU6050_ADDRESS, 0x1C, 0x10); //ACCEL_CONFIG -- AFS_SEL=2 (Skala Penuh = +/-8G); ACCELL_HPF=0 //perhatikan ada yang salah dalam spesifikasi.
//note: sepertinya ada yang salah dengan spesifikasi di sini. Dengan AFS=2 1G = 4096 tetapi menurut pengukuran saya: 1G=2048 (dan 2048/8 = 256)
//dikonfirmasi di sini:
#jika ditentukan(MPU6050_I2C_AUX_MASTER)
// pada tahap ini, MAG dikonfigurasi melalui fungsi init MAG asli dalam mode bypass I2C
// sekarang kita mengkonfigurasi MPU sebagai perangkat Master I2C untuk menangani 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 (mode master 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 (Bus kecepatan slave 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 byte data MAG disimpan dalam 6 register. Alamat register pertama adalah 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)
#berakhir jika
}
batal ACC_getADC () {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION(((rawADC[0]3, ((rawADC[2]3, ((rawADC[4]3);
ACC_Umum();
}
//Fungsi akuisisi MAG harus diganti karena sekarang kita berbicara dengan perangkat MPU
#jika ditentukan(MPU6050_I2C_AUX_MASTER)
batalkan Device_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]));
#berakhir jika
#jika ditentukan (HMC5883)
MAG_ORIENTATION(((rawADC[0]<<8) | rawADC[1]), ((rawADC[4]<<8) | rawADC[5]), ((rawADC[2]<<8) | rawADC[3]));
#berakhir jika
#jika ditentukan (MAG3110)
MAG_ORIENTATION(((rawADC[0]<<8) | rawADC[1]), ((rawADC[2]<<8) | rawADC[3]), ((rawADC[4]<<8) | rawADC[5]));
#berakhir jika
}
#berakhir jika
#berakhir jika
Langkah 6: Langkah 6: Consejos
1. Diseo Mecánico: Memanfaatkan 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 kesempurnaan.
2. Diseo 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 tidak ada lingkungan laut que agregar mas conexiones o volver a imprimir el PCB.
3. Perangkat Lunak Diseño: Panduan 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.
Direkomendasikan:
Arduino LTC6804 BMS - Bagian 2: Papan Keseimbangan: 5 Langkah
Arduino LTC6804 BMS - Bagian 2: Papan Keseimbangan: Bagian 1 ada di siniSistem Manajemen Baterai (BMS) mencakup fungsionalitas untuk merasakan parameter paket baterai yang penting termasuk voltase sel, arus baterai, suhu sel, dll. rentang yang ditentukan, paket dapat disko
Robot Self-Balancing Dua Roda: 7 Langkah
Robot Self-Balancing Dua Roda: Instruksi ini akan melalui proses desain dan pembuatan untuk robot self-balancing. Sebagai catatan, saya hanya ingin mengatakan bahwa robot self-balancing bukanlah konsep baru dan mereka telah dibuat dan didokumentasikan oleh orang lain. Saya ingin menggunakan kesempatan ini
Makey-Saurus Rex - Papan Keseimbangan Makey Makey: 6 Langkah (dengan Gambar)
Makey-Saurus Rex - Makey Makey Balance Board: Baik Anda menyebutnya Chrome Dino, T-Rex Game, No Internet Game, atau sekadar pengganggu biasa, semua orang tampaknya akrab dengan game lompat dinosaurus gulir samping ini. Game buatan Google ini muncul di browser web Chrome Anda setiap kali di
JCN: Konsep Komputer Makanan Keseimbangan Vektor V60.s: 10 Langkah
JCN: Konsep Komputer Makanan Ekuilibrium Vektor V60.s: Halo dan Selamat Datang. Ini adalah penyerahan kategori profesional. Saya menetapkan dua tujuan penting dalam menjalankan proyek ini. Prioritas saya berasal dari telekonferensi dengan para ilmuwan NASA dan lainnya. Hal yang saya ambil dari sesi ini adalah untuk
Arduino - Keseimbangan - Robot Penyeimbang - Cara Membuat?: 6 Langkah (dengan Gambar)
Arduino - Keseimbangan - Robot Penyeimbang | How to Make?: Dalam tutorial ini kita akan belajar bagaimana membuat robot penyeimbang (balance) Arduino yang menyeimbangkan dirinya sendiri. Pertama kalian bisa lihat video tutorialnya diatas