Mundarija:

Proyecto Laboratorio De Mecatrónica (ikki g'ildirakli balansli robot): 6 qadam
Proyecto Laboratorio De Mecatrónica (ikki g'ildirakli balansli robot): 6 qadam

Video: Proyecto Laboratorio De Mecatrónica (ikki g'ildirakli balansli robot): 6 qadam

Video: Proyecto Laboratorio De Mecatrónica (ikki g'ildirakli balansli robot): 6 qadam
Video: Laboratorio de Mecatrónica 2024, Noyabr
Anonim
Image
Image

"Ikki g'ildirakli balansli robot" ni ishlab chiqishda, bu sizning vazifangizdir. Robot hech qanday muammo tug'dirmaydi, mantener va el 0 punkti, shuningdek, grvedoskopiya, shuningdek, asl nusxa ko'chiriladi.

1 -qadam: 1 -qadam: Materiallar talab qilinadi

o Mekaniklar:

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

b. 14 tornello M3 x.07 x 6

v. 24 dyuymli M8 olti burchakli

d. 3 ta tornado M4 x.07 x 6

e. Filamento PLA (taxminan 500 gr.)

o Elektron:

a. 1 ta uzuvchi kalit

b. Arduino yoki nano

v. 2 dvigatel 17

d. 2 haydovchi A4988

e. 3 qarshilik 1k

f. HC-05

g. MPU-6050

h. 100uf yoki 47uf 2 kondansatör

i. Quvvat manbai 11.1 V

o Piezas matolari:

a. MDF uchun 3 ta joy (120 x 170 x 6 mm)

b. Placa PCB (taxminan 8 x 14 sm)

v. Sotib olish

d. Dvigatel uchun 2 qism

e. 2 llanta

o Qo'shimchalar:

Dasturlar dasturiy ta'minotni realizatsiya qilish uchun tavsiya etiladi.

a. Arduino IDE dasturi

b. SolidWorks 2018

v. Kidcad dasturi

2-qadam: 2-qadam: Mexanik-tizimli tizim

2-qadam: Mexanik-tizimli tizim
2-qadam: Mexanik-tizimli tizim
2-qadam: Mexanik-tizimli tizim
2-qadam: Mexanik-tizimli tizim

SolidWorks -da, MDF -ning asosiy vazifasi - bu posterior va orqa qismlar uchun MDF -ni yaratish. Bu erda eng past tendentsiyalar mavjud bo'lib, ular PCB va yuqori darajadagi PCB va yuqori darajadagi eng yaxshi tendentsiyalarga ega.

3 -qadam: 3 -qadam: Fabricación De Piezas 3D

SolidWorks -ning eng yaxshi modellari, shuningdek, eng katta funktsiyalar, shuningdek, 35 santimetrdan ortiq bo'lmagan masofada joylashgan.

4 -qadam: 4 -qadam: Elektrika tizimi/elektr

4 -qadam: Elektronik tizim
4 -qadam: Elektronik tizim

Bu PCB-ni ishlatish uchun javobgardir, shuning uchun Bluetooth HC-05, Bluetooth-ning 6050-sonli haydovchisiga mos keladigan qurilmalar mavjud. Las conexiones son las que se muestran en la imagen. Aniqroq aytganda, siz hech qanday tuzatish kiritmagansiz.

5 -qadam: 5 -qadam: dasturiy ta'minot

5 -qadam: dasturiy ta'minot
5 -qadam: dasturiy ta'minot

Bir vaqtning o'zida dasturni ochish, dasturni uzluksiz ochish, havola qilish, havola qilish va havolani to'ldirish uchun:

Konfiguratsiya pozitsiyasi

// standart POSHOLD boshqaruv yutuqlari

#POSHOLD_P 2.00 ni aniqlang

#POSHOLD_I 0.0 ni belgilang

#POSHOLD_IMAX 20 // darajalarini aniqlang

#POSHOLD_RATE_P 2.0 ni aniqlang

#POSHOLD_RATE_I 0.08 ni belgilang // Shamol nazorati

#POSHOLD_RATE_D 0.045 ni belgilang // POSHOLD_RATE 1 uchun 2 yoki 3 ni sinab ko'ring.

#POSHOLD_RATE_IMAX 20 // darajalarini aniqlang

// standart Navigatsiya PID yutuqlari

#ta'rif NAV_P 1.4

#define NAV_I 0.20 // Shamol nazorati

#NAV_D 0.08 ni aniqlang //

#NAV_IMAX 20 // darajalarini aniqlang

#ta'rif MINCHECK 1100

#MAXCHECK 1900 ni aniqlang

Tizim tizimiga tegishli bo'lgan modifikatsiyalarni qo'lga kiritish mumkin.

Jirosni sozlash:

bekor Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // I2C soat tezligini 400 kHz ga o'zgartiring

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

kechikish (5);

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SLEE 0; CYCLE 0; TEMP_DIS 0; CLKSEL 3 (Z Gyro mos yozuvlar bilan PLL)

i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (ma'lumotlarni sinxronlash uchun kirish pinini o'chirish); standart DLPF_CFG = 0 => ACC tarmoqli kengligi = 260Hz GYRO tarmoqli kengligi = 256Hz)

i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: To'liq o'lchov 2000 daraja/sek

// AUX I2C uchun I2C bypassini yoqish

#if aniqlangan (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

}

bekor Gyro_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION (((rawADC [0] 2, // diapazon: +/- 8192; +/- 2000 daraja/soniya)

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

GYRO_Common ();

}

bekor ACC_init () {

i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (To'liq o'lchov = +/- 8G); ACCELL_HPF = 0 // spetsifikatsiyada biror narsa noto'g'riligiga e'tibor bering.

// eslatma: bu erda spetsifikatsiyada biror narsa noto'g'ri bo'lib tuyuladi. AFS = 2 1G = 4096 bilan, lekin mening o'lchovim bo'yicha: 1G = 2048 (va 2048/8 = 256)

// bu erda tasdiqlangan:

#if aniqlangan (MPU6050_I2C_AUX_MASTER)

// bu bosqichda, MAG I2C bypass rejimida original MAG init funktsiyasi orqali konfiguratsiya qilinadi

// endi biz MPUni I2C AUX porti orqali MAG bilan ishlash uchun I2C Master qurilmasi sifatida sozlaymiz (bu erda HMC5883 uchun qilingan)

i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (I2C asosiy rejimi); 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 (I2C qul tezligi shinasi = 400 kHz)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (o'qish operatsiyasi); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 registrda MAG ma'lumot baytlari saqlanadi. Birinchi ro'yxatga olish manzili - 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 bayt)

#endif

}

bekor ACC_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);

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

ACC_Common ();

}

// MAG olish funktsiyasini almashtirish kerak, chunki biz hozir MPU qurilmasi bilan gaplashamiz

#if aniqlangan (MPU6050_I2C_AUX_MASTER)

void Device_Mag_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 - EXT_SENS_DATA uchun birinchi xotira xonasi

#if aniqlangan (HMC5843)

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

#endif

#if aniqlangan (HMC5883)

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

#endif

#aniqlangan bo'lsa (MAG3110)

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

#endif

}

#endif

#endif

6 -qadam: 6 -qadam: Consejos

1. Déñéné Mecánico: Utilizar y hacer el hastño que mas les 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. Elektron disklar: tenglikni tenglashtirish, eng yuqori darajadagi operatsion tizimlar, eng yuqori darajadagi protsessorlar, eng yuqori darajadagi kompyuter kartalari, kompyuterlar uchun tenglashtirish. que agregar mas conexiones o volver a uncimir el PCB.

3. Diseño dasturiy ta'minoti: dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar, dasturlar va dasturlar uchun.

Tavsiya: