1. Accueil
  2. Docs
  3. Niryo un
  4. Tutoriels
  5. Contrôlez le Niryo One avec une carte Arduino

Contrôlez le Niryo One avec une carte Arduino

PHN0eWxlPgouZGlzY2xhaW1lciB7CmJhY2tncm91bmQ6I2U3ZjJmYTsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2IoMCAwIDAgLyAzMCUpOwogIGZvbnQtZmFtaWx5OiBvcGVuLXNhbnMsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsKfQouZGlzLXRpdGxlIHsKYmFja2dyb3VuZDojNmFiMGRlOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOiAjZmZmOwogICAgYmFja2dyb3VuZDogIzZhYjBkZTsKICAgIHBhZGRpbmc6IDZweCAxMnB4Owp9Ci5kaXMtdGV4dCB7CiAgICBwYWRkaW5nOiA2cHggMTJweDsKfQouZGlzLXRleHQgYSB7CnRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGlzY2xhaW1lciI+CjxkaXYgY2xhc3M9ImRpcy10aXRsZSI+Tm90ZTwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXMtdGV4dCI+VGhpcyB0dXRvcmlhbCBpcyBkZXNpZ25lZCBmb3IgTmlyeW8gT25lIHVzZXJzLiBJZiB5b3UgYXJlIHVzaW5nIE5lZCwgcGxlYXNlIGZpbmQgdGhlIG5ldyB0dXRvcmlhbCA8YSBocmVmPSJodHRwczovL2RvY3MubmlyeW8uY29tL2FwcGxpY2F0aW9ucy9uZWQvc291cmNlL3R1dG9yaWFscy9jb250cm9sX25lZF9hcmR1aW5vLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPi48L2Rpdj4KPC9kaXY+

Il existe une infinité d’activités de programmation que vous pouvez réaliser avec Niryo One. La programmation du robot à partir d’une carte Arduino en fait partie. Dans ce didacticiel, nous allons passer en revue un exemple concret pour vous montrer comment procéder.

Le concept

Utiliser une carte Arduino avec un (ou plusieurs) Niryo One vous permettra de créer des applications plus complexes. Par exemple, vous pouvez facilement configurer une petite démonstration de chaîne d’assemblage avec un seul Arduino et 2 robots.

Commençons simplement avec un Arduino et un robot.

Le concept est simple : le La carte Arduino est le maître qui décide quel robot fait quoi. Il reçoit des données provenant de capteurs ou d'entrées utilisateur et envoie différentes commandes aux robots via des broches numériques. Pour lancer une commande sur un robot, l'Arduino enverra un signal numérique. Il devra attendre une réponse (un autre signal numérique sur une autre broche) pour savoir que le robot a terminé.

Chaque robot est un esclave. Il dispose d'un ensemble de commandes prédéfinies et attend que l'Arduino lui envoie un signal numérique. Dès réception du signal, une commande donnée est lancée, et une fois terminée, le robot enverra un autre signal numérique à l'Arduino, pour l'informer qu'il a terminé l'exécution de la commande.

Configuration électrique

Avant de mettre quoi que ce soit sous tension, assurez-vous que le robot et l'Arduino partagent une masse commune (fil noir).

Ensuite, vous pouvez brancher jusqu'à 6 fils sur les 6 broches numériques situées à l'arrière du robot. Sur l'Arduino, branchez ces fils sur des broches numériques. Vous devrez ensuite choisir quelles broches sont définies comme INPUT et OUTPUT. (Choisissez les couleurs appropriées pour éviter les erreurs à l'avenir)

Dans cet exemple, nous utilisons 3 fils : 2 pour envoyer les commandes de l'Arduino au robot (Arduino : OUTPUT, robot : INPUT), et 1 pour renvoyer la confirmation d'exécution de la commande (Arduino : INPUT, robot : OUTPUT). Vous devrez vous rappeler ce que vous avez choisi dans la configuration pour écrire le code de l'application.

Nous avons également ajouté 2 boutons avec des résistances pull-down de 10 kOhm, afin que l'utilisateur puisse choisir d'exécuter l'action « choisir » ou « placer ».

Programmation du robot avec Niryo Blocks (Niryo One Studio)

Dans cet exemple, nous définissons 2 fonctions, « Pick » et « Place ». La fonction « Pick » prélèvera un objet (à l'aide de la grande pince) à gauche du robot, et la fonction « Place » placera l'objet à droite du robot.

Tout d’abord, nous définissons les broches 1A et 1B comme INPUT, pour recevoir un signal de l’Arduino. La broche 1C est définie comme SORTIE, pour renvoyer un signal une fois la commande terminée.

On ajoute ensuite une boucle infinie lisant les 2 broches définies comme INPUT. Si une broche reçoit un signal HIGH, la commande associée sera lancée. A la fin de la commande, la broche définie comme OUTPUT sur le robot enverra un signal HIGH pendant 0.2 seconde (pour que l'Arduino ait le temps de le traiter), puis la remettra sur LOW.

Vous pouvez télécharger le XML utilisé pour créer cette séquence. Il vous suffit d'importer cette séquence dans l'onglet Niryo Blocks de Niryo One Studio, et d'exécuter la séquence sur le robot.

Le code Arduino

Téléchargez le code Arduino ici.

Pour aller plus loin

Ce que vous avez vu ici constitue la base de la programmation des robots Niryo One avec des cartes Arduino. Vous pouvez facilement faire évoluer l’application avec plus de robots, plus d’Arduino, plus de capteurs, plus de boutons, etc…

La structure du Niryo Block que vous avez vue ici sera à peu près la même : une boucle qui attend un signal de la carte Arduino, exécute une commande et renvoie une réponse.

Maintenant, avec votre imagination (et un peu de travail), vous pourriez créer de jolies applications. Juste quelques idées

  • Tic tac toe : robot contre humain
  • Chaîne d'assemblage qui sépare les objets en fonction de leur poids (avec une balance Arduino connectée)
  • Le robot donne du chocolat à l'utilisateur lorsque celui-ci appuie sur un bouton
  • ...

Si vous construisez une belle application avec Niryo One et Arduino (ou tout autre tableau électrique), n'hésitez pas à la partager avec la communauté Niryo sur les réseaux sociaux avec #niryo. Nous serions heureux de présenter votre projet 🙂

Comment pouvons-nous vous aider ?