Table des matières:
- Étape 1: Étape 1: Matériel requis
- Étape 2: Étape 2: Sistema Mecánico-estructura
- Étape 3: Étape 3: Fabrication de Piezas 3D
- Étape 4: Étape 4: Sistema Eléctrico/electrónico
- Étape 5: Étape 5: Logiciel
- Étape 6: Étape 6: Consejos
Vidéo: Proyecto Laboratorio De Mecatrónica (Robot d'équilibre à deux roues): 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un "Two wheel balance robot" paso a paso y con explicación y concejos. Este es un sistema 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 su posición original.
Étape 1: Étape 1: Matériel requis
o Mécaniques:
une. 1 métro de varilla roscada (3/8)
b. 14 tornilles M3 x.07 x 6
c. 24 tuercas M8 hexagone
ré. 3 tornilles M4 x.07 x 6
e. Filament PLA (500grs environ)
o Électroniques:
une. 1 interrupteur
b. Arduino uno ou nano
c. 2 moteurs nema 17
ré. 2 chauffeurs A4988
e. 3 résistances 1k
F. HC-05
g. MPU-6050
h. 2 condensateurs de 100uf ou 47uf
je. Batería lippo 11.1 V
o Piezas fabricadas:
une. 3 plaques de MDF (120 x 170 x 6 mm)
b. Placa PCB (8 x 14 cm environ)
c. Soporte bateria
ré. 2 soportes para moteur
e. 2 lantas
Suppléments:
Logiciels recommandés pour la réalisation du projet.
une. Logiciel IDE Arduino
b. SolidWorks 2018
c. Logiciel Kidcad
Étape 2: Étape 2: Sistema Mecánico-estructura
El modelado de las piezas y estructura general se realizo en SolidWorks, primero se crearon las placas de MDF para checar el espacio available para posteriores usos. Estas placas son diferentes entre ellas, la placa lower 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.
Étape 3: Étape 3: Fabrication de Piezas 3D
Para el modelado de los soportes y llantas igualmente utilizamos SolidWorks, isos soportes pueden ser modificados si así lo desean, para un mejor funcionamiento, los soportes tienen orificios of.35 cm of diámetro, para una mejor sujeción.
Étape 4: Étape 4: Sistema Eléctrico/electrónico
En este paso utilizamos una PCB, para elaborar las conexiones correspondientes, haciendo el enlace entre el arduino, el 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 correctamente y no lo obedezca.
Étape 5: Étape 5: Logiciel
Para el programa utilizamos un arduino, a continuación anexamos una parte de la programación con su explicación correspondiente, al igual anexo link, con el codigo completo:
Pos holdconfiguracion
// les gains de contrôle par défaut de POSHOLD
#définir POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // degrés
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Contrôle du vent
#define POSHOLD_RATE_D 0.045 // essayez 2 ou 3 pour POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // degrés
// gains de PID de navigation par défaut
#define NAV_P 1.4
#define NAV_I 0.20 // Contrôle du vent
#define NAV_D 0.08 //
#define NAV_IMAX 20 // degrés
#définir MINCHECK 1100
#définir MAXCHECK 1900
Aqui se modifica los gagne para el poss hold del sistema.
Configuration du gyroscope:
void Gyro_init() {
TWBR = ((F_CPU / 400000L) - 16) / 2; // changer la fréquence d'horloge I2C à 400 kHz
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x80); //PWR_MGMT_1 -- DEVICE_RESET 1
retard(5);
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x03); //PWR_MGMT_1 -- VEILLE 0; CYCLE 0; TEMP_DIS 0; CLKSEL 3 (PLL avec référence Z Gyro)
i2c_writeReg(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); //CONFIG -- EXT_SYNC_SET 0 (désactiver la broche d'entrée pour la synchronisation des données); par défaut DLPF_CFG = 0 => bande passante ACC = 260 Hz bande passante GYRO = 256 Hz)
i2c_writeReg(MPU6050_ADDRESS, 0x1B, 0x18); //GYRO_CONFIG -- FS_SEL = 3: pleine échelle réglée à 2000 deg/sec
// activer le contournement I2C pour AUX I2C
#si défini(MAG)
i2c_writeReg(MPU6050_ADDRESS, 0x37, 0x02); //INT_PIN_CFG -- INT_LEVEL=0; INT_OUVERT=0; LATCH_INT_EN=0; INT_RD_CLEAR=0; FSYNC_INT_LEVEL=0; FSYNC_INT_EN=0; I2C_BYPASS_EN=1; CLKOUT_EN=0
#fin si
}
void Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION(((rawADC[0]2, // plage: +/- 8192; +/- 2000 deg/sec
((rawADC[2]2, ((brutADC[4]2);
GYRO_Common();
}
void ACC_init () {
i2c_writeReg(MPU6050_ADDRESS, 0x1C, 0x10); //ACCEL_CONFIG -- AFS_SEL=2 (Pleine échelle = +/-8G); ACCELL_HPF=0 //notez que quelque chose ne va pas dans la spécification.
//remarque: quelque chose ne va pas dans la spécification ici. Avec AFS=2 1G = 4096 mais selon ma mesure: 1G=2048 (et 2048/8 = 256)
//confirmé ici:
#si défini(MPU6050_I2C_AUX_MASTER)
//à ce stade, le MAG est configuré via la fonction d'initialisation MAG d'origine en mode bypass I2C
// maintenant, nous configurons MPU en tant que périphérique maître I2C pour gérer le MAG via le port AUX I2C (fait ici pour HMC5883)
i2c_writeReg(MPU6050_ADDRESS, 0x6A, 0b00100000); //USER_CTRL -- DMP_EN=0; FIFO_EN=0; I2C_MST_EN=1 (mode maître 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_OUVERT=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 (bus vitesse esclave I2C = 400kHz)
i2c_writeReg(MPU6050_ADDRESS, 0x25, 0x80|MAG_ADDRESS);//I2C_SLV0_ADDR -- I2C_SLV4_RW=1 (opération de lecture); I2C_SLV4_ADDR=ADRESSE_MAG
i2c_writeReg(MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER);//I2C_SLV0_REG -- 6 octets de données de MAG sont stockés dans 6 registres. La première adresse de registre est 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 octets)
#fin si
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION(((rawADC[0]3, ((brutADC[2]3, ((brutADC[4]3);
ACC_Common();
}
//La fonction d'acquisition MAG doit être remplacée car nous parlons maintenant au périphérique MPU
#si défini(MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC() {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); //0x49 est le premier espace mémoire pour EXT_SENS_DATA
#si défini(HMC5843)
MAG_ORIENTATION(((rawADC[0]<<8) | rawADC[1]), ((rawADC[2]<<8) | rawADC[3]), ((rawADC[4]<<8) | rawADC[5]));
#fin si
#si défini (HMC5883)
MAG_ORIENTATION(((rawADC[0]<<8) | rawADC[1]), ((rawADC[4]<<8) | rawADC[5]), ((rawADC[2]<<8) | rawADC[3]));
#fin si
#si défini (MAG3110)
MAG_ORIENTATION(((rawADC[0]<<8) | rawADC[1]), ((rawADC[2]<<8) | rawADC[3]), ((rawADC[4]<<8) | rawADC[5]));
#fin si
}
#fin si
#fin si
Étape 6: Étape 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 à la perfection.
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 qu'agregar mas conexiones o volver a imprimir el PCB.
3. Logiciel de conception: Guiarse con la programación base expuesta, pero tratar de hacer su propia programación, para llegar a entend bien el funcionamiento y in case of that no funcionar la programación saber como cambiar las instrucciones para que funcione correctamente.
Conseillé:
Robot auto-équilibrant à deux roues : 7 étapes
Robot auto-équilibrant à deux roues : cette instructable passera par le processus de conception et de construction d'un robot auto-équilibré. En guise de note, je veux juste dire que les robots à équilibrage automatique ne sont pas un nouveau concept et qu'ils ont été construits et documentés par d'autres. Je veux profiter de cette opportunité
HeadBot - un robot auto-équilibré pour l'apprentissage et la sensibilisation STEM : 7 étapes (avec photos)
HeadBot - un robot auto-équilibré pour l'apprentissage et la sensibilisation des STEM : Headbot - un robot auto-équilibré de deux pieds de haut - est le fruit de l'équipe de robotique de South Eugene (SERT, FRC 2521), une équipe de robotique compétitive du lycée dans le FIRST Concours de robotique, d'Eugene, Oregon. Ce robot de vulgarisation populaire fait ré
Comment créer un robot auto-équilibré imprimé en 3D télécommandé : 9 étapes (avec photos)
Comment créer un robot auto-équilibré imprimé en 3D contrôlé à distance : Il s'agit d'une évolution de la version précédente de B-robot. Robot 100% OPEN SOURCE / Arduino. Le CODE, les pièces 3D et l'électronique sont ouverts alors n'hésitez pas à le modifier ou à créer une version énorme du robot. Si vous avez des doutes, des idées ou besoin d'aide faites
Robot d'équilibrage / Robot à 3 roues / Robot STEM : 8 étapes
Robot d'équilibrage / Robot à 3 roues / Robot STEM : Nous avons construit un robot d'équilibrage et à 3 roues combiné pour une utilisation éducative dans les écoles et les programmes éducatifs parascolaires. Le robot est basé sur un Arduino Uno, un bouclier personnalisé (tous les détails de construction fournis), une batterie Li Ion (tous constr
Construisez un très petit robot : créez le plus petit robot à roues du monde avec une pince. : 9 étapes (avec photos)
Construisez un très petit robot : créez le plus petit robot à roues du monde avec une pince. : Construisez un robot de 1/20 de pouce cube avec une pince qui peut ramasser et déplacer de petits objets. Il est contrôlé par un microcontrôleur Picaxe. À ce stade, je pense qu'il s'agit peut-être du plus petit robot à roues au monde doté d'une pince. Cela fera sans aucun doute ch