İçindekiler:

Proyecto Laboratorio De Mecatrónica (İki Tekerlekli Denge Robotu): 6 Adım
Proyecto Laboratorio De Mecatrónica (İki Tekerlekli Denge Robotu): 6 Adım

Video: Proyecto Laboratorio De Mecatrónica (İki Tekerlekli Denge Robotu): 6 Adım

Video: Proyecto Laboratorio De Mecatrónica (İki Tekerlekli Denge Robotu): 6 Adım
Video: Дэннис Хонг: Мои семь видов робота 2024, Kasım
Anonim
Image
Image

En este proyecto se mostrara, el funcionamiento ve como hacer para elaborar un "İki tekerlekli denge robotu" paso bir paso y con açıklanması ve conjos. Este un sistema que consiste tr que el robotu es no se debe Caer, se debe de mantener en el 0 punto su punto de gravedad del giroscopio y así poder moverlo y que este regrese por si mismo bir su posicion orijinal de.

Adım 1: Adım 1: Malzeme Requerido

o Mecanicos:

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

B. 14 tornillo M3 x.07 x 6

C. 24 tuercas M8 altıgen

NS. 3 tornillo M4 x.07 x 6

e. Filamento PLA (yaklaşık 500 gr)

o Elektronik:

a. 1 kesici anahtarı

B. Arduino uno o nano

C. 2 motor nema 17

NS. 2 sürücü A4988

e. 3 direnç 1k

F. HC-05

G. MPU-6050

H. 2 kapasitör de 100uf veya 47uf

ben. Batería lippo 11.1 V

o Piezas fabrikaları:

a. 3 adet MDF levhası (120 x 170 x 6 mm)

B. Placa PCB (8 x 14 cm yaklaşık)

C. soporte batería

NS. 2 soport para motor

e. 2 lanta

o Ekstralar:

Yazılımlar, proyecto para la realización del proyecto'yu tavsiye eder.

a. Arduino IDE yazılımı

B. SolidWorks 2018

C. Kidcad yazılımı

Adım 2: Adım 2: Sistema Mecanico-estructura

Adım 2: Sistema Mecanico-estructura
Adım 2: Sistema Mecanico-estructura
Adım 2: Sistema Mecanico-estructura
Adım 2: Sistema Mecanico-estructura

SolidWorks'ün genel tasarımı ve gerçeklenmesi, MDF'nin temel ilkelerindendir. En büyük paralar, yeni başlangıçlar, en düşük seviyeli motorlar ve bateryalar, merkezi para nuestra PCB ve üstün solo eğilimler para darle su estructura.

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

SolidWorks'ün temel işlevlerinin en iyi şekilde değerlendirilmesi, temel işlevlerin yerine getirilmesi ve yeniden yapılandırılması için en önemli işlevlere sahiptir.

Adım 4: Adım 4: Sistema Elektrik/elektronik

Adım 4: Sistema Elektrik/elektronik
Adım 4: Sistema Elektrik/elektronik

PCB'den en çok yararlanan, en uygun şekilde tasarlanmış yazışmalar, en iyi arduino, Bluetooth HC-05 modulo, 6050 ve los motor sürücülerinin en son sürücüleri. 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.

Adım 5: Adım 5: Yazılım

Adım 5: Yazılım
Adım 5: Yazılım

Para el programa utilizamos un arduino, bir continuación anexamos un parte de la programación con su expplicación yazışmaları, tüm ek ek bağlantı, con el codigo completo:

Konum bekletme yapılandırması

// varsayılan POSHOLD kontrol kazançları

#define POSHOLD_P 2.00

#define POSHOLD_I 0.0

#define POSHOLD_IMAX 20 // derece

#define POSHOLD_RATE_P 2.0

#define POSHOLD_RATE_I 0.08 // Rüzgar kontrolü

#define POSHOLD_RATE_D 0.045 // POSHOLD_RATE 1 için 2 veya 3'ü deneyin

#define POSHOLD_RATE_IMAX 20 // derece

// varsayılan Gezinme PID kazançları

#define NAV_P 1.4

#define NAV_I 0.20 // Rüzgar kontrolü

#define NAV_D 0.08 //

#define NAV_IMAX 20 // derece

#define MINCHECK 1100

#define MAXCHECK 1900

