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
En photos :
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
Mappage des Pins de la Control Board
ARDUINO LEONARDO | ARDUINO ROBOT CONTROL | ATMEGA 32U4 | FUNCTION | REGISTER |
D0 | RX | PD2 | RX | RXD1/INT2 |
D1 | TX | PD3 | TX | TXD1/INT3 |
D2 | SDA | PD1 | SDA | SDA/INT1 |
D3# | SCL | PD0 | PWM8/SCL | OC0B/SCL/INT0 |
D4 | MUX_IN A6 | PD4 | ADC8 | |
D5# | BUZZ | PC6 | ??? | OC3A/#OC4A |
D6# | MUXA/TKD4 A7 | PD7 | FastPWM | #OC4D/ADC10 |
D7 | RST_LCD | PE6 | INT6/AIN0 | |
D8 | CARD_CS A8 | PB4 | ADC11/PCINT4 | |
D9# | LCD_CS A9 | PB5 | PWM16 | OC1A/#OC4B/ADC12/PCINT5 |
D10# | DC_LCD A10 | PB6 | PWM16 | OC1B/0c4B/ADC13/PCINT6 |
D11# | MUXB | PB7 | PWM8/16 | 0C0A/OC1C/#RTS/PCINT7 |
D12 | MUXC/TKD5 A11 | PD6 | T1/#OC4D/ADC9 | |
D13# | MUXD | PC7 | PWM10 | CLK0/OC4A |
A0 | KEY D18 | PF7 | ADC7 | |
A1 | TKD0 D19 | PF6 | ADC6 | |
A2 | TKD1 D20 | PF5 | ADC5 | |
A3 | TKD2 D21 | PF4 | ADC4 | |
A4 | TKD3 D22 | PF1 | ADC1 | |
A5 | POT D23 | PF0 | ADC0 | |
MISO | MISO D14 | PB3 | MISO,PCINT3 | |
SCK | SCK D15 | PB1 | SCK,PCINT1 | |
MOSI | MOSI D16 | PB2 | MOSI,PCINT2 | |
SS | RX_LED D17 | PB0 | RXLED,SS/PCINT0 | |
TXLED | TX_LED | PD5 | ||
HWB | PE2 | HWB |
Mappage des Pins de la Motor Board
ARDUINO LEONARDO | ARDUINO ROBOT CONTROL | ATMEGA 32U4 | FUNCTION | REGISTER |
D0 | RX | PD2 | RX | RXD1/INT2 |
D1 | TX | PD3 | TX | TXD1/INT3 |
D2 | SDA | PD1 | SDA | SDA/INT1 |
D3# | SCL | PD0 | PWM8/SCL | OC0B/SCL/INT0 |
D4 | TK3 A6 | PD4 | ADC8 | |
D5# | INA2 | PC6 | ??? | OC3A/#OC4A |
D6# | INA1 A7 | PD7 | FastPWM | #OC4D/ADC10 |
D7 | MUXA | PE6 | INT6/AIN0 | |
D8 | MUXB A8 | PB4 | ADC11/PCINT4 | |
D9# | INB2 A9 | PB5 | PWM16 | OC1A/#OC4B/ADC12/PCINT5 |
D10# | INB1 A10 | PB6 | PWM16 | OC1B/0c4B/ADC13/PCINT6 |
D11# | MUXC | PB7 | PWM8/16 | 0C0A/OC1C/#RTS/PCINT7 |
D12 | TK4 A11 | PD6 | T1/#OC4D/ADC9 | |
D13# | MUXI | PC7 | PWM10 | CLK0/OC4A |
A0 | TK1 D18 | PF7 | ADC7 | |
A1 | TK2 D19 | PF6 | ADC6 | |
A2 | MUX_IN D20 | PF5 | ADC5 | |
A3 | TRIM D21 | PF4 | ADC4 | |
A4 | SENSE_A D22 | PF1 | ADC1 | |
A5 | SENSE_B D23 | PF0 | ADC0 | |
MISO | MISO D14 | PB3 | MISO,PCINT3 | |
SCK | SCK D15 | PB1 | SCK,PCINT1 | |
MOSI | MOSI D16 | PB2 | MOSI,PCINT2 | |
SS | RX_LED D17 | PB0 | RXLED,SS/PCINT0 | |
TXLED | TX_LED | PD5 | ||
HWB | PE2 | HWB |
Des liens qui peuvent être utiles avec l’Arduino Robot :
- Présentation du Robot : www.arduino.cc/Robot
- Première mise en route du Robot : http://arduino.cc/en/Guide/Robot
- Présentation des Libraries : http://arduino.cc/en/Reference/RobotLibrary
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 😉
@+
Bonjour,
Est-il possible de rajouter des shields facilement ? Je ne vois pas ou ils vont venir se plugger . Merci Cordialement
Marine
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
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
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