Cybot – épisode 0
Sortis d’un autre temps, le robot « Cybot » était une avancée majeure dans la démocratisation des robots en 2003. Sous forme de fascicule bi-mensuel disponible en librairie il était vendu en kit à monter. Au cours des mois plusieurs évolutions ont permis d’aller jusqu’à pouvoir le programmer via un PC.
Mon projet est de lui replacer son microcontrôleur principal (UC1) par un Arduino Nano, tout en lui conservant un maximum de ses modules. Je ne sais pas encore si cela sera possible afin d’avoir toutes les fonctionnalités.
Celui que j’ai récupéré était à mon neveu et assez complet il comprend toutes les pièces de la Phase I (robot autonome) et presque toute la Phase II (télécommande).
Un petit peu d’histoire :
Je vais résumer les différents éléments qui sont inclus dans le modèle que j’ai.
- PHASE I (numéro 1 à 17) :
- Corps principal du robot avec carte d’alimentation et moteurs.
- Suivis de lumière grâce à des photo résistance.
- Suivis de lignes grâce à un circuit emmeteur/récepteur IR.
- Détection d’obstacle grâce à des capteurs à ultrason.
- PHASE II (numéro 18 à 29, 35) :
- télécommande IR avec écran lcd
- récepteur IR pour le robot avec son nouveau microprocesseur
Il y a en tout 4 micro-contrôleurs qui permettent de piloter les différents modules. Ils sont empilés et représente chacun une couche avec le ou les modules associés.
Si vous voulez un peu plus vous documenter, ce site Italien regroupe l’exhaustivité des fascicules, des informations techniques ainsi que beaucoup d’autres robots et de sujets, je le recommande : Adrirobot.
Le projet :
Avec les éléments à ma disposition il n’est pas possible de programmer ce robot (cela aurait été possible avec les numéro 36 et 37). Je veux de toutes façons avoir quelque chose d’accessible pour la programmation et pouvoir le faire évoluer par la suite. De plus j’ai dans un coin de ma tête l’envie de le laisser à mes enfants afin qu’ils s’initient à la programmation via une interface de type Scratch ou directement l’IDE Arduino.
Le robot est composé de plusieurs microcontrôleurs qui servent à piloter les différents éléments, ils communiquent entre eux en I2C. Un principal set d’orchestrateur pour le pilotage des moteurs, c’est celui la que nous allons changer. Il faut noter que ce robot n’a pas toutes ses fonctions activent en même temps, un switch (et via la télé-commande plus tard) permets de sélectionner sous quel mode on veux l’utiliser.
J’avancerai pas à pas en analysant chaque microcontrôleurs et modules du Cybot.
Comprendre l’architecture:
La première étape est de trouver tous les schémas ou explications concernant les différents modules. Le site Adrirobot ou lpilsley, moins exhaustif mais très technique, permettent d’avoir quasi toutes les infos nécessaires.
Schémas simplifié général de Cybot :
Le schémas ci-dessous présente l’architecture globale du robot et des échanges entres ses différents modules.
Schémas électronique général de Cybot :
Les schémas Eagle fournis par Adrirobot et le reverse engineering des autres modules permettent de faire le schémas Eagle complet ci-dessous représenté par couches tel que c’est monté dans Cybot.
Schémas Eagle et image complet :
Schémas Eagle et image individuels :
uc_1_ameliore, uc_2, uc_3, uc_4, afficheur, carte_io, carte_ir, carte_moteur,carte_sonar, carte_suiveur_ligne, eeprom_uc4
Les différentes couches matérielles :
Couche 1 :
Cette partie gère les fonctions principales du robot et son alimentation.
Les moteurs :
Ce sont des moteurs DC de type R260. La consommation maximum est de 400mA et une vitesse de 6500 tr/mn à 5,5v. Le pignon de sortie est un 12 dents.
Ils sont associés à un boitier réducteur avec un train d’engrenage de roue/pignon 48/12 dents successivent, pour un ration de réduction à la roue de 64:1.
Le module driver :
Ce module à 2 utilisations principale.
La première est la partie alimentation utilisant la pile 9V pour créer un 5V stabilisé via un régulateur 78L05 mais aussi 2 leds (vert et rouge) indiquent l’état de la pile 9V.
La deuxième est la partie pilotage des moteurs qui est un double pont en H, alimenté directement par le 6V des 4 piles AA.
Ces ponts sont respectivement pilotés par les entrées M1,M2 et M3,M4 par le microcontrôleur, qui peuvent être en PWM. La tension appliquée aux moteurs, suite aux différentes chutes de tension des diodes, est de l’ordre de 4,5V. Il ne faut jamais alimenter les 2 entrées d’un même pont ensemble au risque de le détruire.
Tableau de commande des moteurs :
Moteur | M1 | M2 | M3 | M4 | Fonction |
---|---|---|---|---|---|
MT2 Droit | 0 | 0 | arret | ||
MT2 Droit | 1 | 0 | avant | ||
MT2 Droit | 0 | 1 | arriere | ||
MT2 Droit | 1 | 1 | INTERDIT | ||
MT1 Gauche | 0 | 0 | arret | ||
MT1 Gauche | 1 | 0 | avant | ||
MT1 Gauche | 0 | 1 | arriere | ||
MT1 Gauche | 1 | 1 | INTERDIT |
Il permet de connecter les 2 moteurs via les connecteurs 2 broches MT1 et MT2 et les bloc de piles 9V et 4×1,5V.
Connecteur d’alimentation :
Pin | Desc. |
---|---|
1 | +6V |
2 | +9V |
3 | GND |
4 | GND |
Connecteur J1 :
Pin | Desc. |
---|---|
1 | M4 : moteur gauche ar. |
2 | M3 : moteur gauche av. |
3 | M2 : moteur droit ar. |
4 | M1 : moteur droit av. |
5 | +5V |
6 | +6V |
7 | GND |
Le module IO Lights :
Ce module permet de regrouper les éléments de base de Cybot. Il se connecte d’une part au module driver via le connecteur 7 broches (J2) et d’autres part au module UC1 via le connecteur 13 broches (J1).
- Les leds droites et gauche des antennes, elles ne sont malheureusement pas indépendantes, alimentées en 6V.
- Un Buzzer.
- Les photorésistances droites et gauche qui sont indépendantes et associées à un convertisseur analogique/digital de base.
- La connexion du suiveur de ligne est associé à un comparateur LM311.
Connecteur J1 :
Pin | Desc. |
---|---|
1 | M4 : moteur gauche ar. |
2 | M3 : moteur gauche av. |
3 | M2 : moteur droit ar. |
4 | M1 : moteur droit av. |
5 | +5V |
6 | +6V |
7 | GND |
Connecteur J2 :
Pin | Desc. |
---|---|
1 | L_F : Suiveur Ligne |
2 | BZ2 : buzzer |
3 | BZ1 : buzzer |
4 | CDS_L : photorésistance gauche |
5 | CDS_R : photorésistance droite |
6 | LED : leds antenne |
7 | M4 : moteur gauche ar. |
8 | M3 : moteur gauche av. |
9 | M2 : moteur droit ar. |
10 | M1 : moteur droit av. |
11 | +5V |
12 | +6V |
13 | GND |
Le microcontrôleur UC1 :
Ce module est basé sur un microcontrôleur 8bit SPMC02 à 6MHz.
- Le connecteur 13 broches (JP1) gère avant tout les différentes entrées du module IO Lights.
- Un connecteur 6 broches (JP2) permet aussi d’alimenter les autres couches et les échangent en I2C avec les autres microcontrôleurs.
- Enfin un connecteur 2 broches est présent afin de permette également le reset du microcontrôleur.
Connecteur JP1 :
Pin | Desc. |
---|---|
1 | L_F : Suiveur Ligne |
2 | BZ2 : buzzer |
3 | BZ1 : buzzer |
4 | CDS_L : photorésistance gauche |
5 | CDS_R : photorésistance droite |
6 | LED : leds antenne |
7 | M4 : moteur gauche ar. |
8 | M3 : moteur gauche av. |
9 | M2 : moteur droit ar. |
10 | M1 : moteur droit av. |
11 | +5V |
12 | +6V |
13 | GND |
Connecteur JP2 :
Pin | Desc. |
---|---|
1 | RESET |
2 | SDA : I2S data |
3 | SCL : I2S clock |
4 | +5V |
5 | +6V |
6 | GND |
Couche 2 :
Cette partie gère les émetteurs / récepteurs à ultrason du robot, mais aussi son mode de fonctionnement sans l’ensemble IR TX/RX, c’est à dire en fonction de quel capteur. La sélection du mode de fonctionnement se fait via un dipswitch à 4 contacts. Avec le module UC3 il sert aussi à configurer le canal de transmission IR.
Le module sonar :
Les émetteurs à ultrason sont directement connectés à la carte UC2, en conséquence ce dernier gère le signal émis.
Les récepteurs à ultrason utilisent un comparateur différentiel (LM393) dont les sorties sont connectés à la carte UC2.
Le dipswitch permet de sélectionner les modes de fonctionnement de Cybot mais aussi, avec UC3, la sélection du canal de transmission. Des potentiomètres permettent également le réglages de la sensibilité de détection.
Positions du dipswitch :
Action | SW1 | SW2 | SW3 | SW4 |
---|---|---|---|---|
suivis de lumière vitesse rapide | 0 (OFF - haut) | 0 (OFF - haut) | 0 (OFF - haut) | 0 (OFF - haut) |
suivis de lumière vitesse lente | 1 (ON - bas) | 0 (OFF - haut) | 0 (OFF - haut) | 0 (OFF - haut) |
évitement vitesse rapide | 0 (OFF - haut) | 1 (ON - bas) | 0 (OFF - haut) | 0 (OFF - haut) |
évitement vitesse lente | 1 (ON - bas) | 1 (ON - bas) | 0 (OFF - haut) | 0 (OFF - haut) |
na | 0 (OFF - haut) | 0 (OFF - haut) | 1 (ON - bas) | 0 (OFF - haut) |
suivis de ligne | 1 (ON - bas) | 0 (OFF - haut) | 1 (ON - bas) | 0 (OFF - haut) |
suivis d'objet | 0 (OFF - haut) | 1 (ON - bas) | 1 (ON - bas) | 0 (OFF - haut) |
suivis de ligne | 1 (ON - bas) | 1 (ON - bas) | 1 (ON - bas) | 0 (OFF - haut) |
Connecteur JP7 :
Pin | Desc. |
---|---|
1 | nc |
2 | GATE2 : commande du récepteur droit |
3 | GATE1 : commande du récepteur gauche |
4 | OUPUT : sortie des recepteurs |
5 | PZQ2 : émetteur droit |
6 | PZQ1 : émetteur gauche |
7 | SW4 : dipswitch 4 |
8 | SW3 : dipswitch 3 |
9 | SW2 : dipswitch 2 |
10 | SW1 : dipswitch 1 |
11 | +5V |
12 | +6V |
13 | GND |
Le microcontrôleur UC2 :
Il gère en premier lieu les détecteurs à ultrason. Il génère un signal à 40kHz de 4 cycles positif toutes les 25 ms pour l’émetteur coté gauche (pin 6 du connecteur) et de 4 cycles négatifs toutes les 25ms pour celui de droite (pin 5 du connecteur). Il reçoit le signal de sortie du comparateur et permet la sélection de quel récepteur doit être lu.
De plus il prend aussi en charge la sélection du mode de fonctionnement du dipswitch.
Finalement il communique avec UC1 en I2C.
Connecteur JP11 :
Pin | Desc. |
---|---|
1 | nc |
2 | GATE2 : commande du récepteur droit |
3 | GATE1 : commande du récepteur gauche |
4 | OUPUT : sortie des recepteurs |
5 | PZQ2 : émetteur droit |
6 | PZQ1 : émetteur gauche |
7 | SW4 : dipswitch 4 |
8 | SW3 : dipswitch 3 |
9 | SW2 : dipswitch 2 |
10 | SW1 : dipswitch 1 |
11 | +5V |
12 | +6V |
13 | GND |
Connecteur JP10 :
Pin | Desc. |
---|---|
1 | RESET |
2 | SDA : I2S data |
3 | SCL : I2S clock |
4 | +5V |
5 | +6V |
6 | GND |
Couche 3 :
Cette partie gère la partie commande infrarouge de Cybot. Par ailleurs il indique aussi via l’afficheur Led le canal infrarouge sélectionné.
Le module RX/TX IR :
C’est en résumé un ensemble émetteur / récepteur infrarouge fonctionnant à 38kHz.
Connecteur JP8 :
Pin | Desc. |
---|---|
1 | LED+ |
2 | LED- |
3 | PIC+ |
4 | PIC- |
5 | OUT |
Le module Led Display :
C’est un simple double afficheur 7 segments avec ses résistances. Il indique le canal de transmission IR sélectionné par le dipswitch.
Connecteur JP12 :
Pin | Desc. |
---|---|
1 | D2-C : segment |
2 | D2-D : segment |
3 | D2-G : segment |
4 | D2-E : segment |
5 | D1-BC : selection |
6 | D2-F : segment |
7 | D2-A : segment |
8 | D2-B : segment |
9 | COM : +6V |
Le microcontrôleur UC3 :
Il s’occupe de la gestion du dialogue infra-rouge. Ce module déconnecte la sélection du choix de mode qui se fera désormais par la télécommande.
Il dialogue en I2C avec le module maître UC1.
Connecteur JP17 :
Pin | Desc. |
---|---|
1 | D2-C : segment |
2 | D2-D : segment |
3 | D2-G : segment |
4 | D2-E : segment |
5 | D1-BC : selection |
6 | D2-F : segment |
7 | D2-A : segment |
8 | D2-B : segment |
9 | COM : +6V |
Connecteur JP18 :
Pin | Desc. |
---|---|
1 | LED+ |
2 | LED- |
3 | PIC+ |
4 | PIC- |
5 | OUT |
Connecteur JP20/JP21 :
Pin | Desc. |
---|---|
1 | RESET |
2 | SDA : I2S data |
3 | SCL : I2S clock |
4 | +5V |
5 | +6V |
6 | GND |
Couche 4 :
Cette partie ne sera pas détaillée car je ne possède pas les éléments.
Le module Eeprom :
C’est un module eeprom 24C32 qui dialogue en I2C avec UC4.
Le microcontrôleur UC4 :
Il semble se charger uniquement du dialogue avec l’eeprom et d’envoyer les commandes enregistrées au module maître.
Finalement :
Voila un tour complet du robot en lui-même afin de comprendre de quoi il est composé. Je suis resté le plus général possible sans rentrer dans la conception précise de chaque modules. Ce point sera vu étape par étape dans la suite des articles. La puissance des microcontrôleurs utilisés ont probablement dicté ce choix de partage de fonctionnalités.
Dans la suite je vais étudié comment connecter l’arduino afin de remplacer UC1 et interfacer les différentes couches.
bonsoir
je viens de retrouver mon robot que j’ai commencer mais je me suis vite arrêter faute d’argent
je vais donc essaye de suivre avec mais petit moyenne du jour
j’ai la base et un kit uno R3 project que l’on ma offert
mais je ne Conner pas grand chose a par la bas (comme mon robot d’ailleurs lol )