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
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
Schema pour test avec port LPT du PC
Programme pour version (message fixe) autonome avec PIC16F84
fichier police 5x7
excecutable (datas/HAPR06b.HEX)
source asm (datas/HAPR06b.asm)
résultat:
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
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 :
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..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)
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.
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
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 :
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)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.
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
retour Index