Arduino Robot

Bonjour comment allez-vous?

Il semble que je sois bien productif en ce moment… C’est presque du jamais vu… Aujourd’hui, pas de montage à réaliser soit-même, uniquement de la lecture pour vous faire découvrir le monde de la robotique grâce à un kit tout prêt : l’Arduino Robot 🙂

Non, je n’ai pas de projet dans la robotique en cours. Non, mon patron ne m’a pas augmenté mais les bons d’achats du concours Défi Data Plus valables chez SnootLab sont arrivés 😉

Du coup, j’ai craqué et j’ai commandé un Arduino Robot… Oui, oui le robot officiel qui est un peu cher… Déjà tout petit, je rêvai de pouvoir animer mes Legos ou mes Mécanos avec un moteur plutôt qu’une manivelle… Les années ayant passées, l’électronique s’étant démocratisé et amélioré il est maintenant possible de piloter : moteurs, capteurs, etc… Et de les faire interréagir de façon simple et efficace entre eux pour créer facilement des robots… Alors, pourquoi ne pas tester un robot tout fait?

Si vous avez une idée de projet ou une envie dans la robotique, je ne peux pas vous dire de prendre l’Arduino Robot, il remplit beaucoup de fonctions mais malheureusement il ne peut pas toutes les remplir… Il ne peut pas du tout se substituer à une main robotique pas exemple… Par contre si vous cherchez quelque chose qui roule, il pourra remplir beaucoup de vos attentes…

Pourquoi avoir choisi une solution toute faite comme l’Arduino Robot? Car si vous avez déjà cherché à monter un robot vous vous êtes vite rendu compte de la complexité de la tâche… Entre le châssis, les roues, les moteurs et les capteurs, il y a déjà de quoi s’arracher les cheveux. L’avantage de l’Arduino Robot est d’être livré complet, il ne manque que les capteurs ultra-sons pour le faire se déplacer de façon autonome, quand on sait le prix d’un capteur HC-SR04 c’est difficile de faire mieux. On vous livre même les piles rechargeables et le chargeur pour lui donner vie…

La seule chose à faire avant de l’utiliser et de synchroniser la vitesse de rotation des moteurs à l’aide d’un tournevis pour que le Robot aille droit : enfantin et cela prend moins de 5 minutes si vous pensez à charger les piles avant d’essayer de faire fonctionner les moteurs… (Non, non je n’ai pas cherché pendant 3 heures pourquoi les moteurs ne voulaient pas fonctionner…)

Autre bon point, la communauté, même si l’Arduino Robot est encore peut répandu, petit à petit les gens s’y intéresse et développe dessus comme ce projet français qui a participé à la compétition « Hack the Arduino Robot » organisée par RS Components :

Découvrons maintenant la bête en vue schématique pour commencer.  Source : www.arduino.cc/Robot

Dessus Motor Board
Dessus Motor Board
Dessus Control Board
Dessus Control Board
Dessous Motor Board
Dessous Motor Board

En photos :

Hauteur
Hauteur
Longueur
Longueur
Dessous
Dessous

Il fait 19 cm de diamètre sur 10 cm de haut, il est de conception plutôt robuste je dois dire, je ne l’ai pas fait rentrer dans les murs exprès pour tester, mais je pense qu’il doit supporter de bons chocs, même si je ne m’y risquerais pas…

On peut le voir comme un sandwich de PCB, la carte du bas gérant les moteurs et la carte du haut étant la carte de contrôle. En utilisation courante, il suffit de brancher un câble USB à la PCB de contrôle pour envoyer vos sketch sur le Robot.

Attention, le bouton power doit être sur OFF et il ne doit pas être connecté au chargeur mural. En gros si vous envoyez du code il faut brancher uniquement la prise USB sur la carte supérieure…

La face supérieure regroupe tous les éléments principaux de contrôles : LCD, Bouton Reset, Keypad, potentiomètre, etc. Il est vraiment complet, c’est assez dur de dire le contraire…

Comme il est pleinement reconnu et développé pour l’Arduino IDE c’est un vrai plaisir d’écrire du code… Il y’a des fonctions toutes prêtes qui permettent de faire tout, tout de suite. Il n’y a même pas besoin de d’ajouter une librairie, il faut juste utiliser l’Arduino IDE 1.0.5 ou une version supérieure…

