Sur la route : nous serons à Automate Show 2023 (Detroit, MI, USA) du 22 au 25 mai.

21 décembre 2016

Comment apprendre la robotique avec Arduino

La robotique est un domaine passionnant, qui connaît une forte croissance. Beaucoup de personnes veulent apprendre à créer des robots, mais il est parfois difficile de savoir où commencer.

Si vous partez de zéro, ou si vous avez déjà des connaissances en électronique ou informatique, apprendre la robotique avec Arduino est une bonne idée. Cela vous donnera de bonnes bases que vous pourrez utiliser plus tard dans de plus grands projets.

Niryo One est un exemple de robot basé sur Arduino. Comme vous pouvez le voir, de grandes choses peuvent être accomplies avec Arduino ! Pour plus d’exemples de robots utilisant Arduino, nous vous conseillons de faire un tour sur le site Instructables.

Dans cet article, nous vous montrerons une vue d’ensemble et quelques pistes pour, pas à pas, apprendre la robotique avec Arduino.

C’est parti !

Ce que vous pouvez faire, et ce que vous ne pouvez pas faire avec une carte Arduino

Une carte Arduino est composée d’un microcontrôleur, de quelques LEDs, d’un bouton “reset”, et d’une multitude de pins que vous pouvez utiliser en entrée/sortie.

Avec un grand nombre de pins disponible, vous pouvez facilement lire des données venant de capteurs, ou contrôler différents moteurs et actionneurs. C’est ce qui fait une des forces d’Arduino pour l’apprentissage de la robotique. Vous pouvez voir Arduino comme un outil “tout en un”, qui vous propose une interface pour contrôler tous les éléments électroniques de votre robot.

Attention cependant, vous ne pourrez pas utiliser une carte Arduino pour faire de l’intelligence artificielle poussée, ou encore des calculs de visualisation 3D. Les microcontrôleurs ne sont pas assez puissants, et ce n’est pas leur fonction première. Arduino est principalement utilisé pour réaliser des opérations d’entrée/sortie et des calculs simples.

Ne vous inquiétez pas pour autant, vous aurez tout de même la possibilité de réaliser des projets impressionnants avec seulement une carte Arduino, quelques moteurs, et quelques capteurs ! Vous trouverez un nombre incalculable de ressources vous aidant à apprendre la robotique avec Arduino.

Ensuite, si vous souhaitez aller plus loin dans l’apprentissage de la robotique, et ajouter une couche d’intelligence supplémentaire à votre robot, vous pourrez facilement contrôler votre carte Arduino depuis un autre ordinateur, par exemple un Raspberry Pi.


Choisir une carte Arduino

Avant de vous lancer, vous devez choisir quelle carte utiliser, en fonction des besoins de votre projet robotique. Nous vous recommandons de commencer directement avec une carte Arduino Uno ou Arduino Mega.

L’Arduino Uno possède un microcontrôleur ATmega328P, et l’Arduino Mega un ATmega2560. Leur processeur est cadencé à 16 MHz. L’Arduino Uno a 2ko de SRAM, tandis que l’Arduino Mega en a 8ko. Ces valeurs sont assez faibles, vous devrez donc faire attention de ne pas surcharger le code avec trop de variables.

Mises à part les capacités, la plus grande différence concerne l’interface électronique. On compte 14/6 entrées/sorties numériques pour l’Arduino Uno, contre 54/15 pour la carte Arduino Mega. C’est pourquoi cette dernière est préférée pour de plus grands projets, car vous pouvez ajouter plus de composants.

Et si vous aimez l’impression 3D, vous avez peut être entendu parler d’extensions pour l’Arduino Mega, comme par exemple RAMPS 1.4, qui permet de contrôler jusqu’à 5 moteurs pas à pas, le tout depuis une source de courant extérieure.

extension RAMPS 1.4 sur une carte Arduino Mega


