Construire le robot Devastator et en apprendre davantage sur les capteurs, les microcontrôleurs, les logiciels et la commande moteur tout en s'amusant
Avec la contribution de Rédacteurs nord-américains de DigiKey
2017-10-18
La construction d'un robot multifonction à partir d'un kit est un excellent moyen pour se lancer en tant que maker, et offre l'occasion d'en apprendre plus sur de nombreux domaines associés : microcontrôleurs, capteurs, moteurs, développement logiciel et plus encore. En outre, une vaste sélection de kits de robots et de modules d'extension et d'aide en ligne est disponible aussi bien pour les débutants que pour les makers expérimentés.
Cet article traite de quelques mesures pratiques, problèmes et mises à niveau à prendre en compte lors de la réalisation d'un robot basé sur la plateforme de tank Devastator de DFRobot (Figure 1).
Figure 1 : Le Devastator de DFRobot est une plateforme polyvalente qui permet aux concepteurs et aux makers d'acquérir un large éventail de compétences dans les domaines de l'électronique et des logiciels. (Source de l'image : DFRobot)
Pourquoi le Devastator ? Il s'agit d'un modèle robuste et résistant, doté d'une structure en aluminium et de deux moteurs CC à balais métalliques. Il peut supporter une charge maximale de 3 kg, comprend plusieurs orifices de montage pour les capteurs, les servocommandes, les bras de robot et d'autres accessoires. En outre, il est compatible avec toutes les cartes de microcontrôleurs populaires.
Construction d'un système complet de robot
Le robot est livré avec le châssis, les roues, les chenilles, mais laisse le choix des autres composants au concepteur. Un système complet nécessite une carte de microcontrôleur, une carte de variateur moteur et un moyen d'entrer des commandes. Les modules d'extension en option peuvent inclure un bras de robot, une caméra ou un système anticollision afin de procurer un certain degré d'autonomie de fonctionnement.
Sélection d'une plateforme de microcontrôleur
Le robot Devastator est compatible avec plusieurs plateformes de microcontrôleur populaires. La plateforme de développement open-source Arduino a été lancée en Italie en 2003 et elle est largement utilisée par les concepteurs débutants ou professionnels. Le modèle Arduino Uno (Figure 2) utilise le microcontrôleur RISC 8 bits ATmega328P de Microchip Technology (anciennement Atmel).
D'autres fonctionnalités standard incluent un port USB commandé par un microcontrôleur ATmega16U2 préprogrammé, des entrées et sorties numériques, un port d'entrée analogique et un port de programmation ICSP pour les mises à jour logicielles. Le modèle Arduino Due plus récent présente un cœur mis à niveau avec une version ARM® Cortex®-M3 32 bits. Le cœur est également utilisé dans la carte de contrôleur de DFRobot (voir ci-après), qui associe la compatibilité Arduino et le variateur moteur.
Figure 2 : La carte Arduino Uno est l'outil de choix pour les projets de maker et elle est basée sur le microcontrôleur RISC 8 bits ATmega328P de Microchip Technology. (Source de l'image : Arduino)
À l'origine, l'ordinateur monocarte Raspberry Pi a été développé pour l'enseignement de l'informatique dans les écoles, mais il est devenu extrêmement populaire dans la communauté des makers. Le dernier modèle, Raspberry Pi 3, est basé sur un processeur Broadcom à quatre cœurs de 64 bits fonctionnant à 1,2 GHz. Il inclut les technologies LAN sans fil 802.11n, Bluetooth 4.1 et Bluetooth Low-Energy (BLE). Il présente également une mémoire RAM de 1 Go, un emplacement de carte micro SD, 4 ports USB, des ports HDMI et Ethernet, une interface de caméra, 40 broches GPIO, ainsi que d'autres interfaces spécialisées.
Les experts Windows souhaitant tirer parti de leur expérience peuvent commencer avec la carte de contrôleur LattePanda qui est compatible avec le Devastator, car elle est livrée avec une édition complète, installée et activée, de Windows 10. Cette carte utilise un processeur quadruple cœur fonctionnant à 1,8 GHz, qui est associé à un coprocesseur ATmega32u4 8 bits de Microchip pour la compatibilité avec Arduino.
La carte LattePanda est fournie avec les caractéristiques suivantes : une mémoire RAM DDR3L de 2 Go et jusqu'à 32 Go de stockage, un port USB 3.0 et deux ports USB 2.0, Wi-Fi, Bluetooth 4.0, un coprocesseur et un total de 22 GPIO réparties entre les deux processeurs.
Commande des moteurs
Une fois le cœur du microcontrôleur choisi, l'étape suivante consiste à choisir la carte de commande de moteur. Le Devastator est équipé de deux moteurs de 6 V qui fonctionnent à 160 tr/min (sans charge). Chacun de ces moteurs présente un couple de sortie maximal de 0,8 kgf.cm (0,058 ft-lb.) et un courant de calage maximal de 2,8 A.
Le Raspberry Pi nécessite une carte d'extension plug-in pour les fonctions spécifiques du robot, mais la carte DFR0398 Romeo BLE Quad de DFRobot fournit une option monocarte pour les inconditionnels d'Arduino, qui contient à la fois le microcontrôleur et les variateurs moteur (Figure 3). La carte fournit un cœur plus puissant que les dérivés UNO, mais conserve la compatibilité logicielle Arduino.
Le microcontrôleur est un STM32F103RET6 de STMicroelectronics : ce dispositif utilise le cœur ARM® Cortex®-M3 32 bits fonctionnant à 72 MHz et inclut 512 ko de mémoire Flash, un bloc de modulation de largeur d'impulsion (PWM) de commande de moteur, 16 canaux de conversion analogique-numérique (CAN) de 12 bits et deux canaux de conversion numérique-analogique (CNA) de 12 bits.
Figure 3 : Le DFR0398 Romeo BLE Quad est une carte de commande de robot compatible Arduino dotée d'une capacité Bluetooth et de variateurs pour quatre moteurs. (Source de l'image : DFRobot)
Les variateurs moteur sont fournis par deux dispositifs HR8833 de Microsemi. Chaque circuit d'attaque MOSFET comprend deux circuits d'attaque à pont en H pour une commande bidirectionnelle des moteurs du Devastator. La carte Romeo BLE Quad inclut quatre interfaces de codeur et intègre également un émetteur-récepteur RF CC2540 de Texas Instruments pour la connectivité sans fil Bluetooth 4.0.
Augmentation de la puissance
Les cartes de microcontrôleur elles-mêmes peuvent fonctionner sur les 5 V du connecteur USB, mais les moteurs, quant à eux, nécessitent une source portable (par exemple, une batterie) avec une tension et un courant plus élevés. De nombreux makers adaptent des blocs-batteries rechargeables peu coûteux, conçus à l'origine pour les voitures radiocommandées (RC). Ces blocs présentent généralement des tensions de 7 V ou plus et des capacités supérieures à 5 000 mAh, et il est facile d'échanger le connecteur d'origine. Le port d'alimentation servo du Romeo BLE Quad accepte des tensions de 7 à 10 VCC.
Programmation de la carte de microcontrôleur
L'installation d'un logiciel sur la carte de microcontrôleur est simple et des fournisseurs soucieux de la convivialité pour les makers proposent des instructions détaillées sur leurs sites Web.
Le choix du système d'exploitation diffère selon la plateforme. Le système d'exploitation Windows est préinstallé sur la carte LattePanda. Raspberry Pi offre plusieurs options, y compris Windows IoT Core et diverses distributions Linux. Raspbian, une variante du système d'exploitation open-source Debian Linux, est l'option la plus répandue chez les makers.
Arduino, en revanche, n'utilise pas de système d'exploitation traditionnel. Les plateformes Arduino utilisent plutôt un exécutif cyclique qui effectue de façon répétitive une boucle suivant une séquence de code. Les développeurs écrivent et installent le code avec l'environnement de développement intégré (IDE) open-source Arduino. Il s'agit d'une application interplateforme écrite en Java et disponible pour les machines hôtes Windows, Mac OS X et Linux. L'environnement Arduino possède sa propre terminologie pour plusieurs éléments. Par exemple, une carte plug-in compatible avec Arduino est un « shield » et un module logiciel est un « sketch ».
Programmation avec la carte Romeo BLE Quad
Étant donné que la carte Romeo BLE Quad est une solution de robot monocarte avec des périphériques avancés, elle sera utilisée dans la discussion qui suit.
Pour commencer, choisissez le système d'exploitation préféré pour la machine hôte et téléchargez l'environnement IDE approprié à partir du site Web Arduino. Bien que la carte DF Romeo BLE Quad n'utilise pas le même processeur ATmega328 que le matériel Arduino standard, le processus de développement logiciel est similaire, car cette carte est compatible avec l'environnement IDE Arduino.
L'environnement IDE peut accueillir plus de vingt-cinq cartes provenant de divers fabricants, mais le modèle Romeo BLE Quad n'en fait pas partie. La carte Romeo BLE Quad est une version d'une autre carte DFRobot, la Bluno M3, sur laquelle des variateurs moteur ont été ajoutés. Pour configurer l'environnement IDE, vous devez d'abord télécharger le fichier Bluno M3 à partir du site open-source GitHub.
Pour installer ce fichier, procédez comme suit :
- Ouvrez l'IDE Arduino et accédez à File -> Preferences. Copiez le lien GitHub dans la zone "Additional Boards Manager URLs" et cliquez sur OK.
- Accédez à Tools -> Board -> Board Manager, saisissez « Bluno M3 » dans la zone de recherche et cliquez sur "Install". Cela permet de télécharger le fichier de configuration.
- Sélectionnez la carte Bluno M3 depuis le menu Tools -> Board.
Le système est maintenant prêt pour le développement d'applications. L'environnement IDE standard prend en charge la programmation en langages C et C++, et inclut plusieurs exemples de codes. Les développeurs utilisent l'éditeur de texte pour écrire des sketchs (programmes) (Figure 4).
Figure 4 : L'écran IDE Arduino et l'éditeur de texte : un nouveau programme inclut les deux fonctions requises. (Source de l'image : Arduino)
L'environnement IDE débogue alors le code, effectue une compilation croisée et télécharge le résultat sur la carte de microcontrôleur via le port de programmation ICSP. La carte Romeo BLE Quad peut également être programmée via son port Bluetooth.
L'éditeur de texte commence un nouveau programme avec deux fonctions requises préchargées, prêt à ajouter du code : setup() permet de configurer les conditions initiales et s'exécute une seule fois, puis loop() permet une exécution en continu.
Deux bibliothèques Arduino doivent être téléchargées et installées pour faire fonctionner les moteurs du Devastator avec la carte Romeo BLE Quad : Motor.h et PID_v1.h.
Le code pour le moteur commence par demander ces deux bibliothèques comme fichiers d'en-tête via une instruction « include », définit les broches E/S et quelques constantes initiales, puis configure les moteurs dans la section setup() (Liste 1).
Copy
/*!
* @file RemeoBLEQuadDrive.ino
* @brief RemeoBLEQuadDrive.ino PID control system of DC motor
*
* RemeoBLEQuadDrive.ino Use PID control 4 way DC motor direction and speed
*
* @author linfeng(490289303@qq.com)
* @version V1.0
* @date 2016-4-14
*/
#include "PID_v1.h"
#include "Motor.h"
Motor motor[4];
int motorSpeed[4] = {-200,200,400,-400};/*Set 4 speed motor*/
/* Speed=motorSpeed/(32*(setSampleTime/1000))(r/s) */
const int motorDirPin[4][2] = { //Forward, Backward
/*Motor-driven IO ports*/
{8,23},
{7,9},
{24,14},
{4,25}
};
//const double motorPidParam[3]={0.6,1,0.03};/*DC MOTOR,Yellow??180degree*/
//const double motorPidParam[3]={1.5,1,0.05};/*DC MOTOR,Yellow??90 degree*/
const double motorPidParam[3]={1.2,0.8,0.05};/*Encoder V1.0,160rd/min ;19500/min; 32:1,Kr=3.5*/
void setup( void )
{
Serial1.begin(115200);
for(int i=0;i<4;i++){
motor[i].setPid(motorPidParam[0],motorPidParam[1],motorPidParam[2]);/*Tuning PID parameters*/
motor[i].setPin(motorDirPin[i][0],motorDirPin[i][1]);/*Configure IO ports*/
motor[i].setSampleTime(100);/*Sets the sampling period*/
motor[i].setChannel(i);/*Sets the motor channel */
motor[i].ready();/*Motor enable*/
motor[i].setSpeed(motorSpeed[i]);/*Set motor speed*/
}
}
void loop( void )
{
for(int i = 0; i < 4; i++){
motor[i].calibrate();/*motor PID calibrate*/
}
}
Liste 1 : Cet exemple de code C permet de configurer et de commander quatre moteurs Arduino pour la carte Romeo BLE Quad. (Source du code : DFRobot)
Les sections setup() et loop() permettent de configurer et commander quatre canaux de moteur. Étant donné que le châssis du Devastator n'en nécessite que deux, ceux restants peuvent être utilisés pour des accessoires, tels que le bras du robot, voir ci-après.
Commande du robot sans fil
Vous pouvez brancher un câble USB à la carte de commande et piloter le robot de cette façon. Toutefois, il est beaucoup plus pratique de le commander sans fil via Wi-Fi ou Bluetooth et un smartphone, une tablette ou un ordinateur. Comme mentionné précédemment, la carte Romeo BLE Quad est équipée du même module Bluetooth 4.0 que la plateforme Bluno. Des applications open-source pour iOS 7.0+ et Android 4.3+ sont disponibles sur GitHub. Le concepteur peut utiliser ces applications pour contrôler le robot et télécharger un nouveau sketch à distance.
Mises à niveau de la conception de base
Une fois que l'assemblage de la conception de base est terminé, la prochaine étape la plus courante est l'ajout d'accessoires qui permettent au robot d'exécuter des tâches utiles (Figure 5). Voici quelques mises à niveau que vous pouvez essayer.
Figure 5 : Le capteur ultrasonique URM37 v4.0 de DFRobot (gauche) et le module de caméra 397 d'Adafruit sont deux accessoires populaires (Sources de l'image : DFRobot et Adafruit)
Une fonctionnalité permettant de détecter et d'éviter des obstacles est souhaitable sur un robot mobile. Le capteur ultrasonique URM37 v4.0 de DFRobot émet une tension proportionnelle à la distance et il est compatible avec Arduino et Raspberry Pi. Le capteur détecte la présence d'un objet ou d'un mur, puis le code exécute un virage aléatoire et le robot continue dans cette nouvelle direction.
La transformation du robot en caméra mobile constitue une autre mise à niveau populaire. Le module de caméra 397 d'Adafruit permet de capturer des vidéos et des images fixes. La caméra, avec son capteur d'image CMOS, peut capturer des images de 640 x 480 pixels à 30 images par seconde (fps) et dispose d'une fonctionnalité de détection de mouvements.
Vous pouvez monter la caméra sur un bras du robot, comme l'assemblage inclinaison/panoramique DF05BB (Figure 6). Le kit inclut deux supports et deux servomoteurs DF05, et il est conçu pour un montage horizontal.
Figure 6 : Le montage inclinaison/panoramique DF05BB de DFRobot est fourni avec deux servomoteurs et deux supports. (Source de l'image : DFRobot)
Montage complet de l'ensemble
Un robot Devastator complet comprend le châssis, la carte de contrôleur, une carte d'extension et un capteur ultrasonique (Figure 7). Les deux cartes se trouvent sur la plateforme supérieure pour l'aspect pratique, mais une plateforme de montage inférieure est également disponible si vous avez besoin d'installer une caméra mobile sur la partie supérieure.
Figure 7 : Cet exemple de conception complète présente le Devastator avec le châssis, la carte de contrôleur, une carte d'extension de commande moteur et un capteur ultrasonique. (Source de l'image : DFRobot)
Conclusion
Le modèle de DFRobot constitue une excellente plateforme permettant aux concepteurs et aux makers d'explorer le développement logiciel, les fonctionnalités de microcontrôleur, les options de capteur et les commandes moteur dans un environnement ludique et bien pris en charge.
En outre, de nombreuses ressources sont disponibles sur le site Web de DigiKey. Par exemple, pour en savoir plus sur la programmation de la plateforme Arduino, cliquez ici. DigiKey offre également de l'aide pour la programmation de Raspberry Pi avec Python, le langage Pi le plus populaire. Tous les produits abordés ci-dessus disposent d'une documentation étendue et de nombreux tutoriels et notes d'application.
Ce projet n'est qu'un début, il en existe de nombreux autres à essayer. Maker.io est dédié au Maker Movement, avec des dizaines de projets, ressources, sources de financement et plus encore.

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.