Mục lục:

Proyecto Laboratorio De Mecatrónica (Robot thăng bằng hai bánh): 6 bước
Proyecto Laboratorio De Mecatrónica (Robot thăng bằng hai bánh): 6 bước

Video: Proyecto Laboratorio De Mecatrónica (Robot thăng bằng hai bánh): 6 bước

Video: Proyecto Laboratorio De Mecatrónica (Robot thăng bằng hai bánh): 6 bước
Video: Combined Power SAW and GRINDING MACHINE using Old / Used Washing Machine MOTOR decorated as TEA-PAI 2024, Tháng mười một
Anonim
Image
Image

En este proyecto se mostrara, el funcionamiento y el como hacer para gonerar un "Robot thăng bằng hai bánh" paso a paso y con explicación y concejos. Este es un sistema que ince 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.

Bước 1: Bước 1: Vật liệu Requerido

o Mecánicos:

Một. 1 metro de varilla roscada (3/8)

NS. 14 tornillos M3 x.07 x 6

NS. 24 tuercas M8 hex

NS. 3 tornillos M4 x.07 x 6

e. Filamento PLA (khoảng 500grs)

o Electrónicos:

Một. 1 công tắc ngắt

NS. Arduino una o nano

NS. 2 motores nema 17

NS. 2 trình điều khiển A4988

e. 3 kháng cự 1k

NS. HC-05

NS. MPU-6050

NS. 2 tụ de 100uf o 47uf

tôi. Batería lippo 11.1 V

o Bánh vải Piezas:

Một. 3 tấm gỗ MDF (120 x 170 x 6 mm)

NS. Placa PCB (khoảng 8 x 14 cm)

NS. Soporte batería

NS. 2 soporte para động cơ

e. 2 llantas

o Ngoài ra:

Phần mềm recomendados para la realización del proyecto.

Một. Phần mềm Arduino IDE

NS. SolidWorks 2018

NS. Phần mềm Kidcad

Bước 2: Bước 2: Sistema Mecánico-estructura

Bước 2: Sistema Mecánico-estructura
Bước 2: Sistema Mecánico-estructura
Bước 2: Sistema Mecánico-estructura
Bước 2: Sistema Mecánico-estructura

El modelado de las piezas y estructura general se realizo en SolidWorks, primero se crearon las coroas de MDF para checar el espacio disponible para posteriores usos. Estas sa khoáng con trai diferentes entre ellas, la sa phia kém cỏi, lả lơi thua kém ori thiếuos para los soportes de motores y batería, la central para nuestra PCB y la cao su solo.

Bước 3: Bước 3: Fabricación De Piezas 3D

Para el modelado de los soportes y llantas igualmente useizamos SolidWorks, estos soportes pueden ser modificados si así lo desean, para un mejor funcionamiento, los soportes tienen ori Lỗios de.35 cm de diámetro, para una mejor sujeción.

Bước 4: Bước 4: Sistema Eléctrico / electrónico

Bước 4: Sistema Eléctrico / electrónico
Bước 4: Sistema Eléctrico / electrónico

En este paso Operatingizamos una PCB, paramodrar las conexiones tương ứng, 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.

Bước 5: Bước 5: Phần mềm

Bước 5: Phần mềm
Bước 5: Phần mềm

Para el programma useizamos un arduino, a continueación anexamos una parte de la programación con su explicación tương ứng, liên kết al igual anexo, con el codigo completo:

Định cấu hình vị trí

// lợi ích kiểm soát POSHOLD mặc định

#define POSHOLD_P 2.00

#define POSHOLD_I 0.0

#define POSHOLD_IMAX 20 // độ

#define POSHOLD_RATE_P 2.0

#define POSHOLD_RATE_I 0.08 // Kiểm soát gió

#define POSHOLD_RATE_D 0.045 // thử 2 hoặc 3 cho POSHOLD_RATE 1

#define POSHOLD_RATE_IMAX 20 // độ

// lợi nhuận PID điều hướng mặc định

#define NAV_P 1.4

#define NAV_I 0.20 // Kiểm soát gió

#define NAV_D 0.08 //

#define NAV_IMAX 20 // độ

#define MINCHECK 1100

#define MAXCHECK 1900

Aqui se modifica los được para el Poss hold del sistema.

Con quay hồi chuyển Configuración:

void Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // thay đổi tốc độ đồng hồ I2C thành 400kHz

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

chậm trễ (5);

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - NGỦ 0; CHU KỲ 0; TEMP_DIS 0; CLKSEL 3 (PLL với tham chiếu Z Gyro)

i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (vô hiệu hóa chân đầu vào để đồng bộ dữ liệu); mặc định DLPF_CFG = 0 => Băng thông ACC = 260Hz Băng thông GYRO = 256Hz)

i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Toàn bộ thang đo được đặt thành 2000 độ / giây

// bật bỏ qua I2C cho AUX I2C

#if được xác định (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, // phạm vi: +/- 8192; +/- 2000 độ / giây

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

GYRO_Common ();

}

void ACC_init () {

i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG - AFS_SEL = 2 (Full Scale = +/- 8G); ACCELL_HPF = 0 // lưu ý rằng có gì đó sai trong thông số kỹ thuật.

// lưu ý: có điều gì đó không ổn trong thông số kỹ thuật ở đây. Với AFS = 2 1G = 4096 nhưng theo phép đo của tôi: 1G = 2048 (và 2048/8 = 256)

// được xác nhận tại đây:

# nếu được xác định (MPU6050_I2C_AUX_MASTER)

// ở giai đoạn này, MAG được định cấu hình thông qua chức năng MAG init ban đầu ở chế độ bỏ qua I2C

// bây giờ chúng ta định cấu hình MPU làm thiết bị I2C Master để xử lý MAG qua cổng I2C AUX (thực hiện ở đây cho HMC5883)

i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (I2C chế độ chính); 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 tốc độ phụ I2C = 400kHz)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (thao tác đọc); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 byte dữ liệu của MAG được lưu trữ trong 6 thanh ghi. Địa chỉ đăng ký đầu tiên là 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

}

void ACC_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);

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

ACC_Common ();

}

// Chức năng thu nhận MAG phải được thay thế vì bây giờ chúng ta nói chuyện với thiết bị MPU

# nếu được xác định (MPU6050_I2C_AUX_MASTER)

void Device_Mag_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 là vùng nhớ đầu tiên cho EXT_SENS_DATA

# nếu được xác định (HMC5843)

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

#endif

# nếu được xác định (HMC5883)

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

#endif

# nếu được xác định (MAG3110)

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

#endif

}

#endif

#endif

Bước 6: Bước 6: Consejos

1. Diseño Mecánico: Utilizar y hacer el disño que mas les gonenga, 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 Mađra hacer primero las conexiones en una protoboard, para comprobar que cuando la pongan en el PCB el funcionamiento sea el correcto y no tengan que agregar mas conexiones o volver a printmir el PCB.

3. Phần mềm Diseño: 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 indicucciones para que funcione correctamente.

Đề xuất: