mardi 18 avril 2023

STM8 Tiny BASIC V3.2R0

J'ai repris le travail sur mon projet STM8_Tiny BASIC. J'en suis rendu maintenant à la version 3.2R0. Cette version consiste pour l'essentiel à un travail d'optimisation de la machine virtuelle qui exécute le bytecode, pour la rendre plus rapide. J'ai obtenu une amélioration intéressante comme le montre les résultats suivants.

Programme de test


   10 ' for next speed test 
   12 LET T = TICKS 
   14 FOR I = 1 TO 10000 
   16 NEXT I 
   18 ? TICKS - T ; " MSEC" 
   20 ' DO UNTIL TEST 
   22 LET I = 1 , T = TICKS 
   24 DO LET I = I + 1 : UNTIL I > 10000 
   26 ? TICKS - T ; " MSEC" 
   28 ' GOTO LOOP 
   30 LET I = 1 , T = TICKS 
   32 LET I = I + 1 : IF I <= 10000 GOTO 32 
   34 ? TICKS - T ; " MSEC" 
program address: $91, program size: 241 bytes in RAM memory

Résultats de la version antérieure V3.1R13


>RUN
115  MSEC
771  MSEC
846  MSEC

Résultats obtenus avec cette version V3.2R0


>run
84  MSEC
451  MSEC
513  MSEC

Autre test

Un autre bon test est l'exécution du programme pwm-soft.bas. En mesurant la fréquence PWM avec un oscilloscope j'Obtient 95 Hertz pour la version antérieure et 144 Hertz pour cette version. Cet un bon test car la vitesse PWM est directement lié à la vitesse d'exécution de la boucle LOOP. Donc en général la machine virtuelle exécute le code 144/95=1.5 fois plus rapidement.

mercredi 5 avril 2023

détecteur de clou

Mes expérimentations avec les pointeurs de métal ont abouties à ce détecteur de clou qui permet de détecter des clous ou vis masqués dans une planche ou un mur. Ce détecteur contrairement au premier prototype est programmé entièrement en assembleur sur un MCU STM8S103F3M.


projet finalisé

Finalement pour l'inductance j'ai utilisée une ferrite semi-cylindrique pour le bobinage de l'inductance. Deux rangs de fil 30 AWG sur cette ferrite donne une inductance de 644µH. La ferrite provient d'une coquille de ferrite conçue pour les cables d'alimentation.

coquille de ferrite pour cable d'alimentation

Cette inductance permet d'augmenter la surface de détection par rapport à la tige de ferrite utilisée auparavant.

ferrite collée dans le fond du boitier avec de l'époxy.

J'ai découpé 2 fentes dans le fond pour que les extrémités affleurent à l'extérieur du boitier.

circuit dans la boite

démonstration

source du projet: https://github.com/Picatout/metal-pointer/tree/main/bare-metal

lundi 3 avril 2023

À l'antipode

De nos jours, à l'aire du numérique, tous les récepteurs radio (ou presque) sont entièrement basés sur la technologie numérique. Autrefois, à l'aire de l'analogique, la sélection des postes de radio se faisait par un circuit accordé à fréquence ajustable. En fait les récepteurs superhétérodyne utilisaient 2 circuits accordés variables, un pour l'oscillateur local et l'autre pour la sélection de la station. Les 2 circuits devaient être adjusés en accord car dans le superhétérodyne la fréquence intermédiaire est obtenu par produit de la fréquence de l'oscillateur local avec la fréquence du signal reçu pour obtenir une fréquence intermédiaire fixe. Donc la différence entre les deux fréquences doit-être constante quel que soit la station sélectionnée.

,

Dans tous les récepteurs radios de ma jeunesse cet accord se faisait avec un condensateur variable à 2 sections d'axe commun. Donc en tournant le bouton de sélection des stations les plaques mobiles des deux sections tournaient ensemble assurant la synchronisation entre l'oscillateur local et la fréquence de réception.

condensateur variable pour récepteur superhétérodyne

Pour voir un condensateur variable en action allez à 3:30 minutes.

En Australie il faisait autrement

Cependant il semble qu'à l'antipode, c'est à dire en Australie, il faisait autrement. Au lieu d'utiliser un condensateur variable ils utilsaient des inductances variables. En effet la fréquence d'un circuit accordée dépend du produit de la capacitance par l'inductance. la formule:
Fa=1/2π√(LC)
Donc pour varier la fréquence de l'accord on a le choix, modifier la valeur de L ou celle de C.

Alors que dans l'hémisphère nord on utilisait un condensateur variable il semble qu'à l'antipode ils utilisaient des inductances variables mécaniquement reliées ensemble comme on le voit dans la photo suivante d'un récepteur Astor datant de 1955.

récepteur superhétérodyne avec accord par inductance variable

Ce récepteur utilise des inductances à coeur de ferrite. En retirant ou enfoncant les ferrites la valeur des inductances varie ce qui permet la sélection des stations. j'ai annoté la photo extraite d'un vidéo Youtube. Si vous voulez voir le fonctionnement de ce circuit d'accord en action vous pouvez visionnez la vidéo en avançant le curseur à 5:30 minutes.