dimanche 29 octobre 2017

Appli android qui présente les mesures de l'Arduino sous forme cartésienne

Aujourd'hui, je vous propose de programmer, au moyen de MIT App Inventor 2, une appli android qui va représenter sous forme de graphique cartésien les données analogiques reçues via bluetooth depuis une carte Arduino.


La vidéo ci-dessous montre l'appli en action:  les données du graphique affiché en temps réel sur la tablette sont contrôlées par un potentiomètre relié à l'entrée A0 de la carte Arduino Uno.




Avant que vous vous imaginiez que je suis un inventeur génial, je tiens à préciser que mon point de départ pour ce projet est ce tuto sur le blog Gadgetas.  J'ai utilisé le programme App Inventor conçu par Augusto Valdez et j'y ai apporté quelques modifications.

Le circuit émetteur (Arduino)

Le circuit émetteur est essentiellement constitué d'un module bluetooth HC-06 branché à une carte Arduino.  Si vous préférez utiliser une autre carte, vous pouvez consulter mes précédents billets concernant l'utilisation du module HC-06 avec le STM32 Nucleo ou avec le MSP430 Launchpad.

L'utilisation d'un circuit intégré 4050 pour abaisser le signal logique qui va de l'Arduino vers le HC-06 est nettement conseillée, afin de ne pas endommager votre HC-06 (voir ici pour plus d'informations concernant le 4050).

Pour faire varier le signal analogique qui sera mis en graphique, j'ai utilisé un potentiomètre, qui pourrait bien sûr être remplacé par n'importe quel capteur analogique (photorésistance, thermistance) ou même par un capteur numérique sous réserve de quelques modifications à l'intérieur de nos programmes.



Les principales connexions sont:
  • VCC du HC-06:  5 V de l'Arduino
  • GND du HC-06 : GND de l'Arduino
  • TXD du HC-06:  Rx de l'Arduino
  • RXD du HC-06 : 4050 : Tx de l'Arduino 

Le sketch de l'Arduino

Rien de bien compliqué du côté de l'Arduino:  il se contente d'envoyer régulièrement l'état de son entrée A0.  Seule particularité digne de mention:  chaque message commence par le symbole "#".  Ce symbole sera utilisé par l'appli Android pour valider les messages reçus.



Programmation de l'appli android avec MIT App Inventor 2

Je suppose de votre part une certaine aisance avec MIT App Inventor 2.  Au besoin, consultez mes précédents billets:  Introduction à MIT App Inventor 2 et Programmer une appli android pour communiquer en bluetooth.

Commençons en mode "Designer":  dans les propriétés de la fenêtre, assurez-vous de régler le paramètre "Orientation écran" à "Paysage".  C'est l'orientation la plus appropriée pour la plupart des graphiques cartésiens, et nous n'aurons pas à gérer les changements d'échelle qui seraient occasionnés par un passage du mode paysage vers le mode portrait, ou inversement.  J'ai aussi réglé le paramètre "Alignement horizontal" à "Centrer: 3".


Cette fenêtre comportera 9 composantes d'interface:




A) Un rectangle "Arrangement horizontal", qui sert à garder les éléments B, C et D sur une même ligne.

B)  Un "Label" que j'ai renommé "StatutConnexion". Un message indiquant si la connexion bluetooth est active ou non apparaîtra dans ce label.

C) Un "Sélectionneur de liste" que j'ai rebaptisé "BoutonConnecter".  Lorsque l'utilisateur cliquera sur cet élément, on lui présentera la liste des périphériques bluetooth disponibles.  Le paramètre "Texte" du sélectionneur de liste a été modifié pour contenir le mot "Connecter".

D) Un "Bouton" qui servira à interrompre la communication bluetooth avec l'Arduino.  J'ai remplacé son nom par "BoutonDeconnecter" et son paramètre "Texte" par "Déconnecter".

E) Un "Cadre" dans lequel notre programme dessinera le graphique.  Je lui ai laissé son nom par défaut "Cadre1", mais j'ai réglé son paramètre "Hauteur" à "Remplir parent..." , son paramètre "Largeur" à "Remplir Parent", la "Largeur de ligne" à 2.0 et la "Couleur de dessin" à "Rouge".


F) Un deuxième rectangle "Arrangement Horizontal" complètement vide, qui n'est qu'une astuce pour me réserver une marge dans le bas de la fenêtre.  Je trouvais ça plus joli.  J'ai réglé sa hauteur à 20 pixels.

