La robotique est un domaine passionnant et en pleine expansion. Beaucoup de gens veulent apprendre à fabriquer des robots, mais parfois il est difficile de savoir par où commencer.
Que vous débutiez à partir de zéro ou que vous connaissiez déjà certains concepts d’électronique et de programmation, apprendre la robotique avec Arduino est une bonne idée. Cela vous donnera des bases solides que vous pourrez utiliser plus tard pour construire des projets robotiques plus importants.
Niryo One est un exemple de robot alimenté par Arduino. De grandes choses peuvent être accomplies avec Arduino ! Vous trouverez également plus d’exemples d’applications robotiques sur Instructables, un site Web étonnant avec des tutoriels open source.
Dans cet article, nous vous montrerons un aperçu et quelques directives sur où commencer, quelles cartes, capteurs, moteurs utiliser et sur quoi vous concentrer.
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 DEL, d’un bouton de réinitialisation et de nombreuses broches que vous pouvez utiliser pour des opérations d’entrée/sortie.
Avec autant de broches disponibles, vous pouvez facilement lire des données à partir de capteurs ou contrôler différents moteurs et actionneurs. C’est ce qui fait d’Arduino un outil idéal pour l’apprentissage de la robotique. C’est un peu un outil tout-en-un pour interfacer tout le matériel dont vous avez besoin pour le contrôle.
Mais ne pensez pas à l’intelligence artificielle, à la visualisation 3D et à d’autres algorithmes lourds. Les microcontrôleurs ne sont pas assez puissants, et ce n’est pas le but d’utiliser une carte Arduino. Arduino est principalement utilisé pour effectuer des opérations d’entrée/sortie et de petits calculs.
Ne vous inquiétez pas cependant, vous pouvez toujours faire des choses incroyables avec juste une carte Arduino et quelques moteurs et capteurs ! Il existe plus que suffisamment de ressources pour apprendre la robotique avec Arduino.
Et puis, si vous voulez apprendre des concepts de robotique plus approfondis et ajouter une couche d’intelligence pour rendre votre système plus intelligent, vous pouvez simplement contrôler votre carte Arduino depuis un autre ordinateur (comme une carte Raspberry Pi), il existe de nombreuses façons faciles de le faire.
Choisir une carte Arduino
Tout d’abord, vous devez choisir la carte Arduino qui convient le mieux à votre projet de robotique. Notre recommandation : commencer avec une Uno ou une Mega est parfait.
La Uno possède un microcontrôleur ATmega328P et la Mega un ATmega2560. Leur CPU est tous deux cadencé à 16 MHz. L’Uno a 2 ko de SRAM alors que le Mega en a 8 ko. C’est assez peu, alors pensez-y à deux fois avant de créer d’énormes tableaux de variables.
Ensuite, la plus grande différence est l’interface avec les composants matériels. Uno a 14/6 broches d’entrée/sortie numériques alors que Mega en a 54/15. C’est pourquoi l’Arduino Mega est préféré pour les projets plus importants, car il permet de brancher plus de matériel.
Et si vous aimez l’impression 3D, vous savez peut-être que certains boucliers ont été créés spécialement pour la carte Arduino Mega, comme le Shield RAMPS 1.4, qui vous permet d’utiliser 5 moteurs pas à pas et de les alimenter à partir d’une source d’énergie externe.
Shield RAMPS 1.4 sur une carte Arduino Mega
Chez Niryo, nous sommes définitivement fans de la combinaison Arduino Mega + RAMPS 1.4, que nous utilisons pour alimenter notre robot !
Donc, si vous voulez apprendre seulement les bases, prenez une Arduino Uno, sinon nous vous conseillons de commencer directement avec une Mega. D’autres cartes Arduino sont disponibles pour différentes applications robotiques. Pour une carte très petite, regardez l’Arduino Nano. Si vous souhaitez une connectivité Ethernet, l’Arduino Yun est fait pour vous, et pour des calculs plus avancés, vous pouvez choisir l’Arduino Due.
Installation de l’IDE
La première étape consiste à installer le logiciel (IDE) 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 web officiel d’Arduino. Il existe une version pour Windows, Mac OS et Linux : tout le monde est content.
Une fois l’IDE installé, vous devez brancher votre carte Arduino à votre ordinateur à l’aide du câble USB. Normalement, l’IDE devrait reconnaître automatiquement le port USB sur lequel la carte Arduino est branchée. Vous avez juste besoin d’une étape supplémentaire : allez dans « Tools » ->« Board » et sélectionnez la carte Arduino que vous utilisez.
Ensuite, il vous suffit d’écrire votre code et de le téléverser ! Si vous n’êtes pas familier avec la programmation Arduino, consultez File->Examples. De nombreux exemples utilisant les bibliothèques Arduino standard peuvent être trouvés ici. Cela vous permettra de vous mettre à niveau facilement. Vous êtes maintenant prêt à apprendre la robotique avec Arduino !
Contrôle des moteurs (sortie)
Comme nous l’avons vu, une carte Arduino sera utilisée comme plateforme d’entrée/sortie. Dans ce post, nous nous concentrons sur les applications robotiques. Alors… de quoi avez-vous besoin pour déplacer un robot ? Oui, des moteurs.
Deux types de moteurs peuvent être facilement contrôlés par Arduino : les servomoteurs et les moteurs pas à pas.
Servomoteurs
Les servomoteurs n’ont besoin que d’un connecteur à 3 fils et peuvent être directement branchés à la carte Arduino. Les servos Hobby standard de loisir peuvent se déplacer de 0 à 180°. Vous pouvez contrôler un servo avec la bibliothèque Arduino Servo. Quelques exemples sont fournis sur le site Web d’Arduino.
En principe, la façon de contrôler un servomoteur consiste à lui donner la valeur de l’angle à atteindre. Il ira automatiquement à cet angle. Vous pouvez ajuster la vitesse en augmentant l’angle cible sur différentes périodes de temps.
Vous pouvez également lire la valeur de l’angle actuel. Les servos vous donnent des retours qui sont très utiles. Mais, sachez que la plupart des servos hobby ont une plage de 180°, ce qui peut poser problème dans certaines applications (vous pouvez trouver des servos alternatifs sur Internet, chacun avec ses avantages et ses inconvénients).
Un servomoteur Hobby classique avec un connecteur à 3 fils
Moteurs pas à pas
Les moteurs pas à pas sont différents. Vous ne pouvez pas les brancher directement sur la carte Arduino. Vous avez besoin d’une autre carte liée, ou d’un bouclier comme RAMPS 1.4 pour la carte Mega. C’est pourquoi nous préférons Arduino Mega + RAMPS 1.4 pour les moteurs pas à pas, car l’interface est plus facile et plus agréable.
Pour contrôler un moteur pas à pas, vous devez lui dire de faire un pas. C’est à peu près ça. Il faut donc savoir combien de pas on peut faire pour un mouvement de 360°. Ensuite, en ajoutant ou en supprimant des délais entre chaque pas, vous pouvez réduire ou augmenter la vitesse du moteur. Vous trouverez des exemples sur le site web d’Arduino. Un moteur pas à pas est généralement plus souple qu’un servomoteur et sa rotation est infinie.
Moteur pas à pas branché sur le Shield RAMPS 1.4, avec un pilote de moteur
Cependant, vous n’avez pas de retour d’information de la part d’un moteur pas à pas. Par conséquent, si votre robot a besoin de connaître l’angle actuel, vous devrez ajouter un encodeur ou un capteur pour savoir si le moteur pas à pas a manqué quelques pas en raison d’un couple trop élevé.
Après avoir appris à utiliser les moteurs servo et pas à pas, vous serez en mesure de choisir celui qui convient le mieux à votre robot. Et il existe d’autres types de moteurs…
Lecture de données à partir de capteurs (input)
Une fois que vous avez réussi à contrôler vos moteurs, vous voudrez peut-être que votre robot adapte son comportement aux changements d’environnement.
Il existe des tonnes de capteurs que vous pouvez utiliser avec une carte Arduino :
- Mesure de distance optique
- Détecteur laser
- Accéléromètre
- Gyroscope
- Magnétomètre
- Lecteur RFID
- Thermomètre
- Capteur de charge
- Capteur de force
- …
Imaginez toutes les applications robotiques que vous pouvez faire avec tous ces capteurs ! Vous pouvez facilement trouver des bibliothèques, des tutoriels et des fiches techniques en ligne pour apprendre à lire et analyser des données. La plupart de l’acquisition de données se fera via la communication série, I2C et SPI.
Par exemple, vous pourriez utiliser une IMU (unité de mesure inertielle) pour contrôler l’inclinaison de votre robot. Une IMU est composée de différents capteurs : accéléromètre, gyroscope et magnétomètre (optionnel). Ensuite, si vous voulez que votre robot détecte et évite les collisions avec des objets et des personnes, vous pouvez ajouter un détecteur laser.
Tout cela juste avec votre carte Arduino. Le matériel robotique est maintenant devenu agréable et convivial !
Enregistrement
Lorsque vous téléversez votre code sur la carte Arduino, vous ne savez pas ce qui se passe exactement lorsque le programme s’exécute. Peut-être que vous verrez des comportements étranges ou que votre robot ne fera tout simplement rien.
La manière la plus simple de déboguer ou d’afficher un état de votre programme est d’utiliser la bibliothèque Serial. Tout ce que vous avez à faire est d’écrire Serial.print(), et d’ouvrir le moniteur série sur l’IDE Arduino. De cette façon, vous pourrez voir les logs, et envoyer des commandes manuelles via la communication série pour le débogage. (Si vous voyez des caractères imprimés bizarres, assurez-vous que la vitesse de transmission est la même sur Arduino et sur le moniteur série).
Il est temps pour vous d’apprendre la robotique avec Arduino !
Nous avons donné ici un aperçu de ce que vous pouvez faire pour apprendre la robotique avec les cartes Arduino. Si vous avez des difficultés avec certaines parties, ne vous inquiétez pas trop car il existe une communauté en ligne active autour des cartes et des projets Arduino.
Nous espérons que cet article vous sera utile, afin que vous puissiez vous intéresser davantage à la robotique, apprendre de nouvelles choses et partager vos projets avec les communautés de roboticiens.
Et si vous êtes intéressés par l’apprentissage de la robotique avec Arduino sur un projet cool et utile, vous aimerez certainement Niryo One !