Este tutorial le enseña cómo controlar un coche robot de forma inalámbrica utilizando un Arduino desde un navegador web en su teléfono inteligente o PC a través de WiFi. El control se gestiona a través de una interfaz gráfica de usuario web que utiliza la tecnología WebSocket, lo que permite un funcionamiento fluido y dinámico del coche.
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca de un coche RC 2WD y WebSocket
Ahora, ¿por qué elegir WebSocket? Aquí están las razones:
Sin WebSocket, tendrías que recargar la página cada vez que quieras cambiar la dirección del coche. ¡Esto no es eficiente!
Con WebSocket, se establece una conexión especial entre la página web y el Arduino. Esto te permite enviar comandos al Arduino en segundo plano, sin necesidad de recargar la página. ¿El resultado? El coche robot responde de forma suave e instantánea. ¿No es bastante impresionante, verdad?
En resumen, WebSocket facilita el control fluido y en tiempo real del robot.
Tenemos tutoriales específicos sobre el coche RC de dos ruedas motrices (2WD) y WebSocket. Cada tutorial contiene información detallada y instrucciones paso a paso sobre la disposición de pines de hardware, principio de funcionamiento, conexión de cableado al Arduino, código de Arduino... Aprende más sobre ellos en los siguientes enlaces:
El código de Arduino configura tanto un servidor web como un servidor WebSocket. Así es como funciona:
Cuando ingresas la dirección IP del Arduino en un navegador web, este envía una solicitud de la página web (Interfaz de usuario) desde el Arduino.
El servidor web del Arduino responde entregando el contenido de la página web (HTML, CSS, JavaScript).
Tu navegador web muestra esta página.
Dentro de la página web, el código JavaScript inicia una conexión WebSocket con el servidor WebSocket en el Arduino.
Una vez que esta conexión WebSocket está activa, cualquier pulsación o liberación de botones en la página web provoca que el código JavaScript envíe comandos al Arduino a través de esta conexión de forma discreta.
El servidor WebSocket en el Arduino recibe estos comandos y dirige el coche robot en consecuencia.
A continuación se muestra una tabla con la lista de comandos que la página web envía al Arduino según las acciones del usuario:
User's Action
Button
Command
Car Action
PRESS
UP
1
MOVE FORWARD
PRESS
DOWN
2
MOVE BACKWARD
PRESS
LEFT
4
TURN LEFT
PRESS
RIGHT
8
TURN RIGHT
PRESS
STOP
0
STOP
RELEASE
UP
0
STOP
RELEASE
DOWN
0
STOP
RELEASE
LEFT
0
STOP
RELEASE
RIGHT
0
STOP
RELEASE
STOP
0
STOP
Diagrama de cableado entre un coche RC de dos ruedas motrices y Arduino
This image is created using Fritzing. Click to enlarge image
El módulo L9110S (que funciona como el controlador del motor) alimenta los motores directamente desde sus pines VCC y GND y no tiene un regulador de 5 V integrado. Esto te permite alimentar todo desde una sola fuente de energía: cuatro pilas de 1,5 V para obtener un total de 6 V. Así es como se hace:
Conecta la batería de 6 V a los pines VCC y GND del módulo L9110S para alimentar los motores.
Conecta la misma batería de 6 V a los pines Vin y GND del Arduino para alimentar la placa Arduino.
Asegúrate de que el módulo L9110S y el Arduino compartan un GND común.
A diferencia del L298N, el L9110S no tiene puentes de habilitación ENA/ENB ni una terminal de tornillo de 12 V, por lo que el cableado es más sencillo.
El coche RC de tracción en dos ruedas (2WD) incluye un interruptor de encendido/apagado, lo que te ofrece la opción de conectar la batería a través del interruptor. Esta configuración te permite encender y apagar la energía del coche según sea necesario. Si prefieres una configuración más simple, puedes optar por omitir por completo el interruptor.
Código de Arduino
El contenido de la página web (HTML, CSS y JavaScript) se almacena por separado en un archivo index.h. Por lo tanto, tendremos dos archivos de código en el IDE de Arduino:
Un archivo .ino con código de Arduino que crea un servidor web y un servidor WebSocket, y controla el coche
Un archivo .h que contiene el contenido de la página web
Ahora tienes el código en dos archivos: ArduinoGetStarted.com.ino y index.h
Haz clic en el botón Subir en el IDE de Arduino para cargar el código al Arduino.
Abre el Monitor Serial
Revisa el resultado en el Monitor Serial.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino Uno R4 WiFi - WebSocket Server
Connected! IP Address: 192.168.0.254
SSID: YOUR_WIFI_SSID
IP Address: 192.168.0.254
Signal strength (RSSI): -44 dBm
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.254:81
WebSocket server enabled successfully
Ln 11, Col 1
Arduino Uno on COM15
2
Tome nota de la dirección IP que se muestra y escriba esta dirección en la barra de direcciones de un navegador web en su teléfono inteligente o PC.
Verá la página web como se muestra a continuación:
Haz clic en el botón CONECTAR para conectar la página web a Arduino a través de WebSocket.
Ahora puedes controlar el coche para girar a la izquierda o a la derecha y avanzar o retroceder a través de la interfaz web.
Para ahorrar la memoria de Arduino, las imágenes de los botones de control no se almacenan en Arduino. En su lugar, se almacenan en Internet, por lo que tu teléfono o tu PC necesitan tener conexión a Internet para cargar las imágenes de la página de control web.
※ Nota:
Si modifica el contenido HTML en el index.h y no toca nada en el archivo ArduinoGetStarted.com.ino, al compilar y subir el código a Arduino, el IDE de Arduino no actualizará el contenido HTML.
Para que el IDE de Arduino actualice el contenido HTML en este caso, haga un cambio en el archivo ArduinoGetStarted.com.ino (por ejemplo, añadiendo una línea en blanco, agregando un comentario...)
Explicación del código línea por línea
El código de Arduino anterior contiene una explicación línea por línea. ¡Por favor lea los comentarios en el código!
No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!