ESP8266: comment téléverser facilement un programme

Sommaire

L’ESP8266

L’ESP8266 (de la société Espressif) est un micro-contrôleur qui, n’ayons pas peur des mots, a révolutionné la connectivité Wifi dans les applications DIY. En effet, il est très peu cher (schématiquement entre 2 et 10 € en fonction de la complexité du module sur lequel il est mis en œuvre ) et il se programme facilement pour fonctionner de façon totalement autonome, sans qu’il soit indispensable de l’associer à une carte Arduino classique.

Si vous ne connaissez pas l’ESP8266, je vous recommande vivement la lecture des n°7 et 8 d’Hackable Magazine. D’ailleurs, si le monde du DIY, de l’Arduino, du Raspberry Pi, etc… vous intéresse, la lecture de ce magazine fera votre bonheur.

Sans trop entrer dans les détails, il faut savoir que l’ESP8266 s’achète intégré à des modules plus ou moins sophistiqués:

  • Le plus basique est sans doute l’ESP-01 qui présente, avec 8 broches (1 interface série, 3 GPIO, le Vcc, la masse et le reset), un échantillon des capacités du micro-contrôleur. Ca peut sembler très limité, mais c’est  suffisant pour commander un relais en Wifi, par exemple
  • On trouvera dans la catégorie intermédiaire:
    • les modules ESP-xx dont le facteur de forme ne correspond à rien de réellement connu
    • des modules au format XBee, comme le Wee ESP8266
  • Il existe enfin des modules beaucoup évolués (NodeMCU, SparkFun ESP8266 Thing, Adafruit HUZZAH ESP8266, Olimex MOD-WIFI-ESP8266-DEV, etc…) incluant même pour certains une interface USB / série pour téléverser facilement un programme sur le module

ESP-01

ESP-01

Wee ESP8266

Wee ESP8266

NodeMcu

ModeMCU

 

Car c’est bien là que le bât blesse sur la plupart des modules: le téléversement des programmes. Dans Hackable n°7, Denis Bodor explique de façon très instructive les manipulations permettant de réaliser cette opération sur un ESP-01. Ca fonctionne, bien entendu, mais ceux qui ont l’habitude de téléverser un programme Arduino d’un clic de souris seront peut-être rebutés par la nécessité de réaliser un petit montage dédié et de devoir appuyer sur un bouton poussoir au bon moment.

Lire la suite ESP8266: comment téléverser facilement un programme

Interface MapleSim / Port série

Introduction

Maplesoft a choisi 3Sigma pour développer une interface entre MapleSim, son logiciel de modélisation physique multi-domaine, et le port série de l’ordinateur.

Pourquoi ce choix ?

  • Parce que 3Sigma connaît très bien Maple et MapleSim: les asservissements de nos robots Geeros ont été réalisés avec ces deux logiciels (http://blog.3sigma.fr/?p=254) sur lesquels nous réalisons par ailleurs des formations (http://www.formation-maple.com)
  • 3Sigma a également l’habitude de réaliser des développements utilisant le port série: dans certains de nos robots, une carte Arduino communique par ce biais avec une carte Linux embarqué

 

Qu’apporte à MapleSim une interface avec le port série ?

MapleSim est un logiciel très adapté pour modéliser des systèmes dans différents domaines de la physique. Il permet également de faire des calculs sur des signaux, afin d’enrichir les modèles avec des algorithmes d’asservissement ou de traitement du signal.

L’interface MapleSim / port série permet d’injecter dans votre modèle des données provenant d’un matériel externe connecté au port série de votre ordinateur. Ca peut-être, par exemple, une carte Arduino ! La seule contrainte sur les données envoyées est qu’elles soient séparées par des virgules et que chaque groupe de données se termine par un retour à la ligne.

Sur Arduino, un code qui fonctionne et qui permet d’envoyer les mesures des 6 premières entrées analogiques est le suivant:

Lire la suite Interface MapleSim / Port série

Test de la carte de contrôle robot A-Star 32U4 de Pololu

Sommaire

Introduction

Les robots développés par 3Sigma combinent depuis toujours une carte compatible Arduino et une carte sous Linux permettant de gérer la communication Wifi (avec un ordinateur, un smartphone, une tablette,…) pour le pilotage à distance et, éventuellement, la transmission vidéo temps-réel depuis le robot.

Cette architecture est utilisée, par exemple, dans le robot Geeros « RPi »:

  • Une carte Romeo (compatible Arduino Uno) gère la totalité des asservissements et les ponts en H de pilotage des moteurs
  • Une Raspberry Pi (parfois abrégée en « RPi » dans la suite de cet article) communique en Wifi avec l’ordinateur (ou smartphone, tablette,…) de pilotage pour récupérer les consignes de ce dernier et lui retransmettre la vidéo prise par la webcam intégrée au robot et les informations de télémétrie
  • La RPi échange par ailleurs (via une liaison série) avec la carte Romeo pour lui retransmettre les consignes de pilotage et récupérer les mesures qui doivent être renvoyées par la télémétrie

Dans cette architecture, les asservissements sont écrits en C/C++ (dans l’environnement Arduino) et sont exécutés sur la carte Romeo. Cependant, il est apparu depuis quelques temps le besoin, dans certaines filières de l’Education Nationale, d’avoir des robots programmables en Python. Il paraissait donc assez naturel de transférer une partie (ou la totalité) des tâches d’asservissement vers un mini-ordinateur embarquable de type Raspberry Pi.

Lire la suite Test de la carte de contrôle robot A-Star 32U4 de Pololu

Tutoriel Arduino : asservissement en vitesse d’un moteur à courant continu

Introduction

L’asservissement en vitesse d’un moteur à courant continu est la plupart du temps nécessaire pour les robots mobiles. On peut éventuellement se satisfaire d’un servomoteur à rotation continu dans le cas de petits robots mais dans un cas plus général (comme pour le robot gyropode Geeros), il sera préférable d’utiliser un moteur à courant continu avec réducteur, associé à un codeur incrémental (pour mesurer la vitesse de rotation). Le calcul de l’asservissement sera réalisé par un Arduino. Nous allons détailler tout ceci dans la suite de cet article.

Matériel utilisé

Ce tutoriel peut être mis en application facilement avec l’expérience « Commande de moteur électrique ».

La carte Romeo est intéressante car elle intègre de façon très compacte le micro-contrôleur (AVR Atmega328, le même cœur qu’un Arduino Uno) et un double pont en H permettant de contrôler deux moteurs à courant continu avec un courant max de 2 A en permanence (jusqu’à 3 A en pic). Ce composant est indispensable pour fournir suffisamment d’énergie au moteur et lui permettre de fonctionner à vitesse variable et dans les deux sens de rotation.

Si vous utilisez d’autres éléments pour ce tutoriel, faites un choix cohérent :

  • La tension de la batterie doit correspondre à celle du moteur (pour ne pas griller ce dernier avec une fausse manipulation)
  • Le courant max du moteur doit correspondre à ce que peut supporter le driver de puissance

Concernant ce dernier point, dans la pratique les risques sont très limités si vous ne bloquez pas le moteur. Le courant à vide est en général relativement faible ; le courant max est observé uniquement lorsque le moteur est bloqué alors qu’il est alimenté avec sa tension maximale.

Lire la suite Tutoriel Arduino : asservissement en vitesse d’un moteur à courant continu