www.didel.com -- info@didel.com www.bricobot.ch -- info@bricobot.ch www.bricobot.ch/kits/ext8i8o.pdf Ext8i8o (documentation pour concepteurs-programmeurs, pas pour les jeunes!) Doc de montage sous www.bricobot.ch/kits/ext8i8okit.pdf Une première carte optimisée pour le Bimo a été réalisée en juin 2009. Ellle est disponible en petites quantités. Une carte améliorée, facile à souder en kit, est disponible à fin août 2009 avec des connecteurs normalisés et une possibilité d extension pour avoir 16 entrées/sorties ou plus. La carte BimoExt8i8o utilise les 3 lignes de programmation d un microcontrôleur pour ajouter 8 entrées et 8 sorties. Des LEDs peuvent être connectées directement sur les sorties. Des poussoirs ou des capteurs résistifs sont liées directement sur les entrées.. Un circuit avec 4 ampli moteurs permet de commander 4 moteurs Fishertechnik avec leur prises 2.6mm. La carte a un connecteur à 5 broche comme interface vers le microcontrôleur. Ce connecteur permet de cascader plusieurs modules pour augmenter le nombre d entrées-sorties. De plus, un connecteur compatible Bimo-Bimoplus pour se brancher sur le connecteur de programmation, et avoir un Pickit accroché pour faire le développement du logiciel. Un connecteur spécial doit être soudé pour faciliter le travail.
La carte Ext8i8o est compatible avec les cartes Microdules pour permettre la mise au point de démonstrateurs comme un ascenseur en normalisant les connecteurs pour pouvoir facilement déplacer l interface sur une carte ayant 2 ports de libre ou sur la carte Ext8i8o. Un module avec poussoir permet de simuler à la main les ordres de décalage. Un circuit Dé électronique, ou feu-rouge pourrait être directement connecté sur la sortie et actionné à la main. Un autre module comporte en plus un microcontrôleur 16F630 qui a plusieus modes et peut être chargés par les programmes d application. Normalisation Pour faciliter la compatibilité entre montages et processeurs, les connecteurs d entrée et de sorties sont des barrettes 0.7mm mâle en général fixées sur un circuit Veroboard passif ou actif (s il faut des transistors amplificateurs). Les signaux sont en tout-ou rien. Le bit de poids faible du port est à droite, à côté du +. Sur les circuits imprimés, les connecteur à 10 broches ont la masse sur la broche1, et la pastille est carrée. Des connecteurs coudés permettent de juxtaposer les motules. Les montages ne sont pas destinés à être embarqués sur de robots, ce sont des montages didactiques avec un câblage fonctionnel, propre et clair. L adaptateur pour câble plat permet de compacter.
Utilisation La carte a été prévue pour commander des applications variées, commandes de feu rouge, ascenseur, grues, etc. Elle sera redessinée pour mieux s intégrer dans les applications prévues par les utilisateurs potentiels. Les 8 entrées sont prévues pour des poussoirs; des pull-ups de 33 kohm permettent de simplement brancher les contact avec la masse. Des capteurs analogiques (photorésistances, etc) peuvent être connectés sur les entrées CMOS, en enlevant si nécessaire les résistances pull-up. Les sorties sont HC-Mos, avec une résistance de 470 Ohm en série. Ceci permet de commander directement une LED reliée au +. ou une led bicolore entre 2 sorties. Une sortie peut commander directement (si les tensions sont compatibles) un transistor Mos ou bipolaire, N ou P avec un logiel adapté. Une paire de sorties peuvt commander une LED bicolore, ou le pont en H d un module Kit12V (http://www.bricobot.ch/kits/kit12v.pdf), un Microdule H9110 ou le module pour commander 4 moteurs FisherTechnik. Le but visé est de faire diverses applications en ajoutant des modules pour les applications les plus complexes, mais le câblage doit rester aussi propre et clair que possible. Par exemple les 8 poussoirs d un feu rouge ne seront pas câblés sur un connecteur à 2 pôles pour chaque interrupteur, mais tous ensemble sur un connecteur en ligne à 9 broches avec une seule masse pour tous. Interface logiciel Le module Ext8i80 peut être connecté à n importe quel contrôleur ayant une entrée et deux sorties à disposition. Seul le signal d horloge ne peux pas être éventuellement partagé avec une autre fonctions. Le connecteur série sur la carte Ext8i8o a les signaux suivant dans l ordre :
1 Gnd 2 V+ (3.5 6V) 3 Ck 4 DtoP (lecture) 5 DfromP (écriture) Le PCB sera modifié pour avoir la pin 1 en haut. Ordre identique. La programmation peut se faire dans n importe quel langage qui respecte les contraintes temporelles données plus loin. Un couche de logiciel doit cacher à l utilisateur la nature de l interface. Il écrit dans une position mémoire, et voit les LEDs correspondantes s allumer. Il lit une autre position mémoire et les bits à 1 correspondent à des interrupteurs fermés, ou des LDR éclairées. Une routine par interruption s exécute par derrière pour faire la mise à jour toutes les 20 ms par exemple, ce qui semble assez rapide. Rappelons le principe du registre à décalage, formé de bascules bistables connectées de façon telle que à chaque coup d horloge, l information passe dans la bascule suivante. Avec 2 lignes sortant du processeur on peut pousser les bits dans le registre et avoir autant de sorties que l on veut. A noter que pendant le décalage, les sorties montrent les bits qui passent, ce qui est acceptable pour une diode lumineuse qui va à peine s intensifier, mais n est pas acceptables dans d autres occasions. Un registre supplémentaire peut alors être ajouté et toutes les sorties sont modifiées d un coup à la fin du transfert. Des circuits HC-MOS en boitier SO conviennent bien pour cette application A noter que les amplis de sortie sont meilleurs pour imposer un 0 que pour imposer un 1. On câble les diodes lumineuse avec la l anode au plus et la cathode sur le processeur, avec une résistance entre deux. Pour lire l information donnée par des poussoirs ou contacts, on charge le registre HC165 avec une impulsion Load et on décale l information en récupérant les bits un à un. A noter que cette impulsion Load nécessite une ligne supplémentaire. Pour éviter de demander cette ligne au processeur, un séquenceur qui reconnaît la première impulsion Clock génère ce Load. De même avec le 4094, le registre parallèle est chargé à la fin du train d impulsion
Schéma de la carte Séquencement Le microcontrôleur envoie 8 impulsions d horloge. La première doit durer au moins 10 us, car elle est surveillée par un microcontrôleur 10F200 qui génère l impulsion /Ld165 qui transfert les entrées dans le registre à décalage. Le 10F200 attend 1ms, le transfert doit être terminé une impulsion transférera le contenu du registre série du 4094 sur son registre parallèle de sortie. Programme dans le 10F200 : Bx200.asm La programmation est triviale avec tous les processeurs, mais il faut être rapide ; l envoi doit durer au maximum 1ms, et les interruptions ne doivent pas augmenter cette durée. La routine PIC 4 MKz dure 120 microsecondes. A 8Mhz, la durée serait environ 100 us (on ne peut pas réduire la première impulsion de 12 us)
Routine d envoi : Initialiser une boucle de 8 1 activer Ck 2 préparer le 1 er bit à envoyer sur la sortie DfromP 3 attendre 10 us pour que le 10F200 charge le registre du 165 4 lire le 1 er bit transmis sur DtoP 5 désactiver Ck on recommence, mais pas besoin d attendre 10 us 6 préparer le 2 e bit à envoyer sur la sortie DfromP 7 activer Ck etc pour 8 boucles Les sorties sont modifiées 100 us après le dernier Ck. La routine dure 120 us sur un PIC à 4 Mhz. Programme de test : BxTest.asm (877-690-630) Spécifications logicielles Ces spécifications seront revues après test des programmes sous Basic. Les routines doivent être faites en assembleur Durée 1 er Ck >12us Durée Ck suivants > 1us, < 10 us Durée transmission < 900 us Set-up DfromP par rapport au Ck front montant > 1us Support logiciel sur Bimo/Bimoplus en assembleur JDN Routine interruption PFM+Servo+ExtIO Macros en français à coordonner avec les ordres/routines en Basic ou C Support logiciel sur Bimo/Bimoplus en GCbasic Maurice Routine d interruption Support matériel et logiciel sur AVR Laurent Applications Laurent développe des démonstrateurs : Feu rouge, Ascenseur 3 étages, etc jdn 090724