Pour tester si le Robot va droit :

/*
 Motor Test

 Just see if the robot can move and turn.

 Circuit:
 * Arduino Robot

 created 1 May 2013
 by X. Yang
 modified 12 May 2013
 by D. Cuartielles

 This example is in the public domain
 */

#include <ArduinoRobot.h>

void setup() {
  Robot.begin();// initialisation du robot
}

void loop() {
  Robot.motorsWrite(255, 255);  // on le fait aller en avant pendant 2s
  delay(2000);
  Robot.motorsStop();           // on fait un arrêt rapide
  delay(1000);
  Robot.motorsWrite(-255, -255); // on le fait aller en arrière pour 1s
  delay(1000);
  Robot.motorsWrite(0, 0);      // on le fait s'arrêter doucement
  delay(1000);
  Robot.motorsWrite(-255, 255); // on le fait tourner à gauche pendant 2s
  delay(2000);
  Robot.motorsStop();           // on fait un arrêt rapide
  delay(1000);
  Robot.motorsWrite(255, -255); // on le fait tourner à droite pour 2s
  delay(2000);
  Robot.motorsStop();           // on fait un arrêt rapide
  delay(1000);
}

Pour tester si le Robot tourne comme il faut :

/*
 Turn Test

 Check if the robot turns a certain amount of degrees.

 Circuit:
 * Arduino Robot

 created 1 May 2013
 by X. Yang
 modified 12 May 2013
 by D. Cuartielles

 This example is in the public domain
 */

#include <ArduinoRobot.h>

void setup() {
  Robot.begin();// initialisation du robot
}

void loop() {
  Robot.turn(50); //on le fait tourner de 50° sur la droite 
  Robot.motorsStop();// on fait un arrêt rapide
  delay(1000);

  Robot.turn(-100); //on le fait tourner de 100° sur la gauche
  Robot.motorsStop();
  delay(1000);
}

Connecter des éléments en plus est tout aussi aisé, car tous les ports sont clairement identifiés même sur la PCB. Source : www.arduino.cc/Robot

Pinout Dessus Motor Board
Pinout Dessus Motor Board
Pinout Dessus Control Board
Pinout Dessus Control Board

Mappage des Pins de la Control Board

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4MUX_IN A6PD4ADC8
D5#BUZZPC6???OC3A/#OC4A
D6#MUXA/TKD4 A7PD7FastPWM#OC4D/ADC10
D7RST_LCDPE6INT6/AIN0
D8CARD_CS A8PB4ADC11/PCINT4
D9#LCD_CS A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#DC_LCD A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXBPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12MUXC/TKD5 A11PD6T1/#OC4D/ADC9
D13#MUXDPC7PWM10CLK0/OC4A
A0KEY D18PF7ADC7
A1TKD0 D19PF6ADC6
A2TKD1 D20PF5ADC5
A3TKD2 D21PF4ADC4
A4TKD3 D22PF1ADC1
A5POT D23PF0ADC0
MISOMISO D14PB3MISO,PCINT3
SCKSCK D15PB1SCK,PCINT1
MOSIMOSI D16PB2MOSI,PCINT2
SSRX_LED D17PB0RXLED,SS/PCINT0
TXLEDTX_LEDPD5
HWBPE2HWB

Mappage des Pins de la Motor Board

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4TK3 A6PD4ADC8
D5#INA2PC6???OC3A/#OC4A
D6#INA1 A7PD7FastPWM#OC4D/ADC10
D7MUXAPE6INT6/AIN0
D8MUXB A8PB4ADC11/PCINT4
D9#INB2 A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#INB1 A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXCPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12TK4 A11PD6T1/#OC4D/ADC9
D13#MUXIPC7PWM10CLK0/OC4A
A0TK1 D18PF7ADC7
A1TK2 D19PF6ADC6
A2MUX_IN D20PF5ADC5
A3TRIM D21PF4ADC4
A4SENSE_A D22PF1ADC1
A5SENSE_B D23PF0ADC0
MISOMISO D14PB3MISO,PCINT3
SCKSCK D15PB1SCK,PCINT1
MOSIMOSI D16PB2MOSI,PCINT2
SSRX_LED D17PB0RXLED,SS/PCINT0
TXLEDTX_LEDPD5
HWBPE2HWB

 

