Fabriquer un détecteur de métaux avec un Raspberry Pi est possible selon deux méthodes. Le Sense HAT utilise son magnétomètre pour repérer le fer à très courte portée. Le Raspberry Pi Pico propose un vrai système à induction pulsée capable de repérer tous les métaux grâce à MicroPython. C’est par cette dernière méthode que nous allons vous apprendre à faire votre détecteur de métal.
Premier montage avec le Sense HAT et son magnétomètre
La méthode la plus rapide repose sur l’utilisation du Raspberry Pi Sense HAT. Cette carte d’extension intègre un magnétomètre susceptible de mesurer l’intensité du champ magnétique selon trois axes. En lisant les données brutes fournies par le composant sur chaque axe Bx, By et Bz, le script calcule l’intensité globale du champ environnant.
Le code écrit en Python 3 enregistre d’abord une moyenne du champ ambiant pour définir une référence de départ. Lorsqu’une masse ferromagnétique s’approche du capteur, elle perturbe le champ environnant. Si la valeur calculée dépasse un certain seuil par rapport au niveau de base, le programme modifie l’affichage de la matrice LED pour afficher un signal lumineux rouge.
Cette technique présente des limites physiques évidentes. Le capteur réagit très bien aux aimants ou aux gros morceaux de fer, me reste totalement aveugle face au cuivre ou à l’aluminium. La portée reste très faible, souvent limitée à quelques centimètres. C’est un montage idéal pour comprendre le traitement de données sans manipuler de composants électroniques discrets.
Fabrication du détecteur à induction pulsée avec le Raspberry Pi Pico
Pour fabriquer un équipement capable de réagir aux métaux non ferreux, le principe de l’induction pulsée donne de bien meilleurs résultats. Le microcontrôleur Raspberry Pi Pico convient parfaitement à cette tâche grâce à son microprocesseur RP2040, ses broches GPIO rapides et son convertisseur analogique-numérique (ADC) intégré.
Voici les composants nécessaires pour assembler ce montage sur une plaque d’essai :
- Un microcontrôleur Raspberry Pi Pico ou Pico W avec ses connecteurs.
- Un enroulement de cuivre émaillé (fil de 0,3 à 0,5 mm) de 20 spires sur un support circulaire de 15 à 20 cm.
- Une résistance de protection de 200 ohms.
- Un condensateur céramique de 100 picofarads (0,1 nF).
- Une diode rapide de type 1N4148 pour acheminer et bloquer la surtension de retour.
- Un buzzer passif 3,3 V et une LED de signalisation.
- Une batterie Li-ion munie d’un module de charge TP4056 pour l’alimentation nomade.
Le montage électrique s’organise autour des broches du Pico. La broche GPIO 21 alimente le circuit inductif à travers la résistance de 200 ohms. En parallèle de cet enroulement, la diode rapide dirige l’impulsion vers le condensateur relié à la masse. Le point de jonction rejoint l’entrée analogique ADC0 (située sur la broche GPIO 26) pour mesurer la tension de décroissance.
Le principe physique repose sur la génération d’un champ magnétique bref, comme l’explique très bien le site prospection-de-loisir.fr, spécialisé dans l’utilisation des détecteurs de métaux. Lorsque le Pico stoppe l’impulsion électrique, l’énergie emmagasinée dans la boucle de cuivre s’effondre. La présence d’un matériau conducteur à proximité génère des courants de Foucault dans le métal. Ces courants retardent la dissipation de l’énergie et prolongent la tension captée par le convertisseur analogique.
Assemblage mécanique et programmation sous MicroPython
La confection de l’antenne inductive demande une grande attention. Enroulez vingt tours de fil de cuivre émaillé autour d’un support rigide comme une assiette en plastique. Serrez bien les spires avec du ruban adhésif pour éviter les vibrations mécaniques qui perturbent la stabilité des mesures. Soudez ensuite les deux extrémités du fil aux câbles de votre plaque d’essai.
Le script suivant écrit en MicroPython gère l’envoi des impulsions et la lecture de la décroissance de tension. Il établit d’abord un niveau de référence au repos avant d’entrer dans la boucle principale d’analyse :
from machine import Pin, ADC
import time
pulse = Pin(21, Pin.OUT)
adc = ADC(26)
buzzer = Pin(15, Pin.OUT)
led = Pin(14, Pin.OUT)
pulse_width_us = 10
pulse_period_ms = 5
def lire_signal():
pulse.value(1)
time.sleep_us(pulse_width_us)
pulse.value(0)
return adc.read_u16()
print("Calibration en cours, éloignez tout métal...")
echantillons = [lire_signal() for _ in range(100)]
moyenne = sum(echantillons) // len(echantillons)
seuil = int(moyenne * 0.9)
while True:
valeur = lire_signal()
if valeur > seuil:
buzzer.value(1)
led.value(1)
else:
buzzer.value(0)
led.value(0)
time.sleep_ms(pulse_period_ms)
Lors du premier démarrage, posez la boucle sur une surface en bois loin de toute masse métallique. Ajustez la variable du seuil si le buzzer se déclenche sans raison. Si la sensibilité reste trop faible pour de petits objets, réduisez légèrement la durée de l’impulsion ou ajoutez un amplificateur opérationnel entre la diode et la broche d’entrée du Pico.
Comparatif technique entre la solution Sense HAT et l’induction pulsée
Chaque architecture répond à des besoins d’expérimentation bien spécifiques. Le tableau suivant récapitule les caractéristiques matérielles et fonctionnelles observées sur ces deux configurations :
| Caractéristique | Option Sense HAT | Option Induction Pulsée (Pico) |
| Carte utilisée | Raspberry Pi 3, 4 ou 5 | Raspberry Pi Pico (RP2040) |
| Capteur principal | Magnétomètre 3 axes intégré | Enroulement en cuivre artisanal |
| Cible détectée | Matériaux ferreux et aimants | Tous les métaux conducteurs |
| Traitement du signal | Calcul de vecteur vectoriel | Mesure de temps de décroissance |
| Composants externes | Aucun | Diode, condensateur, résistance |
| Portée maximale | 1 à 3 centimètres | 5 à 15 centimètres |
Le choix de la méthode dépend de votre matériel et de vos objectifs. L’utilisation du Sense HAT permet de valider un algorithme en quelques minutes sans sortir le fer à souder. Le montage à induction pulsée sur le Pico procure une expérience complète qui associe création d’un composant physique, gestion du signal analogique et programmation en temps réel.
