Raspberry PI Tutorial

Utilisation d’un capteur radar Doppler avec le Raspberry Pi

Par Thomas, le 14 novembre 2020
Utilisation d'un capteur radar Doppler avec le Raspberry Pi

Il existe de nombreux capteurs sur le marché pour le Raspberry Pi, l’Arduino et d’autres ordinateurs / microcontrôleurs monocarte. Mais le RCWL-0516 est quelque chose de nouveau et d’excitant en ce qu’il offre la simplicité d’un capteur PIR mais avec une plus grande portée et une plus grande capacité de détection à travers les objets, mais il ne se vend encore que pour quelques dollars de Chine.

Qu’est-ce que le RCWL-0516?

Le RCWL-0516 est un capteur de mouvement à micro-ondes radar Doppler, c’est-à-dire qu’il fonctionne de la même manière que le capteur PIR BISS0001 typique que tout le monde a dans sa boîte à bits. Mais plutôt que de détecter un mouvement à l’aide de l’énergie infrarouge, il utilise des changements dans la fréquence d’émission pour déterminer si un objet se trouve sur son chemin. Le RCWL-0516 a une portée d’environ 7 m – beaucoup de portée même pour les projets les plus exigeants.

Alors, est-ce mieux que l’humble capteur PIR? Eh bien, très franchement, oui, pour une raison simple, cela peut fonctionner de l’intérieur d’un boîtier, ce qui signifie qu’il peut être stocké dans un boîtier étanche, utilisé comme caméra de traînée et rester en sécurité et au sec. Contrairement au PIR qui ne peut pas fonctionner même à travers un boîtier transparent car cela bloquera l’énergie infrarouge.

Alors, à quoi peut servir le RCWL-0516? Si vous avez besoin de déclencher une caméra, de détecter des animaux ou des humains entrant dans une pièce ou un espace ouvert, ou d’activer un robot lorsqu’il détecte un utilisateur, c’est le capteur qu’il vous faut.

Brochage RCWL-0516

Le RCWL-0516 n’a que cinq broches

  1. 3V3 – Une sortie régulée 3,3V.
  2. GND – Terre
  3. OUT – La valeur de repos est LOW (0 V) mais lorsqu’un mouvement est détecté, elle passe à HIGH (3,3 V)
  4. VIN – Tension d’alimentation entre 4 et 28V (nous le connectons au 5V du Pi)
  5. CDS – Un peu énigme ici, il semble que ce soit pour un capteur de lumière, mais on ne sait pas grand-chose d’autre.

Prenons-le pour un essai routier

Pour illustrer comment utiliser le RCWL-0516, nous avons écrit une application qui prendra une photo en utilisant la caméra officielle Raspberry Pi chaque fois que le capteur est déclenché. Le nom de fichier de l’image sera l’horodatage de l’heure et de la date à laquelle le capteur a été déclenché.

Nomenclature

  • Tout modèle de Raspberry Pi
  • Caméra Raspberry Pi
  • RCWL-0516
  • 3 x fils de cavalier femelle à femelle

Tout le code de ce projet peut être téléchargé depuis Github, et il inclut une version bonus qui utilise le sondage, via une boucle infinie.

https://github.com/lesp/raspberryme-RCWL-0516

Construction de matériel

Avant d’allumer le Raspberry Pi, nous devons d’abord connecter la caméra au port CSI, qui se trouve entre le port HDMI et le port composite du Raspberry Pi (les propriétaires de Pi Zero, le vôtre est à la fin de la carte, mais vous aurez besoin un adaptateur à connecter). Relâchez le dispositif de retenue en plastique sur le port CSI, puis insérez le câble de la caméra dans le port CSI de sorte que le ruban bleu soit face au port Ethernet. Une fois en place, fixez le dispositif de retenue en plastique pour vous assurer que le câble est connecté.

Pour la prochaine partie de la construction, nous devrons connecter le RCWL-0516 au GPIO de notre Pi. Le capteur nécessite un peu de soudure pour casser les broches, mais cela ne devrait pas s’avérer trop pénible.

Les connexions entre le Pi et RCWL-0516 sont les suivantes.

Raspberry Pi RCWL-0516

  • VIN 5V
  • GND GND
  • GPIO17 OUT

Construction de logiciel

Une fois la configuration matérielle terminée, démarrons le Raspberry Pi sur le bureau. Mais avant de pouvoir commencer à écrire du code, nous devons configurer et tester notre caméra.

Tout d’abord, nous devons configurer l’interface de la caméra, et pour cela, nous devons utiliser l’application de configuration Raspberry Pi, qui se trouve dans la section Préférences du menu principal.

Une fois l’application ouverte, cliquez sur l’onglet Interfaces puis activez l’interface Caméra. Vous devrez redémarrer pour que les modifications prennent effet.blank