Des liens qui peuvent être utiles avec l’Arduino Robot :

Voici quelques photos en plus :

Une petite vidéo pour mettre en avant les possibilité sonore qu’offre le Robot :


Bon malheureseument il y’a toujours des points noirs dans un produit… Sur l’Arduino Robot ce sont pour moi les suivants :

– Le 32U4 doit vite manquer de place si on veut implémenter des fonctions complexes. J’ai effleuré les possibilités du Robot car je voulais juste découvrir le monde de la robotique et sur les sketch d’exemples j’ai souvent au moins 50% de mémoire occupé…

– Il faut déporter les ball casters pour le Robot ne bloque plus à chaque petit obstacle :

– Il y a un bug avec le sketch R01_Logo si vous l’uploadez sur le Robot plus moyen de renvoyer un autre sketch… Voici comment faire pour vous en sortir sans passer par le port ISCP :

Voila on a fait le tour de ce petit Robot bien sympathique, j’espère que la lecture vous aura plût…

Ah j’oubliais… Une dernière petit chose, vous voulez tester l’Arduino Robot? Rien de plus simple si vous êtes Lyonnais… Il vous suffit de vous rendre à la Fabrique d’Objet Libre car je leur fait don du Robot afin que celui-ci profite au maximum de personnes… Il y sera disponible à partir du 9 Juillet 2014!!!!!
ET C’EST CELA LA VRAIE BONNE NOUVELLE 😉

@+

4 réponses sur “Arduino Robot”

  1. Bonjour,

    Est-il possible de rajouter des shields facilement ? Je ne vois pas ou ils vont venir se plugger . Merci Cordialement

    Marine

    1. Bonjour Marie, comment allez-vous?

      Pour les shields, il n’est pas possible de les enficher comme sur un arduino classique… Toutefois, ce n’est qu’une question de forme et de connectique… Effectivement, je pense que si vous arrivez à fixer le shield sur le robot (afin qu’il ne tombe pas quand ce dernier est en mouvement) et que vous reliez les pins du shield au pins du robot, vous devriez avoir les fonctionnalitées du shield à dispositionsur le robot. 🙂

      Cordialement, Anders

      1. Bonjour, petit retour sur la question puisque je travaille dessus depuis 4 mois maintenant.

        Effectivement on peut rajouter des shields en reliant les bons pins au bonne endroit sur le robot mais comme il n’y a pas de liaison Rx/Tx (elle est utilisé pour faire le lien entre la carte moteur et la carte capteurs) on est assez vite limité. Au final, j’ai fini par rajouter une carte méga qui dialogue par SPI (ce qui est possible si on retire l’écran LCD) avec le robot sur laquelle j’ai pu placé mes shields.

        Je trouve que ce robot est vraiment complet. C’est assez agréable de coder dessus. Attention ca vaut le coup d’aller jeter un coup d’oeil dans les bibliothèques arduino pour faire le ménage si on a pas besoin de toutes les fonctionnnalités permettant ainsi d’eviter les problèmes mémoires que tu abordais.

        Le seul défaut majeur je dirais est que les pins ou points sur le robot, qui sont relié entre eux, qui sont une masse ou une alimentation … ne sont pas indiqués. Et pourtant ca vaut le coup car on a trés vite des surprises. Je conseille donc de prendre un voltmètre et de s’armer de patience dés le début pour tout vérifier. Aprés si on branche à l’envers un capteur par exemple, le robot a une bonne sécurité qui l’empêche de s’allumer mais bon comme je sais pas comment cette sécurité est faite il vaut peut etre mieux éviter de la tester trop souvent.

        Merci de ton aide au départ.
        Marine

        1. Bonjour Marine,

          Un grand MERCI pour ces précisions qui pourront sûrement aider plus d’une personne… Auriez-vous publié quelquepart le code que vous avez rédigé pour la communication entre le Mega et le robot? Histoire d’aider encore plus des personnes?

          @Bientôt Anders

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Traduction :