7
« le: novembre 13, 2024, 12:16:25 pm »
Bonjour ,
Un devoir de vacances sans internet , j'ai commencé ce projet où pour dessiner le pcb il faut autant mesurer que router
La base c'est les contrôleurs simples Loconet (donc pas CAN) du FREMO , le FRED , il y a ... 20 ans , puis le FREDI (Incremental) , il y a 10 ans
Il y a eu entre temps le WiFred , (wifi) , mais c'est une autre histoire
Je me suis demandé si on ne pouvait pas faire quelque chose en augmentant le nombre de boutons et de leds , pour pouvoir saisir directement une adresse , et j'ai cherché
Les bibliothèques existantes étant pour des AVR , je suis parti sur une base d'arduino mini : suite au manque de broches , il fallait trouver des trucs à base de charlieplexing pour les leds , et d'échelle de résistances sur entrée analogique pour les boutons ; c'était compliqué à router , cela m'a coûté 3 soirs de "labeur"
La solution , c'est d'utiliser une "vieille" connaissance , que j'avais déjà pour un décodeur de signaux : c'est un nano à rallonge , à base de clone lgt8f328p ; son microcontrôleur et sa carte sont optimisés , ce qui me permet de disposer d'un maximum de broches ; les boutons sont directement connectés à une broche , on utilise le pull-up interne ; pour les leds il faut ajouter une résistance ; j'ai aussi pu utiliser le comparateur analogique interne au lgt8f328p , ce comparateur est nécessaire à Loconet , il ne manquait plus qu'à ajouter quelques résistances ; vous pouvez voir cet arduino spécial en violet sur le dessin
La face dessous comprend l'arduino et les composants (cms , qui seront mis par jlcpcb) ; la face dessus comprend ce qui est nécessaire à l'homme , cad. le rotatif incrémental (que l'on devine en haut , ainsi que son bouton) , des boutons et des leds ; il y a notamment une colonne de 10 leds (0 à 9) , associée à une colonne d'autant de boutons , c'est le fondement du projet : les leds 0 à 9 représentent les dizaines , les boutons 0 à 9 , les unités
Le fonctionnement serait le suivant :
- au début , on est en mode normal (ou vitesse) , avec l'adresse courante , la led S , à droite , est allumée ; on fait varier la vitesse avec l'incrémental ; il n'y a pas de bouton de changement de sens , c'est l'incrémental qui le fait , en passant par la vitesse 0 ; une des 2 leds F ou R , de part et d'autres de l'incrémental , donne le sens de marche ; les leds 0 à 9 forment une jauge qui permet de visualiser approximativement la vitesse ; les fonctions de 0 à 9 sont directement accessibles dans ce mode , en appuyant sur le bouton correspondant
- si l'on veut activer des fonctions supérieures à 9 , on passe en mode fonction , en appuyant sur le bouton M , à droite ; la led F s'allume à la place de la led S , la led 1 s'allume pour indiquer la dizaine 1 ; si on appuie par exemple sur le bouton 7 , on active la fonction 17 ; l'incrémental permet d'atteindre les dizaines 2 à 9 , en allument la led correspondante , on peut donc théoriquement activer jusqu'à la fonction 99 ; la manette repasse automatiquement en mode vitesse , après envoi de la fonction
- il y a un mode aiguillage , qu'on active en appuyant 2 fois sur le bouton mode ; la led Y s'allume ; on sélectionne la led de dizaine avec l'incrémental comme précédemment , puis on fait basculer en appuyant sur le bouton correspondant à l'unité ; on reste en mode aiguillage , ou on s'en échappe en ré-appuyant sur le bouton mode
- le mode adresse est obtenu par un appui long sur le bouton mode , les leds S et F s'allument ; on sélectionne l'adresse de 0 à 99 comme précédemment ; je pense réserver l'adresse 0 au mode FRED (dispatch get de Loconet) , où l'adresse du fredix lui sera donnée par une manette évoluée , permettant cette opération
voici pour l'instant ; pj. pour ceux qui préfèrent les (beaux ?) dessins