• V0 : 13 sept 06
    last MAJ : 05 fev 2009
    Videos remaniées : 07 Dec 2019
    Auteur: Paul.FREYER
    mailto :  paulfjujo@free.fr

    Horloge A Persistence Retinienne

    version VB pour test montage mecanique
    version PIC16F84 pour debuter
    version PIC16F88
    version PIC16F876
    Historique

    Introduction
    Horloge à persistence rétinienne avec mouvement piloté par un servomoteur "voice coil" de disque dur.
    Réalisation issues des donnéees de
    http://pierre.lando.free.fr/tentative/page1.html
    et la lecture tres interessante sur le forum :
    http://soj.mesdiscussions.net/overclex/Electronique/Afficheur-persistance-retinienne-APR-sujet-3936-1.htm
    Etant tres dubitatif quand à pouvoir faire osciller cet ensemble bras support de diodes leds
    j'ai voulu le réaliser (
    avant , dans une autre vie, je m'appelais St Thomas!).
    Etonnant les vertus de la résonnance mécanique,qui fonctionne comme un circuit serie LC accordé sur sa frequence de resonnance!
    Apres coup, on ne s'étonne plus ,qu'un regiment marchant au pas,
    puisse faire ecrouler un pont !
    voir aussi
    Résonance - Wikipédia

    Mon Prototype

    images/t_HARP_proto_photo.jpg
    Visu via8 leds de diam 1,8mm pour matrice de 16 car de 5x7 ou 8x8 pour sigle grafique

    Materiel:
    - 1 vieux disque dur HS
    - 2
    ressorts en acier glavanisé (ex: Bricorama ref RST13 L=50mm dia=4.7mm)
    - 1 circuit NE555 oscillateur + 10µF + 27K +10K + 27K ajust
    -1 condo 1500 à 2200µF
    -1 baguette balsa (ou brochette !)
    -1 capteur de proximité (ou autre capteur de position .. fourche optique!)
    -1 transistor 2N2222
    - fil emaillé de 0,1mm (démontage d'une bobine relais!)
    -8 leds dia 1,2mm
    - 8 R de 180 ohms
    - 1 driver ULN2803
    - 1
    DS275 convertisseur de niveau RS232/TTL
    - 1 PIC16F84
    - 1 Quartz 4MHz + 2 condos de 22pF
    - alim 5V
    -
    socle .. en bois trop léger,...sera remplacé par du MARBRE!


    Programme de Test de l'ensemble MECANIQUE : HARP Test en VB6 sous XP
    pour la mise au point MECANIQUE de l'ensemble, sur sa frequence de résonnance,
    donc amplitude maximale de debattement, opération PRIMORDIALE .


    document sur le Projet et source VB docu/HAPR_VB6_version15sept06.pdf
    Package executable et source basic: _HARP_test.zip

    images/HAPR_prog_test.jpg images/HAPR_sur_LPTe.jpg images/HAPR_sur_LPTf.jpg

    Schema pour test avec port LPT du PC

    images/HARP_proto_schema_2.jpg

    Programme pour version (message fixe) autonome avec PIC16F84

    fichier police 5x7
    excecutable (datas/HAPR06b.HEX)
    source asm (datas/HAPR06b.asm)

    résultat:
    images/HAPR_06_PIC16F84_tst1.JPG


    Schema avec PIC16Fxx
    images/HARP06b_schema.jpg


    Programme pour version autonome avec PIC16F88
    mieux adapté en taille RAM et Programme, suffisant en E/S
    Le 16F88 se monte en lieu et place du 16F84
    nota: usage de ICprog 1.5d et MPLAB 7.22...OK

    la version 16F84 simplement adaptée au 16F88 (affichage 16 car sur 32 défilants)

    source [HAPR88a.asm]
    executable [HAPR88a .HEX]

    Version avec 2 messages de 64 car defilants dans une fenetre de 16 car
    Choix du message 1 ou 2 par switch sur RA1


    EVOLUTION : défilement colonne par colonne au lieu de caractere par caractere! ..plus smooth!
    avec matrice de car 8x8 => 16 car *8=128colonnes affichées (message global de 32 cars)

    Entree ANA sur 10 bits pour mesure et affichage de temperature

    HARP88_schema.jpg



    source [HAPR88h.asm]
    executable [HAPR88_ .HEX]

    La version Hapr88e.asm sert à la calibration MECANIQUE , reglage des tensions des ressorts
    et de la frequence de balayage au point de resonnance, donc amplitude maximale du mouvement.

    plus l'amplitude sera grande, mieux on pourra caser un nombre de carateres important
    Mire de test:
    La visualisation de temps Calibres (4 x 5mS) permet de bien se situer dans l'espace et le temps ,et de calculer
    la durée d'un pixel élémentaire en fonction de la police de caractere utilisée et du nombre de caracteres voulus.
    Le départ de la mire ,depent du reglage du capteur de position, qui synchronise le tout
    Il faut donc obtenir un front, visible par la led associée, à chaque changement de sens de balayage.



    Montage du mécanisme sur plaque de marbre (TRES LOURD!) pour avoir une bonne stabilité du montage
    Plaque funéraire achetée chez GiFI pour 5euros, dim 175x115x18mm
    La grosse difficulté est le perçage des trous! par contre la stabilité et le bruit minimum sont au rendez vous
    Le percage doit etre fait sous arrosage permanent pour ne pas BRULER les forets !
    dans l'exemple ci-dessous les 2 ressorts sont simplement liés en faisant le tour de la plaque par une ficelle car j'ai oublié les 2 trous de fixation des ressorts !

    Horloge_a_Persistence_Retinienne.pdf



    27/02/2007
    Version autonome avec PIC16F876
    mieux adapté en taille RAM et Programme, suffisant en E/S

    Bootloader_incorporé:
    Source: bootldr_876_ok_061224.asm
    chargeur:bootldr_876.HEX
    les outils de travail :
    images/t_ICSP_and_tools.jpg
    L'usage du bootloader rend vraiment confortable la programmation.Un simple inter inverseur permet d'utiliser
    une liaison serie sur le portB, en conservant la liaison ICSP du port C.
    J'utilise "PIC_downloader.exe" pour le transfert de l' HEX obtenu sous MPLAB dans le PIC
    Plus confortable ,car plus de manip d'extraction du composant PIC16Fxx ,
    MAIS ..
    Le seul inconvenient est que RB3 est sacrifié pour la prog LVP.Je n'ai donc pas pu mettre les 8 leds sur le portB
    et me rabattre sur le portC, qui lui permet les possibilité USART,I2C....
    dommage que RB3 ne puisse pas etre remis en mode I/O
    sans repasser par une programmation High Voltage
    il va falloir soit utiliser un PIC16F877 avec le portD pour les leds et donc liberer le portC pour l'I2C et USART,
    soit reconfigurer le bootloader en mode HIGH VOLTAGE
    pour redéfinir RB3 en I/O
    et rajouter la commutation 5V / 12V .. ce qui n'est pas glop!
    ou vivre AVEC , puisque c'est possible, en gérant l' I2C par software ainsi que la liaison RS232 à 19200 bauds.


    HAPR transposé sur 16F876:

    avec horodatage utilisant un DS1307, piloté via i2C 100% software.
    Liaison RS232 avec reception sur RB0 en interruption, puis pooling de reception
    Emission sur Rb1.
    Le sens retour de balayage n'est pas exploité ici, il permet d'avoir tout le temps d'effectuer les calculs,acquistion analogique,
    mesure de temps (Date et Heure) ou saisie d'un caractere provenant de la RS232..

    images/t_HAPR_date.jpg images/t_HAPR_Temper.jpg images/t_HAPR_sur_fond_bleu.jpg

    Source:HAPR_876_ICSP.asm
    Chargeur :HAPR_876_ICSP.HEX
    Listing :HAPR_876_ICSP.lst
    Definition Police 8x 8: Police_HAPR_8x8.xls


    Rajout d'un ADC12 bits Max186 pour la mesure de température
    avec une résolution au 1/10em de degré.
    Re-affectation des E/S pour gestion de l'ADC via pins PORT A

    le LM335
    LM335, LM335A -40°C to +100°C
    Operating Output Voltage TC = 25°C, IR = 1 mA 2.950V mini 2.980 V nominal, 3.010 maxi


    Max186.inc routine de test ADC avec sortie sur port serie.(Rs232 19200,8,N,1)

    images/t_Max186_docu.jpg

    On soustrait l'offset 2730mV (273°K) correspondant à 0°C et on a donc la temperature directement en 1/10em de °C
    puisque 10mV/°K et calibration ADC à 4095mV pleine echelle.
    Maxi mesurable=136.6°C
    Source:HAPR_876_ICSP_070204.asm
    Chargeur : HAPR_876_ICSP.HEX

    Rajout d'un filtrage arithmetique sur 60 mesures..le tout divisé par 6 pour obtenir un affichage
    au 1/100ém de degré (moyen)

    Compilation conditionnelle pour les 2 versions de chargeur
    Source
    :HAPR_876_ICSP_Max186_ok_070304.asm
    Chargeur : HAPR_876_ICSP_32.HEX version 32 cars défilants
    Chargeur : HAPR_876_ICSP_16.HEX version 16 cars fixes

    Detail de connexion RS232:

    Attention aux pieges sur la conception du circuit imprimé:
    - image miroir : L'ordre des pins n'est pas le meme suivant que l'on considere un connecteur DB9 male ou Femelle
    - mode DCE DTE concernant la liaison RS232: L'ordre des pins 2 et 3 s'inverse suivant le mode.

    DS275_Liaison_RS232.jpg


    VARIANTE pour AMELIORER LA RESOLUTION

    sans ampli analogique externe , ni ADC externe!
    Utiliser l'ADC du 16F876 avec un écart de reference de 2,048V
    pour delta de 1024 points soit une resolution de 0.2°C......

    Rajout sur la sortie RS232:
    Date,Heure,Temp tous les 32 car , soit toutes les 25 sec

    Source:HAPR_876_081221.asm
    Chargeur : HAPR_876_081221.HEX version 32 cars défilants
    Listing : HAPR_876_081221.lst

    Schema Derniere version : HARP_16F876_2009_isis692.DSN

    t_HARP_16F876_2009_isis692.jpg On utilise les 2 entrees RA2 et RA3 pour definir
    les points de reference Bas et Haut du convertisseur
    ADC.. avec une gamme de 2,048V pour 1024 points
    on obtient une resolution de mesure de 0,2°C
    au lieu de 0,5°C en prenant le 0V et le +5V comme réference.

    References +Vref RA3 et -VRef RA2 faites uniquement avec un pont diviseur Sur +5V avec des resistances fixes à 0,5%
    affinage offset en soft necessaire à cause des valeurs de resistances "arrondies" aux valeurs classiques
    et surtout de celle du LM335DZ!
    Résultat obtenu :

    images/HAPR_LM335_calcul.jpg
    reglage offset (theorique de -6500) -> à -6425 => correction de +0.75°C


    Avant derniere étape: le circuit imprimé

    Liste du materiel : HARP_16F876_2009_BOM.HTM

    Circuit imprimé version ARESLite 92 (<- HAPR_876_081204_692.LYT)
    Typon Circuit imprimé (image)

    images/t_HAPR_876_Implantation.jpg
    vue coté composants vue coté Circuit En Action ...

    videos remaniée au format webm 07-12-2019
    HARP876_2008.webm avec camescope analogique , puis numerisé avec DAZZLE 150 box
    Hapr_video.webm capturé avec Webcam at AMCAP.exe


    Ultime Etape: assemblage platine au dos de l'horloge


    Les élastiques ont été remplacés par des vrais
    ressorts en acier glavanisé
    (ex: Bricorama ref RST13 L=50mm dia=4.7mm)
    => démontage, reperçage ,remontage ..
    dans la foulée penser de suite à percer pour la fixation du circuit imprimer à l'arriere de la plaque
    J'ai pu l'installer par pincement avec une lame ressort, la carte rentre pile entre les 2 montants
    celle ci est equipée de 4 entretoises aux 4 coins pour prendre appui sur la face arriere.L'inter peut etre remplacé par dip switch.
    Ci-dessous le montage finalisé.. avec son petit bloc alim secteur 230V/9VAC 0,7A
    On pourrait eventuellement rajouter un petit plexiglass pour la protection de l'equipage moteur + liaisons aux leds .
    Ce n'est qu'un PROTO exemplaire unique.

    images/t_HARP_2009a.JPG images/t_HARP_2009b.JPG images/t_HARP_2009c.JPG
    images/t_HARP_2009d.JPG images/t_HARP_2009e.JPG images/t_HARP_2009f.JPG




    AUTRE SOLUTION à tester en utilisant l'ADC 10 bits du 16F876:
    Rajout d'un ampli analogique rail to rail, sur la mesure de temperature pour
    augmenter la resolution au 1/16em de degré

    le LM335 delivrant 10mV par °C et l'entree ANA du PIC étant sur 10 bits
    avec référence 5,00V on obtient en direct une plage de mesure :
    2735 mV pour 0°K , 0 mV pour 0°K soit -273,5°C
    à 5000mV on aurait 226.5°C et une resolution de 0.5°C
    On utilisera donc un ampli OP permettant d'annuler le decalage de zero,
    pas completement pour pouvoir mesurer -20°C soit offset= 2535mV
    et amplifier ensuite par 7,83 pour obtenir 5,00V pour 43.9°C
    Pouquoi cette valeur de gain..simplement pour ensuite diviser le Nb de points par 16
    sans passer par du calcul flottant! on a alors une resolution de mesure de 1/16 em de degres
    avec le reste de la division (resultat sur 2 bytes)

    voir Sonde_Temper.xls ou img


    liens utiles pour ce projet:

    astro.trident.free.fr
    perso.wanadoo.fr/pierre.lando
    http://z.oumnad.123.fr/Microcontroleurs/PIC16F876.pdf
    site de Bigonoff : _Cours_16F87x_Part2-R2.pdf
    site de J.P.Mandon _ICSP 16F876 downloader
    site de MicroChip Pic16F876_datasheet
    MaxStream terminal X-CTU_serial
    PIC_Paging_and_PCLATH.htm



    ../common/GIF/mylogo.jpg
    retour Index