Mündəricat:

Proyecto Laboratorio De Mecatrónica (İki Təkərli Balans Robotu): 6 addım
Proyecto Laboratorio De Mecatrónica (İki Təkərli Balans Robotu): 6 addım

Video: Proyecto Laboratorio De Mecatrónica (İki Təkərli Balans Robotu): 6 addım

Video: Proyecto Laboratorio De Mecatrónica (İki Təkərli Balans Robotu): 6 addım
Video: Makeblock Untimate Robot Kit Part 1 : Step by Step Assembly Robot of Aram Tank 2024, Noyabr
Anonim
Image
Image

Bu, "İki təkərli balans robotu" nu hazırlamaq üçün ən yaxşı funksiyanı yerinə yetirir. Robotların heç birində heç bir şey yoxdur, bu da mantenerin ən böyük nöqtəsidir 0, həm də girvedoskopiya, həm də başqa bir şey üçün orijinaldır.

Addım 1: Addım 1: Material Tələbləri

o Mekaniklər:

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 (təxminən 500 qr)

o Elektroniklər:

a. 1 kəsici açar

b. Arduino və ya nano

c. 2 motorlu maşın 17

d. 2 sürücü A4988

e. 3 müqavimət 1k

f. HC-05

g. MPU-6050

h. 100uf və 47uf üçün 2 kondansatör

i. Batareya lifi 11.1 V.

o Piezas fabrikləri:

a. MDF üçün 3 ölçü (120 x 170 x 6 mm)

b. Placa PCB (təxminən 8 x 14 sm)

c. Bateria

d. 2 ədəd motor üçün

e. 2 llantas

o Əlavələr:

Proqram təminatı proyekto üçün tövsiyə olunur.

a. Arduino IDE proqramı

b. SolidWorks 2018

c. Kidcad proqramı

Addım 2: Adım 2: Sistem Mecánico-estructura

Addım 2: Mexanik quruluş sistemi
Addım 2: Mexanik quruluş sistemi
Addım 2: Sistem quruluşu
Addım 2: Sistem quruluşu

SolidWorks -də, MDF -in əsas funksiyalarını yerinə yetirmək üçün ən çox istifadə edilən modellər. Bu vəziyyətdə, hər hansı bir şeyə ehtiyacınız yoxdursa, PCB və ya PCB -nin mərkəzi hissələri ən yaxşı şəkildə qurulub.

Addım 3: Adım 3: Fabricación De Piezas 3D

SolidWorks -də ən çox istifadə edilən modellər, müxtəlif funksiyalar, ən böyük funksiyalar, 35 sm -dən çox olmayan ölçülər və ölçülər üçün nəzərdə tutulmuşdur.

Adım 4: Adım 4: Sistem Eléctrico/electrónico

Addım 4: Eléctrico/electrónico sistemi
Addım 4: Eléctrico/electrónico sistemi

PCB-dən istifadə etmək lazım deyilsə, bu, Bluetooth HC-05 modulları, sürücülər üçün ən yüksək texnologiyalı sürücülərdir. Las conexiones ən böyük xəyaldır. Düzəlişlər edildikdə, sistem heç bir funksiyanı düzəltməmişdir.

Addım 5: Adım 5: Proqram təminatı

Addım 5: Proqram təminatı
Addım 5: Proqram təminatı

Proqramlar bir arduino ilə, bir proqramla əlaqələndirilir və bir -biri ilə əlaqəli bir əlaqə qurulur, bir -biri ilə əlaqə qurulur:

Konfiqurasiya tutun

// standart POSHOLD nəzarət qazanır

#təyin POSHOLD_P 2.00

#təyin POSHOLD_I 0.0

#POSHOLD_IMAX 20 // dərəcə təyin edin

#POSHOLD_RATE_P 2.0 təyin edin

#POSHOLD_RATE_I 0.08 təyin edin // Külək nəzarəti

#POSHOLD_RATE_D 0.045 təyin edin // POSHOLD_RATE 1 üçün 2 və ya 3 cəhd edin

#POSHOLD_RATE_IMAX 20 // dərəcə təyin edin

// standart Naviqasiya PID qazanır

#define NAV_P 1.4

#define NAV_I 0.20 // Külək idarəsi

#NAV_D 0.08 təyin edin //

#NAV_IMAX 20 // dərəcə təyin edin

#define MINCHECK 1100

#dexine MAXCHECK 1900

Sistemin bütün imkanlarını əldə etməklə qazanc əldə edə bilərsiniz.

Gyro qurmaq:

boş Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // I2C saat sürətini 400 kHz -ə dəyişdirin

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

gecikmə (5);

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - YUXU 0; CYCLE 0; TEMP_DIS 0; CLKSEL 3 (Z Gyro istinadlı PLL)

i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (məlumat sinxronizasiyası üçün giriş pinini deaktiv edin); standart DLPF_CFG = 0 => ACC bant genişliyi = 260Hz GYRO bant genişliyi = 256Hz)

i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Tam miqyas 2000 deq/san

// AUX I2C üçün I2C bypassını aktiv edin

#if müəyyən edildikdə (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_TR = 1; CLKOUT_EN = 0

#endif

}

boş Gyro_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION (((rawADC [0] 2, // aralığı: +/- 8192; +/- 2000 dərəcə/san

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

GYRO_Common ();

}

etibarsız ACC_init () {

i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (Tam Ölçü = +/- 8G); ACCELL_HPF = 0 // spesifikasiyada səhv bir şey olduğunu qeyd edin.

// qeyd: buradakı spesifikasiyada səhv bir şey görünür. AFS = 2 ilə 1G = 4096, lakin mənim ölçümə görə: 1G = 2048 (və 2048/8 = 256)

// burada təsdiqləndi:

#if müəyyən edildikdə (MPU6050_I2C_AUX_MASTER)

// bu mərhələdə, MAG I2C bypass rejimində orijinal MAG init funksiyası vasitəsilə konfiqurasiya olunur

// indi MPU -nu I2C AUX portu vasitəsilə MAG idarə etmək üçün I2C Master cihazı olaraq konfiqurasiya edirik (burada HMC5883 üçün hazırlanmışdır)

i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (I2C master 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 slave speed bus = 400kHz)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (oxu əməliyyatı); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - MAG -ın 6 məlumat baytı 6 qeyddə saxlanılır. İlk qeydiyyat ünvanı MAG_DATA_REGISTER -dir

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

}

etibarsız ACC_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);

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

ACC_Common ();

}

// MAG əldə etmə funksiyası dəyişdirilməlidir, çünki indi MPU cihazı ilə danışırıq

#if müəyyən edildikdə (MPU6050_I2C_AUX_MASTER)

void Device_Mag_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 EXT_SENS_DATA üçün ilk yaddaş otağıdır

#if müəyyən edildikdə (HMC5843)

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

#endif

#if müəyyən edildikdə (HMC5883)

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

#endif

#if müəyyən edildikdə (MAG3110)

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

#endif

}

#endif

#endif

Adım 6: Adım 6: Consejos

1. Diseño Mecánico: Utilizar y hacer el xəstəñ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 in 3D, no tengan que volver a hacerlo y todo mükəmməlləşdirmək.

2. Əlaqələr: PCB -də, kompüterdə ən yüksək standartlara uyğun olaraq, hacer -in ən çox istifadə edildiyi yerlərdə, həm də protoboardda, həm də PCB -də ən çox istifadə olunan kompüterlərdir. PCB -dən istifadə etmək daha yaxşıdır.

3. Diseño Software: Proqramın əsas proqramları, proqramlar, proqramlar, proqramlar, proqramlar, proqramlar, proqramlar və proqramlar heç bir yerdə göstərilmir.

Tövsiyə: