Interfacage des cartes Teeces et Charging Bay ?

Forums Construction d’unité astromech Electronique, radiocommande, motorisation Interfacage des cartes Teeces et Charging Bay ?

9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #6700
    Alkagios
    Bloqué

      Hello,

      Je suis en train de préparer la partie électronique de mon droite. Par contre, je me pose un tas de questions principalement sur l’interface des différentes cartes…

      J’ai regardé les CuriousMarc (qui sont dans les holos) ne posent pas de problèmes car ils sont optocouplés et donc une simple sortie de type digital suffit pour l’allumer.

      Par contre, comment s’allume les PSI Teeces Vxxx. J’ai vu sur certaines vidéos qu’il y a seulement 3 fils pour les commander. Mais est-ce de l’I2C ? Est-ce que c’est uniquement de la sortie digitale ? Comment est-ce gérer ?

      Idem pour les digital Port et les charging Bay ?

      Tchao,

      Mike

      #30947
      Anonyme

        Les Teeces et le CBI sont basés sur le même principe : l’utilisation d’un driver de LED : le MAX7219CNG.

        Les trois fils sont des sorties digitales qui permettent de créer une communication avec un ou plusieurs MAX7219CNG chainés (principe daisy-chain).

        Ca n’utilise pas l’I2C, ni une liaison série “hard”, c’est une communication série recrée en “soft” sur des sorties digitales.

        Côté programme la librairie LedControl.h s’occupe de cet interfaçage, voir sur ce lien:

        http://playground.arduino.cc/Main/LedControl

        En résumé, il faut:

        //inclure la librairie:

        #include “LedControl.h”

        //créer une instance pour communiquer avec le(s) driver(s) sur les trois fils (DataPin, ClockPin, CsPin)

        //un exemple ici pour deux drivers 7219 chainés: le premier sur la chaine sera le CBI et le deuxième sur la chaine sera le DLP

        LedControl CBI = LedControl(12,11,10,2); //12,11,10 seront les trois fils qui gèrent la communication; le 2 indiquent deux drivers sur la chaine

        // Dans le set-up, il faut sortir les drivers 7219 de leur mode repos:

        // dans notre exemple CBI + DLP:

        // d’abord le CBI qui a l’adresse 0 car c’est le premier driver câblé sur la chaine)

        CBI.shutdown(0,false);

        //puis le DLP qui a l’adresse 1 car c’est le deuxième driver câblé sur la chaine)

        CBI.shutdown(1,false);

        // On en profite ensuite pour régler l’intensité et mettre à zéro toutes les LEDs

        CBI.setIntensity(0,0); // l’intensité est réglé pour un driver, ici le 0, ce sera donc la même pour toutes les LED de ce driver..

        // c’est pourquoi il faut trouver des LED de luminosité similaires car on ne peut pas corriger individuellement avec le driver.

        CBI.clearDisplay(0);

        CBI.setIntensity(1,6);

        CBI.clearDisplay(1);

        delay(500);

        // Une fois dans la LOOP:

        // Pour allumer/éteindre les LED, les commandes sont intuitives:

        // La commande setRow a besoin de (l’adresse du driver, le numéro de ligne, puis un byte indiquant l’état des LED souhaité)

        // En mettant l’état des LED en affichage type booléen “B” c’est très visuel… voir l’exemple ci-dessous où j’ai mis les 1 en couleur

        // Exemple pour gérer la matrice de LED du CBI dans lequel on alterne grand et petit carré:

        void BoxFlash(){

        for(int repeat=0;repeat<8;repeat++) {

        CBI.setRow(0,0,B11111000);

        CBI.setRow(0,1,B10001000);

        CBI.setRow(0,2,B10001000);

        CBI.setRow(0,3,B11111000);

        delay(300);

        CBI.setRow(0,0,B00000000);

        CBI.setRow(0,1,B01110000);

        CBI.setRow(0,2,B01110000);

        CBI.setRow(0,3,B00000000);

        delay(300);

        }

        }

        // Il y a aussi la commande setLed , bien pratique pour commander juste une LED:

        // Ici on allume les trois LED (verte, jaune, rouge) qui font le contrôle du niveau de batterie dans le CBI

        CBI.setLed(0, 4, 5, true);

        CBI.setLed(0, 5, 5, true);

        CBI.setLed(0, 6, 5, true);

        // Ceci est un peu le minimum vital, c’est juste pour comprendre; il y a d’autres commandes à explorer dans la librairie.

        #30948
        Anonyme

          Personnellement, je compte allumer les CBI et DLP quand une des portes sera ouverte au moins, comme ça le reste du temps, on soulage l’arduino et surtout la batterie:

          je mets donc l’allumage et l’extinction dans des routines faciles à appeler à partir du set-up (ChipOn) et de la Loop (chipOn et ChipOff selon l’état des portes):

          void ChipOn(){

          CBI.shutdown(0,false);

          CBI.shutdown(1,false);

          }

          void ChipOff(){

          CBI.shutdown(0,true);

          CBI.shutdown(1,true);

          }

          #30949
          Alkagios
          Bloqué

            Hello,

            Décidément, tu réponds à toutes mes questions en ce moment.

            C’est ce que j’ai vu (et réfléchis cette nuit) pour le MAX7219…

            Mais en plus, tu me mets le code, tu es vraiment un dieu pour moi :siffle:

            Donc j’en conclu qu’il est largement possible d’acheter les PSI et de les commander par Arduino (idem pour les RLD et FLD). Je vais encore réfléchir un peu et je sens que je vais lancer une commande des PSI et autres RLD et FLD (peut-être faire une commande groupée ???)

            Encore merci pour l’explication..

            Tchao,

            Mike

            #30950
            Anonyme

              Heureux que ça t’aide… et si tu veux les codes complets il n’y a qu’à demander (prévois juste quelques heures tranquilles pour les étudier :) )

              Sinon j’ai rien inventé, je n’ai fait qu’appliquer ce que j’ai trouvé sur Astromech… pfiouh, c’est long et parfois dur à trouver tellement il y en a mais… il y a de la bonne matière !

              En tout cas, c’est sans problème de contrôler tous les PSI, RLD, FLD par arduino, les teeces sont mêmes fait pour: j’ai opté pour une arduino Pro (conseillée pour les Teeces) car le RLD est fait pour l’accueillir directement : c’est super compact; je joins une photo.

              C’est bien expliqué ici:

              http://joymonkey.com/run/index.php?pg=tools

              Commence par lire méticuleusement le pdf au début.

              puis lis le tuto pour le montage avec en prime un sketch pour tester que le câblage est ok; clique sur le lien: “Teeces’ Blog – V2 Assembly Tutorials”

              J’ai acheté le jeu de circuits imprimés pour Teeces complet (PSIs, RLD, FLDs) sur le site conseillé sur Astromech,

              puis les composants principaux (comme les 7219) dans différents magasins d’électronique en ligne

              et j’ai complété en achetant le tout venant (résistances, condensateurs, …) chez la “boutique d’électronique du coin”.

              Avec cette même arduino, tu peux gérer sans soucis tous les Teeces.

              On pourrait même ajouter d’autres drivers en théorie et donc gérer le CBI, DLP, etc… mais dans la pratique il y a une limite : c’est la longueur de la chaine qui relie les 7219: au bout d’une certaine longueur, la résistance augmente et la communication n’est plus viable :(

              C’est pour cela que la dernière version de Teeces comporte d’origine deux connecteurs 5-pin: les OUT1 et OUT2

              OUT1 pour la chaine arrière (RLD puis PSI arrière)

              et OUT 2 pour la chaine avant (FLDs puis PSI avant)

              C’est aussi pour cela entre autre (là c’est juste mon avis :-) qu’il vaut mieux spécialiser ces arduinos en fonction de leur emplacement dans le droïde.

              Ca simplifie grandement le code (à vouloir en mettre trop, ça devient vite “compliqué” dans un sketch d’arduino; l’IDE n’est pas faite pour ça…) et ça fiabilise l’ensemble.

              Tu vois ici que mes Teeces sont pilotées en I2C: les deux fils bleu et violet à droite.

              Note: mes diodees ne sont pas soudées: je n’ai pas encore trouver mon bonheur avec les diodes jaunes et rouges (trop faiblardes; je compte en commander des nouvelles commandées chez digikey)

              #30951
              Alkagios
              Bloqué

                Hello,

                Merci pour l’info. Je ne pense pas encore avoir le niveau nécessaire pour faire du rétro-engenering sur ton code :amen:

                Mais j’ai compris le principe de base. Tu me conseilles donc un RLD avec l’arduino pro intégré piloté par I2C, qui pilote les autres FLD, PSI, un second dans le corps pour piloter les CBI et DPL.

                J’avais vu sur le PDF en regardant le typon le principe de chainage (OUT1 et OUT2 => qu’ils appellent IN et OUT sur le PDF).

                Je vais regarder cela en détails. Encore merci.

                Tchao,

                Mike

                #30952
                Anonyme

                  Oui, si tu utilises la config comme sur le pdf et ma photo: l’arduino Pro montée sur le RLD va gérer l’ensemble des lumières du Teeces (PSI, RLD, FLD).

                  Maintenant… tu as le choix:

                  1 – Si tu veux “juste” le code habituel des Teeces alors tu n’as pas besoin de l’I2C.

                  2 – Si tu veux faire plus que les possibilités habituels des Teeces (comme des défilements de texte de ton choix, des fonction equalizer, etc) alors il va falloir en informer ton arduino Pro, deux choix:

                  2-A tu utilises l’I2C

                  2-B tu utilises une combinaison de quelques entrées digitales pour indiquer le script à “jouer sur les Teeces”; un bon exemple est le code partagé tout dernièrement par BigHappyDude sur Astromech: il ajoute 7 fonctionalités sympas sur l’ensemble des displays à partir d’une combinaison de 3 entrées de l’arduino. Les entrées peuvent etre commandées électriquement ou manuellement à partir d’une roue codeuse comme celle livrée avec le périscope (c’est ce qu’il a copié)…

                  Je peux t’envoyer son code. Dans ce cas, tu n’as pas de modif du code à faire ou très peu ou je peux même t’aider à le customiser un peu si tu souhaites.

                  Dans tous les cas, je te conseille bien une autre arduino pour gèrer le CBI et le DPL dans le corps.

                  1 – Si tu veux juste les fonctions de base, pas besoin de l’I2C, tu alimentes l’arduino et c’est parti… les LEDs clignotent. Le code de base est fourni aussi sur astromech, je peux te le retrouver si besoin.

                  2 – Plus tard, si tu veux adapter les comportements des CBI/DPL selon différents les situations, alors idem que pour les Teeces: il faudra la connecter aussi à un maitre en I2C ou pourquoi pas encore faire une combinaison d’entrées (je crois que ce code n’est pas disponible pour le moment mais ça ne serait pas compliqué ni long à faire si ça intéresse du monde…).

                  #30953
                  kethry
                  Bloqué

                    Mike wrote:

                    Donc j’en conclu qu’il est largement possible d’acheter les PSI et de les commander par Arduino (idem pour les RLD et FLD). Je vais encore réfléchir un peu et je sens que je vais lancer une commande des PSI et autres RLD et FLD (peut-être faire une commande groupée ???)

                    si pas de run en cours sur astromech et qu’il y a des intéressés, cela peut être une bonne idée.

                    cela n’est néanmoins pas super aisé, notamment pour trouver les bonnes leds.

                    si quelqu’un se lance sur le sujet, penser également aux fournitures annexes, style cablages qui sont intéressants à commander en groupé.

                    #30954
                    Alkagios
                    Bloqué

                      Bonjour,

                      En fait, je ne sais pas trop car je n’ai pas la même habitude que les builders Américains. Je vais forcément oublié des trucs, galérer dans la conception…

                      Bref, je ne suis pas sur d’avoir les épaules solides (même si elles sont en CP ;) )

                      Par contre, je vais lancer une commande de typon chez OSHM (CuriousMarc HP, Teeces RLD, FLD, PSI) . Si cela intéresse du monde, envoyez moi un MP. Nous pourrions peut-être réduire les Fdp avec un seul envoi.

                      Tchao,

                      Mike

                    9 sujets de 1 à 9 (sur un total de 9)
                    • Vous devez être connecté pour répondre à ce sujet.