Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un „Robot dwukołowy” paso a paso y con explicación y concejos. Este es un sistema que sklade 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.
Krok 1: Krok 1: Materiał Requerido
o Mecanicos:
a. 1 metro de varilla roscada (3/8)
b. 14 tornillo M3 x.07 x 6
C. 24 tuerki M8 hex
D. 3 tornille M4 x.07 x 6
mi. Filamento PLA (ok. 500gr)
o Elektroniki:
a. 1 wyłącznik przerywacza
b. Arduino uno lub nano
C. 2 silniki nema 17
D. 2 sterowniki A4988
mi. 3 oporności 1k
F. HC-05
g. MPU-6050
h. 2 kondensatory 100uf lub 47uf
i. Batería Lippo 11.1 V
o Piezas fabricadas:
a. 3 płyty MDF (120 x 170 x 6 mm)
b. Placa PCB (8 x 14 cm ok)
C. Soporte batería
D. 2 soporte para silnik
mi. 2 llantas
o Dodatki:
Rekomendowane oprogramowanie do realizacji projektów.
a. Oprogramowanie Arduino IDE
b. SolidWorks 2018
C. Oprogramowanie Kidcad
Krok 2: Krok 2: Sistema Mecánico-estructura
El modelado de las piezas y estructura general se realizo pl 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.
Krok 3: Krok 3: Fabricación De Piezas 3D
Para el modelado de los soportes y llantas igualmente utilizamos SolidWorks, estos soportes pueden ser modificados así lo desean, para un mejor funcionamiento, los soportes tienen orificios de.35 cm de diámetro, para una mejor sujeci.
Krok 4: Krok 4: Sistema Eléctrico/electrónico
En este paso utilizamos una PCB, para elaborar las conexiones korespondentes, haciendo el enlace entre el arduino, el modulo de Bluetooth HC-05, un giroscopio 6050 y los driver de los motores. Las conexiones syn las que se muestran pl 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.
Krok 5: Krok 5: Oprogramowanie
Para el programa utilizamos un arduino, continuación anexamos una parte de la programación con su explicación korespondente, al igual anexo link, con el codigo completo:
Poz konfiguracja wstrzymania
// domyślne wzmocnienie kontroli POSHOLD
#define POSHOLD_P 2.00
#define POSHOLD_I 0.0
#define POSHOLD_IMAX 20 // stopni
#define POSHOLD_RATE_P 2.0
#define POSHOLD_RATE_I 0.08 // Kontrola wiatru
#define POSHOLD_RATE_D 0.045 // spróbuj 2 lub 3 dla POSHOLD_RATE 1
#define POSHOLD_RATE_IMAX 20 // stopni
// domyślne wzmocnienia PID nawigacji
#definiuj NAV_P 1.4
#define NAV_I 0.20 // Kontrola wiatru
#define NAV_D 0.08 //
#define NAV_IMAX 20 // stopni
#define MINCHECK 1100
#define MAXCHECK 1900
Aqui se modifica los zyskuje para el poss hold del sistema.
Konfiguracja żyroskopu:
void Gyro_init() {
TWBR = ((F_CPU / 400000L) - 16) / 2; // zmiana częstotliwości zegara I2C na 400kHz
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x80); //PWR_MGMT_1 -- DEVICE_RESET 1
opóźnienie(5);
i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x03); //PWR_MGMT_1 -- Uśpienie 0; CYKL 0; TEMP_DIS 0; CLKSEL 3 (PLL z referencją Z Gyro)
i2c_writeReg(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); //CONFIG -- EXT_SYNC_SET 0 (wyłącz pin wejściowy do synchronizacji danych); domyślnie DLPF_CFG = 0 => pasmo ACC = 260Hz pasmo GYRO = 256Hz)
i2c_writeReg(MPU6050_ADDRESS, 0x1B, 0x18); //GYRO_CONFIG -- FS_SEL = 3: Pełna skala ustawiona na 2000 stopni/s
// włącz obejście I2C dla AUX I2C
#jeśli zdefiniowano (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_PL=0
#endif
}
nieważne Gyro_getADC () {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x43);
GYRO_ORIENTATION(((rawADC[0]2, // zakres: +/- 8192; +/- 2000 stopni/sek
((surowyADC[2]2, ((surADC[4]2);
GYRO_Wspólny();
}
nieważne ACC_init () {
i2c_writeReg(MPU6050_ADDRESS, 0x1C, 0x10); //ACCEL_CONFIG -- AFS_SEL=2 (Pełna skala = +/-8G); ACCELL_HPF=0 //uwaga, coś jest nie tak w specyfikacji.
//uwaga: coś wydaje się być nie tak w specyfikacji tutaj. Przy AFS=2 1G=4096 ale według mojego pomiaru: 1G=2048 (i 2048/8=256)
//potwierdzone tutaj:
#jeśli zdefiniowano (MPU6050_I2C_AUX_MASTER)
//na tym etapie MAG jest konfigurowany za pomocą oryginalnej funkcji MAG init w trybie obejścia I2C
//teraz konfigurujemy MPU jako urządzenie I2C Master do obsługi MAG przez port I2C AUX (zrobione tutaj dla HMC5883)
i2c_writeReg(MPU6050_ADDRESS, 0x6A, 0b00100000); //USER_CTRL -- DMP_EN=0; FIFO_PL=0; I2C_MST_EN=1 (tryb mastera 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_EN=0; INT_RD_CLEAR=0; FSYNC_INT_LEVEL=0; FSYNC_INT_EN=0; I2C_BYPASS_EN=0; CLKOUT_PL=0
i2c_writeReg(MPU6050_ADDRESS, 0x24, 0x0D); //I2C_MST_CTRL -- MULT_MST_EN=0; CZEKAJ_NA_ES=0; SLV_3_FIFO_EN=0; I2C_MST_P_NSR=0; I2C_MST_CLK=13 (podrzędna magistrala prędkości I2C = 400kHz)
i2c_writeReg(MPU6050_ADDRESS, 0x25, 0x80|MAG_ADDRESS);//I2C_SLV0_ADDR -- I2C_SLV4_RW=1 (operacja odczytu); I2C_SLV4_ADDR=MAG_ADDRESS
i2c_writeReg(MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER);//I2C_SLV0_REG -- 6 bajtów danych MAG zapisanych jest w 6 rejestrach. Pierwszy adres rejestru to 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 bajty)
#endif
}
nieważne ACC_getADC () {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x3B);
ACC_ORIENTATION(((surADC[0]3, ((surowyADC[2]3, ((surADC[4]3);
ACC_Wspólne();
}
//Funkcja akwizycji MAG musi zostać wymieniona, ponieważ teraz rozmawiamy z urządzeniem MPU
#jeśli zdefiniowano(MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC() {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x49); //0x49 to pierwszy pokój pamięci dla EXT_SENS_DATA
#jeśli zdefiniowano(HMC5843)
MAG_ORIENTATION(((surADC[0]<<8) | rawADC[1]), ((surADC[2]<<8) | surowyADC[3]), ((surADC[4]<<8) | surowyADC[5]));
#endif
#jeśli zdefiniowano (HMC5883)
MAG_ORIENTATION(((surADC[0]<<8) | rawADC[1]), ((surADC[4]<<8) | surowyADC[5]), ((surADC[2]<<8) | surowyADC[3]));
#endif
#jeśli zdefiniowano (MAG3110)
MAG_ORIENTATION(((surADC[0]<<8) | rawADC[1]), ((surADC[2]<<8) | surowyADC[3]), ((surADC[4]<<8) | surowyADC[5]));
#endif
}
#endif
#endif
Krok 6: Krok 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 to 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 y no sea el correct que agregar mas conexiones o volver a imprimir el PCB.
3. Diseño Software: Guiarse con la programación base expuesta, pero tratar de hacer su propia programación, para llegar a entender bien el funcionamiento y en caso de que no funcionar la programación saber como cambiar las instrucciones para que funcione correctamente.
Zalecana:
Lampa nastrojowa Como Hacer Una (proyecto Uvg): 5 kroków (ze zdjęciami)
Como Hacer Una Mood Lamp (proyecto Uvg): Esta es una mood lamp que funciona a base de un sensor DHT11 i 3 potenciómetros. tiene 2 modos: el primero el color cambia con los potenciómetros, y el segundo cambia a base de las lecturas del sensor DHT11
Dwukołowy samobalansujący robot: 7 kroków
Dwukołowy samobalansujący robot: ten instruktaż przejdzie przez proces projektowania i budowy samobalansującego robota. Dla przypomnienia, chcę tylko powiedzieć, że samobalansujące roboty nie są nową koncepcją i zostały zbudowane i udokumentowane przez innych. Chcę skorzystać z tej możliwości
SAMOUCZEK OSOBISTY PROYECTO: 5 kroków
PROYECTO OSOBISTY TUTORIAL: Este proyecto sklada en elegir un tema libre, y crear un producto de la Investigación de este tema. La Investigación, planeación, acci&n y reflexión del proyecto son escritas en un informe, y todo el registro de
Educacción Proyecto: 9 kroków
Educacción Proyecto: OPIS:Jest to prosty przewodnik tworzenia własnego systemu edukacyjnego przy użyciu Arduino i Raspberry Pi 3, jest to projekt uniwersytecki z kursu architektury systemów multimedialnych. Chodzi o system, który uczy tematu stratyfikacji
Educaacion Proyecto Final – Video Y TV Interactiva: 6 kroków
Educaacion Proyecto Final – Video Y TV Interactiva: El producto será un sistema multimedia interactiveivo, el cual sedesplegará a través de un medio audiovisual y contará con elementos software y hardware dla su manipulación, teniendo en cuenta que su propósito