Aqui se modifica los, para el poss hold del sistema kazanır.

Konfigürasyon jiroskopu:

geçersiz Gyro_init() {

TWBR = ((F_CPU / 400000L) - 16) / 2; // I2C saat hızını 400kHz olarak değiştirin

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

gecikme(5);

i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x03); //PWR_MGMT_1 -- UYKU 0; DÖNGÜ 0; TEMP_DIS 0; CLKSEL 3 (Z Gyro referanslı PLL)

i2c_writeReg(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); //CONFIG -- EXT_SYNC_SET 0 (veri senkronizasyonu için giriş pinini devre dışı bırakın); varsayılan DLPF_CFG = 0 => ACC bant genişliği = 260Hz GYRO bant genişliği = 256Hz)

i2c_writeReg(MPU6050_ADDRESS, 0x1B, 0x18); //GYRO_CONFIG -- FS_SEL = 3: Tam ölçek 2000 derece/sn'ye ayarlandı

// AUX I2C için I2C baypasını etkinleştir

#if tanımlı(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

}

geçersiz Gyro_getADC () {

i2c_getSixRawADC(MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION(((rawADC[0]2, // aralık: +/- 8192; +/- 2000 derece/sn)

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

GYRO_Common();

}

geçersiz ACC_init () {

i2c_writeReg(MPU6050_ADDRESS, 0x1C, 0x10); //ACCEL_CONFIG -- AFS_SEL=2 (Tam Ölçek = +/-8G); ACCELL_HPF=0 //spesifikasyonda bir sorun olduğuna dikkat edin.

//not: buradaki spesifikasyonda bir şeyler yanlış görünüyor. AFS=2 ile 1G = 4096 ama benim ölçümüme göre: 1G=2048 (ve 2048/8 = 256)

//burada onaylandı:

#if tanımlı(MPU6050_I2C_AUX_MASTER)

//bu aşamada, MAG, I2C baypas modunda orijinal MAG başlatma işlevi aracılığıyla yapılandırılır

//şimdi MPU'yu I2C AUX bağlantı noktası aracılığıyla MAG'yi işlemek için bir I2C Ana cihazı olarak yapılandırıyoruz (burada HMC5883 için yapılmıştır)

i2c_writeReg(MPU6050_ADDRESS, 0x6A, 0b00100000); //USER_CTRL -- DMP_EN=0; FIFO_EN=0; I2C_MST_EN=1 (I2C ana modu); 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 bağımlı hız veriyolu = 400kHz)

i2c_writeReg(MPU6050_ADDRESS, 0x25, 0x80|MAG_ADDRESS);//I2C_SLV0_ADDR -- I2C_SLV4_RW=1 (okuma işlemi); I2C_SLV4_ADDR=MAG_ADDRESS

i2c_writeReg(MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER);//I2C_SLV0_REG -- MAG'ın 6 veri baytı 6 kayıtta saklanır. İlk kayıt adresi 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

}

geçersiz ACC_getADC () {

i2c_getSixRawADC(MPU6050_ADDRESS, 0x3B);

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

ACC_Ortak();

}

//Artık MPU cihazıyla konuştuğumuz için MAG edinme işlevi değiştirilmelidir.

#if tanımlı(MPU6050_I2C_AUX_MASTER)

geçersiz Device_Mag_getADC() {

i2c_getSixRawADC(MPU6050_ADDRESS, 0x49); //0x49, EXT_SENS_DATA için ilk bellek odasıdır

#if tanımlı(HMC5843)

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

#endif

#if tanımlı (HMC5883)

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

#endif

#if tanımlı (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 diseño 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 izlenimler en 3D, hiçbir tengan que volver bir hacerlo y todo mükemmel bir şey.

2. Elektronik Devre Dışı: PCB'nin her türlüsüne uygun, her iki kartın da dahil olduğu durumlar, herhangi bir onay için bir protokol, bir protokol, bir onay kartı ve bir devre kartı ile bir PCB ve bir işleve sahip değildir. que agregar mas conexiones veya bir imprimir el PCB volver.

3. Diseño Yazılımı: Programlamanın temel kullanımları, programların doğru kullanılması için temel yetkilendirmeler, para llegar a müteşebbisler için uygun bir programdır.

Önerilen: