Table des matières:

MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX): 7 étapes (avec photos)
MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX): 7 étapes (avec photos)

Vidéo: MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX): 7 étapes (avec photos)

Vidéo: MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX): 7 étapes (avec photos)
Vidéo: Build a WiFi Controlled Robot with the ESP8266 2024, Novembre
Anonim
Image
Image
MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover basé sur WEMOS D1 (ESP-8266EX)

** Mise à jour: j'ai posté une nouvelle vidéo pour la v2 avec une lance **

J'anime des ateliers de robotique pour les jeunes enfants et je suis toujours à la recherche de plateformes économiques pour construire des projets intrigants. Bien que les clones Arduino soient bon marché, ils utilisent le langage C/C++ que les enfants ne connaissent pas. De plus, il n'a pas de WiFi intégré, ce qui est indispensable pour les projets IoT. D'un autre côté, bien que Raspberry Pi dispose du WIFI et que les enfants puissent le programmer à l'aide de Python, il s'agit toujours d'une plate-forme coûteuse pour contrôler simplement quelques ports GPIO pour allumer et éteindre les appareils. J'ai besoin de quelque chose entre les deux qui possède à la fois des capacités WIFI et Python. Il semble que j'ai trouvé ma réponse dans MicroPython sur une carte bon marché basée sur ESP8266.

Qu'est-ce que le micropython ?

Selon son site Web, MicroPython est une implémentation allégée et efficace des langages de programmation Python 3 qui comprend un petit sous-ensemble de la bibliothèque standard Python et il est optimisé pour fonctionner sur des microcontrôleurs et dans un environnement contraint (comme ESP8266). Il s'agit essentiellement d'un IDE Python sur puce. L'un des principaux avantages est que vous pouvez créer du code et le modifier à la volée à l'aide d'un client de navigateur Web appelé Webrepl. (Essayez de le faire dans Arduino.) Vous pouvez également voir les données des capteurs en temps réel sur Webrepl au lieu de vous fier à l'enregistrement des données ou à un écran LED dans Arduino.

Qu'est-ce que l'ESP8266 ?

En bref, considérez-le comme un Arduino avec une capacité réseau intégrée. Vous pouvez utiliser l'IDE Arduino pour programmer les cartes ESP8266 en C/C++ ou vous pouvez le flasher avec NodeMCU ou MicroPython. Dans ce projet, je vais flasher MicroPython sur une carte ESP8266.

J'ai décidé d'acheter un WEMOS D1 basé sur ESP8266-12EX pour ce projet simple où je vais conduire une voiture 2 roues motrices à l'aide d'un navigateur Web. Il existe d'autres cartes conçues pour MicroPython, mais je voulais quelque chose de bon marché que je pourrais jeter s'il ne répondait pas à mes critères. Comme prévu, il a répondu à toutes mes exigences et j'intégrerai très probablement WeMos et Micropython dans de futurs projets.

Étape 1: Pièces

les pièces
les pièces
les pièces
les pièces
les pièces
les pièces
les pièces
les pièces
  • Wemos D1 ou toute carte basée sur ESP8266
  • Bouclier moteur (j'utilise un L293D bon marché d'AliExpress)
  • Supports de piles pour 4 piles AA et 9V (4 piles AA sont pour les moteurs et 9V pour la carte Wemos)
  • Châssis de voiture 2 roues motrices
  • Câbles Dupont

Peut avoir besoin d'un fer à souder, d'un tournevis et d'un pistolet à colle pour tout assembler.

Étape 2: Assemblage du matériel

Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel

Tout d'abord, assemblez le châssis selon les instructions.

Ensuite, collez à chaud les autres composants comme indiqué.

Les fils du moteur doivent être soudés aux bornes du moteur et utiliser de la colle chaude pour renforcer les joints des bornes.

Apposé un petit interrupteur sur le support de batterie 4AA. Cela mettra sous/hors tension le blindage du moteur.

Étape 3: Câblage

Câblage
Câblage
Câblage
Câblage
Câblage
Câblage

Suivez mon schéma de câblage comme indiqué.

Wemos à Motor Shield:

D1 IN2

D2 IN1 D3 IN4 **sauter D4 D5 IN3 GND -> GND

Blindage du moteur au moteur/à l'alimentation:

Une borne -> Moteur gauche

Borne B -> Moteur droit VCC ->Batterie (+) GND -> Batterie (-)

Étape 4: Installation de MicroPython

