Controle de carro robótico por WiFi

Control de coche robótico WiFi

Este tutorial le enseñará cómo controlar un automóvil Robo utilizando cualquier dispositivo con Wifi.

Componentes necesarios:

1. Módulo Wi-Fi ESP 8266
2. Arduino UNO (o equivalente) 3. Controlador L293D 4. Chasis 5. Motorreductores de 12 V CC 6. Ruedas 7. Rueda giratoria 8. hilo 9. Tablero de prueba 10. PCB pequeña 11. Encabezados masculinos 12. Cabeceras femeninas

Acerca de ESP8266

ESP 8266 es lo último en Internet. Es un módulo Wifi un poco más grande que una moneda de 1 Re. Bueno, no es por eso que es famoso. Lo que lo ha hecho muy popular entre los entusiastas de la electrónica es su costo increíblemente bajo. Lo compré por sólo $5 (~300 Rs). Un Arduino junto con un escudo Wifi costaría 10 veces el costo de este módulo.

Imagem mostrando módulos Wi-Fi ESP8266

Higo. 1: Imagen que muestra los módulos Wi-Fi ESP8266

Se puede interconectar con cualquier microcontrolador mediante comunicación USART, lo que significa que sólo necesita los pines RX y TX. Recientemente se ha añadido otra pluma a la gorra. El desarrollador ha publicado los archivos SDK del módulo y, por lo tanto, incluso el módulo se puede reprogramar y sus pines GPIO se pueden usar de forma independiente sin ningún microcontrolador adicional. Pero eso está más allá del alcance de este tutorial. Estaríamos usando el módulo junto con Arduino UNO.

Hacer un adaptador de placa de pruebas para el módulo ESP8266:

El problema con la característica física del módulo es que no se puede conectar directamente a una placa. Entonces decidí hacer un adaptador que se usará para conectar el módulo a una placa de pruebas. Estas son las piezas que necesitarías para hacer el adaptador:

Imagem mostrando os componentes necessários para fazer o adaptador breadboard do modem ESP8266

Figura 2: Imagen que muestra los componentes necesarios para fabricar el adaptador de placa de módem ESP8266

Comience soldando el conector hembra a la PCB. Suelde primero los pines de las esquinas para que el cabezal encaje correctamente en la PCB. Luego suelde los 4 pines restantes.

Imagem mostrando PCB do adaptador de placa de ensaio soldada para caber no cabeçalho fêmea do modem ESP8266

Fig. 3: Imagen que muestra el PCB del adaptador de placa soldado para adaptarse al conector hembra del módem ESP8266

Luego coloque los conectores macho en el lado opuesto de la PCB y sueldelos con cuidado a la PCB.

Imagem mostrando o cabeçalho macho colocado no adaptador da placa de ensaio do modem ESP8266

Figura 4: Imagen que muestra el conector macho colocado en el adaptador de placa de pruebas del módem ESP8266

Después de soldar, puede quitar la pieza de plástico negro adherida al conector macho y comenzar a soldar cada pin macho al pin hembra correspondiente. Al final te quedaría algo como esto:

Imagem mostrando o cabeçalho macho soldado no adaptador da placa de ensaio do modem ESP8266

Fig. 5: Imagen que muestra el conector macho soldado al adaptador de placa de módem ESP8266

Una vez que haga esto, puede conectarlo a una placa y conectarle el módulo ESP 8266 fácilmente.

Aquí hay un video tutorial detallado que muestra el proceso: (Opcional)

Imagem mostrando o adaptador de placa de ensaio do modem ESP8266 colocado em uma placa de ensaio

Figura 6: Imagen que muestra el adaptador de placa de pruebas del módem ESP8266 colocado en una placa de pruebas

Imagem mostrando o módulo Wi-Fi ESP8266 colocado sobre a placa de ensaio

Figura 7: Imagen que muestra el módulo Wi-Fi ESP8266 colocado en la placa

Comandos AT para ESP 8266:

Dominio

Descripción

AT+GMR

Para conocer la versión del firmware

AT+PR

Para restablecer el módulo

MODO AT+CW

Para configurar el modo de funcionamiento, es decir, como punto de acceso o modo de estación o ambos.

EN+CWLAP

Para ver la lista de AP disponibles

AT+SERVIDOR CIP

Para configurar como servidor

AT+CIPMUX

Para elegir entre conexiones únicas o múltiples

EN+CIPSEND

Para configurar el número de canal, la longitud de los datos y enviar datos a través de WiFi

