Negapic: le négativeur programmable à µP

Voilà un moment (2013 ..) que j'avais réalisé un négativeur inspiré de Laville.
Il utilise un relais au mercure (difficile à trouver de nos jours) et marche très bien (et j'ai eu l'occasion de l'utiliser pour quelques petits problèmes de santé).
Ses seuls inconvénients:
- le relais limite sa fréquence à 100Hz environ
- on entend le relais ce qui peut être gênant pour un usage nocturne.
- la tension négative des impulsions est fixe à -12V environ.
- la durée d'activation est manuelle ( on/off)
Par contre il est très simple à fabriquer avec des composants standards (non programmables) , le relais au mercure pouvant être remplacé par un relais Reed.

Il est complètement similaire à ce qu'utilisait Laville, qui utilisait un simple contact tournant. J'ai d'ailleurs observé qu'une version à cmos ne donnait pas tout à fait les mêmes signaux.
Le principe du négativeur revient à charger le corps (que l'on peut considérer comme un condensateur) en électrons prélevés dans la Terre (qui est négative), les états maladifs pouvant venir d'un manque d'électrons dans le corps, d'où les supposés effets thérapeutiques.
 
Afin de pouvoir tester les effets de biorésonance, il est intéressant de pouvoir utiliser et ajuster une fréquence plus élevée, ce qui implique le recours à un commutateur électronique rapide (nanosecondes) pour approcher le fonctionnement du relais.

C'est le but du negapic qui aura la caractéristiques suivantes:
- réglage de la fréquence de 1Hz à 4000Hz  (gamme configurable) pour cibler la fréquence de résonance des organes
- réglage de la tension des impulsions négatives de -12V à -30V environ
- réglage de la durée d'activation de qqs minutes à quelques heures
- choix du rapport cyclique du signal de 10% (négativeur Laville) à 50% (signal carré)
- arrêt automatique en fin de séance
- affichage des informations sur un écran oled 096"
- alimentation par une seule pile 9V  (ou adaptateur secteur 12V, qui doit être correctement isolé car contact avec le corps)
- peu de composants à monter, tout étant géré par un µP PIC12F1840

Le schéma: en pdf

La tension variable est obtenue par un convertisseur step-up utilisant le LT1111, ce qui permet de la faire varier avec un potentiomètre.
J'utilise ce module perso  mais un module stepup tout fait est utilisable si on peut insérer le potar de réglage de la tension dans le pont diviseur qui régule la tension de sortie (le monter à la place de l'ajustable 10 tours souvent présent sur ces modules). On a besoin de quelques mA seulement.
On peut utiliser simplement une alimentation fixe (12V par exemple voire la pile 9V) si on ne veut pas faire varier la tension des impulsions.
Dans ce cas R4 et R5 permettent toujours au µP d'afficher la tension de l'alimentation.
L'alimentation 5V du µP peut aussi se faire par un simple régulateur série LM78L05, j'ai choisi un step-down 3 pattes se montant à la place d'un LM7805 TO220.
L'intérêt du stepdown vient du fait que cela optimise (un peu) la consommation sur la pile, bien que l'écran oled  soit le poste majeur de consommation sur le 5V.
La commutation du signal se fait par des mosfets BS170 très rapides (10ns). Attention à la provenance de ces transistors, utiliser une source fiable comme RS-Particuliers, car j'ai du jeter un lot venant de ebay.
Le module OLED est piloté en I2C et doit avoir l'adresse 0x3C  (c'est l'adresse souvent câblée par défaut).

Le circuit a été monté sur une carte prototype (AliE) à trous métallisés 50x70mm. L'écran est fixé par du double face.



Le tout a été  monté dans un boitier Hammond venant de RS (ref RS: 7417474) qui comprend la cavité pour une pile 9V.
Des rehausses de 4mm ont été imprimées 3D pour supporter la carte et s'enfichent sur les plots du boitier. rehausses.stl
Deux boutons ont été imprimés en même temps: bouton.stl
La face avant a été fraisée à la cnc  : decoupe_boitier.dxf
Une face avant superposable a été imprimée sur papier avec un ruban adhésif transparent de protection : faceavant.pdf


Le résultat final:


Le logiciel:
Il gère tout l'appareil et utilise un PIC12F1840 8 pattes (plein à 99%) , son fichier hex de programmation  : negapic.X.production.hex
A la mise sous tension, le titre NEGAPIC  et la version sont affichés pendant 2 secondes.
Ensuite 3 lignes sont affichées en routine (hors mode configuration):
- ligne1: OFF (signal inactif) ou ON (signal actif) avec ou sans la durée restante en minutes si Timer est non nul dans la configuration
Au bout de 10 minutes OFF l'écran affiche ----- et le µP passe en conso  réduite pour économiser la pile si on oublie d'éteindre. Cela repart en appuyant sur le switch start/stop.
- ligne 2: affiche le niveau de tension négative (V) des impulsions, réglable par le potar de gauche. La configuration permet de calibrer cet affichage.
Cette ligne affiche aussi un carré clignotant à la seconde quand le signal est actif.
- ligne 3: affiche la fréquence courante en Hertz (affichage en valeur entière qui peut bouger un peu à cause du bruit sur l'entrée du potar) réglable par le potar de droite. La gamme de réglage peut être changée par configuration.

Le logiciel a été testé sur une petite carte utilisant un module oled 0.91" de même adresse I2C (0x3C) et permettant aussi la programmation du PIC avec un PicKit3. La tension du stepup a été  injectée sur le pic par une alim de labo 0 à 5V. Les BS170 ne sont pas montés ici.


Configuration:
Ce mode est activé avec un appui long (>1sec) sur le poussoir. Dans ce mode:
- ligne 1: affiche CONFIG
- ligne 2: affiche le nom du paramètre qui est affiché et peut être changé
- ligne 3: affiche la valeur courante du paramètre entourée par des [] quand elle est en cours de modification
Les paramètres sont balayés par le potar de droite (toute la plage du potar n'est pas utilisée), un appui sur start/stop rentre dans le mode de modification où le potar change le paramètre, et dont on sort par un autre appui start/stop. Un appui long sort du mode de configuration.

La configuration des paramètres est enregistrée (sur demande) dans l'eeprom interne du PIC. Pour sauver les paramètres modifiés en sortant , on doit uiliser SAVE&EXIT, sinon EXIT sort sans sauver en EEPROM, mais les paramètres seront changés jusqu'à la mise hors tension.

Les commandes de configuration:
SAVE&EXIT: sauve les paramètres en EEPROM en sortant
EXIT: sort sans sauver en EEPROM
MIN FREQ: cale la fréquence minimale (potar freq à 0) que l'on peut règler : va de 1Hz à 990 Hz
MAX FREQ: cale la fréquence maximale (potar à fond) que l'on peut régler: va de 100 Hz à 4000Hz (limite due au timer interne du PIC)
Si MAXFREQ= MINFREQ la fréquence est considérée fixe (FIXE est affiché à droite de la valeur). MAXFREQ est toujours supérieure à MINFREQ.
TENSION: calibre l'affichage de la tension négative. mettre le potar de gauche à fond, et afficher la même tension que celle lue sur le stepup lue avec un voltmètre
OSCTUNE: permet de caler l'oscillateur interne 16MHz du PIC, activée,cette commande produit un signal 1000Hz, à mesurer avec un fréquencemètre.
TALON: calibre la valeur minimale que peut lire le PIC sur le potar FREQ, mettre le potar FREQ au minimum (cela affiche la valeur min mesurable) puis appui  (32 est une valeur courante)
TIMER: cale la durée en minutes d'une séance, si 0 il n'y a pas de limite, c'est Start/Stop qui arrêtera le signal
AUTOSTART: 0 ou 1 : 1 indique que la séance démarre seule à la mise sous tension ou en sortie de calibration
CYCLE: 1 à 5: indique le nombre de cycles actifs du signal sur les 10 cycles de la période  (1= Laville 5 = signal carré)


Plage et précision des fréquences:
La lecture de la position du potar FREQ se fait sur 9 bits soit une résolution de 512 points. Cela conditionne la précision du réglage de la fréquence.
Par exemple si MINFREQ= 10Hz et MAXFREQ=1000Hz, chaque position du potar correspond à 2Hz environ.
Si MINFREQ=10Hz et MAXFREQ=100Hz  (la plage de fréquences d'un négativeur à relais Laville ) le pas de réglage est de 0.25Hz, mais ce n'est pas tout à fait vrai si MINFREQ=1000Hz et MAXFREQ=2000Hz, car il y a une résolution interne du timer du PIC qui sert à générer le signal.
Par contre l'affichage de la fréquence est toujours correct car calculée depuis la valeur entière utilisée pour le timer interne, à la  précision près de calage de l'oscillateur interne du PIC (réglé à la fabrication à 1% par défaut et ajustable par configuration). Ce timer interne est plus précis pour les faibles fréquences.
Sa fluctuation de quelques hertz vient du bruit de lecture du potentiomètre de réglage. Le problème est similaire même avec un schéma tout analogiquecomme le négativeur de 2013.
Il aurait été possible d'utiliser un encodeur tout numérique mais cela aurait demandé deux broches de plus pour le PIC.
Une autre solution est d'utiliser un potentiomètre multitours pour  régler la fréquence mais restera le problème interne du PIC et le bruit de mesure de la tension du potentiomètre.
Une version améliorée peut-être à venir ....