Sadržaj:
- Korak 1: Korak 1: Materijal Requerido
- Korak 2: Korak 2: Sistema Mecánico-estructura
- Korak 3: Korak 3: Fabricación De Piezas 3D
- Korak 4: Korak 4: Sistema Eléctrico/electrónico
- Korak 5: Korak 5: Softver
- Korak 6: Korak 6: Consejos
Video: Proyecto Laboratorio De Mecatrónica (Robot za balansiranje na dva točka): 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
En este proyecto se mostrara, el funkcionamiento y el como hacer para elaborar un "Two wheel balance robot" paso a paso y con explicación y concejos. Este es un system que consiste en que el robot no se debe caer, 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 pozición original.
Korak 1: Korak 1: Materijal Requerido
o Mecánicos:
a. 1 metro de varilla roscada (3/8)
b. 14 tornila M3 x 0,07 x 6
c. 24 tureka M8 šesterokutna
d. 3 tornila M4 x.07 x 6
e. Filamento PLA (otprilike 500 gr)
o Electrónicos:
a. 1 prekidač prekidača
b. Arduino uno o nano
c. 2 motores nema 17
d. 2 vozača A4988
e. 3 otpora 1k
f. HC-05
g. MPU-6050
h. 2 kondenzatora od 100uf do 47uf
i. Batería lippo 11.1 V
o Piezas fabricadas:
a. 3 ploče od MDF -a (120 x 170 x 6 mm)
b. Placa PCB (približno 8 x 14 cm)
c. Soporte batería
d. 2 soporte para motor
e. 2 llantasa
o Dodaci:
Softverski preporučljivi para la realización del proyecto.
a. Arduino IDE softver
b. SolidWorks 2018
c. Kidcad softver
Korak 2: Korak 2: Sistema Mecánico-estructura
El modeldo de las piezas y općenito o strukturi je realiziran u SolidWorks -u, premijerno je kreiran na svim pločama od MDF -a za escario disponible para posteriores usos. Estas placas son diferentes entre ellas, la placa inferior tendrás los orificios para los soportes de motores y batería, central central para nuestra PCB y superior superior solo tendrás los orificios para darle su estructura.
Korak 3: Korak 3: Fabricación De Piezas 3D
Za modele los soportes y llantas igualmente koristite SolidWorks, estos soportes pueden ser modifiedados si así lo desean, para un mejor funcionamiento, los soportes tienen orificios de. 35 cm de diametro, para una mejor sujeción.
Korak 4: Korak 4: Sistema Eléctrico/electrónico
Kako biste upotrijebili PCB, za detaljnije objašnjenje odgovarajućih konekcija, trebali biste unijeti arduino, po modulu Bluetooth HC-05, žiroskop 6050 i izgubiti upravljačke programe. Las conexiones son las que se muestran en la imagen. Asegúrese de hacer las conexiones correctamente, ya que de no ser así puede ocedeionar que el system no funcione correctamente y no lo obedezca.
Korak 5: Korak 5: Softver
Za korištenje programa un arduino, nastavak anexamos una parte de la programación con su objašnjenje korespondencije, al igual anexo link, con el codigo kompletno:
Pos holdconfiguracion
// zadani POSHOLD kontrolni dobici
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // stupnjeva
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Kontrola vjetra
#define POSHOLD_RATE_D 0.045 // pokušajte 2 ili 3 za POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // stepeni
// zadani dobitak PID -a navigacije
#define NAV_P 1.4
#define NAV_I 0.20 // Kontrola vjetra
#define NAV_D 0,08 //
#define NAV_IMAX 20 // stupnjeva
#define MINCHECK 1100
#define MAXCHECK 1900
Akvi se modifikuje gubitak dobitaka za zadržavanje sistema.
Konfiguracija žiroskopa:
void Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // mijenjamo brzinu takta I2C na 400 kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
kašnjenje (5);
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SLEEP 0; CIKLUS 0; TEMP_DIS 0; CLKSEL 3 (PLL sa referencom Z žiroskopa)
i2c_writeReg (MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); // CONFIG - EXT_SYNC_SET 0 (onemogući ulazni pin za sinhronizaciju podataka); Zadani DLPF_CFG = 0 => ACC širina pojasa = 260Hz GYRO širina pojasa = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Puna skala postavljena na 2000 stepeni/sek
// omogućujemo zaobilaženje I2C za AUX I2C
#ako je definirano (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, // raspon: +/- 8192; +/- 2000 stepeni/sek
((rawADC [2] 2, ((rawADC [4] 2);
GYRO_Common ();
}
void ACC_init () {
i2c_writeReg (MPU6050_ADDRESS, 0x1C, 0x10); // ACCEL_CONFIG-AFS_SEL = 2 (Puna skala = +/- 8G); ACCELL_HPF = 0 // imajte na umu da nešto nije u redu sa specifikacijama.
// napomena: čini se da nešto nije u redu u specifikacijama ovdje. Sa AFS = 2 1G = 4096, ali prema mojim mjerenjima: 1G = 2048 (i 2048/8 = 256)
// potvrđeno ovdje:
#ako je definirano (MPU6050_I2C_AUX_MASTER)
// u ovoj fazi, MAG je konfiguriran putem izvorne MAG init funkcije u I2C modu zaobilaženja
// sada konfiguriramo MPU kao I2C Master uređaj za rukovanje MAG -om preko I2C AUX priključka (ovdje učinjeno za HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EN = 0; FIFO_EN = 0; I2C_MST_EN = 1 (I2C master način rada); 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 brzina sabirnice = 400kHz)
i2c_writeReg (MPU6050_ADDRESS, 0x25, 0x80 | MAG_ADDRESS); // I2C_SLV0_ADDR - I2C_SLV4_RW = 1 (operacija čitanja); I2C_SLV4_ADDR = MAG_ADDRESS
i2c_writeReg (MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER); // I2C_SLV0_REG - 6 bajtova podataka MAG -a pohranjeno je u 6 registara. Prva adresa registra je 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 bajta)
#endif
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Common ();
}
// Funkcija akvizicije MAG -a mora se zamijeniti jer sada razgovaramo s MPU uređajem
#ako je definirano (MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 je prva memorijska soba za EXT_SENS_DATA
#if definirano (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
#if definirano (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8) | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#endif
#ako je definirano (MAG3110)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8) | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#endif
}
#endif
#endif
Korak 6: Korak 6: Consejos
1. Diseño Mecánico: Utilizar y hacer el diseño que mas les konvenga, 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 je 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 Ovaj agregat se može spojiti na štampač ili PCB.
3. Diseño softver: Guiarse con la programación base expuesta, pero tratar de hacer su propia programción, paralele a entender bien el funcionamiento y en caso de que no funcionar la programción sabre como cambiar las instrucciones para que funcione correctamente.
Preporučuje se:
Robot za balansiranje / Robot na 3 kotača / STEM robot: 8 koraka
Robot za balansiranje / Robot na tri kotača / STEM robot: Izgradili smo kombiniranog robota za balansiranje i rotiranje na 3 kotača za obrazovnu upotrebu u školama i posliješkolskim obrazovnim programima. Robot je zasnovan na Arduino Uno, prilagođenom štitu (svi detalji o konstrukciji navedeni), Li -Ion bateriji (svi izgrađeni
Zaštitite sav Wi -Fi putem VPN -a - pristupna točka!: 5 koraka
Zaštitite svu Wi -Fi mrežu putem VPN -a - pristupna točka !: Kako se sve više naših života šalje u veliki oblak na nebu koji je internet, sve je teže ostati siguran i privatan u svojim ličnim avanturama na internetu. Bilo da pristupate osjetljivim podacima, želite ostati privatni
Stewart platforma za balansiranje loptice s PID -om: 6 koraka
Stewart platforma za balansiranje loptice s PID kontrolom: Motivacija i cjelokupni koncept: Kao fizičar na treningu, prirodno sam privučen i nastojim razumjeti fizičke sisteme. Obučen sam rješavati složene probleme razlažući ih na njihove najosnovnije i najvažnije sastojke, a zatim
Arduino - Balans - Robot za balansiranje - Kako napraviti?: 6 koraka (sa slikama)
Arduino - Balans - Robot za balansiranje | Kako napraviti ?: U ovom vodiču naučit ćemo kako napraviti Arduino balansirajućeg (balansnog) robota koji se sam balansira. Prvo možete pogledati gornji video vodič
Robot za balansiranje: 7 koraka (sa slikama)
Robot za balansiranje: Ovo je vrlo jednostavan robot koji koristi jednostavan prekidač kao senzor i stoji na samo dva kotača s mehanizmom obrnutog klatna. Kada će robot pasti, motor se pokreće i pomiče robota u smjeru u kojem će pasti, pa motor