Premièrement, Wemos a une puce série/USB basée sur CH304G. C'est la même puce que l'on trouve dans les clones Arduino bon marché et vous devez installer un pilote approprié pour Mac ou PC. Suivez les instructions sur ce site pour installer le pilote.

Connectez Wemos à votre ordinateur et confirmez que votre ordinateur peut détecter Wemos. Sur Mac, exécutez la commande suivante et vous verrez un périphérique appelé /dev/tty.wchusbserial640.

$ ls -lt /dev/tty* | diriger

crw-rw-rw- 1 roue racine 17, 4 mars 2 23:31 /dev/tty.wchusbserial640

Si vous êtes sur PC, vous pouvez utiliser ce Instructable comme référence.

Ensuite, vous devrez configurer Python 2 ou 3 sur votre ordinateur car l'outil flash, esptool.py, est basé sur Python. Bien que le guide MicroPython puisse indiquer que l'outil ne fonctionne qu'avec Python 2.7, j'ai pu l'exécuter dans Python 3 sans aucun problème. Téléchargez la dernière version de Python sur https://www.python.org et suivez les instructions d'installation pour votre PC ou Mac.

Enfin, vous devrez installer MicroPython sur Wemos. Le site MicroPython propose un excellent tutoriel sur la configuration de MicroPython sur ESP8266. Suivez simplement les instructions d'installation dans Premiers pas avec MicroPython sur l'ESP8266.

Ci-dessous les commandes que j'ai utilisées:

$ esptool.py --port /dev/tty.wchusbserial640 effacer_flash

esptool.py v1.3 Connexion…. Exécution du talon de clignotant Cesanta… Effacement du flash (cela peut prendre un certain temps)… L'effacement a pris 10,5 secondes

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 Connexion…. Exécution du stub flasher Cesanta… Paramètres flash réglés sur 0x0240 A écrit 589824 octets à 0x0 en 50,8 secondes (92,8 kbit/s)… Laissant…

MicroPython est maintenant installé sur votre carte !

Étape 5: Configurer le réseau

Configurer le réseau
Configurer le réseau

Bien que MicroPython soit maintenant installé sur votre Wemos, il n'est pas encore connecté à votre réseau. Vous devrez d'abord activer le réseau. Sur Mac, exécutez la commande SCREEN pour démarrer la session de terminal série vers Wemos.

$ screen /dev/tty.wchusbserial640 115200

Lorsque vous voyez un écran vide, appuyez sur RETOUR pour voir une invite:

>>

(Remarque: pour quitter, tapez CTRL-A CTRL-)

Maintenant, activons l'accès au client Web. Tapez "import webrepl_setup" pour exécuter le programme d'installation. Entrez E pour activer WebREPL, puis définissez le mot de passe. Redémarrez pour activer les modifications.

>> importer webrepl_setup

Statut de démarrage automatique du démon WebREPL: désactivé Souhaitez-vous (E) activer ou (D) désactiver son exécution au démarrage ? (Ligne vide pour quitter) > E Pour activer WebREPL, vous devez lui définir un mot de passe Nouveau mot de passe: xxxxx Confirmer le mot de passe: xxxxx Les modifications seront activées après le redémarrage Souhaitez-vous redémarrer maintenant ? (o/n) oui

Enfin, téléchargez le client Webrepl sur votre machine. Ceci est facultatif, mais le client est livré avec d'autres outils utiles que vous voudrez peut-être utiliser plus tard. Par exemple, webrepl_cli.py est une commande pour copier des fichiers vers Wemos dans une syntaxe de type scp. Utilisez git pour télécharger le client. (Installez l'outil git si vous ne l'avez pas encore.)

git clone

Ouvrez votre navigateur Web et dans le champ URL, entrez l'emplacement de votre fichier client webrepl téléchargé, par exemple:

fichier:///Utilisateurs/xxxxx/wemos/webrepl/webrepl.html

Cela devrait afficher le client webrepl sur votre navigateur. Avant de pouvoir vous y connecter, vous devez d'abord vous connecter à son point d'accès WiFi. Si vous regardez le WIFI disponible pour votre ordinateur, vous verrez qu'un réseau commence par MicroPython-xxxx. Connectez-vous à ce réseau. (Avertissement: une fois connecté à ce réseau, vous perdrez votre accès à Internet.)

Revenez à votre client webrepl et cliquez sur Connecter. Il devrait demander un mot de passe. Entrez votre mot de passe Wemos et vous devriez vous connecter.

Bienvenue sur MicroPython !

Mot de passe: WebREPL connecté >>>

Votre Wemos fonctionne toujours en mode AccessPoint. Bien que ce soit OK, je préfère qu'il fonctionne en mode Station où il se connecte à mon WIFI domestique afin que mon ordinateur puisse y accéder via le WIFI domestique et ait toujours un accès Internet. Pour ce faire, vous devrez créer un fichier appelé boot.py avec la configuration réseau et le télécharger sur Wemos.

Voici un exemple de boot.py. Changez le ssid et le mot de passe de votre réseau WIFI domestique. De plus, je veux lui donner une adresse IP statique de 192.168.0.32. Remplacez-la par l'adresse IP disponible de votre WIFI domestique.

boot.py (vous pouvez le télécharger ci-dessous)

importer gc

import webrepl def do_connect(): import network sta_if = network. WLAN(network. STA_IF) sinon sta_if.isconnected(): print('connexion au réseau…') sta_if.active(True) sta_if.ifconfig(('192.168. 0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')) sta_if.connect('', '') sans sta_if.isconnected(): passer print('network config:', sta_if.ifconfig()) do_connect() webrepl.start() gc.collect()

Utilisez le formulaire "Envoyer un fichier" du client Webrepl pour envoyer votre fichier boot.py à votre Wemos. Appuyez sur le bouton de réinitialisation pour redémarrer. Si vous êtes toujours connecté via USB à l'aide de la commande SCREEN, vous verrez:

connexion au réseau… configuration réseau: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Le démon WebREPL a démarré sur ws://192.168.4.1:8266 Le démon WebREPL a démarré sur ws://192.168.0.32:8266 Webrepl démarré en mode normal n'a pas pu ouvrir le fichier 'main.py' pour lire MicroPython v1.8.7-7-gb5a1a20a3 le 2017-01-09; Module ESP avec ESP8266 Tapez "help()" pour plus d'informations. >>>

Cela valide que votre Wemos est connecté à votre Wi-Fi domestique à l'aide de l'adresse IP 192.168.0.32.

Vous pouvez cingler cette adresse IP pour valider.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 octets de données

64 octets de 192.168.0.32: icmp_seq=0 ttl=255 temps=9.334 ms 64 octets de 192.168.0.32: icmp_seq=1 ttl=255 temps=11.071 ms..

Étape 6: Installer le programme principal

Installer le programme principal
Installer le programme principal
Installer le programme principal
Installer le programme principal

Enfin, vous devrez installer le programme principal qui continuera à s'exécuter sur votre Wemos.

Revenez à votre navigateur Web et exécutez le programme client webrepl. Remplacez l'adresse IP par l'adresse IP de votre Wemos. Dans mon cas, c'est maintenant 192.168.0.32. Entrez votre mot de passe Wemos et vous devriez maintenant être connecté à Wemos.

Téléchargeons le programme main.py ci-joint. Téléchargez le fichier joint sur votre ordinateur. Cliquez sur Choisir un fichier pour choisir le fichier main.py téléchargé et cliquez sur Envoyé à l'appareil.

Vous devrez appuyer sur le bouton Rest pour charger le programme main.py. Après avoir appuyé sur le bouton Réinitialiser, vous verrez:

connexion au réseau…

configuration réseau: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

Le démon WebREPL a démarré sur ws://192.168.4.1:8266 Le démon WebREPL a démarré sur ws://192.168.0.32:8266 Webrepl démarré en mode normal Écoute, connectez votre navigateur à …

Cela signifie que votre programme main.py est activé et listé sur le port 80.

Pour tester, ouvrez votre navigateur Web et entrez

Cela devrait afficher l'écran de contrôle de la voiture comme indiqué dans la vidéo. Si vos fils sont correctement connectés, les boutons de commande enverront les signaux appropriés à vos ports GPIO pour déplacer la voiture.

Étape 7: Améliorations futures

Les tâches suivantes sont sur ma liste v2:

  • Utilisez PWM pour contrôler la vitesse du moteur
  • Améliorer l'interface Web. Utilisez peut-être un framework REST. Je ne pense pas que la bibliothèque aREST soit disponible sur MicroPython pour le moment, je devra donc peut-être la pirater.

Merci d'avoir lu ce Instructable. Suivez-moi sur Facebook, Youtube et Instructables pour plus de projets à l'avenir.

Conseillé: