Le HB-100, un détecteur de présence /radar Doppler sur 10 GHz

J’ ai acheté il y a maintenant un petit moment deux tout petits modules de détection de mouvements à prix très bas sur un site bien connu. C’ est fou ce qu’ on trouve chez les chinois, pour une poignée d’ euros, pour peu qu’ on souffre un délai de livraison très variable d’ au moins 15 jours .

Le HB-100 qui fonctionne dans la bande 3 cm ( 10 GHz et des poussières, réglable par action sur une petite vis dans le capot). Les dimensions : environ 2 pouces .

Un lien vers le datasheet du module :  datasheet HB-100.

Le principe de fonctionnement est simple,
l’ électronique contenue dans ce petit module est minimaliste :


Schéma de principe du module hb-100.
Seulement deux transistors et des antennes patch.

Comme je vous le disais, c’ est archi simple :
Un transistor en oscillateur.
Un autre en mélangeur, couplé à l’ oscillateur par un « doigt » et à l’ antenne de réception.
Toute l’ adaptation se fait grâce à l’ agencement des pistes et au placement judicieux de capas en piste ( les 1/4 de cercles).


En haut à droite, le résonateur diélectrique ( DRO).
à gauche, le mélangeur, à droite l’ oscillateur.
On notera que le port IF est couplé DC, le moindre courant sur ce port détruit le mélangeur !

Le capot est maintenu en place par des pinoches passées dans le pcb et pliées; Il faut les déplier soigneusement pour enlever le capot, c’ est délicat, il ne faut pas tordre trop les pinoches, de façon à pouvoir les renfiler dans leur logement, et pouvor les replier bien serrées, sinon, le capot ne tient pas, la fréquence se ballade, et rien ne va plus.
D’ autant qu’ il n’ y a pas beaucoup de modifs possibles à faire de ce côté ci, tellement le compte de composant est minimal, toute modif risque de compromettre grandement le fonctionnement de ce « gadget », entre guillemet car ce n’ est pas un radar de très grande qualité ou précision, mais ça fonctionne plutôt bien si on lui demande ce qu’ il peut faire. < /p>
Et que fait il, ce petit module ?
Pour le faire vivre, donnons lui du +5V bien propre .(VCC, GND)
Qu’ avons nous sur la sortie IF ?
Pas grand chose, un peu de continu, et un petit signal de quelques millivolts à l’ oscilloscope, ça s’ agite pas mal quand je passe la main devant le module. Si on amplifie et qu’ on filtre un peu cette IF bruyante, on obtient un signal résultant du mixage du signal de l’ oscillateur local émis par deux antennes patch sur les quatre du module, et du signal réfléchi capté par les deux autres antennes .
On obtient un signal sinusoidal dont la fréquence est proportionnelle à la vitesse relative de l’ objet en mouvement devant le capteur.Pour un objet se mouvant droit vers le détecteur, sa vitesse est égale à la fréquence Doppler divisée par un facteur de 19.5 environ.
L’ amplitude du signal IF est, quant à elle proportionnelle à la distance et à la section radar efficace de l’ objet. Le calcul de cette surface radar sort du cadre de cette étude mais il reste évident qu’un gros véhicule tôlé sera bien mieux détecté par le module qu’ un bout de polystyrène ou un panneau de bois.
Pratiquement, si on amplifie convenablement la sortie à l’ aide d’ un ampli op, on peut mesurer la vitesse d une personne à 5 mètres et détecter une présence entre 10 et 15 mètres environ.
Mais si on place le module à la focale d’ une petite parabole sat de 40 cm, on obtient un gain considérable dans la direction ou pointe la parabole.On perdra sans doute un peu de gain et de directivité par les bords de la parabole, mais qu’ importe, on gagnera sans doute près de 30 dB, ce qui est considérable

Pratiquement, alors, on en fait quoi ?

Détecter les avions dans le ciel et les satellites ?

Non, faut pas pousser !

Mais on peut faire un radar pédagogique comme on a à l’ entrée des villages, pour environ 15 euros. Ca vous dit ?

Il va donc nous falloirdeux trois petites choses à commander sur le net, très facile, ali, banggood, la baie, ils ont tous ça.

Déjà ,si vous n’ avez pas encore ça ( honte sur vous !!! ) une carte Arduino, uno, nano, mini, n’ importe . D’ autres µC conviendraient, mais la solution arduino est de loin la plus facile.

Ensuite bien sur un HB100, pareil, ebay, aliexpress, tapez hb-100 doppler radar, et vous trouverez, le prix doit aller de 5 à 8 dollars environ.

Un LCD 1602 ( 16 colonnes deux lignes, les plus courants, les moins cher ), quelques dollars.

Un assortiment de fils Dupont de genres différents ( pas cher !) tapez « dupont wires assortment » sur ebay ou ali .

Du fil, un potar 10 k de récup, éventuellement une plaque d’ essai sans soudure, pour les essais justement, un bout de veroboard ( circuit imprimé pastillé ) pour le montage final. Un régulateur 7805, bien sûr !

Comme je disais, le module hb100 délivre un signal très faible en sortie, il faut l’ amplifier fortement avant de l’ envoyer à l’ arduino pour le comptage.

En s’ inspirant du billet de blog suivant, on pourra monter un ampli à grand gain suivi d’ un comparateur qui nous fournira un beau signal carré au compteur ( l’ arduino) : https://www.limpkin.fr/index.php?post/2013/08/09/Making-the-electronics-for-a-%247-USD-doppler-motion-sensor

En gros deux étage d’ amplification avec filtrage actif passe bande et un étage comparateur. Ici, le comparateur est un circuit dédié supplémentaire, mais un seul lm 324 suffira à faire les trois étages.

Un petit mot sur les deux filtres passe bande :

tel que sur le schéma, les valeurs sont données pour des fréquences de coupure assez basses, ce qui veut dire que le redar détecterar seulement des vitesses assez faibles, de l’ ordre d’ une personne qui marche, ou un vélo.On pourra mesurer la vitesse d’ une voiture tel que, mais avec une sensibilité plutôt mauvaise, surtout sans réflecteur.

La solution est de modifier les valeurs des capas et des résistances qui composent les filtre, en baissant la capacité ou la résistance de chaque circuit RC, en l’ occurence C6-R6 c7-r7, c5-r5 et c8-r8.C’est là qu’ on est bien content d’ avoir une plaque d’ essais sans soudure pour tester les valeurs optimum.

Ensuite vient la partie Arduino. Il va donc, simultanément compter les signaux carrés qui viennent de l’ ampli- discriminateur, calculer leur fréquence, la convertir en une vitesse, et l’ afficher sur les LCD !

Ca a l’ air compliqué !

Mais pas du tout !

Arduino, c’ est fantastique.On peut programmer tout ce qu’ on veut , soi même comme un grand, mais on peut aussi s’ inspirer et réutiliser plein de bouts de codes que d’ autres ont écrit, et publié.Des bouts de codes, et surtout des librairies.

Kessexa ?

Une librairie, c’ est un peu un livre de cuisine : je sais pas vous, mais moi, j’ arrive jamais a me souvenir des proportions et de l’ ordre pour tout faire.Alors j’ ouvre un bouquin et je choisis ma recette en fonction de ce que je veux faire. Imaginez que vous vouliez apprendre la cuisine à votre arduino. Vous pouvez lui écrire à la main des dizaines de recettes, il va les apprendre mieux que vous le pouvez mais ça prendra des lustres, vous n’ êtes pas prèt de manger.

Mais si vous lui donnez un bouquin de cuisine, vous n’ avez qu’ a lui dire  » fait une salade d’ endives, un boeuf bourguignon et un fondant au chocolat » Et il se débrouillera.

On va faire en gros la même chose .

On a besoin de deux librairies ( bibliothèques, ouais !) : pour le LCD , et pour compter la fréquence.

Pour le LCD #include <LiquidCrystal.h>

la fréquence : #include <FreqMeasure.h

Un peu de code pour lier tout ça et on a un sketch arduino qui roule :

Je vous aurais bien mis le tout dans un zip en lien , mais apparemment wordpress ne veut pas, alors voilà le texte brut, désolé, ça pique les yeux :

#include <FreqMeasure.h>

#include <LiquidCrystal.h>

define countPin 7

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
pinMode(countPin, OUTPUT);
Serial.begin(57600);
lcd.begin(16, 2);
lcd.print(« Freq: »);
lcd.setCursor(10,0);
lcd.print(« Speed: »);
FreqMeasure.begin();
}

