.. note::
¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Explora más a fondo Raspberry Pi, Arduino y ESP32 junto con otros entusiastas.
**¿Por qué unirse?**
- **Soporte experto**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
- **Aprende y comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades.
- **Acceso exclusivo**: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes.
- **Promociones y sorteos festivos**: Participa en sorteos y promociones especiales.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo.
.. _ar_app_control:
17. Control mediante APP
============================
En el proyecto anterior, solo visualizamos las imágenes capturadas por la cámara y utilizamos la función de detección de IA en la aplicación SunFounder Controller.
En este proyecto, intentaremos controlar el movimiento y la dirección del Zeus Car usando el widget de joystick en la aplicación. Veamos cómo funciona.
.. note::
Instala `SunFounder Controller `_ desde **APP Store (iOS)** o **Google Play (Android)**.
**¿Cómo hacerlo?**
#. La ESP32-CAM y la placa Arduino comparten los mismos pines RX (recepción) y TX (transmisión). Por lo tanto, cuando cargues código, primero debes desconectar la ESP32-CAM para evitar conflictos o posibles problemas.
.. image:: img/unplug_cam.png
:width: 400
:align: center
#. Abre el archivo ``17_app_control.ino`` en la ruta ``zeus-car-main\examples\17_app_control``.
.. raw:: html
#. Una vez que el código se haya cargado correctamente, puedes volver a conectar la ESP32-CAM y mover el interruptor de encendido a la posición ON para iniciar el Zeus Car.
.. image:: img/plug_esp32_cam.jpg
#. Cambia el interruptor de carga a la posición de ejecución (lado derecho en este diagrama) para iniciar la ESP32-CAM.
.. image:: img/zeus_run.jpg
#. Presiona el botón de reinicio para ejecutar nuevamente el programa en la placa Arduino.
.. image:: img/zeus_reset_button.jpg
#. Conéctate a la red WLAN ``Zeus_Car``.
* Busca ``Zeus_Car`` en la red Wi-Fi del teléfono móvil (o tableta), introduce la contraseña ``12345678`` y conéctate.
.. image:: img/app_wlan.png
* El modo de conexión predeterminado es el modo AP. Una vez conectado, aparecerá un mensaje indicando que no hay acceso a Internet en esta red WLAN. Elige continuar con la conexión.
.. image:: img/app_no_internet.png
#. Crea un controlador.
* Para añadir un controlador en SunFounder Controller, haz clic en el icono **+**.
.. image:: img/app1.png
* En la sección de plantillas predefinidas, selecciona **Blank** y **Dual Stick**.
.. image:: img/app_blank.PNG
* Haz clic en el icono **+** en el área J y selecciona un widget de interruptor. Puede que necesites deslizar hacia la izquierda para verlo.
.. image:: img/app_switch_wid.png
.. note::
Si crees que seleccionaste el widget equivocado, puedes hacer clic en él nuevamente y usar el botón de eliminación para eliminarlo.
.. image:: img/app_delete.png
* Haz clic en el icono de configuración en la parte superior derecha para asignarle un nombre.
.. image:: img/app_name_dirft.png
* Selecciona un widget de joystick en las áreas K y Q, asígnales un nombre a ambos y guarda el controlador con el botón |app_save|.
.. image:: img/app_joystick_wid.png
* Luego, conecta el Zeus Car a tu dispositivo a través del botón |app_connect|. Espera unos segundos y aparecerá ``Zeus_Car(IP)``, haz clic en él para conectarte.
.. image:: img/app_connect.png
.. note::
Asegúrate de que tu Wi-Fi esté conectado a ``Zeus_Car`` si no ves este mensaje después de un tiempo.
#. Ejecuta el controlador.
Una vez que aparezca el mensaje "Conectado con éxito", haz clic en el botón |app_run| para ver la transmisión en vivo de la cámara en la aplicación. Ahora podrás controlar tu Zeus Car con los widgets.
Las funciones de los tres widgets son las siguientes:
**Mover en todas las direcciones (K)**
El Zeus Car se moverá en la dirección correspondiente cuando deslices el widget |app_move_k|.
.. image:: img/joystick_move.png
:align: center
El coche se mueve con cada deslizamiento. Si no sueltas el joystick, el coche continuará en movimiento.
.. image:: img/zeus_move.jpg
**Habilitar derrape (J)**
Haz clic en el botón |app_drift_j| para habilitar la función de derrape.
* Si deslizas el widget |app_rotate_q| en sentido antihorario, el Zeus Car derrapará hacia la derecha. Al soltar el joystick, el coche se detendrá en su posición actual.
.. image:: img/zeus_drift_left.jpg
:width: 600
:align: center
* De manera similar, si deslizas el widget |app_rotate_q| en sentido horario, el Zeus Car derrapará hacia la izquierda y se detendrá en su posición actual.
.. image:: img/zeus_drift_right.jpg
:width: 600
:align: center
**Control de dirección (Q)**
* Cuando el botón |app_drift_j| está activado, el widget |app_rotate_q| se usa para hacer que el Zeus Car derrape a la izquierda o a la derecha.
* Cuando el widget |app_drift_j| está desactivado, el widget |app_rotate_q| se usa para controlar la dirección del coche.
* Si deslizas el widget |app_rotate_q| en sentido antihorario, el coche girará en esa dirección. Al soltarlo, volverá a su dirección original.
.. image:: img/zeus_turn_left.jpg
:width: 600
:align: center
* De la misma manera, si deslizas el widget |app_rotate_q| en sentido horario, el coche girará en esa dirección y regresará a su posición original al soltarlo.
.. image:: img/zeus_turn_right.jpg
:width: 600
:align: center