AT+CIPCLOSIS

Para cerrar la conexión

Servidor en ESP 8266:

Enviaremos una interfaz web (una página HTML) a cualquier dispositivo (por ejemplo, un teléfono celular con Wifi) conectado al módulo Wifi. El código de la página HTML lo proporcionaría Arduino. Y además, Arduino decodificaría la solicitud del dispositivo y controlaría los motores en consecuencia. Como el módulo Wifi también puede funcionar como punto de acceso, no necesitamos un enrutador inalámbrico adicional para el proyecto. Si no tiene idea acerca de las páginas HTML, vaya a mi proyecto "Control de dispositivos a través de Wifi y Ethernet" y aprenda los conceptos básicos. Aquí está el algoritmo a seguir para configurar un servidor en ESP 8266:

Algoritmo:

– Pruebe el módulo usando el comando “AT” – Configure el modo de funcionamiento mediante el comando “AT+CWMODE= " – Defina el número de conexiones usando el comando “AT+CIPMUX= " – Defínelo como servidor usando el comando “AT+CIPSERVER= , " – Si la solicitud GET se recibe desde un navegador, utilice el comando “AT+CIPSEND= , ”seguido de los datos HTML que desea enviar. – Una vez completada, cierre la conexión utilizando el comando “AT+CIPCLOSE”.

Configuración de hardware:

Reúne todas las piezas que se muestran en la imagen.

Imagem mostrando os componentes necessários para fazer o robô

Figura 8: Imagen que muestra los componentes necesarios para fabricar el robot.

Conecte los motores al chasis y luego las ruedas al eje.

Imagem mostrando a estrutura metálica do robô conectada ao motor DC

Figura 9: Imagen que muestra la estructura metálica del robot conectada al motor DC

Utilice algunos tornillos y tuercas para fijar la rueca.

Imagem mostrando rodas conectadas aos motores DC no Robot

Figura 10: Imagen que muestra ruedas conectadas a motores de CC en el robot

Imagem da roda giratória fixada na parte frontal do Robot Car

Figura 11: Imagen de la rueda giratoria unida a la parte delantera del Robot Car

Imagem do carro robótico totalmente montado

Figura 12:

Explicación del código:

– Definir los pines 8, 9, 10 y 11 como pines de salida y comunicación serie con una velocidad de baudios de 9600 bps. – Enviar el comando “AT” al módulo. – Establezca el modo de operación en estación y punto de acceso usando el comando “AT+CWMODE=3” – Establezca el modo de conexión en múltiples conexiones enviando “AT+CIPMUX=1” – Ponga el módulo en modo Servidor y use el puerto predeterminado enviando “AT+CIPSERVER=1, 80” – Ingrese al bucle infinito y verifique las solicitudes entrantes de Wifi – Si se realizó una solicitud, lea la solicitud y almacene el número de canal donde se originó la solicitud. – Envíe el código de la página HTML al número de canal almacenado usando los comandos “AT+CIPSEND= , ”seguido de los datos del código HTML. – Cierre la conexión usando “AT+CIPCLOSE= ”Y espere la siguiente solicitud realizada por el navegador. – Si se recibe la solicitud, léala y decodifica la instrucción de solicitud. Tomar las medidas correspondientes en los motores. (Por ejemplo, Si hace clic en "Siguiente" en la página web, Arduino escuchará la solicitud y cambiará a la dirección del robot para avanzar).

Instrucciones de configuración

-Conecte todo según el diagrama del circuito y encienda todo el sistema.

Protótipo de carro robótico simples

Fig. 13: Prototipo de coche robótico sencillo

– Espere unos segundos a que se inicialicen Wifi y Arduino. Pasados ​​unos 30 segundos, activa Wifi en tu dispositivo (móvil, tablet o portátil) y verás algunas redes disponibles.

– Puedes conectarte a tu red doméstica (que es “ Robots Recharged ” en mi caso y a eso me voy a conectar) o al propio punto de acceso (que es “ ESP_9F0F14 ” en mi caso. El SSID del módulo no es más que su nombre seguido de los últimos 6 caracteres de su dirección MAC)

Protótipo de circuito de controle baseado em Arduino montado em carro robótico

Figura 14: Prototipo de circuito de control basado en Arduino montado en un automóvil robótico

– Luego abra su navegador e ingrese la dirección IP

