.. note::
¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros apasionados.
**¿Por qué unirse?**
- **Soporte experto**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
- **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades.
- **Preestrenos exclusivos**: Obtén acceso anticipado a nuevos anuncios de 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 durante las festividades.
👉 ¿Listo para explorar y crear con nosotros? ¡Haz clic en [|link_sf_facebook|] y únete hoy mismo!
12. Juega con PiDog usando la APP
======================================
En este ejemplo, usaremos la aplicación **SunFounder Controller** para controlar a PiDog.
.. raw:: html
Primero necesitas descargar la APP en tu teléfono/tableta, luego conectarte a la red WLAN como PiDog y, finalmente, crear tu propio control remoto en el SunFounder Controller para controlar PiDog.
.. _app_control:
Controla a PiDog con la aplicación
----------------------------------------
#. Instala `SunFounder Controller `_ desde la **App Store (iOS)** o **Google Play (Android)**.
#. Instala el módulo ``sunfounder-controller``.
Los módulos ``robot-hat``, ``vilib`` y ``pidog`` deben estar instalados previamente. Para más detalles, consulta: :ref:`install_all_modules`.
.. raw:: html
.. code-block::
cd ~
git clone https://github.com/sunfounder/sunfounder-controller.git
cd ~/sunfounder-controller
sudo python3 setup.py install
#. Ejecuta el código.
.. raw:: html
.. code-block::
cd ~/pidog/examples
sudo python3 12_app_control.py
Después de ejecutar el código, verás el siguiente mensaje, lo que indica que tu PiDog ha iniciado la comunicación en red con éxito.
.. code-block::
Running on: http://192.168.18.138:9000/mjpg
* Serving Flask app "vilib.vilib" (lazy loading)
* Environment: development
* Debug mode: off
* Running on http://0.0.0.0:9000/ (Press CTRL+C to quit)
#. Conecta ``PiDog`` y ``SunFounder Controller``.
* Conecta tu tablet o teléfono a la red WLAN en la que se encuentra PiDog.
* Abre la aplicación ``SunFounder Controller``. Haz clic en el icono + para añadir un controlador.
.. image:: img/app1.png
* Hay controles predefinidos para algunos productos, aquí selecciona **PiDog**. Asigna un nombre o simplemente toca **Confirmar**.
.. image:: img/app_preset.jpg
* Una vez dentro, la aplicación buscará automáticamente a **Mydog**. Al cabo de unos segundos, verás un mensaje indicando “Conectado con éxito.”
.. image:: img/app_auto_connect.jpg
.. note::
* También puedes hacer clic manualmente en el botón |app_connect|. Espera unos segundos, aparecerá MyDog (IP), haz clic en él para conectarte.
.. image:: img/sc_mydog.jpg
#. Ejecuta el controlador.
* Cuando aparezca el mensaje “Conectado con éxito”, toca el botón ▶ en la esquina superior derecha.
* Verás la imagen capturada por la cámara en la aplicación y ahora podrás controlar a PiDog usando estos widgets.
.. image:: img/sc_run.jpg
Aquí tienes las funciones de los diferentes widgets:
* A: Detectar la distancia de los obstáculos, es decir, la lectura del módulo ultrasónico.
* C: Activar/desactivar la detección de rostros.
* D: Controlar el ángulo de inclinación de la cabeza de PiDog.
* E: Sentarse.
* F: Ponerse de pie.
* G: Acostarse.
* I: Rascar la cabeza de PiDog.
* N: Ladrar.
* O: Mover la cola.
* P: Jadear.
* K: Controlar el movimiento de PiDog (avanzar, retroceder, girar a la izquierda y a la derecha).
* Q: Controlar la orientación de la cabeza de PiDog.
* J: Cambiar al modo de control por voz. Soporta los siguientes comandos de voz:
* ``forward``
* ``backward``
* ``turn left``
* ``turn right``
* ``trot``
* ``stop``
* ``lie down``
* ``stand up``
* ``sit``
* ``bark``
* ``bark harder``
* ``pant``
* ``wag tail``
* ``shake head``
* ``stretch``
* ``doze off``
* ``push-up``
* ``howling``
* ``twist body``
* ``scratch``
* ``handshake``
* ``high five``
Inicio automático al encenderse
-----------------------------------
Cuando controles a PiDog a través de la aplicación, no querrás tener que iniciar sesión en la Raspberry Pi y ejecutar manualmente ``12_app_control.py`` cada vez antes de conectarte a la aplicación.
Hay una forma más práctica de hacerlo. Puedes configurar a PiDog para que ejecute automáticamente ``12_app_control.py`` cada vez que se encienda. De este modo, podrás conectarte directamente a PiDog desde la aplicación y controlarlo fácilmente.
¿Cómo configurarlo?
#. Ejecuta los siguientes comandos para instalar y configurar la aplicación ``pidog_app`` y establecer la conexión WiFi para PiDog.
.. raw:: html
.. code-block::
cd ~/pidog/bin
sudo bash pidog_app_install.sh
#. Al finalizar, escribe ``y`` para reiniciar PiDog.
.. image:: img/auto_start.png
#. #. Después de reiniciar, PiDog iniciará automáticamente el script de control. Luego podrás :ref:`app_control`.
.. warning::
Si deseas ejecutar otros scripts, primero ejecuta ``pidog_app disable`` para desactivar la función de inicio automático.
.. Configuración del Programa de la APP
.. ----------------------------------------
.. Puedes usar los siguientes comandos para modificar la configuración del modo APP.
.. .. code-block::
.. pidog_app [input]
.. **OPCIÓN**
.. * ``-h`` ``help``: ayuda, muestra este mensaje
.. * ``start`` ``restart``: reiniciar el servicio ``pidog_app``
.. * ``stop``: detener el servicio ``pidog_app``
.. * ``disable``: desactivar el inicio automático del programa ``app_controller`` al arrancar
.. * ``enable``: activar el inicio automático del programa ``app_controller`` al arrancar
.. * ``close_ap``: cerrar el punto de acceso, desactivar el inicio automático del hotspot al arrancar y cambiar al modo ``sta``
.. * ``open_ap``: abrir el punto de acceso, activar el inicio automático del hotspot al arrancar
.. * ``ssid``: configurar el ssid (nombre de red) del punto de acceso
.. * ``psk``: configurar la contraseña del punto de acceso
.. * ``country``: configurar el código de país del punto de acceso