L'abdomen
Le centre moteur
Le réseau de nerfs
Le bulbe rachidien
Le cerveau
Schéma complet
Le réseau de nerfs

Comme pour nous, tous les nerfs dédié au sens du toucher se connectent sur la colonne vertebrale avant le cerveau. J'ai choisi de copier strictement la nature en ce qui concerne le "toucher". Une autre solution m'aurait occupé des dixaines de canaux, alors qu'avec un peu d'astuce, nous n'allons utiliser que 2 canaux pour connecter jusqu'à 128 capteurs de toucher.

Cette astuce vient des notes techniques de Parallax, constructeur du BS. Le principe en est simple. Le BS va mesurer le temps de décharge d'un condensateur. Ce condensateur est chargé par un certain nombre de résistance en fonction de l'interrupteur sur lequel on appuie. Si je presse l'interrupteur no3, le condensateur se charge à travers 3 résistances, il sera donc moins chargé qui si j'avais pressé le bouton no1 (1 seule résistance). Simple.

Voyons maintenant à quel point c'est efficace et proche de la nature.

Avec ce système on pourrait dire que le désavantage est que si l'on appuie sur les bouton 1 et 3 en même temps, le condensateur se chargera comme si seul le bouton 1 avait été pressé. En celà, il faut comprendre qu'un ordre de priorité est induit. Le bouton 1 est plus important que le 2 ou le 3. Si plusieurs interrupteurs sont pressés en même temps, seul le plus prioritaire sera retenu.

Revenons à la création de Dieu, et imaginons un exemple dans lequel j'aurais trop marché, tellement marché que j'en ai choppé une cloque qui me fait extremement mal. Pour me détendre je me mets à bricoler un truc avec un cutter, et là.... c'est le drame, je me coupe, ça me fait mal. Aussi étonnant que cela puisse paraitre, durant les minutes qui vont suivre et bien que j'ai toujours mal au pied, je ne vais penser qu'à ma coupure au doigt. La douleur du pied est presque imperceptible. Je le sens légèrement mais ça n'a aucune importance ! j'ai trop mal au doigt. Une sorte de priorité de l'information nerveuse est donc en nous.

Le système de chargement de condensateur est donc bien celui qui est le plus proche de la nature. Je ne sais pas à quoi ça va me servir mais ce qui est sûr c'est que ça colle à notre postulat de départ, copier la nature. En fait, nous verrons plus loin que ce système donne une réelle impression de vie au robot puisqu'il va décider tout seul que cogner un mur est bien plus grave que de savoir que le moteur a fait un tour. Et puis un détail non négligeable : 64 capteur sur un canal c'est plutôt balaise comme économie.

Pour garder l'indépendance des deux rampes de "jambes" du robot, j'ai choisi de séparrer les capteur de toucher en deux rampes de 7 capteurs chacun (largement suffisant).

Les capteurs que j'utilse sont des petits interrupteur "click" de souris. Ils sont fait pour nos gros doigt et des milliers de clicks. C'est le plus robuste et le plus petit que j'ai trouvé. J'en place un à chaque bout de jambe, ainsi le contact d'une jambe avec le sol est pris en compte. J'en place un pour une antenne, un pour un compte-tour moteur et un pour mesurer le "basculement" du robot sur le dos ou sur l'arrière. Ceci pour chaque coté : une série à gauche, une série à droite. Elles sont indépendantes en termes de priorité. Elles occupent 2 canaux (P2 et P3) du BS.

Règles de priorité

Nous reste à imaginer l'ordre de priorité. Personnellement j'ai mis des connecteurs tulipe pour pouvoir changer cet ordre en inversant simplement les cables. A force, je suis tombé sur l'ordre ci dessous, mais libre à vous d'en changer jusqu'à trouver le meilleur ordre possible pour votre bot. Le rôle global de ces capteurs est le contrôle des éléments mécaniques. Si vous alimentez votre moteur, il est toujours bon de vérifier qu'il tourne réellement (au cas ou le robot serait bloqué contre un mur)

1- Antenne (si il touche un obstacle, c'est prioritaire à tout !)
2- compte-tour moteur (à chaque tour d'une de vos roues dentée, un click)
3- patte centrale
4- patte arrière
5- patte avant
6- basculement arrière
7- basculement coté

Pareil pour l'autre côté. La mesure de la décharge du condensateur est obtenue par l'instruction Basic "RCTIME" pour les BS2 (et "POT" pour les BS1). Avec des valeurs de 100nF pour le condo et 10k pour les résistances, RCTIME renvoie un chiffre compris entre 0 et 65635, chaque tranche de 1000 correspond à un interrupteur. Si RCTIME mesure 6467, c'est l'interrupteur 6 qui a été déclenché. Pour 3556, c'est l'interrupteur 3 ... etc ... voilà pourquoi on a virtuellement la possibilité de monter jusqu'à 64 capteurs par ligne. En jouant mieux sur les valeurs du condo et des résistances on peut aussi créer une incrémentation de 500 et doubler le nombre de capteurs par ligne. Je ne connais pas la limite. Certains testeront. En ce qui me concerne une dixaine de capteurs suffisent (et puis il m'a fallu dépouiller 7 vieilles souris, j'en avais pas d'autres, donc je me suis arreté là).

Toujours dans l'idée de protection, j'ai ajouté une résistance de 10k entre ce montage et les canaux du BS. Au pire (court circuit, blocage du premier bouton ou écrasement du robot sous une presse à la Terminator) le BS mesurera 10k minimum soit un demi milliAmpère, largement suffisant pour ne pas cramer le BS. Ceci dit, je suis peut être parano.

Pour ceux qui ne l'auraient pas encore compris, j'ai appris l'électronique uniquement pour faire mon bot, je ne suis pas le mieux placé pour vous donner des conseils, il y a 2 mois à peine je ne savais même pas ce qu'est une diode zener. Mais bon, j'y suis arrivé quand même à force d'à force, empiriquement, sans jamais rien cramer grâce à cette parano de la protection. ;-)