Vous verrez la fenêtre d’aperçu apparaître et après cinq secondes, votre photo sera prise. Vous pouvez utiliser le gestionnaire de fichiers pour trouver votre photo et voir à quoi elle ressemble. Après un test réussi, commençons à écrire du code Python!

Pour ce projet, nous avons utilisé IDLE3 qui se trouve dans le menu Programmation. Créez un nouveau fichier et appelez-le radar-camera-trap-.py, pensez également à enregistrer souvent, pour minimiser le risque de perte de code.

Les premières lignes de code Python gèrent l’importation des bibliothèques qui seront utilisées dans le projet. Nous importons la classe DigitalInputDevice de GPIO Zero, que nous utiliserons pour créer un objet qui représente notre capteur RCWL-0516. Ensuite, nous importons datetime, qui sera utilisé pour créer le nom de fichier d’horodatage. Ensuite, nous importons la bibliothèque Picamera pour contrôler notre caméra avant d’importer enfin la fonction de pause de la bibliothèque de signaux utilisée pour empêcher notre code de sortir.

from gpiozero import DigitalInputDevice

import datetime

from picamera import PiCamera

from signal import pause 

Passons maintenant à la création d’objets qui contiendront la configuration de notre capteur radar RCWL-0516 et de la caméra.

Notre premier objet s’appelle radar et c’est notre capteur RCWL-0516 connecté au GPIO de notre Raspberry Pi à GPIO 17. Ce capteur a un état de repos de 0V (LOW) pour sa broche de sortie et nous devons donc nous assurer que notre La broche GPIO est également basse, nous avons donc réglé la résistance de rappel pour GPIO17 sur False, ce qui tirera la broche bas. Ensuite, nous réglons le temps de rebond, le temps nécessaire au capteur pour se réinitialiser après la détection d’un mouvement, à 2,0 secondes. Assez de temps pour une réinitialisation claire.

radar = DigitalInputDevice(17, pull_up=False, bounce_time=2.0) 

Notre prochain objet est une connexion à la caméra et nous réglons la résolution de la caméra à 1024×768, cela nous donne une image suffisamment grande, sans générer beaucoup de grandes images sur la carte SD.

camera = PiCamera()

camera.resolution = (1024, 768) 

Notre section suivante consiste à créer une fonction qui sera appelée lorsque le radar est déclenché. Cette fonction est appelée détecteur et à l’intérieur de la fonction, nous avons quatre lignes de code.

def detector(): 

Pour créer le nom de fichier d’horodatage, nous devons d’abord obtenir l’heure actuelle et la convertir en chaîne.

   timestamp = str((datetime.datetime.now())) 

Maintenant, les données d’horodatage sont plutôt verbeuses et incluent le temps jusqu’à la milliseconde, alors utilisons le découpage de chaîne pour couper et mettre à jour la variable d’horodatage avec la date et l’heure jusqu’à la seconde.

   timestamp = timestamp[0:19]

Ensuite, nous imprimons l’horodatage à l’écran. Ceci est pratique pour déboguer et montrer que le code fonctionne.

   print("Image captured at",timestamp) 

Notre dernière ligne à l’intérieur de la fonction est de capturer l’image avec notre appareil photo et d’utiliser l’horodatage comme nom de fichier.

   camera.capture(timestamp+".jpg") 

Désormais hors de notre fonction, nous n’avons plus que deux lignes de code à ajouter. Lorsque le RCWL-0516 détecte un mouvement, il s’active et la broche de sortie passe de LOW à HIGH pendant deux secondes. Lorsque ce changement d’état se produit, il appellera la fonction de détection que nous venons de créer. Notez que nous appelons la fonction sans ses parenthèses, car cela crée une référence à la fonction qui est ensuite appelée lorsque le radar détecte un mouvement. La dernière ligne de code est une pause qui empêche notre code Python de se fermer et garantit que nous pouvons continuer à attendre que le capteur soit déclenché.

radar.when_activated = detector

pause() 

Enregistrez le code et lorsque vous êtes prêt, cliquez sur Exécuter >> Exécuter le module pour tester.

blank

Maintenant agitez votre main sur le capteur et vous verrez la sortie du shell Python vous informant qu’une photo a été prise. Ouvrez le gestionnaire de fichiers et vous verrez que l’image est déjà là. Amusez-vous en utilisant votre nouveau piège à caméra à capteur radar. . . quelles images allez-vous capturer?

blank

Thomas

Thomas

Fan de Raspberry Pi de la première heure, je suis l'évolution de ces micro-pc depuis maintenant 5 ans. En plus de l'actualité je propose de nombreux tutoriels pour vous aider à exploiter pleinement votre nano-ordinateur côté domotique ou retro-gaming.