Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Explora a fondo Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas técnicos y consultas postventa con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vista previa exclusiva: 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 especiales: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
9. Controla con la App de SunFounder
En este proyecto, aprenderás cómo construir un proyecto de control remoto usando la aplicación SunFounder Controller. En un entorno LAN, podrás controlar tu circuito Pico W desde tu teléfono o tablet. Encontrarás esta aplicación muy útil si deseas construir un robot simple con el Pico W.
Aquí, utilizaremos la barra deslizante de la APP para controlar el ángulo del servo y el medidor para mostrar la distancia detectada por el sensor ultrasónico.
1. Componentes necesarios
Para este proyecto, necesitamos los siguientes componentes.
Es conveniente comprar un kit completo, aquí tienes el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Kepler |
450+ |
También puedes comprarlos por separado a través de los enlaces a continuación.
N° |
COMPONENTE |
CANTIDAD |
ENLACE |
|---|---|---|---|
1 |
1 |
||
2 |
Cable Micro USB |
1 |
|
3 |
1 |
||
4 |
Varios |
||
5 |
1 |
||
6 |
1 |
||
7 |
1 |
||
8 |
Batería 18650 |
1 |
|
9 |
Soporte de batería |
1 |
2. Arma el circuito
Advertencia
Asegúrate de que tu Módulo Cargador Li-po esté conectado como se muestra en el diagrama. De lo contrario, un cortocircuito podría dañar tu batería y los componentes.
3. Configura el SunFounder Controller
Instala la SunFounder Controller APP desde la App Store (iOS) o Google Play (Android).
Abre la App y haz clic en el botón + en la página de inicio para crear un controlador.
Aquí elegimos En Blanco y Control Dual Stick.
Ahora obtenemos un controlador vacío.
Haz clic en el área H y añade un widget Slider (deslizador).
Haz clic en el engranaje del control para abrir la ventana de configuración.
Configura el Máximo en 180 y el Mínimo en 0, luego haz clic en Confirmar.
Haz clic en el área L y añade un widget Medidor (Gauge).
Haz clic en el engranaje del Medidor, abre la ventana de configuración, establece el Máximo en 100, el Mínimo en 0, y la unidad en cm.
Después de terminar la configuración de los widgets, haz clic en Guardar.
4. Ejecuta el Código
Nota
Si tu Pico W está usando actualmente el firmware de Anvil, entonces necesitarás 1.3 Instalar MicroPython en tu Pico.
Sube los archivos
ws.pyywebsocket_helper.pydesde la rutakepler-kit-main/libsal Raspberry Pi Pico W.
Haz doble clic en el script
ws.pyy completa los camposSSIDyPASSWORDde tu red Wi-Fi.
Abre el archivo
9_sunfounder_controller.pyen la rutakepler-kit-main/iot. Haz clic en el botón Ejecutar script actual o presiona F5 para ejecutarlo. Una vez conectado, verás la IP del Pico W.
Nota
Si deseas que este script se inicie automáticamente al encenderse, puedes guardarlo en el Raspberry Pi Pico W como
main.py.Regresa a la App SunFounder Controller y haz clic en el botón Conectar.
Si el Pico W es detectado, selecciónalo directamente para conectar.
Si no se encuentra automáticamente, también puedes ingresar manualmente la IP para conectarlo.
Al deslizar la barra en el área H después de hacer clic en el botón Ejecutar, el servo ajustará su ángulo. El medidor en el área L mostrará la distancia si tu mano está a menos de 100 cm del sensor ultrasónico.
Cómo funciona
La clase WS_Server en la biblioteca ws.py implementa la comunicación con la APP. A continuación se muestra el marco básico para implementar su funcionalidad.
from ws import WS_Server
import json
import time
ws = WS_Server(8765) # inicializar el websocket
def main():
ws.start()
while True:
status,result=ws.transfer()
time.sleep_ms(100)
try:
main()
finally:
ws.stop()
Primero, necesitamos crear un objeto WS_Server.
ws = WS_Server(8765)
Inícialo.
ws.start()
Luego, se utiliza un bucle while True para realizar la transferencia de datos entre Pico W y la SunFounder Controller APP.
while True:
# transferir datos con websocket
status, result = ws.transfer()
# el estado de la transferencia de datos
print(status)
# los datos recibidos
print(result)
# los datos enviados
print(ws.send_dict)
time.sleep_ms(100)
status será False si no se logran obtener datos de la SunFounder Controller APP.
result son los datos que el Pico W recibió de la APP de SunFounder Controller.
Al imprimirlos, verás algo similar a lo siguiente, que muestra el valor de todas las áreas de Widgets.
{'C': None, 'B': None, 'M': None,,,,, 'A': None, 'R': None}
En este caso, imprimimos los valores del área H por separado y los usamos para operar el circuito.
status,result=ws.transfer()
#print(result)
if status == True:
print(result['H'])
El diccionario ws.send_dict son los datos que Pico W envía a la SunFounder Controller APP. Se crea en la clase WS_Server y se envía al ejecutar ws.transfer().
Su mensaje aparece como se muestra a continuación.
{'Check': 'SunFounder Controller', 'Name': 'PicoW', 'Type': 'Blank'}
Este es un mensaje en blanco; para copiarlo al widget en la SunFounder Controller APP, necesitamos asignar el valor al área correspondiente en el diccionario. Por ejemplo, asignamos el valor 50 al área L.
ws.send_dict['L'] = 50
Los datos se muestran a continuación:
{'L': 50, 'Type': 'Blank', 'Name': 'PicoW', 'Check': 'SunFounder Controller'}
Para obtener más detalles sobre el uso de SunFounder Controller, consulta SunFounder Controller APP.