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éma simplifié général

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 général Eagle

Schémas Eagle et image complet :

schemas_eagle_full

Schémas Eagle et image individuels :

uc_1_amelioreuc_2uc_3uc_4afficheurcarte_io, carte_ircarte_moteur,carte_sonarcarte_suiveur_ligneeeprom_uc4

Les différentes couches matérielles :

Couche 1 :

Cette partie gère les fonctions principales du robot et son alimentation.

UC1

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.

moteur R260

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.

module driver

Tableau de commande des moteurs :

MoteurM1M2M3M4Fonction
MT2 Droit00arret
MT2 Droit10avant
MT2 Droit01arriere
MT2 Droit11INTERDIT
MT1 Gauche00arret
MT1 Gauche10avant
MT1 Gauche01arriere
MT1 Gauche11INTERDIT

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 :
PinDesc.
1+6V
2+9V
3GND
4GND
Connecteur J1 :
PinDesc.
1M4 : moteur gauche ar.
2M3 : moteur gauche av.
3M2 : moteur droit ar.
4M1 : moteur droit av.
5+5V
6+6V
7GND

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.

module io lights

carte suiveur de ligne

Connecteur J1 :
PinDesc.
1M4 : moteur gauche ar.
2M3 : moteur gauche av.
3M2 : moteur droit ar.
4M1 : moteur droit av.
5+5V
6+6V
7GND
Connecteur J2 :
PinDesc.
1L_F : Suiveur Ligne
2BZ2 : buzzer
3BZ1 : buzzer
4CDS_L : photorésistance gauche
5CDS_R : photorésistance droite
6LED : leds antenne
7M4 : moteur gauche ar.
8M3 : moteur gauche av.
9M2 : moteur droit ar.
10M1 : moteur droit av.
11+5V
12+6V
13GND

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.

module UC1

Connecteur JP1 :
PinDesc.
1L_F : Suiveur Ligne
2BZ2 : buzzer
3BZ1 : buzzer
4CDS_L : photorésistance gauche
5CDS_R : photorésistance droite
6LED : leds antenne
7M4 : moteur gauche ar.
8M3 : moteur gauche av.
9M2 : moteur droit ar.
10M1 : moteur droit av.
11+5V
12+6V
13GND
Connecteur JP2 :
PinDesc.
1RESET
2SDA : I2S data
3SCL : I2S clock
4+5V
5+6V
6GND

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.

UC2

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.

 

carte sonar

Positions du dipswitch :
ActionSW1SW2SW3SW4
suivis de lumière vitesse rapide0 (OFF - haut)0 (OFF - haut)0 (OFF - haut)0 (OFF - haut)
suivis de lumière vitesse lente1 (ON - bas)0 (OFF - haut)0 (OFF - haut)0 (OFF - haut)
évitement vitesse rapide0 (OFF - haut)1 (ON - bas)0 (OFF - haut)0 (OFF - haut)
évitement vitesse lente1 (ON - bas)1 (ON - bas)0 (OFF - haut)0 (OFF - haut)
na0 (OFF - haut)0 (OFF - haut)1 (ON - bas)0 (OFF - haut)
suivis de ligne1 (ON - bas)0 (OFF - haut)1 (ON - bas)0 (OFF - haut)
suivis d'objet0 (OFF - haut)1 (ON - bas)1 (ON - bas)0 (OFF - haut)
suivis de ligne1 (ON - bas)1 (ON - bas)1 (ON - bas)0 (OFF - haut)
Connecteur JP7 :
PinDesc.
1nc
2GATE2 : commande du récepteur droit
3GATE1 : commande du récepteur gauche
4OUPUT : sortie des recepteurs
5PZQ2 : émetteur droit
6PZQ1 : émetteur gauche
7SW4 : dipswitch 4
8SW3 : dipswitch 3
9SW2 : dipswitch 2
10SW1 : dipswitch 1
11+5V
12+6V
13GND

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.

carte UC2

Connecteur JP11 :
PinDesc.
1nc
2GATE2 : commande du récepteur droit
3GATE1 : commande du récepteur gauche
4OUPUT : sortie des recepteurs
5PZQ2 : émetteur droit
6PZQ1 : émetteur gauche
7SW4 : dipswitch 4
8SW3 : dipswitch 3
9SW2 : dipswitch 2
10SW1 : dipswitch 1
11+5V
12+6V
13GND
Connecteur JP10 :
PinDesc.
1RESET
2SDA : I2S data
3SCL : I2S clock
4+5V
5+6V
6GND

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é.

UC3

Le module RX/TX IR :

C’est en résumé un ensemble émetteur / récepteur infrarouge fonctionnant à 38kHz.

carte RX/TX

Connecteur JP8 :
PinDesc.
1LED+
2LED-
3PIC+
4PIC-
5OUT

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.

carte afficheur LED

Connecteur JP12 :
PinDesc.
1D2-C : segment
2D2-D : segment
3D2-G : segment
4D2-E : segment
5D1-BC : selection
6D2-F : segment
7D2-A : segment
8D2-B : segment
9COM : +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.

carte UC3

Connecteur JP17 :
PinDesc.
1D2-C : segment
2D2-D : segment
3D2-G : segment
4D2-E : segment
5D1-BC : selection
6D2-F : segment
7D2-A : segment
8D2-B : segment
9COM : +6V
Connecteur JP18 :
PinDesc.
1LED+
2LED-
3PIC+
4PIC-
5OUT
Connecteur JP20/JP21 :
PinDesc.
1RESET
2SDA : I2S data
3SCL : I2S clock
4+5V
5+6V
6GND

Couche 4 :

Cette partie ne sera pas détaillée car je ne possède pas les éléments.

UC4

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.