Quoi de neuf 2014

From Eric

Revision as of 08:36, 12 March 2012 by Ejenn (Talk | contribs)
Jump to: navigation, search
  • 12/03/2012
    • Je viens de terminer la première version ("maquette") d'un galvanomètre pour affichage laser. Le voici :
      Galva mockup.jpg
      . On trouvera ici une vidéo sans intérêt qui montre que ça fonctionne...
    • Je commande la bobine avec un TDA2030A. C'est un ampli généralement utilisé comme ampli audio (18W). En supprimant les capas sur l'entrée et sur le feedback, je l'utilise comme un bête ampli op de puissance pas cher (un vrai ampli op de puissance comme le LM675 coûte beaucoup [beaucoup] plus cher. A noter qu'il faut être très vigilant avec le découplage des alims. En effet, si le découplage est mal fait, on obtient çà en sortie :
      Tda2030a oscillates.jpg
      L'ampli oscille ; ça se traduit pas un circuit intégré brûlant... J'ai mis les deux capas de découplage de 100uF (qui étaient marquée optionnelles sur la datasheet) et ça fonctionne plutôt bien.
    • Ceci dit, en l'état, il n'est pas possible de placer la bobine dans une position donnée.
      • En effet, la bobine n'a que deux positions d'équilibre. Elle passe d'une position à l'autre en fonction du sens de l'alimentation, une position d'équilibre étant caractérisée par l'alignement des champs des aimants permanents et de la bobine.
      • Pour pouvoir placer le rotor (donc le miroir) dans une position précise, il y a deux solutions :
        • Ajouter une force d'intensité variable en fonction de la position de la bobine. Dans ce cas, la position d'équilibre dépendra du champ du rotor. On peut faire cela en ajoutant un ressort de rappel (comme dans un galvanomètre classique), en plaçant un balourd (c'est ce que j'ai fait en fixant une pince croco sur l'axe : le moment de rappel dirigé vers le sol dépend de l'angle de rotation, mais d'une façon non linéaire), en fixant un objet métallique sur l'axe qui, attiré par l'aimant permanent, exercera une force de rappel (c'est ce que fait AUSSI ma pince croco).
        • Ajouter un capteur de position et piloter la bobine en fonction de l'écart entre la position de consigne et la position mesurée.
      • La première solution est simple et fonctionne en "boucle ouverte". Par contre, elle ajoute une force de rappel que la bobine devra contrer. Elle est imprécise (disons qu'il faut bien connaître la relation entre la position et l'intensité de la force de rappel, mais cela peut s'obtenir par calibration a posteriori). Enfin, et c'est là le principal problème : le miroir va osciller pendant un certain temps avant d'arriver à sa position d'équilibre, ce qui dégradera très fortement la qualité de l'affichage.
      • La deuxième solution est plus compliquée mais beaucoup plus intéressante. Comme Chan, la mesure de position va s'effectuer au moyen d'un capteur capacitif. J'ai fait quelques mesure avec un bout de papier d'aluminium et mon inductance mètre maison, et j'observe des variations de capacité de l'ordre du picofarad (ça se calcule, évidemment). Je vais réaliser un motif que je transférerai sur une plaque d'époxy. La difficulté va consister à découper l'époxy en forme de disque... L'idée est de partir d'un motif en deux demi-disques : ce schéma permet une variation de 0 à Cmax sur un demi-tour. Puisque je ne demande pas au miroir de faire un demi-tour, mais plutôt un quart de tour, un motif en 4 secteurs permet de faire varier la capacité de 0 à Cmax sur un quart de tour (on pourrait continuer le raisonnement pour augmenter le dC/dangle). Voici ce que ça donnerait :
        Motif capteur capacitif.jpg
  • 06/03/2012
    • Je poursuis mes investigations côté laser.
      • J'ai commencé à réalisé un galvanomètre sur l'axe duquel je compte placer un miroir. J'ai réalisé deux bobines que j'ai fixées sur un axe en aluminium monté sur roulements à billes. Le gros problème de cette approche (le rotor est une bobine) est d'alimenter la bobine sans trop affecter le mouvement de l'axe or, actuellement, les deux fils d'alimentation (0.2 mm de diamètre) jouent le rôle de ressorts... Ceci dit, et a priori, si je pilote la position du miroir en boucle fermée, le problème du fil ne devrait pas être insurmontable...
      • La mesure de la position de l'axe s'effectuera par un capteur capacitif (solution adoptée par Chan). Plusieurs approches sont possibles : utilier la variation de la fréquence d'un oscillateur (par ex. un 555) ; utiliser un montage en pont (à la façon d'un point de Wheatstone). Je crois que je vais investiguer cette dernière solution. (A noter que Chan utilise une autre technique.).
      • Pour ce qui est de l'alimentation des bobines, je vais utiliser un ampli op de puissance type LM675. C'est une solution simple mais assez onéreuse. Une autre solution consisterait à réaliser un ampli en push-pull avec de bons vieux transistors. A voir.
      • En vérité, mon plus gros problème actuel est de parvenir à découper proprement les différentes pièces "mécaniques" en plexiglass ou profilé d'alimunium. Pour ce qui est du plexiglass, on obtient le meilleur résultat en marquant la coupe avec un cuter (plusieurs fois) à l'endroit et à l'envers puis en cassant la pièce.
    • J'ai commencé à monter une nouvelle carte à base de Pic32 et d'ENC28J60 de Microchip. L'idée est de tester la communication Ethernet avec un montage à microcontrôleur. L'ENC28J60 fournit les couches physique et MAC ; Microchip fournit le reste de la pile TCP/IP gratuitement. A suivre...
  • 26/02/2012
    • Mes dernières tentatives de faire fonctionner cette $@# caméra NB avec un DsPic ont échoué...
      • J'ai modifié le soft pour ne conserver que les pixels format les plages connexes les plus grandes (je compte le nombre de voisins de la même couleur).
      • J'ai aussi rajouté une phase de calibration : au démarrage, caméra couverte, je cherche le plus bas niveau de détection qui conduit à la luminosité minimale. J'arrive bien à acquérir quelques pixels (32*32) mais c'est pratiquement inexploitable.
    • En parallèle, je commence à regarder du côté de l'affichage laser.
      • L'idée est simplement de piloter un miroir pour déplacer un faisceau laser selon un chemin donné. C'est un sujet qui a déjà intéressé nombre de personnes. On trouve sur le net diverses solutions : utilisation de hauts-parleurs, de moteur de pilotage de têtes de disque durs, de moteurs pas-à-pas, de moteurs à courant continu, ou réalisation de véritables galvanomètres. La difficulté consiste à pouvoir piloter les miroirs avec une vitesse suffisante, ce qui implique un rotor avec un minimum d'inertie.
      • La solution à hauts-parleurs et la plus simple et la moins coûteuse, mais les déplacements sont très limités (ce qui pose un problème si on veut afficher quelque chose sur un mur proche). La réalisation de vrais galvanomètres ("galvos" dans le jargon) donne de bien meilleurs résultats, surtout s'ils sont pilotés en boucle fermée. (En boucle ouverte, on a recours à un ressort pour ramener le galvo dans une position donnée.)
      • Quelques liens :
  • 21/02/2012
    • Ayant enterré l'horloge, je m'en retourne vers la caméra NB pilotée par un DsPic (cf. acquisition directe du signal vidéo issu d'une caméra analogique N&B).
    • J'avais laissé la chose dans un état semi-comateux : j'arrive à afficher une image (très) grossière sur un écran VGA, mais cette image n'a rien à voir avec ce que la caméra "voit".
    • Après quelques heures d'investigations (que j'aurais pu ramener à quelques minutes si j'avais lu la doc attentivement), il s'avère que ma vitesse d'échantillonnage était trop grande (et de loin).
    • La datasheet précise qu'une conversion dure 12 TAD avec TAD = TCY(0.5 (ADCS+1)) et que cette valeur ne doit pas être inférieure à 83.33 ns.
    • A 30Mips (vitesse max du DsPIC), mon temps de cycle est TCyc=33ns.
    • Pour ADCS=6, alors TAD=33ns(0.5x(6+1))= 115.5ns (>83.33ns). Si on utilise le sampling automatique, la durée d'une acquisition complète est de (12+SAMC)xTAD. Pour SAMC=1 on a un temps d'acquisition d'environ 1.5us. (Auquel il faut ajouter les quelques instructions nécessaires au lancement de la conversion et à l'attente de sa terminaison. Je vais faire la mesure pour voir...)
    • On rappelle que la durée d'une ligne est de 25.17us (partie contenant l'image, hors synchro et porch). Avec une telle vitesse d'acquisition, La résolution ne va pas être terrible !
    • La solution va consister à ne faire que 10 mesures par ligne sur une image mais à utiliser 3 images successives, en décalant le t0 d'échantillonnage.
  • 17/02/2012
  • 16/02/2012
    • Ca y est! Ca marche : j'arrive désormais à afficher un texte sur mon "horloge" (qui n'est donc pas vraiment une horloge...). Il est tard : je décrirai par le menu la chose demain...
    • Voici une photo de l'horloge en fonctionnement. On trouvera ici, et encore de courtes vidéos qui montrent la chose.
      Propeller text.jpg
    • Voir la page Propeller Clock pour plus de détails...
  • 13/02/2012
    • J'ai réalisé un petit support pour mon horloge. J'ai fixé l'hélice à grands renforts de colle chaude, ce qui est laid mais rapide et -- enfin je l'espère -- solide.
    • J'ai refait la carte de commande du transformateur primaire en remplaçant le 7400 (qui me servait à inverser le rapport cyclique du signal généré par le 555) par un FET (2N7000), ce qui est plus économique...
    • En utilisant des condensateurs neufs, j'arrive à une tension suffisante pour réguler en 5 volts.
    • Il me reste à faire une petite carte de commande du moteur brushless de la tête (c'est-à-dire un potentiomètre et un bornier). Après, j'attaque le logiciel. Je vais faire simple : une routine d'IT pilotée par le capteur Hall, une routine d'IT sur temporisateur. A chque déclenchement Hall, je regarde combien j'ai reçu d'ITs timer : si c'est inférieur à --- disons --- 180, je réduis la valeur du timer et inversement.
    • A chaque tic du timer, je récupère la valeur à afficher dans un tableau, je pilote les leds et j'incémente le compteur. Ca doit être faisable...
  • 06/02/2012
    • Ma Propeller Clock progresse, doucement. Lors de mon dernier compte-rendu, je faisais part de mon désarroi quant à la capacité d'alimenter le microcontroleur et les 10 LEDs situées sur l'hélice. Je concluai par "Y'a kek'chose qui cloche la d'dans... j'y retourne immédiatement...".
    • J'y suis retourné et ai fait les modification suivantes :
      • Pour obtenir un meilleur transfert d'énergie, j'ai augmenté très sensiblement la tension de la bobine au primaire. Afin d'éviter de brûler la dite bobine, j'ai limité la puissance en modifiant le rapport cyclique de mon oscillateur à 555. Il est désormais de l'ordre de 10%. Actuellement, la bobine primaire est alimentée en 16 volts, mais pendant un temps très court. Ainsi, je récupère suffisamment d'énergie au secondaire pour réguler en 3.3V. Mon MOSFET de commande est un peu chaud, mais rien de bien grave. Le PIC fonctionne et mes 10 LEDSs brillent à peu près convenablement (surtout les rouges).
      • Par ailleurs, j'ai trouvé la documentation du chip qui pilote le brushless de la tête de lecture de magnétoscope. J'ai réussi à comprendre le circuit imprimé (c'était pas trop difficile) et suis parvenu à faire tourner la chose.
    • Aujourd'hui, je suis donc capable de faire tourner l'hélice et de transmettre suffisamment d'énergie pour l'alimenter. Il ne me reste donc plus qu'à assembler le tout et écrire les quelques lignes de logiciel pour afficher quelque chose. Comme dirait l'autre, ça n'est plus que du logiciel...
    • Voici quelques photos.
      • Le montage complet
        Propeller full.jpg
      • L'alimentation (à gauche le 555 et le MOSFET plus un inverseur pour inverser le rapport cyclique)
        Propeller alim complet.jpg
      • L'hélice, alimentée par le transformateur tournant.
        Propeller prop light.jpg
  • 29/01/2012
    • J'ai poursuivi mes investigations concernant ma Propeller Clock, notamment pour ce qui concerne le transfert d'énergie vers l'aiguille. L'idée d'utiliser un frotteur me rebutant, j'ai pensé (et apparamment je ne suis pas le premier...) utiliser une tête de lecture de magnétoscope qui comporte un "transformateur tournant" (rotary transformer) pour transmettre le signal des têtes de lecture / écriture. Aussitôt dit aussitôt fait...
    • J'ai donc réalisé un petit oscillateur à NE555 à 20Khz qui alimente, via un MOSFET, les bobines du stator d'une tête de magnétoscope (VCR head, VCR drum). Voici à quoi ça ressemble :
      Propeller alim.jpg
      Il y a quatre bobines correspondant aux quatre têtes. En voila une photo :
      Propeller transformateur tournant.jpg
    • J'ai récupéré et mesuré le signal de l'autre côté en branchant en séries quatres bobines. Le signal ne dépasse pas 2 volts crête-à-crête alors que le primaire est alimenté sous 5v et que mon MOSFET chauffe bien : rendement pas terrible. J'avoue cependant ne pas avoir bien compris la façon dont les bobines du primaire sont branchées ; la mesure des résistances sur les broches du connecteur me donne des valeurs un peu étranges... Dans tous les cas, la tension est insuffisante pour alimenter quoi que ce soit et certainement pas mon "aiguille" à PIC16F628 et ses 10 LEDs à 20mA :
      Propeller aiguille.jpg
      .
    • J'ai donc réalisé un multiplicateur de tension à diodes :
      Propeller multiplicateur.jpg
      Voici la tension en entrée du multiplicateur
      Propeller multiplicateur in.jpg
      et en sortie
      Propeller multiplicateur out.jpg
      .
    • Ceci dit, même si la tension dépasse maintenant les 7 volts et est capable de faire briller deux LEDs en parallèle, elle ne permet pas à un régulateur de réguler (même en 3.3V) ...
    • "Y a kek'chose qui cloche la d'dans j'y retourne immédiatement..."
  • 25/01/2012
    • Ca y est, le Rubicon est franchi : il ne sera pas dit que je n'aurai pas réalisé ma propre version de la sempiternelle "Propeller Clock". Hier, profitant d'un "congé" inespéré, j'ai réalisé "l'aiguille" qui comporte 10 leds de diverses couleurs, le PIC et le capteur à effet Hall.
    • Au passage, j'ai étudié diverses pistes pour alimenter la Chose :
      • Une bobine sur l'aiguille et une bobine sur le chassis : tension trop faible (voire inexistante) avec la bobine que j'ai eu la patience de réaliser.
      • Une bobine sur l'aiguille et un de ces méchants petits aimants au néodyme : j'ai même pas essayé, car il me faudrait, là aussi, bobiner plus que de raison.
      • Un moteur "monté à l'envers", c'est-à-dire avec le rotor rendu solidaire du chassis et le stator (qui comporte les fils d'alimentation) monté sur l'aiguille. Ah ah! Là ça peut marcher.
        • J'ai ainsi essayé un petit moteur à balais, mais la tension ne dépasse pas 2 volts. Je pourrais faire un survolteur avec un (deux?) oscillateur à transistors (un multivibrateur) et un petit multiplicateur de tension à diodes (une pompe à charges). Je vais voir mais je doute de parvenir ainsi à fournir les 200mA demandés par mes diodes! (Au passage, je pourrais peut-être directement utiliser un de ces convertisseurs step-up si pratiques...)
        • J'ai aussi essayé un autre moteur brushless : j'arrive à une tension de 4 volts qui devrait suffire, mais je n'ai pas trouvé un moyen simple de rendre solidaire l'axe du rotor du deuxième brushless avec le socle. En outre, je lm'interroge encore sur le comportement des capas de lissage électrochimique soumise à un forte force centrifuge... A priori, ça ne devrait pas avoir d'effet notable dans la mesure où : (i)si l'électrolyte joue un rôle lors de la réalisation du condo je crois qu'il n'en joue plus après (??), (ii) l'électrolyte est confiné au condo et ne va pas s'en échapper...
    • En définitive, je pense que je vais bêtement utiliser des frotteurs réalisés avec de la tresse à dessouder. C'est moche et je crains que ça ne fonctionne pas (discontinuités d'alimentation), mais ça a le mérite d'être excessivement simple.
  • 21/01/2012
    • Sur la base de mon contrôleur de moteur brushless, j'aimerais bien faire une de ces fameuses "propeller clocks", c'est-à-dire une horloge dont l'affichage est constitué d'une rangée de leds en rotation. La difficulté réside dans l'alimentation électrique de la partie tournante. Plusieurs solutions : utiliser des balais (laid!), utiliser l'alimentation du rotor si le moteur est à balais, fixer une bobine sur la partie mobile et une autre bobine - alimentée - sur la partie fixe (ou un aimant), etc.
    • J'ai fait un petit montage avec deux bobines grossières (quelques tours de fil émaillé), un NE555 et un transistor de puissance. Je mets les deux bobines face-à-face et j'alimente l'une d'entre-elles : je n'observe rien... Il faudrait bien plus de tours de fil ou une bien plus grande intensité... A suivre.
  • 16/01/2012
    • Une demi-journée de RTT et hop, voila mon moteur qui fonctionne en boucle fermée sur ma petite carte de contrôle du moteur brushless!! J'ai remplacé le moteur un peu bizarre issu d'un lecteur IOMEGA par un moteur de disque dur. Voila la carte de "puissance" (hum...;-)
      Ctrl brushless dd.jpg
      et voici la partie qui réalise le contrôle en boucle fermée :
      Ctrl brushless ctrl.jpg
    • J'ai du modifier la rampe de démarrage qui n'était pas adaptée à la plus grande inertie du moteur. Le démarrage est encore laborieux (plusieurs secondes...) mais je peux en vérité faire démarrer le moteur quasi instantanément : la rampe de démarrage me permet limiter l'intensité max à peu de chose et éviter (aussi) une trop grande accélération à ce qui sera placé sur l'axe du moteur...
    • Le résultat est impressionnant : le moteur tourne aussi vite qu'il est possible vu mon PIC16F628 à 4MHz (il va falloir que je fasse le calcul ou la mesure, mais c'est au moins 1000 tr/min).
    • Je peux modifier le couple (jusqu'à pratiquement l'arrêter) et il continue à tourner sans problème... C'est-y-pas merveilleux?
    • Inutile de cacher que je me suis inspiré de diverses sources (qui s'entre-inspirent d'ailleurs). Le contrôle de rotation s'effectue via 3 comparateurs (j'aurais pu, utiliser les comparateurs intégrés au PIC, comme prévu initialement...) LM311 qui détectent la FEM induite dans le bobinage non piloté.
    • Bon, il me reste à compléter l'article du wiki pour expliquer en détail comment fonctionne un brushless (ce qui est déjà décrit sur mille autres sites...) et comment fonctionne la boucle fermée (c'est franchement trivial, notamment du point de vue soft)!
    • Je vais tout de même réfléchir à la réalisation de l'une ces fameuse horloges à LEDs tournantes. Mon principal problème est de transmettre l'énergie de la base vers le dispositif tournant et ce sans utiliser de contact glissants... Je vais donc mettre une bobine sur le disque et un aimant sur la platine : vu la vitesse de rotation, je devrais pouvoir obtenir une bonne tension, surtout si j'utilise un des aimants au néodyme que j'ai récupéré en démontant mes disques durs...
  • 08/01/2012
    • Le moteur brushless de ma petite carte de contrôle du moteur brushless démarre et tourne dans problème en boucle ouverte. Bon, c'est pas un exploit (20 lignes de code, y compris celle pour configurer le PWM). Il faut dire que le moteur est très léger aussi n'ai-je pas de problème lié à l'inertie. L'exploit, ce sera lorsque je parviendrai à le faire tourner en boucle fermée sans capteur... Au vu de ce que j'observe sur l'oscilloscope, ça n'est pas gagné (notamment à cause du PWM qui créé de facheuses perturbations). A suivre...
  • 01/01/2012
    • J'ai déplacé le journal 2011 sous la rubrique Quoi de neuf 2011.
    • Je viens de terminer une petite carte de contrôle du moteur brushless. Mon objectif est d'en faire le contrôle sans capteur (optique ou hall). "Sensorless" comme disent nos zamis.
      Ctrl brushless.jpg
    • J'ai utilisé deux L298, histoire de ne pas avoir à refaire des ponts en H et de ne pas avoir à me soucier des états incohérents.
    • A ce propos, noter qu'on trouve sur le marché des L298 qui ne fonctionnent pas. J'en suis arrivé à cette conclusion en comparant l'aspect des L298 qui fonctionnent avec ceux qui gisent désormais dans mon "cimetière" de composants : ils appartiennent à deux catégories bien distinctes ; voir photo.
      L298OK KO.jpg
    • Ca ne serait pas bien ennuyeux (encore que...) si ces chips pouvaient être mis sur support. Or ils sont dans un boîtier qui imposent de les souder. Grrrrr...

La suite (journal 2011) est sous la rubrique Quoi de neuf 2011.

Personal tools