1. Desde el módulo de la red doméstica si estás conectado a la red doméstica (como yo y en mi caso es 192.168.0.101 o 192.168.0.102 ) O 2. 192.168.1.4 si se conecta al punto de acceso denominado “ESP_<últimos 6 caracteres de la dirección MAC>” En un momento deberías ver una página como esta en tu navegador: Ahora haga clic en los enlaces y verá que el motor comienza a moverse. Si se mueven en la dirección incorrecta, verifique las conexiones y cámbielas si es necesario.

Captura de tela de conexões Wi-Fi no telefone Android mostrando o ponto de acesso do módulo ESP

Figura 15: Captura de pantalla de conexiones Wi-Fi en un teléfono Android que muestra el punto de acceso del módulo ESP

– Puedes conectarte a tu red doméstica (que es “Robots Reloaded” en mi caso y a eso me conectaré) o al propio Punto de Acceso (que es “ESP_9F0F14” en mi caso. El SSID del módulo no es nada más es que su nombre seguido de los últimos 6 caracteres de su dirección MAC)

Código fuente del proyecto

 #definir esp Serie
#definir en 1 8#definir en 2 9#definir en 3 10#definir en 4 11#definir BUFFER_SIZE Búfer de 1000 caracteres (BUFFER_SIZE); void send_at(String x){ esp.println(x);} void setup { pinMode(entrada1, SALIDA);pinMode(entrada2, SALIDA);pinMode(entrada3, SALIDA);pinMode(entrada4, SALIDA);retraso(2000) ;esp.begin(9600);esp.println("AT");delay(1000);esp.println("AT+CWMODE=3");delay(1000);esp.println("AT+CIPMUX=1 ");delay(1000);esp.println("AT+CIPSERVER=1.80");delay(1000);esp.println("AT+CIFSR");delay(1000);} bool read_till_eol { static int i= 0; if(esp.disponible) { char c=esp.read ; búfer(i++)=c; si(i==BUFFER_SIZE) i=0; if(i>1 && búfer(i-2)==13 && búfer(i-1)==10) { búfer(i)=0; yo=0; devolver verdadero; } } devuelve falso;} bucle vacío { int ch_id, paquete_len; carbón *pb; if(read_till_eol ) { if(strncmp(buffer, "+IPD,", 5)==0) { // formato de solicitud: +IPD,ch,len:data sscanf(buffer+5, "%d,%d" , &ch_id, &packet_len); if (packet_len > 0) { pb = búfer+5; mientras(*pb!=':') pb++; pb++; if (strncmp(pb, "GET /", 6) == 0) {serve_homepage(ch_id,0); } else if (strncmp(pb, "GET /?fwd", 9) == 0){ adelante; servir_página de inicio(ch_id,1); } else if (strncmp(pb, "GET /?rev", 9) == 0){ reverso; servir_página de inicio(ch_id,2); } else if (strncmp(pb, "GET /?rgt", 9) == 0){ derecha; servir_página de inicio(ch_id,3); } else if (strncmp(pb, "GET /?lft", 9) == 0){ izquierda; servir_página de inicio(ch_id,4); } else if (strncmp(pb, "GET /?stp", 9) == 0){ stop_bot; servir_página de inicio(ch_id,0); } } }} } void save_homepage(int ch_id, estado del byte){ delay(1000); esp.print(F("AT+CIPSEND=")); esp.print(ch_id); esp.print(","); esp.println("512"); retraso(500); esp.print("HTTP/1.1 200 OKrnTipo de contenido:text/htmlrnrn CONTROLADOR DE ROBOT
BIENVENIDO A LA INTERFAZ WEB DEL CONTROLADOR DEL ROBOT A TRAVÉS DE WIFI

"); especialmente.imprimir("

ADELANTE

PARADA IZQUIERDA "); esp.print("DERECHA

CONTRARRESTAR


Creado por GANESH SELVARAJ para EngineersGarage.com


"); retraso(5000); esp.print(F("AT+CIPCLOSE=")); esp.println(ch_id);} void forward { digitalWrite(in1,HIGH); digitalWrite(in2,LOW); digitalWrite( en3,ALTO); escritura digital(en4,BAJO);}anular reversa {escritura digital(en1,BAJO); en2,BAJO); escritura digital(en2,BAJO); escritura digital(en4,BAJO);}void stop_bot {escritura digital(en1,BAJO);

Diagramas de circuito

Diagrama de circuito-Arduino-ESP8266-Ased-Module-Wi-Fi-Controlled-Robotic-Car

Vídeo del proyecto

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.