Turinys:

„Proyecto Laboratorio De Mecatrónica“(dviejų ratų balansavimo robotas): 6 žingsniai
„Proyecto Laboratorio De Mecatrónica“(dviejų ratų balansavimo robotas): 6 žingsniai

Video: „Proyecto Laboratorio De Mecatrónica“(dviejų ratų balansavimo robotas): 6 žingsniai

Video: „Proyecto Laboratorio De Mecatrónica“(dviejų ratų balansavimo robotas): 6 žingsniai
Video: Charla de Carrera - Ingeniería Mecatrónica 2024, Liepa
Anonim
Image
Image

En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un "Dviejų ratų balansavimo robotas" paso a paso y con explicación y concejos. Este es un system que consiste en que 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 posición original.

1 žingsnis: 1 žingsnis: medžiagos reikalavimas

o „Mecánicos“:

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

b. 14 tornilių M3 x.07 x 6

c. 24 tuercas M8 šešiakampis

d. 3 tornillos M4 x.07 x 6

e. „Filamento PLA“(maždaug 500 g)

o Elektronika:

a. 1 pertraukiklio jungiklis

b. Arduino uno arba nano

c. 2 motores nema 17

d. 2 vairuotojai A4988

e. 3 atsparumas 1k

f. HC-05

g. MPU-6050

h. 2 talpos 100uf arba 47uf

i. Batería lippo 11,1 V

o Piezas fabricadas:

a. 3 MDF plokštės (120 x 170 x 6 mm)

b. Placa PCB (maždaug 8 x 14 cm)

c. Akumuliatoriaus proporcija

d. 2 variantų variklis

e. 2 llantos

o Priedai:

Rekomenduojama programinė įranga, skirta realizuoti projektavimą.

a. „Arduino IDE“programinė įranga

b. „SolidWorks 2018“

c. „Kidcad“programinė įranga

2 žingsnis: 2 žingsnis: Sistema Mecánico-estructura

2 žingsnis: Sistema Mecánico-estructura
2 žingsnis: Sistema Mecánico-estructura
2 žingsnis: Sistema Mecánico-estructura
2 žingsnis: Sistema Mecánico-estructura

El modelado de las piezas ir estructura general se realo en SolidWorks, primero se crearon las placas de MDF para 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 veiksmas: 3 veiksmas: „Fabricación De Piezas 3D“

Para el modelado de los soportes y llantas igualmente utilizamos SolidWorks, estos soportes pueden ser modificados si así lo desean, para un mejor funcionamiento, los soportes tienen orificios de.35 cm de diámetro, para una mejor sujeción.

4 žingsnis: 4 žingsnis: Sistema Eléctrico/Electronico

4 žingsnis: Sistema Eléctrico/Electronico
4 žingsnis: Sistema Eléctrico/Electronico

Naudokite tik PCB, atitinkamus korespondentų korespondentus, haciendo el enlace entre el arduino, „Bluetooth HC-05“modulį ir 6050 giroskopiją bei „los motores“vairuotojus. 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 system no funcione correctamente y no lo obedezca.

5 veiksmas: 5 veiksmas: programinė įranga

5 žingsnis: programinė įranga
5 žingsnis: programinė įranga

Programos panaudojimo ir arduino programa, nenutrūkstama programos dalis ir programos dalis su aiškinamuoju susirašinėjimu, al igual anexo nuoroda, visas el. Kodas:

Pos holdconfiguracion

// numatytasis POSHOLD valdymo pelnas

#define POSHOLD_P 2.00

#define POSHOLD_I 0.0

#define POSHOLD_IMAX 20 // laipsnių

#define POSHOLD_RATE_P 2.0

#define POSHOLD_RATE_I 0.08 // Vėjo valdymas

#define POSHOLD_RATE_D 0.045 // išbandykite 2 arba 3, kad gautumėte 1 POSHOLD_RATE

#define POSHOLD_RATE_IMAX 20 // laipsnių

