Mesure de courant dans un moteur à courant continu

Introduction

Il est souvent très utile de mesurer le courant circulant dans un moteur à courant continu. Cela peut notamment servir à:

  • identifier certains paramètres du moteur (son inductance, par exemple)
  • faire un asservissement avec une boucle de courant
  • couper l’alimentation en cas de blocage

La liste n’est pas exhaustive.

Nous allons détailler dans cet article des techniques à base d’Arduino permettant d’obtenir pour la mesure de courant:

  • une très bonne résolution temporelle, grâce à la modification d’un paramètre « caché » (en tout cas non accessible si on n’utilise que les fonctions Arduino)
  • des mesures synchronisées avec les signaux de commande PWM, en utilisant les « Pin Change Interrupts » (ou « PCINT »)

 

Lire la suite Mesure de courant dans un moteur à courant continu

ESP8266: comment téléverser facilement un programme

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

Les secrets de conception du robot Geeros avec Maple et MapleSim

Un gyropode est en contact avec le sol via deux roues parallèles ; c’est donc un système instable et seul un asservissement lui permet de rester en équilibre.

Nos robots Geeros n’échappent pas à la règle et nous avons dû concevoir des régulateurs pour les faire fonctionner correctement. D’ailleurs, c’était le but: créer un robot didactique avec des asservissements qui puissent être étudiés et modifiés par les élèves.

Dès lors, nous avions deux possibilités: faire comme tout le monde et utiliser les mêmes outils « classiques » que la majorité des personnes confrontées au même problème, ou rechercher s’il n’existait pas des approches plus modernes et plus efficaces mettant en œuvre du vrai « Model Based Design » (MBD, Conception à Base de Modèle).

Les promesses affichées par le couple Maple / MapleSim étant séduisantes, nous avons décidé d’utiliser ces deux logiciels.

Tout d’abord, pour ceux qui ne le connaissent pas, présentons MapleSim en quelques mots, en insistant sur ses différences avec d’autres logiciels de simulation qui pourraient sembler équivalents alors qu’ils ne le sont pas.

Lire la suite Les secrets de conception du robot Geeros avec Maple et MapleSim

Direct connection from Windows to SensorTag without Cloud or smartphone

Standard connection to SensorTag

The SensorTag from Texas Instruments is a great piece of hardware for evaluating the CC2650 microcontroller or… just for fun ! It comes with a lot of sensors (IR temperature, barometric, humidity, ligh, movement,…) you can read using your favorite radio interface. In this article, I will use the BLE (Bluetooth Low Energy) interface.

It also comes with Apps (for Android or iOS) so that you can look at its data on the tiny screen of your smartphone. And of course, since we live in a world where the desktop computer tends more and more to be considered as a prehistoric object, (almost) nothing exists if you want to explore the SensorTag data on the big screen of your computer.

I write « almost nothing » because you can do the following:

  • connect to the SensorTag with your smartphone
  • ask the App to send the data to the Cloud
  • from your computer, get the data from the Cloud

It is explained here more in details.

Simple, isn’t it ? You have 2 objects (the SensorTag and a computer) in your house and to make one communicate with the other one you need a third object (your smartphone) and you need to send your data around the world before getting them displayed less than 10 meters from where they are collected !

 

Is there a better solution ?

Lire la suite Direct connection from Windows to SensorTag without Cloud or smartphone

Life without Cloud ?

Of course, this acronym (LwC, Life without Cloud) will not become as popular as IoT (Internet of Thing). However, I always wonder why I should connect to the Cloud in order to get the temperature in my house or switch on my lights…

The Cloud is not my enemmy but I like simplicity and I prefer to keep my own data as private as possible.

I will post in this category various examples of IoT interactions you can make without any connection to the Cloud.

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

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

Pourquoi les prix en euros ne sont pas inférieurs aux prix en dollars ?

Cet article n’a pas pour objectif de répondre à cette question de façon universelle, mais uniquement dans le contexte de l’achat de pièces détachées pour réaliser le robot de vos rêves. Ceci étant, on peut quand même imaginer que les considérations suivantes puissent se généraliser dans un certain nombre de cas de figure.

Si vous avez l’habitude de parcourir des sites de robotique étrangers (au hasard: chinois, américains,…) et français avant de faire vos emplettes, vous avez sans doute remarqué que la carte micro-contrôleur, le capteur, les roues,… que vous souhaitez acheter et que vous voyez à 50 $ à l’étranger coûtent 50 € chez nous, et non pas 40 € comme on pourrait l’espérer avec une parité de 1.25 entre le dollar et l’euro. Notre boutique n’échappe pas à la règle.

Pourquoi ?
Non, ce n’est pas parce que le big boss est un affreux capitaliste qui collectionne les voitures de sport…

Lire la suite Pourquoi les prix en euros ne sont pas inférieurs aux prix en dollars ?

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

Connecter la carte Mini2440 sur un réseau Wifi

Maintenant que vous savez connecter la Mini2440 sur votre réseau local, vous êtes en mesure d’y accéder via Telnet et d’envoyer des fichiers via FTP. Mais la Mini2440 étant destinée à être embarquée dans un robot mobile (Geeros), on la voit mal restée branchée à un routeur via un câble Ethernet. Nous allons donc ici lui permettre de rejoindre un réseau Wifi.

Avant de décrire les différentes étapes, vérifions tout d’abord si les outils Wifi sont installés sur votre carte (a priori non). Exécutez la commande « scan-wifi ». Si vous avez en retour « -sh: scan-wifi: not found », cela signifie que vous devez installer le kit Wifi, usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz.Vérifiez avant que votre version de Linux est bien linux-2.6.32.x (« cat /proc/version »).

Pour cela, vous allez télécharger le fichier sur la Mini2440 en utilisant un client FTP sur votre ordinateur. Mais avant tout vous devez spécifier un mot de passe au compte utilisé sur la Mini2440 (par défaut: root). Après connexion en telnet à, par exemple, ce compte root, créez un mot de passe avec la commande « passwd ».

Vous pouvez maintenant envoyer en FTP l’archive sur la carte. Décompressez-là ensuite avec la commande suivante:

Lire la suite Connecter la carte Mini2440 sur un réseau Wifi