double sum=0;
int count=0;

void loop() {
if (FreqMeasure.available()) {
// average n readings together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 50) {
// digitalWrite(countPin, HIGH);
float frequency = FreqMeasure.countToFrequency(sum / count);
float spd = frequency / 19.49; //conversion from frequency to kilometers per hour (sorry, imperial guys 🙂
//to improve speed, we update only the bottom row of the LCD
lcd.setCursor(0, 1);
lcd.print( » « );
lcd.setCursor(0, 1);
lcd.print(frequency);
lcd.print(« Hz »);
//lcd.print( » « );
lcd.setCursor(8,1);
lcd.print(spd);
lcd.print(« km/h « );
Serial.println( » « );
Serial.print(frequency);
Serial.print(« Hz « );
Serial.print(spd);
Serial.println(« km/h »);
sum = 0;
count = 0;
//digitalWrite(countPin, LOW);
}
}
}

Les lectures de vitesses sont prises très vite, à la volée et moyennées :

if (count<50 ) { // ici 50 représente le nombre de comptes pris pour le moyennage. A modifier suivant les résultats obtenus, 30 est un bon chiffre, moins et vous aurez des valeurs qui s’ affichent trop vite pour lire et des valeurs inconsistantes. Plus et vous aurez des erreurs si la vitesse réelle ou relative n’ est pas constante.

Vous pouvez comparer ce code qui utilise des librairies ( bibliothèques, aaah !) et celui que donne Limpkin dans le lien ci-dessus. qui calcule en direct la fréquence et passe la donnée pour une lecture via un terminal série.

Quelques photos pour vous donner une idée du truc :

le module avec son ampli en  » sac à dos » devant la « parabole » improvisée: un bout d’ antenne tv couvert de gaffer alu et des bras en fil de cuivre !!
alim 12 v et régulateur 7805 1 A archi overkill

c’ est pas beau, mais ça marche !
les entrailles de la bête, au fond la plaque d’ essai avec le potar qui règle le contraste du lcd

et les connexions par fils dupont

Voilà pour le plus gros, ensuite, à vous de tester et de trouver des nouveaux

trucs pour tirer tout le jus de ce merveilleux petit module.

Si vous remplacez le LCD par une matrice à LED de bonne taille, vous pouvez construire un ou plusieurs radars pédagogiques pour votre commune qui économisera ainsi des centaines, voire des milliers d’ euros !

A coup sûr, vous aurez un bel article dans le journal, peut être même une statue sur la place du village ?

Outre un radar routier, vous avez aussi un vrai émetteur hyperfréquence modulable en tout ou rien, probablement aussi en FM large, avec lequel vous pouvez faire des contacts à plusieurs dizaines ( !!! ) de kilomètre pour peu que vous concentriez le faisceau dans une parabole offset de 40 ou 60 cm.

Voyez par exemple, sur l’ excellent site de F6HCC l’ article consacré à ses propres expérimentations et n’ oubliez pas de lire tous les autres bons articles, de la pure radio d’ amateur !

Ici : http://f6hcc.free.fr/10ghz.htm

La page d’ accueil de son site http://f6hcc.free.fr/

Et je vous ai pas dit : le hb100 a un petit frère il s’ appelle cdm324, il est encore plus petit, et il fonctionne sur 24 GHz !!!!

More fun !https://www.limpkin.fr/index.php?post/2017/02/22/Making-the-Electronics-for-a-24GHz-Doppler-Motion-Sensor

Je l’ ai essayé : le faisceau est encore plus étroit, la résolution de la vitesse est plus précise et la portée est semblable au hb 100.a noter que le 24 ghz voit encore mieux à travers les matériaux isolants, on peut détecter quelqu’ un derrière une porte ou un galandage !

Voilà, si j’ ai oublié des détails, dit des bêtises, laissez un com’, pour les membres du club, si ça vous intéresse, je vous montrerai mon prototype et vous ferai une démo.

Les crédits pour le code ; lib freqmeasure http://www.pjrc.com/teensy/td_libs_FreqMeasure.html

Une pensée sur “Le HB-100, un détecteur de présence /radar Doppler sur 10 GHz

  • 30/03/2020 à 16:07
    Permalink

    Super, merci Antoine pour les informations, démonstration attendue dés que possible !
    Amitiès.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.