G) Un "Notificateur" qui présentera un message d'alerte si bluetooth n'est pas activé sur l'appareil.

H) Un "Client Bluetooth" nécessaire pour la communication bluetooth.

I) Une "Horloge" qui détermine le moment de consulter les messages reçus via bluetooth.  Dans les paramètres de l'horloge, réglez IntervalleChronomètre à 100 millisecondes.


Voici, pour récapituler, la liste des composants de la fenêtre.  J'ai laissé les noms par défaut, sauf pour le contenu du premier arrangement horizontal:


Passons maintenant en mode "Blocs".  On définit d'abord trois variables globales:  "echelley" qui établit une relation entre la hauteur du cadre en pixels et la valeur analogique (entre 0 et 1023) reçue par bluetooth, "ancienx" qui est la position horizontale du dernier point tracé sur le graphique, et "ancieny" qui est la position verticale du dernier point tracé.


Au début de l'exécution du programme, on vérifie si bluetooth est activé sur l'appareil, on ajuste l'échelle en fonction de la hauteur du cadre, et on appelle la procédure qui trace le quadrillage.

Notez que pour la variable echelley, j'ai divisé la hauteur du cadre par 1050 plutôt que 1023 pour me réserver une petite marge libre au bord du cadre.


Lors du clic sur le sélectionneur de liste, on présente la liste des périphériques bluetooth disponibles.  Suite à un choix dans cette liste, on se connecte au périphérique choisi par l'utilisateur.

On interrompt la connexion bluetooth si l'utilisateur clique sur le bouton "Déconnecter".

C'est dans la routine d'horloge qu'on fait le gros du travail...voici une vue d'ensemble:


Faisons un zoom...

Toutes les 100 millisecondes, nous vérifions si nous avons reçu un message via bluetooth.

Si c'est le cas, nous extrayons la partie numérique du message.


