mardi 31 janvier 2017

Le protocole InfraRouge

J'aurais pu l'appeler le protocole aiguillage.
Il s'agit d'un signal infrarouge émis par le véhicule vers le sol, reçu par un capteur au niveau de la piste, et qui permet d'identifier le véhicule.

Cette identification à 2 utilités :
1) détection du passage sur la ligne d'arrivée pour renseigner le compte tours
2) identification du véhicule en amont de l'aiguillage : d'abord, les informations de bifurcation des véhicules sont transmises aux aiguillages depuis le module "blue", ainsi, les aiguillages savent quelle voiture doit bifurquer, ou pas. Un aiguillage donné doit encore savoir si un véhicule l'aborde, et quel est son numéro. Quand il a décodé le signal infrarouge et par là reconnu la voiture, il doit encore regarder dans sa mémoire si ce véhicule doit bifurquer ou pas, puis, le cas échéant,il manœuvre l'aiguille (le flipper).

Le  code est simple, c'est un signal périodique composé d'une impulsion de lumière de 20µs et d'une obscurité de longueur variable afin de compléter la période






Les 36 valeurs :
la première ligne est le numéro du véhicule
la ligne en gras est la période en µs du signal infrarouge émis par la voiture correspondante






les 2 valeurs encadrantes, exemple 30 et 32µs pour la voiture 1, sont également admises par l'aiguillage ou le compte tour. Ainsi, si l'aiguillage mesure une période de 77µs, il considère qu'il s'agit de la voiture n°16,  s'il mesure 78µs, il considère qu'il s'agit de la voiture n°17

il peut y avoir des erreurs. La première mesure, souvent erronée, n'est pas utilisée. La 2ème mesure fait l'objet d'une petite correction.

Pour détecter les erreurs j'utilise un principe simple : on regarde à quel véhicule correspondent les impulsions, dès qu'un véhicule à 4 impulsions qui lui correspondent, il est validé.

Lors les tests effectués il y a une erreur sur environ mille mesures, toujours immédiatement corrigée par 4 bonnes mesures. Le système est donc très fiable car le risque d'erreur est nul.
Notez que la méthode nécessite une bonne précision des oscillateurs des microcontrôleurs sur les décodeurs et les modules d'aiguillage. Cette précision est obtenue sans quartz grâce à la méthode décrite dans l'article "protocole circuit"

A pleine vitesse, le véhicule n°35 génère encore environ 8 périodes mesurables lors de son passage. Cela est suffisant pour pouvoir corriger l'une ou l'autre éventuelles erreurs

Techniquement, ce code est généré par un module pwm, dont le "on" (pulse) est fixe, et dont la période varie en fonction du numéro de la voiture

A la lecture, il faut un bon module capture pour déterminer les durées. Le calcul statistique doit également se faire rapidement, à fortiori dans le cas d'un aiguillage double ou d'un compte tours, car quand 2 véhicules se présentent simultanément, il faut faire les 2 calculs parallèlement.
Pas de souci pour le stm32f0, et dans ce cas également, la hiérarchisation des interruptions est appréciée.





lundi 9 janvier 2017

le module black

un accessoire modeste pour commencer l'année 2017

les manettes carrera sont chères et il est plus aisé de trouver des manette scalex (c7002) à bon prix
J'ai donc dans les cartons un projet de module pour raccorder 4 manettes scalex

des composants spéciaux sont nécessaires : self choke en boîtier 1206, jack pour fiche audio mono de 2.5mm. Les selfs sont nécessaires pour éviter les parasites les signaux de faible amplitude parcourant les cordons des manette

le dessin du pcb a été facilité par la reprise en grande partie de celui du module red. Le soft a été moins aisé, il a fallu faire des maths !

fonctionnement correct le 7 mars 2017, validés

le schéma :


 















le pcb : top et bottom














photo :