// numatytasis navigacijos PID padidinimas

#define NAV_P 1.4

#define NAV_I 0.20 // Vėjo valdymas

#define NAV_D 0.08 //

#define NAV_IMAX 20 // laipsnių

#define MINCHECK 1100

#define MAXCHECK 1900

Aqui se modifica los gains para el poss hold del system.

Giroskopo konfigūravimas:

void Gyro_init () {

TWBR = ((F_CPU / 400000L) - 16) / 2; // pakeisti I2C laikrodžio dažnį į 400kHz

„i2c_writeReg“(MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - 1 ĮRENGINIS

vėlavimas (5);

„i2c_writeReg“(MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - MIEGAS 0; CIKLAS 0; TEMP_DIS 0; CLKSEL 3 (PLL su „Z Gyro“nuoroda)

„i2c_writeReg“(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (išjungti duomenų sinchronizavimo įvesties kaištį); numatytasis DLPF_CFG = 0 => ACC pralaidumas = 260 Hz GYRO pralaidumas = 256 Hz)

„i2c_writeReg“(MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: nustatyta visa skalė iki 2000 laipsnių per sekundę

// įgalinti I2C apėjimą AUX I2C

#jei apibrėžta (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

}

void Gyro_getADC () {

„i2c_getSixRawADC“(MPU6050_ADDRESS, 0x43);

GYRO_ORIENTATION (((rawADC [0] 2, // diapazonas: +/- 8192; +/- 2000 laipsnių per sekundę

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

GYRO_Common ();

}

void ACC_init () {

„i2c_writeReg“(MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (visa skalė = +/- 8G); ACCELL_HPF = 0 // atkreipkite dėmesį, kad specifikacijose kažkas negerai.

// pastaba: atrodo, kad čia specifikacijose kažkas negerai. Su AFS = 2 1G = 4096, bet pagal mano matavimus: 1G = 2048 (ir 2048/8 = 256)

// patvirtinta čia:

#if apibrėžta (MPU6050_I2C_AUX_MASTER)

// šiame etape MAG yra sukonfigūruotas naudojant originalią MAG init funkciją I2C apėjimo režimu

// dabar mes sukonfigūruojame MPU kaip „I2C Master“įrenginį, kad jis galėtų valdyti MAG per I2C AUX prievadą (čia padaryta HMC5883)

„i2c_writeReg“(MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_LT = 0; I2C_MST_EN = 1 (I2C pagrindinis režimas); 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 vergo greičio magistralė = 400 kHz)

i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (skaitymo operacija); I2C_SLV4_ADDR = MAG_ADDRESS

i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 MAG duomenų baitai saugomi 6 registruose. Pirmojo registro adresas yra 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 baitai)

#endif

}

void ACC_getADC () {

„i2c_getSixRawADC“(MPU6050_ADDRESS, 0x3B);

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

ACC_Common ();

}

// MAG surinkimo funkcija turi būti pakeista, nes dabar kalbame su MPU įrenginiu

#if apibrėžta (MPU6050_I2C_AUX_MASTER)

void Device_Mag_getADC () {

„i2c_getSixRawADC“(MPU6050_ADDRESS, 0x49); // 0x49 yra pirmasis EXT_SENS_DATA atminties kambarys

#if apibrėžta (HMC5843)

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

#endif

#if apibrėžta (HMC5883)

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

#endif

#jei apibrėžta (MAG3110)

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

#endif

}

#endif

#endif

6 veiksmas: 6 žingsnis: „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 sea el correcto y no tengan que agregar mas conexiones o volver a imprimir el PCB.

3. „Diseño“programinė įranga: „Guiarse con la programción base expuesta“, bet ne „hacer su propia“programa “, bet visoms programoms, pradedantiesiems ir pradedantiesiems, norintiems nefunkcionuoti ir neleisti funkcijoms atlikti programos.

Rekomenduojamas: