Proyecto Laboratorio De Mecatrónica (Эки дөңгөлөктүү тең салмактуулук роботу): 6 кадам
Proyecto Laboratorio De Mecatrónica (Эки дөңгөлөктүү тең салмактуулук роботу): 6 кадам
Anonim
Image
Image

Бул "Эки дөңгөлөктүү тең салмактуулук роботу" программасын иштеп чыгуунун эң чоң мүмкүнчүлүгү болуп саналат. Төмөнкү роботтун жоктугу, анын мааниси жок дегенди билдирет, мантерендин эң акыркы пункту 0 де графвенад дель -гироскопия, жана сиз өзүңүздүн оригиналдуу пикириңизди караңыз.

1 -кадам: 1 -кадам: Материалдык керектөө

o Мекениктер:

а. 1 метро де варилла роскада (3/8)

б. 14 торнилло M3 x.07 x 6

в. 24 tuercas M8 hex

г. 3 торнилло M4 x.07 x 6

д. Filamento PLA (болжол менен 500 гр)

o Электрондук:

а. 1 үзгүлтүк өчүрүүчү

б. Arduino uno nano

в. 17 мотору жок

г. 2 айдоочу A4988

д. 3 каршылык 1к

f. HC-05

ж. MPU-6050

ч. 100uf же 47uf 2 конденсатор

мен. Batería lippo 11.1 V

o Piezas фаберликтери:

а. MDFтин 3 орду (120 x 170 x 6 мм)

б. Placa PCB (болжол менен 8 x 14 см)

в. Soporte batería

г. 2 мотор үчүн

д. 2 лланта

o Кошумча:

Программалар программалык камсыздоону сунуштайт.

а. Arduino IDE программасы

б. SolidWorks 2018

в. Kidcad программасы

2-кадам: 2-кадам: Система Mecánico-estructura

2-кадам: Mecánico-systema системасы
2-кадам: Mecánico-systema системасы
2-кадам: Mecánico-systema системасы
2-кадам: Mecánico-systema системасы

SolidWorksтун жалпы моделдерин түзүү, MDF үчүн эң арткы планшеттердин арткы бөлүктөрү. Төмөнкү шарттарда, эң төмөнкү тендерлерди жасоо үчүн, эң башкысы - ПКБ жана эң жогорку соло тендер лос orificios үчүн эң сонун тендер.

3 -кадам: 3 -кадам: Fabricación De Piezas 3D

SolidWorksтун эң сонун үлгүлөрүнүн бири, бул функциялардын бири дагы, эң чоңу да.35 см де диаметро, дагы бир жолу эң чоңу.

4 -кадам: 4 -кадам: Eléctrico/electrónico системасы

4 -кадам: Eléctrico/electrónico системасы
4 -кадам: Eléctrico/electrónico системасы

ПКБдан кийин, бул технологияны иштеп чыгуу үчүн, HC-05, Bluetooth HC-05 модулу, жана драйверлер 6050 ж. Las conexiones son las que se muestran en la imagen. Жөндөмдөрдү оңдоп -түзөө, бул жерде эч кандай функция жок, же эч кандай оңдоолор жок.

5 -кадам: 5 -кадам: Программалык камсыздоо

5 -кадам: Программалык камсыздоо
5 -кадам: Программалык камсыздоо

Ар кандай программалар колдонулганда, программанын үзгүлтүксүз иштеши, анексуалдык шилтеме жана аналогдук шилтемелердин толуктоосу:

Pos holdconfiguracion

// демейки POSHOLD көзөмөлү

#аныктоо POSHOLD_P 2.00

#аныктоо POSHOLD_I 0.0

#аныктоо POSHOLD_IMAX 20 // градус

#аныктоо POSHOLD_RATE_P 2.0

#аныктоо POSHOLD_RATE_I 0.08 // Шамалды башкаруу

#аныктоо POSHOLD_RATE_D 0.045 // POSHOLD_RATE 1 үчүн 2 же 3 аракет кылыңыз

#аныктоо POSHOLD_RATE_IMAX 20 // градус

// демейки Навигация PID утуштары

#define NAV_P 1.4

#define NAV_I 0.20 // Шамалды башкаруу

#аныктоо NAV_D 0.08 //

#аныктоо NAV_IMAX 20 // градус

1100

#Define MAXCHECK 1900

Акча табуу системасы үчүн эң чоң жетишкендик.

Gyro конфигурациясы:

жараксыз Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // I2C саат ылдамдыгын 400 кГцке өзгөртүү

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

кечигүү (5);

i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SLEEP 0; ЦИКЛ 0; TEMP_DIS 0; CLKSEL 3 (Z Gyro шилтемеси менен PLL)

i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (маалыматтарды синхрондоштуруу үчүн киргизүү пинин өчүрүү); демейки DLPF_CFG = 0 => ACC өткөрүү жөндөмү = 260Hz GYRO өткөрүү жөндөмдүүлүгү = 256Гц)

i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Толук масштаб 2000 град/сек

// AUX I2C үчүн I2C айланып өтүүсүн иштетүү

#аныкталган болсо (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_KR = 1; CLKOUT_EN = 0

#endif

}

жараксыз Gyro_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION (((rawADC [0] 2, // диапазону: +/- 8192; +/- 2000 град/сек

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

GYRO_Common ();

}

жараксыз ACC_init () {

i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (Толук масштаб = +/- 8G); ACCELL_HPF = 0 // спецификада бир нерсе туура эмес экенин эске алыңыз.

// эскертүү: бул жердеги спецификада бир нерсе туура эмес окшойт. AFS = 2 1G = 4096 менен, бирок менин өлчөөм боюнча: 1G = 2048 (жана 2048/8 = 256)

// бул жерде тастыкталган:

#аныкталган болсо (MPU6050_I2C_AUX_MASTER)

// бул этапта, MAG I2C айланып өтүү режиминде баштапкы MAG init функциясы аркылуу конфигурацияланат

// азыр биз MPUду I2C AUX порт аркылуу MAG менен иштөө үчүн I2C Master түзмөгү катары конфигурациялайбыз (бул жерде HMC5883 үчүн жасалган)

i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (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 (I2C кул ылдамдыгы шинасы = 400 кГц)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (окуу операциясы); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - MAGнын 6 маалымат байты 6 реестрде сакталат. Биринчи каттоо дареги - 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 байт)

#endif

}

жараксыз ACC_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);

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

ACC_Common ();

}

// MAG алуу функциясын алмаштыруу керек, анткени биз азыр MPU түзмөгү менен сүйлөшөбүз

#аныкталган болсо (MPU6050_I2C_AUX_MASTER)

жараксыз Device_Mag_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 EXT_SENS_DATA үчүн биринчи эстутум бөлмөсү

#аныкталган болсо (HMC5843)

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

#endif

#аныкталган болсо (HMC5883)

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

#endif

#аныкталган болсо (MAG3110)

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

#endif

}

#endif

#endif

6 -кадам: 6 -кадам: Consejos

1. Diseño Mecánico: Utilizar y hacer el hastalıkñ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. Электрондук диагностика: ПКБ, паракорчулуктун деңгээли оңдоп -түзөө, эң башкысы hacer, higer manera hacer primero las conexiones en una protoboard, para comprobar que cuando la el pongan en el PCB el funcionamiento тениз оң. que agregar mas conexiones o PCV үчүн эң маанилүү нерсе.

3. Diseño Software: Guiarse con la programación expuesta, trac de de hacer program propión, a para llegar a entender bien el funcionamiento y en caso de que no funcionar la programación saber como cambiar las instrucciones for fun funcione düzeltme.

Сунушталууда: