فهرست مطالب:

Proyecto Laboratorio De Mecatrónica (ربات تعادل دو چرخ): 6 مرحله
Proyecto Laboratorio De Mecatrónica (ربات تعادل دو چرخ): 6 مرحله

تصویری: Proyecto Laboratorio De Mecatrónica (ربات تعادل دو چرخ): 6 مرحله

تصویری: Proyecto Laboratorio De Mecatrónica (ربات تعادل دو چرخ): 6 مرحله
تصویری: Makeblock Untimate Robot Kit Part 1 : Step by Step Assembly Robot of Aram Tank 2024, نوامبر
Anonim
Image
Image

برای پیش بینی بیشتر کارکرد ، می توان به عنوان یک "ربات تعادل دو چرخ" در توضیح و تصحیح مفاهیم استفاده کرد. Este es un sistema que konset en en el 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.

مرحله 1: مرحله 1: Material Requerido

o مکانیکوس:

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

ب 14 تورنیلو M3 x.07 x 6

ج 24 tuercas M8 hex

د 3 تورنیلو M4 x.07 x 6

ه Filamento PLA (حدود 500 گرم)

o Electrónicos:

آ. 1 کلید قطع کننده

ب آردوینو اونو نانو

ج 2 موتور نما 17

د 2 راننده A4988

ه 3 مقاومت 1k

f HC-05

گرم MPU-6050

ساعت 2 capacitores de 100uf o 47uf

من. باتریا لیپو 11.1 ولت

o Piezas fabricadas:

آ. 3 پلاک MDF (120 x 170 x 6 میلی متر)

ب پلاک PCB (8 14 14 سانتی متر تقریبی)

ج Soporte batería

د 2 موتور برای موتور

ه 2 لانتا

o موارد اضافی:

نرم افزارها به منظور پیاده سازی توصیه می شوند.

آ. نرم افزار Arduino IDE

ب سالیدورک 2018

ج نرم افزار Kidcad

مرحله 2: مرحله 2: Sistema Mecánico-estructura

مرحله 2: Sistema Mecánico-estructura
مرحله 2: Sistema Mecánico-estructura
مرحله 2: Sistema Mecánico-estructura
مرحله 2: Sistema Mecánico-estructura

El modelado de las piezas y estructura general se realizo en SolidWorks ، در وهله اول می توانید از MDF برای 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 estructura.

مرحله 3: مرحله 3: Fabricación De Piezas 3D

برای استفاده از روشهای استفاده از SolidWorks ، به عنوان یک برنامه کاربردی ، می توانید از راهکارهای پیش رو استفاده کنید.

مرحله 4: مرحله 4: Sistema Eléctrico/electrónico

مرحله 4: Sistema Eléctrico/electrónico
مرحله 4: Sistema Eléctrico/electrónico

در صورت استفاده از PCB ، برای توسعه بیشتر conexionesrespondientes ، haciendo el enlace entre el arduino ، modulo de Bluetooth HC-05 ، un giroscopio 6050 y los drivers 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 correctmente no no obedezca.

مرحله 5: مرحله 5: نرم افزار

مرحله 5: نرم افزار
مرحله 5: نرم افزار

Para el programa utilizamos un arduino ، یک تداوم anexamos una parte de la programación con su explicación correspondente ، یک پیوند غیرعلمی و غیره ، con el codigo completeo:

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 // 2 یا 3 را برای POSHOLD_RATE 1 امتحان کنید

#تعریف POSHOLD_RATE_IMAX 20 // درجه

// پیش فرض PID ناوبری

#تعریف NAV_P 1.4

#تعریف NAV_I 0.20 // کنترل باد

#تعریف NAV_D 0.08 //

#تعریف NAV_IMAX 20 // درجه

#MINCHECK 1100 را تعریف کنید

#MAXCHECK 1900 را تعریف کنید

Aqui se modifica los به دست آوردن امکان دستیابی به سیستم می پردازد.

تنظیمات ژیروسکوپ:

void 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 - خواب 0 ؛ چرخه 0 ؛ TEMP_DIS 0 ؛ CLKSEL 3 (PLL با مرجع Z Gyro)

i2c_writeReg (MPU6050_ADDRESS ، 0x1A ، MPU6050_DLPF_CFG) ؛ // CONFIG - EXT_SYNC_SET 0 (پین ورودی را برای همگام سازی داده ها غیرفعال کنید) ؛ پیش فرض DLPF_CFG = 0 => پهنای باند ACC = پهنای باند GYRO 260 هرتز = 256 هرتز)

i2c_writeReg (MPU6050_ADDRESS ، 0x1B ، 0x18) ؛ // GYRO_CONFIG - FS_SEL = 3: مقیاس کامل روی 2000 درجه در ثانیه تنظیم شده است

// فعال کردن بای پس I2C برای AUX 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_EN = 1 ؛ CLKOUT_EN = 0

#اندیف

}

void Gyro_getADC () {

i2c_getSixRawADC (MPU6050_ADDRESS ، 0x43) ؛

GYRO_ORIENTATION (((rawADC [0] 2 ، // محدوده: +/- 8192 ؛ +/- 2000 درجه در ثانیه

((rawADC [2] 2 ،

((rawADC [4] 2) ؛

GYRO_Common ()؛

}

void 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 از طریق عملکرد اصلی MAG init در حالت دور زدن I2C پیکربندی می شود

// اکنون ما MPU را به عنوان یک دستگاه اصلی I2C پیکربندی می کنیم تا MAG را از طریق پورت I2C AUX اداره کند (در اینجا برای 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 = 400kHz)

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 - 6 بایت داده MAG در 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 بایت)

#اندیف

}

void 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)

void 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])) ؛

#اندیف

اگر تعریف شده باشد (HMC5883)

MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]) ،

((rawADC [4] << 8) | rawADC [5]) ،

((rawADC [2] << 8) | rawADC [3])) ؛

#اندیف

اگر تعریف شده باشد (MAG3110)

MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]) ،

((rawADC [2] << 8) | rawADC [3]) ،

((rawADC [4] << 8) | rawADC [5])) ؛

#اندیف

}

#اندیف

#اندیف

مرحله 6: مرحله 6: Consejos

1. Diseño Mecánico: Utilizar 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 perfección

2. Diseño 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 ten el el correcto y no funcionamiento ten el rasto y correcto que agregar mas conexiones o volver a imprimir el PCB.

3. نرم افزارهای کاربردی: برنامه های کاربردی اصلی را در برنامه خود قرار دهید ، اما می توانید از برنامه های کاربردی خود استفاده کنید ، بنابراین می توانید با استفاده از برنامه های کاربردی برنامه های کاربردی را به منظور تصحیح برنامه اجرا کنید.

توصیه شده: