Πίνακας περιεχομένων:
- Βήμα 1: Βήμα 1: Απαιτήσεις υλικού
- Βήμα 2: Βήμα 2: Sistema Mecánico-estructura
- Βήμα 3: Βήμα 3: Fabricación De Piezas 3D
- Βήμα 4: Βήμα 4: Sistema Eléctrico/electrónico
- Βήμα 5: Βήμα 5: Λογισμικό
- Βήμα 6: Βήμα 6: Consejos
Βίντεο: Proyecto Laboratorio De Mecatrónica (Robot Balance Robot): 6 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Για την καλύτερη δυνατή προοπτική, θα λειτουργήσετε και θα χρησιμοποιήσετε το "Robot ζυγοστάθμισης δύο τροχών" μετά και μετά από εξηγήσεις σε ιδέες. Este es un sistema que konsee 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.
Βήμα 1: Βήμα 1: Απαιτήσεις υλικού
o Mecánicos:
ένα. 1 metro de varilla roscada (3/8)
σι. 14 tornillos M3 x.07 x 6
ντο. 24 tuercas M8 hex
ρε. 3 tornillos M4 x.07 x 6
μι. Filamento PLA (500grs περίπου)
o Ηλεκτρονικός:
ένα. 1 διακόπτης διακοπτών
σι. Arduino uno o nano
ντο. 2 motores nema 17
ρε. 2 προγράμματα οδήγησης A4988
μι. 3 αντιστάσεις 1κ
φά. HC-05
σολ. MPU-6050
η 2 capacitores de 100uf o 47uf
Εγώ. Batería lippo 11.1 V
o Piezas fabricadas:
ένα. 3 πλακάκια από MDF (120 x 170 x 6 mm)
σι. PCB Placa (περίπου 8 x 14 cm περίπου)
ντο. Soporte batería
ρε. 2 soporte para motor
μι. 2 λάντας
o Επιπλέον:
Τα λογισμικά συνιστώνται για την πραγματοποίησή τους.
ένα. Λογισμικό Arduino IDE
σι. SolidWorks 2018
ντο. Λογισμικό Kidcad
Βήμα 2: Βήμα 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 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
Εκτός από τη χρήση PCB, για την επεξεργασία των ανταλλακτικών ανταλλακτικών, για την είσοδό σας στο arduino, για τον τρόπο λειτουργίας Bluetooth HC-05, για γυροσκόπιο 6050 και 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 y no lo obedezca.
Βήμα 5: Βήμα 5: Λογισμικό
Παράλληλα με το πρόγραμμα, μπορείτε να συνεχίσετε την αναφορά σας και να συνεχίσετε το πρόγραμμα σας με εξηγήσεις ανταποκριτών, συνδέσμους ήχου και συνδέσμους, καθώς και πλήρη κωδικοποίηση:
Pos holdconfiguracion
// προεπιλεγμένα κέρδη ελέγχου POSHOLD
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // μοίρες
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Έλεγχος ανέμου
#define POSHOLD_RATE_D 0.045 // δοκιμάστε 2 ή 3 για POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // μοίρες
// προεπιλεγμένα κέρδη PID πλοήγησης
#define NAV_P 1.4
#define NAV_I 0.20 // Έλεγχος ανέμου
#define NAV_D 0.08 //
#define NAV_IMAX 20 // μοίρες
#define MINCHECK 1100
#define MAXCHECK 1900
Το Aqui se modifica los κερδίζει παράλληλα με το σύστημα.
Γυροσκόπηση διαμόρφωσης:
void Gyro_init () {
TWBR = ((F_CPU / 400000L) - 16) / 2; // αλλάξτε την ταχύτητα ρολογιού I2C σε 400kHz
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x80); // PWR_MGMT_1 - DEVICE_RESET 1
καθυστέρηση (5)?
i2c_writeReg (MPU6050_ADDRESS, 0x6B, 0x03); // PWR_MGMT_1 - SLEEP 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 260Hz = 256Hz)
i2c_writeReg (MPU6050_ADDRESS, 0x1B, 0x18); // GYRO_CONFIG - FS_SEL = 3: Η πλήρης κλίμακα ορίστηκε σε 2000 βαθμούς/δευτερόλεπτο
// ενεργοποίηση παράκαμψης I2C για AUX I2C
#if καθορισμένο (MAG)
i2c_writeReg (MPU6050_ADDRESS, 0x37, 0x02); // INT_PIN_CFG - INT_LEVEL = 0; INT_OPEN = 0; LATCH_INT_EL = 0; INT_RD_CLEAR = 0; FSYNC_INT_LEVEL = 0; FSYNC_INT_EL = 0; I2C_BYPASS_EL = 1; CLKOUT_EL = 0
#τέλος εαν
}
void Gyro_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION (((rawADC [0] 2, // εύρος: +/- 8192; +/- 2000 deg/sec
((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)
// επιβεβαιώθηκε εδώ:
#if καθορισμένο (MPU6050_I2C_AUX_MASTER)
// σε αυτό το στάδιο, το MAG διαμορφώνεται μέσω της αρχικής λειτουργίας MAG init σε λειτουργία παράκαμψης I2C
// τώρα διαμορφώνουμε το MPU ως συσκευή I2C Master για χειρισμό του MAG μέσω της θύρας I2C AUX (γίνεται εδώ για HMC5883)
i2c_writeReg (MPU6050_ADDRESS, 0x6A, 0b00100000); // USER_CTRL - DMP_EL = 0; FIFO_EL = 0; I2C_MST_EL = 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_EL = 0; INT_RD_CLEAR = 0; FSYNC_INT_LEVEL = 0; FSYNC_INT_EL = 0; I2C_BYPASS_EL = 0; CLKOUT_EL = 0
i2c_writeReg (MPU6050_ADDRESS, 0x24, 0x0D); // I2C_MST_CTRL - MULT_MST_EL = 0; WAIT_FOR_ES = 0; SLV_3_FIFO_EL = 0; I2C_MST_P_NSR = 0; I2C_MST_CLK = 13 (δίαυλος I2C slave speed = 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 byte δεδομένων του MAG αποθηκεύονται σε 6 καταχωρητές. Η πρώτη διεύθυνση εγγραφής είναι MAG_DATA_REGISTER
i2c_writeReg (MPU6050_ADDRESS, 0x27, 0x86); // I2C_SLV0_CTRL - I2C_SLV0_EL = 1; I2C_SLV0_BYTE_SW = 0; I2C_SLV0_REG_DIS = 0; I2C_SLV0_GRP = 0; I2C_SLV0_LEN = 3 (3x2 bytes)
#τέλος εαν
}
void ACC_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION (((rawADC [0] 3, ((rawADC [2] 3, ((rawADC [4] 3);
ACC_Common ();
}
// Η λειτουργία απόκτησης MAG πρέπει να αντικατασταθεί επειδή μιλάμε τώρα με τη συσκευή MPU
#if καθορισμένο (MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC () {
i2c_getSixRawADC (MPU6050_ADDRESS, 0x49); // 0x49 είναι το πρώτο δωμάτιο μνήμης για EXT_SENS_DATA
#if καθορισμένα (HMC5843)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [2] << 8] | rawADC [3]), ((rawADC [4] << 8) | rawADC [5]));
#τέλος εαν
#if καθορισμένα (HMC5883)
MAG_ORIENTATION (((rawADC [0] << 8) | rawADC [1]), ((rawADC [4] << 8] | rawADC [5]), ((rawADC [2] << 8) | rawADC [3]));
#τέλος εαν
#if καθορισμένα (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 convega, 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 que agregar mas conexiones o volver a imprimir el PCB.
3. Λογισμικό Diseño: Guiarse con la programación base expuesta, pero tratar de hacer su propiagnoón programme, για να διαλέξουμε και να δούμε τις λειτουργίες και τις δυνατότητές μας για να λειτουργήσουμε σωστά με τις οδηγίες για τις λειτουργικές διορθώσεις.
Συνιστάται:
Vídeo Tutoriales De Tecnologías Creativas 03: Hoy Veremos Un Proyecto Donde Integramos Botones: 4 Βήματα
Vídeo Tutoriales De Tecnologías Creativas 03: Hoy Veremos Un Proyecto Donde Integramos Botones: En este tutorial vamos arender como leer y controlar el estado de un botón sobre una placa Arduino Uno. Este ejercicio lo realizaremos mediante simulación y para ello utilizaremos Tinkercad Circuits (utilizando una cuenta gratuita). Μια συνέχεια
Makey -Saurus Rex - Makey Makey Balance Board: 6 βήματα (με εικόνες)
Makey-Saurus Rex-Makey Makey Balance Board: Είτε το ονομάζετε Chrome Dino, T-Rex Game, No Internet Game, είτε απλή ενόχληση, όλοι φαίνεται να είναι εξοικειωμένοι με αυτό το παιχνίδι άλματος δεινοσαύρων με πλάγια κύλιση. Αυτό το παιχνίδι που δημιουργήθηκε από την Google εμφανίζεται στο πρόγραμμα περιήγησης ιστού Chrome κάθε φορά που το
Παιχνίδι Balance Box - Arduino Powered: 4 βήματα (με εικόνες)
Παιχνίδι ισορροπίας - Arduino Powered: Το παιχνίδι ισορροπίας δημιουργήθηκε για ένα γεγονός πρόκλησης, πρέπει να μεταφερθεί σε επίπεδο πορείας εμποδίων ή σε καθορισμένη απόσταση για να κερδίσετε την πρόκληση. Ένα arduino χρησιμοποιείται για τη μέτρηση της γωνίας του κουτί και ενεργοποίηση συναγερμού μόλις οριστεί η γωνία
Arduino - Balance - Balancing Robot - Πώς να φτιάξετε ;: 6 βήματα (με εικόνες)
Arduino - Balance - Balancing Robot | Πώς να φτιάξετε;: Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάχνουμε ρομπότ εξισορρόπησης (ισορροπίας) Arduino που εξισορροπεί τον εαυτό του. Πρώτα μπορείτε να δείτε το σεμινάριο βίντεο παραπάνω
Ελέγξτε το Balance Maze With Alexa: 6 βήματα (με εικόνες)
Έλεγχος του λαβύρινθου ισορροπίας με την Alexa: Ελέγξτε τον λαβύρινθο ισορροπίας με την Alexa Μετακινήστε τον λαβύρινθο με φωνή. Πρώτα απ 'όλα, δείτε το βίντεο. Είναι μια περίληψη της λειτουργίας. Μιλήστε με την Alexa (Raspberry Pi + AVS) Πείτε: Alexa Start SkillSAY: BARANSU MEIRO WO KIDOU SHITE Instruct SkillSAY: 1 DO, UE N