Chez Niryo, nous sommes déjà des fans inconditionnels de la combinaison Arduino Mega + RAMPS 1.4, que nous utilisons dans notre robot !

Pour résumer : si vous voulez juste apprendre les basiques, optez pour une carte Arduino Uno, sinon nous vous conseillons de commencer directement avec Arduino Mega. Vous trouverez également de nombreuses autres cartes Arduino sur le marché pour différents usages. Si vous avez besoin d’une carte très petite, l’Arduino Nano est faite pour vous. Pour une connexion ethernet, allez du côté d’Arduino Yun. Et enfin, pour une puissance de calcul beaucoup plus poussée, jetez un coup d’oeil à l’Arduino Due.


Installer l’IDE Arduino

La première étape est d’installer le logiciel qui vous permettra d’écrire et de téléverser le code sur votre carte Arduino. Vous pouvez télécharger l’IDE Arduino sur le site officiel d’Arduino. Vous y trouverez une version pour Windows, Mac OS et Linux : tout le monde est content.

Après l’installation de l’IDE, vous devez connecter votre Arduino à votre ordinateur, grâce au câble USB fourni. Normalement l’IDE devrait reconnaître automatiquement le port USB sur lequel est branché l’Arduino. La seule chose que vous ayez à faire est d’aller dans “Outils”->”Type de carte”, et sélectionner la carte Arduino que vous utilisez.

Ensuite, vous pouvez écrire du code et cliquer sur “téléverser” (ou “upload” pour la version anglaise), et c’est tout, pas besoin de connaissances électroniques poussées ! Si vous n’avez jamais programmé avec Arduino, allez dans “Fichier”->”Exemples”, vous y trouverez une série de tutoriels pour apprendre les bases rapidement. Ça y est, vous êtes fin prêts pour apprendre la robotique avec Arduino !


Contrôler des moteurs avec Arduino

Comme nous l’avons vu précédemment, une carte Arduino a pour but de gérer des entrées/sorties. Dans le cadre d’une application robotique, les moteurs sont les premières sorties que vous allez étudier.

Il existe actuellement deux types de moteurs facilement contrôlables par Arduino : les moteurs pas à pas et les servomoteurs.


Servomoteur :

Un servomoteur peut être directement connecté à l’Arduino grâce à un connecteur 3 fils. Les servomoteurs standards qu’on trouve sur Internet peuvent tourner de 0° à 180°. Pour contrôler un servomoteur, rien de plus simple, il suffit d’utiliser la librairie Servo créée par Arduino. Des examples sont fournis sur le site d’Arduino.

La méthode à suivre pour contrôler un servomoteur est de lui donner un angle de destination. Le servomoteur tournera automatiquement pour atteindre cet angle. Pour ajuster la vitesse, vous pouvez simplement incrémenter l’angle plus rapidement ou plus lentement.

Une fonctionnalité utile d’un servomoteur est que vous pouvez, à n’importe quel moment, lire la valeur de l’angle actuel. Cependant, faites attention lors du choix du moteur. La limite de 180° peut être une contrainte trop importante pour votre projet (vous trouverez des servomoteurs alternatifs en ligne, avec pour chacun des avantages et des inconvénients).

Servomoteur classique avec un connecteur 3 fils


Moteur pas à pas :

Un moteur pas à pas est différent. Vous ne pouvez pas le connecter directement à l’Arduino. Pour pouvoir le contrôler, vous aurez besoin d’une carte supplémentaire, ou d’une extension pour Arduino, comme par exemple la RAMPS 1.4, qui est uniquement compatible avec les cartes Arduino Mega. C’est pourquoi nous préférons la combinaison Mega + RAMPS 1.4, qui permet de contrôler des moteurs pas à pas assez facilement.

