Note
Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez plus profondément dans le monde du Raspberry Pi, de l’Arduino et de l’ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux avant-goûts.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et tirages au sort : Participez à des promotions spéciales et à des concours.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !
9. Jouer avec le contrôleur @SunFounder
Dans ce projet, vous apprendrez à créer un projet à distance en utilisant l’application Sunfounder Controller. Dans un environnement LAN, vous pouvez contrôler votre circuit Pico W avec votre téléphone ou votre tablette. Vous trouverez cette application très utile si vous souhaitez construire un robot simple avec le Pico W.
Ici, nous utiliserons la barre de curseur de l’application pour contrôler l’angle du servo et le manomètre de l’application pour afficher la distance détectée par le capteur ultrasonique.
1. Composants requis
Dans ce projet, nous avons besoin des composants suivants.
Il est définitivement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
|---|---|---|
Kepler Kit |
450+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
SN |
COMPOSANT |
QUANTITÉ |
LIEN |
|---|---|---|---|
1 |
1 |
||
2 |
Câble Micro USB |
1 |
|
3 |
1 |
||
4 |
Plusieurs |
||
5 |
1 |
||
6 |
1 |
||
7 |
1 |
||
8 |
Batterie 18650 |
1 |
|
9 |
Support de batterie |
1 |
2. Construire le circuit
Avertissement
Assurez-vous que votre module de charge Li-po est connecté comme indiqué sur le schéma. Sinon, un court-circuit pourrait endommager votre batterie et votre circuit.
3. Configurer le contrôleur SunFounder
Installez SunFounder Controller APP depuis l”APP Store (iOS) ou Google Play (Android).
Ouvrez l’application et cliquez sur le bouton + sur la page d’accueil pour créer un contrôleur.
Ici, nous choisissons Blank et Dual Stick.
Vous obtenez maintenant un contrôleur vide.
Cliquez sur la zone H et ajoutez un widget Slider.
Cliquez sur l’engrenage du contrôle pour ouvrir la fenêtre des paramètres.
Réglez Maximum à 180 et Minimum à 0, puis cliquez sur Confirmer.
Cliquez sur la zone L et ajoutez un widget Gauge.
Cliquez sur l’engrenage du Gauge, ouvrez la fenêtre des paramètres, réglez Maximum à 100, Minimum à 0 et unité à cm.
Après avoir terminé les réglages des widgets, cliquez sur Sauvegarder.
4. Exécuter le code
Note
Si votre Pico W utilise actuellement le firmware Anvil, vous devrez 1.3 Installer MicroPython sur votre Pico.
Téléchargez
ws.pyetwebsocket_helper.pydepuis le cheminkepler-kit-main/libsvers le Raspberry Pi Pico W.
Double-cliquez sur le script
ws.pyet renseignez lesSSIDetPASSWORDde votre réseau Wi-Fi.
Ouvrez
9_sunfounder_controller.pydans le cheminkepler-kit-main/iot. Cliquez sur le bouton Run current script ou appuyez sur F5 pour l’exécuter. Après une connexion réussie, vous verrez l’adresse IP de Pico W.
Note
Si vous souhaitez que ce script se lance au démarrage, vous pouvez le sauvegarder sur le Raspberry Pi Pico W en tant que
main.py.Retournez sur l’application SunFounder Controller et cliquez sur le bouton Connect.
Si Pico W est détecté, touchez-le directement pour vous connecter.
S’il ne se connecte pas automatiquement, vous pouvez aussi entrer manuellement l’adresse IP pour vous connecter.
Lorsque vous faites glisser la barre de curseur dans la zone H après avoir cliqué sur le bouton Run, le servo ajustera son angle. Le manomètre dans la zone L affichera la distance si votre main se trouve à moins de 100 cm du capteur ultrasonique.
Comment ça marche ?
La classe WS_Server dans la bibliothèque ws.py permet de communiquer avec l’application. Voici le cadre pour implémenter sa fonctionnalité de base.
from ws import WS_Server
import json
import time
ws = WS_Server(8765) # init websocket
def main():
ws.start()
while True:
status,result=ws.transfer()
time.sleep_ms(100)
try:
main()
finally:
ws.stop()
Tout d’abord, nous devons créer un objet WS_Server.
ws = WS_Server(8765)
Lancer le serveur.
ws.start()
Ensuite, une boucle while True est utilisée pour effectuer le transfert de données entre Pico W et l’application SunFounder Controller.
while True:
# transfert des données via websocket
status, result = ws.transfer()
# état du transfert de données
print(status)
# données reçues
print(result)
# données envoyées
print(ws.send_dict)
time.sleep_ms(100)
status est False si la réception des données de l’application échoue.
Et result contient les données que Pico W a récupérées depuis l’application.
En les affichant, vous verrez quelque chose comme ceci, qui représente les valeurs de toutes les zones des widgets.
{'C': None, 'B': None, 'M': None,,,,, 'A': None, 'R': None}
Dans cet exemple, nous imprimons les valeurs de la zone H séparément et les utilisons pour contrôler le circuit.
status,result=ws.transfer()
#print(result)
if status == True:
print(result['H'])
Le dictionnaire ws.send_dict contient les données que Pico W envoie à l’application SunFounder Controller. Il est créé dans la classe WS_Server et est envoyé lorsque ws.transfer() est exécuté.
Le message est illustré ci-dessous.
{'Check': 'SunFounder Controller', 'Name': 'PicoW', 'Type': 'Blank'}
C’est un message vierge, pour copier les données sur le widget de l’application, nous devons attribuer une valeur à la zone correspondante du dictionnaire. Par exemple, attribuer la valeur 50 à la zone L.
ws.send_dict['L'] = 50
Les données apparaîtront ainsi :
{'L': 50, 'Type': 'Blank', 'Name': 'PicoW', 'Check': 'SunFounder Controller'}
Pour plus de détails sur l’utilisation de SunFounder Controller, veuillez consulter SunFounder Controller APP.