Et nous traçons une droite joignant le point précédemment tracé et ce nouveau point.  Attention:  la coordonnée y du cadre est nulle en haut et de plus en plus grande à mesure qu'on descend, alors qu'on veut le contraire sur notre graphique.  C'est pourquoi la valeur de y est calculée de cette façon:
 y = hauteur du cadre - (echelley * mesure de l'Arduino)


(Je me suis gardé une petite marge de 2 pixels à gauche et en bas du cadre).

Il faut ensuite mettre à jour les variables qui contiennent les coordonnées du point précédent, et gérer le retour à gauche si on a atteint la limite droite du cadre:


Tel que son nom l'indique, la procédure "quadrillage" dessine un quadrillage dans le cadre (5 lignes horizontales, en fait). 


Puisque je vous aime bien, le programme complet sous forme de fichier .aia est disponible ici.

Yves Pelletier   (TwitterFacebook)

jeudi 26 octobre 2017

Essai du Banana Pi M2 Berry

Aujourd'hui, je vous parle du Banana Pi M2 Berry qui, comme son nom le laisse deviner, se veut une alternative au Raspberry Pi.

Il s'agit donc d'un ordinateur monocarte muni d'un processeur quadricoeur 32-bit Allwinner V40.  Les dimensions et la position des connecteurs sont identiques à celles du Rasbperry Pi 3:  alimentation par le port micro USB OTG, 4 ports USB 2.0,  HDMI, Ethernet, 40 GPIOs, etc.  Tout comme le Rasbperry Pi 3, nous avons droit au Wi-Fi et à bluetooth intégrés.

Une particularité du Banana Pi M2 Berry, c'est qu'il comporte un connecteur SATA qui vous permet d'y brancher un disque dur ou un graveur DVD, etc.

Préparation de la carte micro SD

Quatre systèmes d'exploitation sont proposés en téléchargement sur le site de Banana Pi: Android, Debian, Raspbian et Ubuntu.  Pour faciliter la comparaison avec mon Rasbperry Pi, j'ai choisi la version la plus récente de Raspbian.  Il s'agit d'un fichier .zip de 1,8 Go hébergé sur Google Drive.

Pour graver le système d'exploitation sur une carte micrco SD, j'ai utilisé le programme Etcher, dont l'interface est beaucoup plus élégante et intuitive que Win32DiskImager que j'utilisais auparavant.



Il est également possible de se procurer une carte micro-SD comportant déjà Rasbpian pour le Banana Pi M2 Berry.

Premier démarrage

Après avoir inséré la carte micro SD dans le Banana Pi, on branche pour se retrouver en terrain connu:  le bureau de Raspbian Pixel!


À l'écran, rien n'indique que Rasbpian est en train de rouler sur un Banana Pi plutôt que sur un Raspberry Pi, tout est identique à ce qu'on verrait sur un Raspberry Pi.

En très peu de temps, j'avais réglé le WiFi, changé mon mot de passe, activé SPI et I2C...

Ce que j'ai essayé avec succès

J'ai navigué sur internet et visionné quelques vidéos sur Youtube (j'avais lu quelque part que ça pouvait s'avérer problématique avec le Banana Pi, mais non:  aucun problème à signaler de ce côté).

J'ai créé quelques fichiers au moyen de Libre Office.

Je me suis branché à distance par une liaison SSH.

J'ai fait clignoter une LED au moyen d'un script en python (mais j'ai dû exécuter le script avec "sudo", ce qui n'est plus nécessaire avec un Raspberry Pi). J'ai aussi lu les données d'un accéléromètre MMA7455 (capteur I2C) avec un script en python.

Dans toutes ces situations, l'utilisation du Banana Pi n'a présenté aucune différence par rapport à l'utilisation d'un Raspberry Pi.

La licence gratuite pour le serveur Real VNC ne semble pas s'appliquer au Banana Pi.  J'ai quand même pu me brancher à distance par VNC, après avoir installé le serveur "Tight VNC" (sudo apt-get install tightvncserver).



Ce qui a moins bien fonctionné

Même si Mathematica est installé par défaut, une clé d'activation est requise pour l'utiliser. Là encore, il semble que la licence d'utilisation gratuite accordée aux utilisateurs de Rasbperry Pi ne s'applique pas aux utilisateurs de Banana Pi.



Scratch version 1.4 fonctionne, sauf si on tente de démarrer le serveur GPIO:



Scratch version 2 gèle aussitôt que je démarre un script qui tente de contrôler un GPIO.


En ce qui concerne Minecraft, rien à faire:  il ne démarre même pas.

À l'endroit où se trouve le connecteur CSI du Raspberry Pi, le Banana Pi comporte un connecteur à première vue identique...j'avais donc supposé, naïvement, qu'il était possible d'y brancher ma caméra pour Rasbperry Pi.  Mais non!  Le connecteur de caméra du Banana Pi est beaucoup plus large; il comporte 20 connexions alors que celui du Raspberry Pi n'en comporte que 15.  On ne peut pas utiliser sur le Banana Pi une caméra conçue pour le Raspberry Pi.  On doit se procurer une caméra spécialement conçue pour le Banana Pi.  Zut!



Performances

En utilisant le Banana Pi M2 Berry, j'ai eu la nette impression qu'il était plus rapide que mon Rasbperry Pi 2 (oui:  vous avez bien lu:  je n'ai malheureusement pas de Rasbperry Pi 3 pour comparer).  Pour en avoir le coeur net, j'ai effectué quelques tests.  Dans les deux cas:  système à jour récemment installé, aucun overclocking.

Temps nécessaire au démarrage:
  • 50 secondes pour mon Raspberry Pi 2
  • 30 secondes pour mon Banana Pi M2 Berry

Test de CPU avec sysbench:
  • 580 secondes pour mon Rasbperry Pi 2
  • 434 secondes pour mon Banana Pi M2 Berry

À ce test, le Banana Pi est 1,3 fois plus rapide que le Rasbperry Pi 2.  Des résultats publiés ailleurs sur le web indiquent que le Raspberry Pi 3 est 1,6 fois plus rapide que le Raspberry Pi 2, pour ce même test.

Résultats sysbench pour le Banana Pi M2 Berry

Résultats sysbench pour le Raspberry Pi 2


Acheter ou pas?

Je n'utilise que très rarement les applications qui n'ont pas fonctionné.  Pour cette raison, en ce qui me concerne, le Banana Pi M2 Berry arrive à peu près à égalité avec le Raspberry Pi.  Je rappelle qu'il existe trois autres systèmes d'exploitation (Android, Rasbpian et Ubuntu) que je n'ai pas essayés.

Si le connecteur SATA (que je n'ai pas testé) est important pour vous, le Banana Pi pourrait même s'avérer préférable au Raspberry Pi.

Mais puisque le Banana Pi M2 Berry ne semble pas significativement moins cher qu'un Rasbperry Pi 3, je crois que l'achat d'un Raspberry Pi 3 demeure préférable pour la majorité des applications.

N.B.: Le Banana Pi M2 Berry utilisé pour la rédaction de ce billet a été fourni gratuitement par Reichelt Elektronik.

Yves Pelletier   (TwitterFacebook)

mardi 24 octobre 2017

MPLAB Xpress Evaluation Board: programmation des entrées/sorties

J'amorce avec ce billet une série de tutoriels sur la programmation du MPLAB Xpress Evaluation Board au moyen de l'IDE en ligne MPLAB Xpress.

La carte MPLAB Xpress Evaluation Board comporte un microcontrôleur PIC16F18855, 4 LEDs, un potentiomètre, un bouton poussoir (en plus du bouton reset) et une bonne trentaine d'entrées/sorties.  On programme le microcontrôleur en branchant la carte directement au port USB d'un ordinateur (aucun programmateur n'est donc requis).

Première utilisation

La première fois que vous branchez la carte à un ordinateur, des pilotes sont automatiquement installés.


La carte est ensuite reconnue comme un périphérique de stockage:


En cliquant sur le fichier "README.HTM qui se trouve à l'intérieur du périphérique de stockage, vous accédez à l'IDE en ligne MPLAB Xpress (cliquez sur le bouton "Get Started NOW!"). 

Vous pouvez utiliser l'IDE en mode invité ("Guest Mode") ou vous inscrire et ouvrir une session, ce qui vous permettra d'enregistrer vos programmes sur le cloud ("MyMicrochip Login", dans le coin inférieur droit de la fenêtre ou dans les menus en haut à droite).



Créons un nouveau projet (bouton "New Project")


Il existe des exemples déjà faits, mais choisissons "Standalone Project" afin de créer notre propre projet à partir de zéro.


Dans "Device", on s'assure de sélectionner PIC16F18855, puisque c'est ce microcontrôleur qu'on retrouve sur le MPLAB Xpress Evaluation Board.


Puis on choisit le nom qu'on veut pour notre projet.



Installation de MPLAB Xpress Code Configurator (MCC)

Nous allons maintenant installer MCC:  le MPLAB Xpress Code Configurator.  Pour une raison qui m'échappe, c'est outil doit être téléchargé et installé localement sur votre ordinateur.

Vous cliquez sur le bouton MCC:


...et après avoir au besoin mis à jour votre version de java, vous téléchargez MCC.  La fenêtre vous indique également un code que vous entrez dans MCC quand vous le démarrez pour la première fois.


Au démarrage de MCC, vous entrez le code demandé, ce qui permet à l'application de se connecter au projet actuellement ouvert dans MPLAB Xpress.

Configuration avec MCC


MPLAB XPress Code Configurator permet de générer des fichiers "header" qui configurent le microcontrôleur selon nos besoins.

Sur la carte MPLAB Xpress Evaluation Board les 4 LEDs sont associées aux pins RA0, RA1, RA2 et RA3, alors que le bouton est associés à RA5.

Nous allons donc configurer les pins 0, 1, 2 et 3 du port A en sortie, et la pin 5 du port A en entrée.  Pour ce faire,  vous cliquez dans les cases appropriées pour que les petits cadenas ouverts sur fond bleu se transforment en cadenas fermés sur fond vert.



Cliquez ensuite sur "Pin Module" dans la zone "Project Resources" en haut à gauche.  Décochez toutes les cases "Analog".  Remarquez que, si vous le désirez, vous pouvez également modifier le nom de chacune des pins que nous utiliserons (par défaut, elles se nomment "IO_RA0", "IO_RA1", etc.)

Vous cliquez ensuite sur le bouton "Generate".


Retour à l'IDE MPLAB Xpress:  vous pouvez vérifier que des fichiers ont été ajoutés à votre projet dans le répertoire "MCC Generated Files".



Programmation avec MPLAB Xpress

Il ne nous reste plus qu'à écrire notre programme à l'intérieur du fichier "main.c" qui, lui aussi, a déjà été créé pour nous.

Le fichier pin_manager.h définit une syntaxe qui nous permet de piloter nos entrées/sorties de façon conviviale:
  • IO_RA0_SetHigh()     pour allumer la LED branchée à A0
  • IO_RA1_SetLow()      pour éteindre la LED branchée à A1
  • IO_RA5_GetValue()   pour lire l'état du bouton
Je vous rappelle que j'aurais pu, dans MCC, modifier le nom de chaque GPIO.  Le code serait alors encore plus lisible avec des directives comme "LED1_SetHigh()" et "Bouton_GetValue()".

Voici, par exemple, le traditionnel clignotement d'une LED:



Dans ce deuxième exemple, la première LED à gauche est allumée pendant qu'on appuie sur le bouton, alors que c'est la dernière LED à droite qui s'allume lorsque le bouton est relâché.



Pour téléverser le programme dans le microcontrôleur du MPLAB Xpress Evaluation Board, il s'agit de cliquer sur le bouton "Run project" et de sauvegarder le fichier ".hex" dans la carte, qui apparaît comme un périphérique de stockage.



Dans un prochain billet, nous verrons comment envoyer des informations par liaison série, pour affichage à l'écran de l'ordinateur.

Yves Pelletier   (TwitterFacebook)

samedi 21 octobre 2017

Télémètre HC-SR04 et ATTiny85


Nous explorons aujourd'hui l'utilisation d'un télémètre à ultrasons HC-SR04 avec un ATTiny85.


Deux projets seront décrits: dans le premier projet, trois LEDs permettent d'indiquer si un obstacle se trouve ou non à une distance sécuritaire.   Dans le second projet, la distance en centimètres est affichée par un module TM1638.

Dans les deux cas, l'ATTiny85 est programmé au moyen d'une carte Arduino Uno (Arduino as ISP) et de l'IDE Arduino avec le core mis au point par David A. Mellis. La fréquence d'horloge est de 1 MHz.  Voir ce précédent billet pour plus d'informations à ce sujet.

Projet 1:  Détecteur d'obstacle muni de 3 LEDs indicatrices

Puisque le témètre HC SR-04 occupe déjà deux entrées/sorties de l'ATTiny, trois sorties de l'ATTiny peuvent servir à alimenter une LED:  une LED verte qui s'allume lorsque l'obstacle se trouve à plus d'une trentaine de centimètres du dispositif, une LED jaune qui s'allume lorsque l'obstacle se trouve à une distance située entre 10 cm et 20 cm, et une LED rouge qui s'allume lorsque l'obstacle se trouve à moins de 10 cm. 

La vidéo ci-dessous montre le dipositif en action.



Le sketch

Vous pouvez modifier la valeur numérique des constantes seuilMIN et seuilMAX afin de modifier la distance de l'obstacle qui entraînera le changement de LED allumée.



Le circuit
  • La broche Trig du HC-SR04 est branchée à la broche 5 du ATTiny85
  • La broche Echo du HC-SR04 est branchée à la broche 6 du ATTiny85
  • La LED rouge et une résistance de protection est branchée à la broche 7 du ATTiny85
  • La LED jaune et une résistance de protection est branchée à la broche 2 du ATTiny85
  • La LED verte et une résistance de protection est branchée à la broche 3 du ATTiny85




Projet 2:  affichage de la distance mesurée sur un module TM1638

Les modules d'affichage de type "LED and KEY" comportant un circuit intégré TM1638 permettent d'afficher un nombre tout en n'occupant que 3 entrées/sorties de l'ATTiny85. Nous pouvons donc y afficher la distance mesurée par le télémètre ultrasonore.



Le sketch

Vous trouverez plus de détails sur l'utilisation du module TM1638 en lisant cet article.



Le circuit


  • La broche Trig du HC-SR04 est branchée à la broche 2 du ATTiny85
  • La broche Echo du HC-SR04 est branchée à la broche 3 du ATTiny85
  • La broche STB du module TM1638 est branchée à la broche 7 du ATTiny85
  • La broche CLK du module TM1638 est branchée à la broche 6 du ATTiny85
  • La broche DIO du module TM1638 est branchée à la broche 5 du ATTiny85

Yves Pelletier   (TwitterFacebook)

jeudi 19 octobre 2017

Livre: Les microcontrôleurs PIC pour les débutants


Les microcontrôleurs PIC pour les débutants qui veulent programmer sans patauger
par Rémy Mallard
Elektor,  2013
446 pages

Même s'il ne s'agit d'une nouveauté, ça me semble une bonne idée de signaler l'existence de cet excellent livre de Rémy Maillard, dont  le titre complet est "Les microcontrôleurs PIC pour les débutants qui veulent programmer sans patauger avec mikroPascal: intermédiaire idéal entre BASIC (trop facile) et C (trop difficile)" !

Les amateurs de microcontrôleurs PIC trouveront dans ce livre de quoi occuper de nombreuses soirées:  présentation des différentes familles de microcontrôleurs PIC, configuration d'un PIC (oscillateur, chien de garde, etc.), interruptions, pilotage d'un relais ou d'un moteur, production d'un signal sonore, utilisation des comparateurs, mesure d'une tension, d'un rapport cyclique et d'une fréquence, production d'une tension analogique, utilisation de différents capteurs (lumière, température, humidité, pression, accéléromètre), multiplexage des entrées/sorties, affichage sur écran LCD, utilisation d'un EEPROM, données RS232, données MIDI, données RC5/RC6, données DMX, liaisons SPI et I2C, liaison USB, liaison Ethernet, liaison OneWire, etc.

Les travaux de Rémy Mallard, que ce soit sur papier ou sur le web, constituent toujours une valeur sûre.  Ce monsieur réussit toujours à présenter ses vastes connaissances d'une façon claire et même...amusante!

Une seule réserve:  le choix du langage Pascal!  Ça m'a rappelé de bons souvenirs de l'époque où je programmais mon Macintosh au début des années 1990, mais j'ai l'impression que des exemples en C auraient été plus utiles, sans être significativement plus compliqués.  Heureusement, la conversion en C d'un bout de code rédigé en Pascal ne pose généralement pas de problème majeur.

En ce qui me concerne, la lecture de ce livre m'a donné le goût d'expérimenter un peu avec mon MPLAB Xpress Evaluation Board, qui traîne au fond d'un tiroir depuis plus d'un an:  je vous en reparle bientôt.

N.B.:  Au moment où j'écris ces lignes, le livre est offert en solde (25 euros)  sur le site d'Elektor.

Yves Pelletier   ( Twitter , Facebook )

jeudi 12 octobre 2017

Capteur infrarouge passif (PIR) avec une carte STM32 Nucleo


Dans ce court billet, je vous fournis quelques informations utiles pour détecter un mouvement au moyen d'un capteur à infrarouge passif (ou PIR, pour passive infrared) branché à une carte STM32 Nucleo.

Pour plus d'informations au sujet des capteurs PIR, je vous réfère à ce précédent billet:  vous y trouverez des informations utiles concernant leur principe de fonctionnement et les réglages qu'on peut effectuer au moyen de leurs potentiomètres. Si vous préférez utiliser une carte Arduino ou encore un Raspberry Pi, il existe également des tutoriels à ce sujet.

Connexions

Le capteur nécessite une tension d'alimentation d'au moins 5 V, mais sa sortie délivre malgré tout une tension de 3,3 V qui est tout à fait appropriée pour notre Nucleo.

En théorie, les branchements sont donc:
  • +5 V du PIR : 5V du Nucleo
  • OUT du PIR : D7 du Nucleo
  • GND du PIR:  GND du Nucleo


Pourquoi ai-je précisé "en théorie"?  Parce qu'aussi longtemps que je me suis obstiné à alimenter mon capteur au moyen de la sortie 5 V de ma carte Nucleo, le capteur s'est comporté de façon complètement erratique (le symptôme le plus fréquent, c'est qu'il continuait de détecter un mouvement alors qu'il n'y en avait plus depuis bien longtemps).  J'ai essayé de stabiliser l'alimentation avec le vieux truc du condensateur ajouté entre les deux bornes, mais ça n'a pas apporté d'amélioration notable.  Par contre, tout fonctionne à merveille si mon capteur est alimenté par sa propre source de tension.

Voici donc le circuit qui a correctement fonctionné pour moi:



Script mbed

Voici finalement un script réalisé au moyen de l'IDE en ligne mbed.  Lorsqu'un mouvement est détectée, la LED verte intégrée à la carte Nucleo s'allume, et un message est envoyé à l'ordinateur par liaison série.


Remarquez que si votre seul objectif est d'allumer une LED lorsque que capteur PIR détecte un mouvement, la carte Nucleo n'est pas nécessaire:  le capteur PIR peut très bien piloter une LED ou un relais sans l'aide d'un microcontrôleur.   Ce script se veut plutôt un exemple qui pourra servir de point de départ à un projet plus ambitieux.

Yves Pelletier   ( Twitter , Facebook )
Related Posts Plugin for WordPress, Blogger...