Tabla de contenido:
- Paso 1: Equipos
- Paso 2: archivo de imagen de diagrama de circuito
- Paso 3: Archivo Fritzing del diagrama de circuito
- Paso 4: Código del transmisor
- Paso 5: Código del receptor
- Paso 6: archivos INO
- Paso 7: enlace de bibliotecas
Video: Coche inalámbrico controlado por gestos: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este tutorial vamos a aprender cómo hacer un coche controlado por gestos o cualquier robot. Este proyecto tiene dos partes, una parte es la unidad transmisora y la otra parte es la unidad receptora. La unidad transmisora está realmente montada en unos guantes de mano y la unidad receptora se coloca dentro de un automóvil o cualquier robot. Ahora es el momento de hacer un buen coche. ¡Vamos!
Paso 1: Equipos
Unidad transmisora
1. Arduino Nano.
2. Módulo de sensor MPU6050.
3. Transmisor RF 433 MHz.
4. Cualquier tipo de batería de 3 celdas y 11,1 voltios (aquí he usado una celda de botón).
5. Vero-Board.
6. Guantes de mano.
Unidad receptora
1. Arduino Nano o Arduino Uno.
2. Módulo de controlador de motor L298N.
3. Armazón de robot de 4 ruedas, incluidos motores.
4. Receptor RF 433 RF.
5. Batería Li-po de 3 celdas y 11,1 voltios.
6. Vero-tablero.
Otros
1. Pegamento en barra y pistola.
2. Cables de puente.
3. Destornilladores
4. Kit de soldadura.
etc.
Paso 2: archivo de imagen de diagrama de circuito
Paso 3: Archivo Fritzing del diagrama de circuito
Paso 4: Código del transmisor
#incluir
#incluir
#incluir
MPU6050 mpu6050 (cable);
temporizador largo = 0;
char * controlador;
configuración vacía ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (verdadero); vw_set_ptt_inverted (verdadero); // vw_set_tx_pin (10); vw_setup (4000); // velocidad de transferencia de datos Kbps
}
bucle vacío ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
si (millis () - temporizador> 1000)
{Serial.println ("========================================== =========== "); Serial.print ("temp:"); Serial.println (mpu6050.getTemp ()); Serial.print ("accX:"); Serial.print (mpu6050.getAccX ()); Serial.print ("\ taccY:"); Serial.print (mpu6050.getAccY ()); Serial.print ("\ taccZ:"); Serial.println (mpu6050.getAccZ ()); Serial.print ("gyroX:"); Serial.print (mpu6050.getGyroX ()); Serial.print ("\ tgyroY:"); Serial.print (mpu6050.getGyroY ()); Serial.print ("\ tgyroZ:"); Serial.println (mpu6050.getGyroZ ()); Serial.print ("accAngleX:"); Serial.print (mpu6050.getAccAngleX ()); Serial.print ("\ taccAngleY:"); Serial.println (mpu6050.getAccAngleY ()); Serial.print ("gyroAngleX:"); Serial.print (mpu6050.getGyroAngleX ()); Serial.print ("\ tgyroAngleY:"); Serial.print (mpu6050.getGyroAngleY ()); Serial.print ("\ tgyroAngleZ:"); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); Serial.println ("=========================================== ========== / n "); temporizador = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controlador = "X2"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere hasta que todo el mensaje desaparezca Serial.println ("FORWARD"); } más si (mpu6050.getAccAngleY ()> 40) {controlador = "Y1"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere hasta que todo el mensaje desaparezca Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <- 40) {controlador = "Y2"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere hasta que todo el mensaje desaparezca Serial.println ("DERECHA"); } más si (mpu6050.getAccAngleX () - 10 && mpu6050.getAccAngleY () - 10) {controlador = "A1"; vw_send ((uint8_t *) controlador, strlen (controlador)); vw_wait_tx (); // Espere hasta que todo el mensaje desaparezca Serial.println ("STOP"); }}
Paso 5: Código del receptor
#incluir
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; configuración vacía () {Serial.begin (9600); vw_set_ptt_inverted (verdadero); // Requerido para DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bits por segundo pinMode (13, SALIDA); pinMode (LA, SALIDA); pinMode (LB, SALIDA); pinMode (RA, SALIDA); pinMode (RB, SALIDA); vw_rx_start (); // Inicie el PLL del receptor ejecutando Serial.println ("Todo OK");
}
bucle vacío () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Sin bloqueo
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("ATRÁS"); hacia atrás(); retraso (100); //apagado(); } más si ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("ADELANTE"); hacia adelante(); retraso (100); //apagado(); }
más si ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("IZQUIERDA"); izquierda(); retraso (100); //apagado(); }
más si ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("DERECHA"); Derecha(); retraso (100); //apagado(); } más si ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("DETENER"); apagado(); retraso (100); }} else {Serial.println ("No se recibe señal"); }}
anular adelante ()
{analogWrite (LA, 70); analogWrite (LB, 0); escritura analógica (RA, 70); analogWrite (RB, 0); }
vacío al revés ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
vacío a la izquierda ()
{analogWrite (LA, 0); analogWrite (LB, 70); escritura analógica (RA, 70); analogWrite (RB, 0); }
vacío a la derecha ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
anular ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Paso 6: archivos INO
Paso 7: enlace de bibliotecas
Biblioteca virtual de cables:
MPU6050_tockn Libraby:
Biblioteca de cables:
Recomendado:
Robot controlado por gestos usando Arduino: 7 pasos
Robot controlado por gestos con Arduino: Los robots se utilizan en muchos sectores como la construcción, el ejército, la fabricación, el montaje, etc. Los robots pueden ser autónomos o semiautónomos. Los robots autónomos no requieren ninguna intervención humana y pueden actuar por sí mismos según la situación. Se
Gadget de dinosaurio cromado controlado por gestos con las manos / Cómo hacer esto / #smartcreativity: 14 pasos
Gadget de dinosaurio Chrome controlado por gestos de mano / Cómo hacer esto / #smartcreativity: Hola amigos, En este tutorial les mostraré un proyecto muy exclusivo. Así que hoy les mostraré cómo controlar el juego de dinosaurios Chrome con su gesto de mano muy facilmente. Si usa esta tecnología para controlar Chrome DINO, se caerá
Coche con control remoto: controlado mediante el controlador inalámbrico Xbox 360: 5 pasos
Automóvil controlado a distancia: controlado mediante un controlador inalámbrico Xbox 360: estas son instrucciones para construir su propio automóvil controlado a distancia, controlado mediante un controlador inalámbrico Xbox 360
Coche RC controlado por gestos manuales: 15 pasos
Coche RC controlado por gestos con la mano: ¡Hola mundo! Este es mi primer Instructable Si tiene alguna pregunta, no dude en preguntar. Público objetivo: este proyecto es aplicable a cualquier persona que tenga una pasión en lo que respecta a la tecnología. Si eres un experto o un principiante absoluto
Coche controlado por gestos: 5 pasos (con imágenes)
Coche controlado por gestos: los robots están desempeñando un papel importante en la automatización en todos los sectores, como la construcción, militar, médico, de fabricación, etc. Después de hacer algunos robots básicos como el coche controlado mediante Bluetooth, he desarrollado este ges basado en acelerómetros