mardi 7 mars 2023

localisateur de métal

Ce metal-pointer est basée sur un carte d'expérimentation NUCLEO-S207K8 avec STM8_TBI installé en firmware.

Il s'agit d'un localisateur de métal de proximité (pin point detector). La différence entre ce localisateur et un détecteur est que le premier sert à localiser avec précision un petit objet métallique. La sensibilité est plus faible mais l'erreur sur la position de l'objet est aussi beaucoup plus faible. Habituellement les chercheurs de trésor utilise un détecteur de métal pour localiser un objet dans un rayon d'environ 30 cm et ensuite ils utilisent le localisateur (pin point detector) pour préciser la position à l'intérieur de cette zone d'un petit objet comme une pièce de monnaie.

Ce détecteur peut aussi être utile pour localiser des clous ou des vis dans une planche avant d'utiliser une scie lorsqu'on recycle des planches.

Schématique

prototype

Bien que pour ce prototype j'ai utilisé une inductance de petite taille dans le produit final une bobine d'environ 5 à 8 cm de diamètre sera préférable.

Principe de fonctionnement

Les composants C6-L1 forment un circuit résonnant série. dont la fréquence de raisonnance est
Fr=1/(2*π*√(C6*L1))
Pour les valeurs utilisées ça donne: Fr=1/(2*π*√(10E-9*10E-3))=50329 Hertz.
Le générateur PWM du stm8 Tiny BASIC est utilisé pour générer une onde rectangulaire correspondant à cette fréquence. Puisqu'à la fréquence de résonnance l'impédance d'un circuit résonnant série est minimale le voltage à la jonction de R3-C6 est minimal.

Cependant si un objet métallique est à proximité de l'inductance la valeur de celle-ci est modifiée et en conséquence la fréquence de raisonnance est aussi modifiée et ne correspond plus à celle générée par le PWM. L'impédance du circuit C6-L1 augmente ansi que le voltage à la jonction R3-C6. Ce voltage est redressé par la diode D3 et charge C4 à la tension de crête. Cette tension est mesurée sur l'entrée analogique A3. Lorsqu'un variation rapide de cette tension est détectée une alarme est sonnée et la LED verte D2 s'allume pour 10 msec.

mise à jour 2023-03-08

J'ai modifié le programme et le circuit. J'ai fait une erreur au niveau de l'alimentation. J'avais branché l'alimementation de la pile sur CN4:4 (5V) alors qu'elle doit-être branchée sur CN4:1 (Vin).

Vidéo de démonstration

Alimenté à 6 volt le circuit tire entre 40 et 50 mA. La plus grosse part de ce courant est draînée par le programmeur ST-LINK qui n'est pas désactivé.

vendredi 30 décembre 2022

Installation de STM8 Tiny BASIC sur carte NUCLEO-8S207K8

Le vidéo suivant monntre comment programmer la carte NUCLEO-8S207K8 avec le binaire de STM8 Tiny BASIC. Cette vidéo est destinée aux utilisateurs de Windows. La procédure sur Linux est très semblable.

STM8 Tiny BASIC Version 3.1

Je viens de créer une pré-release pour la version 3.1 de STM8 Tiny BASIC. Cette version ajoute des commandes pour le contrôle PWM ainsi que pour le contrôle des servo-moteurs. En fait puisque les servo-moteurs sont contrôlés par PWM il s'agit du même périphérique et des même sorties. La seule différence est que les commandes SERVO configure la minuterie avec les paramètres spécifiques au servo-moteurs.

Les manuels de référence français et anglais sont maintenant disponibles en format PDF dans le dossier docs.

Commandes ajoutées

  • PWM.EN Pour activer ou désactiver le contrôle PWM.
  • PWM.CH.EN Pour activer ou désactiver un canal spécifique. Il y en a 4.
  • PWM.OUT Pour contrôler la largeur d'impulsion sur un canal.

  • SERVO.EN Pour activer ou désactiver le contrôle servo-moteur.
  • SERVO.CH.EN Pour activer ou désactiver un canal spécifique. Il y en a 4.
  • SERVO.POS Pour envoyer une commande de position au servo-moteur.

En plus de ça, une réécriture assesz importante du code a étée effectuée pour réduire la taille et améliorer la performance de l'évaluation des expressions arithmétiques.