Pour faire tourner un moteur pas à pas, vous devez lui demander d’effectuer un pas, puis un autre pas, puis encore un autre pas (d’où son nom !). Pour effectuer un tour complet, vous aurez donc besoin de connaître le nombre de pas nécessaires. Ensuite, en augmentant ou en réduisant la durée entre deux pas, vous pourrez accélérer ou ralentir le moteur. Des examples sont fournis sur le site d’Arduino. De façon générale, un moteur pas à pas aura un mouvement plus fluide q’un servomoteur, et peut tourner à l’infini.

Moteur pas à pas alimenté par une extension RAMPS 1.4 et un driver moteur


Contrairement à un servomoteur, vous n’avez pas de retour de position sur un moteur pas à pas.  Si vous devez savoir quand le moteur a “raté” des pas à cause d’une force exercée trop importante, vous devrez ajouter un encodeur ou un autre capteur.

Après avoir appris à contrôler les servomoteurs et moteurs pas à pas, vous serez aptes à choisir lequel des deux est le mieux adapté à votre robot. Et il y a encore d’autres types de moteurs…

Utiliser des capteurs avec Arduino

Après avoir réussi à faire bouger votre robot grâce aux moteurs, vous pouvez le rendre plus “intelligent” en lui permettant d’adapter son comportement par rapport à son environnement. Pour cela, il vous faut lire une information à partir de capteurs.

Il existe un nombre incalculable de capteurs compatibles avec une carte Arduino :

  • Mesure de distance optique
  • Détecteur de présence laser
  • Accéléromètre
  • Gyroscope
  • Magnétomètre
  • Lecteur RFID
  • Thermomètre
  • Capteur de charge
  • Capteur de torque

Imaginez toutes les applications robotiques possibles grâce à ces capteurs ! Pour chacun d’entre eux, vous trouverez aisément des tutoriels, librairies et datasheets en ligne. Ces ressources vous permettront de comprendre comment récupérer les informations des capteurs, et comment les analyser. L’acquisition de données se fera souvent via les communications serial, i2c ou spi.

Par exemple, vous pourriez utiliser un IMU (Inertial Measurement Unit) pour contrôler l’inclinaison de votre robot. Un IMU est composé de différents capteurs : un accéléromètre, un gyroscope et un magnétomètre (optionnel). Ensuite, si vous voulez ajouter un système de détection d’objets et de personnes, vous pouvez regarder du côté des détecteurs laser.

Tout ça avec seulement une carte Arduino !

Lire et analyser les logs

Après avoir téléversé votre code dans la carte Arduino, vous ne pouvez pas savoir ce qu’il se passe exactement à chaque moment. Si votre robot ne fonctionne pas, ou effectue des mouvements étranges, vous aurez besoin de comprendre d’où vient le problème.
Il existe une façon simple pour débugger un programme Arduino. Il suffit d’utiliser la librairie Serial. Tout ce que vous avez à faire est d’écrire Serial.print() dans votre code, et d’ouvrir le moniteur série sur l’IDE Arduino. De cette façon, vous pourrez voir et analyser les logs, et également envoyer des commandes manuellement depuis le moniteur série. (Si des caractères étranges s’affichent sur l’écran, vérifiez que le “baud rate” est le même dans le code Arduino et dans le moniteur série)

Maintenant, à vous d’apprendre la robotique avec Arduino !

Dans cet article, nous vous avons donné des pistes pour apprendre la robotique avec Arduino. Si vous rencontrez des difficultés lors de votre apprentissage, ne vous inquiétez pas, car Arduino est supporté par une immense communauté en ligne, qui sera ravie de vous aider.

Nous espérons que cet article vous sera utile et vous donnera envie d’apprendre de nouvelles choses, ainsi que de partager vos projets auprès des communautés robotiques.

Et, si vous souhaitez apprendre la robotique avec Arduino sur un projet cool et utile, vous aimerez certainement Niryo One!

Nous n'avons pas pu confirmer votre inscription.
Votre inscription est confirmée.
Inscrivez-vous à la newsletter