jeudi 31 août 2017

Capteur à infrarouge passif (PIR)

Je vous présente aujourd'hui une option fort intéressante pour détecter l'arrivée d'une personne ou d'un animal:  le capteur à infrarouge passif (souvent appelé capteur "PIR" pour "passive infrared").  Ce genre de capteur est typiquement utilisé dans des systèmes d'alarme, ou encore dans des systèmes d'éclairage qui s'allument automatiquement lorsque quelqu'un entre dans la pièce et qui s'éteignent lorsqu'il n'y a plus personne.

Un capteur PIR peut être branché à un Arduino, un Raspberry Pi ou autre mais, pour certaines applications, il est tout à fait possible de l'utiliser de façon autonome sans le moindre microcontrôleur.  Aujourd'hui, je me limiterai volontairement aux caractéristiques du capteur lui-même, et à quelques applications ne nécessitant pas de microcontrôleur.  L'utilisation d'un capteur PIR avec une carte Arduino a déjà été traitée (il y a 5 ans!), et son utilisation avec un Raspberry Pi ou un STM32 Nucleo seront abordées bientôt, dans des articles distincts.

Les capteurs PIR vendus sur internet sont généralement basés sur le modèle proposé par Adafruit, L'élément caractéristique qui permet de reconnaître ce genre de dispositif au premier coup d'oeil est un petit dôme hémisphérique blanc. Au verso de la carte, on remarque un circuit électronique assez complexe (un circuit intégré spécialisé BISS0001, et une assez grande quantité de résistances et de condensateurs).


Un capteur pyroélectrique se trouve sous le dôme (vous pouvez vérifier:  le dôme est amovible). Ce capteur pyroélectrique détecte le rayonnement infrarouge que vous émettez constamment, que vous le vouliez ou non.

Voilà pourquoi on parle de capteur à infrarouge "passif":  le capteur se contente de détecter le rayonnement infrarouge émis par son environnement.  Les capteurs actifs, quant à eux, vont plutôt émettre un rayonnement pour ensuite capter la partie transmise ou réfléchie de ce rayonnement (exemples de capteurs actifs:  une LED infrarouge couplée à un phototransistor, un télémètre Sharp, etc.).

Si vous vous déplacez dans l'environnement du capteur, il en résultera des variations du rayonnement infrarouge détecté.  Le reste du circuit est conçu pour réagir à ce changement.

Le dôme hémisphérique agit comme une lentille qui aide à rediriger le rayonnement infrarouge vers le capteur.  Ça permet de détecter le mouvement sur une distance allant jusqu'à environ 7 mètres, à l'intérieur d'un cône d'environ 120°.

Les connecteurs


Le module PIR comporte 3 connecteurs:

  • GND:  La masse, qu'on branche à la borne négative de la source d'alimentation.
  • OUT:  C'est la sortie du capteur.  Sa tension est nulle lorsqu'aucun mouvement n'est détecté, et elle passe à 3,3 V lorsqu'un mouvement est détecté.
  • +5V:  À brancher à la borne positive de la source d'alimentation.  5 V est l'idéal.  La présence d'un régulateur de tension sur la carte vous permet d'excéder cette valeur (jusqu'à 12 V en principe).  Vous ne pouvez pas utiliser une alimentation de 3,3 V, toutefois.



On peut voir tout de suite à quel point le capteur sera facile à utiliser avec un microcontrôleur:  une sortie de 5 V est disponible sur pratiquement toutes les cartes (même celles qui utilisent un niveau logique de 3,3 V).  Le signal de sortie de 3,3 V est parfaitement adapté au Raspberry Pi, mais est suffisamment élevé pour être correctement traité par l'Arduino Uno.

Les potentiomètres


Le module comporte également deux potentiomètres:  un pour la sensibilité, l'autre pour la durée.



Le potentiomètre de sensibilité (celui de gauche sur la photo ci-dessus) vous permet de modifier l'ampleur du mouvement qui sera nécessaire pour déclencher la sortie du capteur.  On augmente la sensibilité en tournant le potentiomètre dans le sens horaire.  Lorsque la sensibilité est réglée à un niveau élevé, le capteur est en mesure de détecter des mouvement plus subtils, situés plus loin du capteur (sans excéder 7 m environ), mais le risque de "faux positifs" est plus élevé.

Avec le potentiomètre de durée (celui de droite sur la photo), vous contrôlez le temps pendant lequel le signal de sortie du capteur demeurera élevé suite à la détection du mouvement.  Si votre signal est traité par un microcontrôleur, un signal très court est suffisant (ça permettra à votre capteur de se remettre immédiatement aux aguets, pour la détection d'un prochain mouvement).  Mais si le capteur commande directement un système d'éclairage, vous ne voulez peut-être pas que la lampe s'éteigne aussitôt que vous demeurez immobile pendant quelques secondes... Vous augmentez le temps en tournant le potentiomètre dans le sens horaire (à la position maximale, le signal demeure haut pendant quelques minutes).

Cavalier (jumper)

Juste à côté des potentiomètres, on remarque un groupe de 3 connecteurs, dont deux sont reliés par un cavalier (jumper).

La position par défaut du jumper est celle qui est la plus proche du coin (photo de gauche ci-dessous). Dans cette configuration, le signal de sortie demeure stable suite à la détection d'un mouvement.

Si vous déplacez le jumper de façon à l'éloigner du coin (photo de droite ci-dessous), le signal de sortie sera plutôt une succession rapide de signaux hauts et bas (je n'y vois personnellement aucune utilité).



Une LED, pour explorer

Une bonne façon de vérifier  le fonctionnement correct de votre module PIR est de brancher une LED à sa sortie (avec une résistance de protection, bien entendu).





La LED devrait s'allumer lorsque vous bougez devant le capteur, et s'éteindre si vous demeurez immobile, ou si vous vous éloignez à plus de 7 mètres.  Vous pouvez ajuster les potentiomètres à des positions qui conviennent à vos besoins.

Vous avez des enfants turbulents?  Le jeu de la statue les calmera:  ça consiste à demeurer immobile le plus longtemps possible devant le capteur, sans que la petite lumière s'allume...

Éclairage automatique

J'ai fait quelques tests très concluants pour contrôler une lampe (alimentée par le courant secteur) de façon à ce qu'elle s'allume automatiquement quand j'entre dans la pièce, et qu'elle s'éteigne lorsque la pièce est vide depuis plusieurs secondes.

Pour ce faire, j'ai utilisé la prise de courant secteur munie d'un relais que j'avais fabriquée en 2013.

Lorsque le signal de sortie du capteur PIR est haut, le relais devient conducteur et la lampe s'allume.

Évidemment, les projets impliquant les hautes tensions du réseau électrique résidentiel sont toujours dangereux:  si vous n'êtes pas sûrs de ce que vous faites, ne le faites pas!

Photographie automatique

Comme dernier projet aujourd'hui:  une caméra espion qui prend automatiquement une photo lorsqu'elle détecte une présence. Ce projet est souvent proposé avec un Raspberry Pi et son module camera, mais on peut se débrouiller avec pas mal moins de puissance de calcul...

J'ai utilisé un vieil appareil photo bas de gamme dont le bouton déclencheur a été remplacé par un transistor NPN (en 2014, j'avais trafiqué l'appareil photo de cette façon pour faire du time lapse).

Le collecteur et l'émetteur sont soudés de part et d'autre de l'interrupteur, alors que la base est reliée à la sortie du module PIR (insérer une résistance de 4,7 kΩ entre la base du transistor et la sortie du PIR).

Lorsqu'un intrus entre dans la pièce, la sortie du détecteur à infrarouge devient haute, ce qui rend conductrice la jonction collecteur-émetteur du transistor:  une photo est prise, comme si on avait appuyé sur le bouton.


Yves Pelletier   (TwitterFacebook)

samedi 26 août 2017

Modifier les paramètres du module bluetooth HC-06

Comme je l'ai déjà mentionné à quelques occasions, le module HC-06 constitue une façon simple et économique d'établir une communication bluetooth avec un Arduino, un Raspberry Pi, un STM32 Nucleo, un MSP430 Launchpad, etc.

Par défaut, le nom du module (tel que vu par les autres appareils bluetooth placés à proximité) est simplement "HC-06", le mot de passe (numéro d'identification PIN) est "1234" et le baud rate est 9600.

Bonne nouvelle:  chacun de ces trois paramètres peut être modifié au besoin, grâce à des commandes AT.

Au départ, mon module HC-06 comporte les paramètres par défaut.  Ci-dessous, l'écran de ma tablette Android, qui détecte la présence d'un périphérique bluetooth nommé "HC-06".


Pour établir un lien entre mon ordinateur et le HC-06. j'utilise un convertisseur USB/TTL fonctionnant à un niveau logique de 3,3 V.  Ces petits modules très économiques sont utiles pour programmer un ESP8266 ou un Arduino Pro Mini, par exemple.

Si vous ne disposez pas d'un convertisseur USB/TTL, il est possible d'utiliser une carte Arduino comme intermédiaire.  Voici un tutoriel qui vous explique comment faire.



Il faut connecter le HC-06 au convertisseur USB/TTL de la façon suivante:
  • VCC du HC-06 --- 5 V du convertisseur USB/TTL
  • GND du HC-06 --- GND du convertisseur USB/TTL
  • RXD du HC-06 --- TXD du convertisseur USB/TTL
  • TXD du HC-06 --- RXD du convertisseur USB/TTL
J'ai aussi besoin d'un logiciel de communication série comme, par exemple, Putty ou Termite.  J'ai choisi d'utiliser le moniteur série de l'IDE Arduino.  En plus de sélectionner le bon port série et le baud rate actuel de votre HC-06, assurez-vous de régler le moniteur série à "Pas de fin de ligne".


Pour vérifier la connexion, tapez "AT" dans le moniteur série, puis cliquez sur le bouton "Envoyer". Si tout est en règle, vous devriez voir apparaître la réponse "OK".

On peut aussi vérifier quelle est la version du firmware du HC-06, en écrivant "AT+VERSION". Ça m'a retourné "OK", puis "linvorV1.80".

Passons à quelque chose de plus utile.  Vous voulez modifier le nom de votre HC-06?  Il s'agit de taper la commande "AT+NAMEnouveaunom" (où vous remplacez "nouveaunom" par le nom que vous désirez donner à votre HC-06).  J'ai décidé de le renommer "ARDUINO", puisqu'il sera branché à un Arduino.  J'ai donc écrit "AT+NAMEARDDUINO".  Remarquez qu'il n'y a pas d'espace entre la commande AT et le nouveau nom.  Le HC-06 m'a répondu "OK", puis "setname".

Vous voulez modifier le mot de passe (PIN) du HC-06 pour autre chose que "1234"?  Il s'agit d'écrire "AT+PINnouveaucode" en remplaçant "nouveaucode" par un nouveau nombre de 4 chiffres.  J'ai écrit "AT+PIN8888", et ça m'a répondu "OK" et "setPIN".

Finalement, si vous désirez modifier le baud rate, vous écrivez une des commandes suivantes: "AT+BAUD1" (pour une vitesse de 1200 baud),  "AT+BAUD2"(pour une vitesse de 2400 baud), "AT+BAUD3" (4800), "AT+BAUD4" (9600), "AT+BAUD5 (19200), "AT+BAUD6" (38400), "AT+BAUD7" (57600), "AT+BAUD8"(115200), "AT+BAUD9" (230400), "AT+BAUDA" (460800), "AT+BAUDB" (921600) ou "AT+BAUDC" (1382400).

À l'écran du moniteur série, les réponses du HC-06 s'affichent l'une à la suite de l'autre, sans espace ni fin de ligne:



Maintenant, mon appareil Android détecte un périphérique bluetooth nommé "ARDUINO", et j'ai dû utiliser le code "8888" pour autoriser l'appairage.



Yves Pelletier   (TwitterFacebook)

vendredi 18 août 2017

Module bluetooth HC-06 et MSP430 Launchpad (Energia)

Maintenant que nous savons comment utiliser un module bluetooth HC-06 avec Arduino, Nucleo et Raspberry Pi, voyons comment procéder avec un MSP430 Launchpad de Texas Instruments (en utilisant l'IDE Energia, qui permet de programmer le Launchpad en utilisant les mêmes instructions que pour un Arduino).

En plus d'un MSP430 Launchpad  et d'un module HC-06, vous aurez besoin d'un autre dispositif capable de communiquer par Bluetooth comme, par exemple, un smartphone ou une tablette.

Connexion du module HC-06 au Launchpad

Les branchements sont les suivants:

  • VCC du HC-06 :  Vcc du Launchpad
  • GND du HC-06 : GND du Launchpad
  • TXD du HC-06 : P1.1 (RXD) du Launchpad*
  • RXD du HC-06:  P1.2 (TXD) du Launchpad*

* Attention:  j'ai utilisé un Launchpad comportant le microcontrôleur MSP430G2553;  sur d'autres modèles (MSP430G2452), les broches TXD et RXD sont inversées!


Il est indiqué au verso de mon module que l'alimentation doit se situer entre 3,6 V et 6 V. Toutefois, mon module fonctionne très bien avec la sortie 3,3 V du Launchpad.  Si ce n'est pas le cas chez vous, vous pouvez toujours utiliser la sortie 5 V "secrète", située sous le connecteur mini-USB du Launchpad (il faut souder une broche dans le trou TP1).


Aussitôt que le module HC-06 est alimenté, une LED rouge se met à clignoter, ce qui indique l'absence de liaison bluetooth avec un deuxième appareil (une fois cette connexion établie, la LED restera allumée, sans clignoter).

Couplage avec un appareil hôte

S'il s'agit de la première utilisation de ce module HC-06 avec le deuxième appareil (smartphone, tablette, ordinateur) il faut coupler les deux dispositifs.  Voici la procédure pour l'appairage avec un appareil android (c'est similaire si vous utilisez autre chose qu'un appareil android).

Dans Paramètres, Bluetooth, assurez-vous d'abord que Bluetooth est activé.  S'il est alimenté, le module HC-06 devrait figurer dans la liste des appareils disponibles.



Cliquez sur le nom du module. Par défaut, le mot de passe est "1234" (si ce mot de passe ne vous plaît pas, il est possible de le modifier).


Si tout se passe bien, le HC-06 apparaît ensuite dans la liste des périphériques couplés.



À cette étape, la LED rouge du module HC-06 continue de clignoter.  Ce n'est que lorsque la connexion sera établie avec une application de l'appareil android qu'elle demeurera allumée de façon continue.

Appli bluetooth

Il existe tout plein d'applications android permettant la communication bluetooth.  Pour effectuer mes tests, j'ai utilisé avec succès Serial Bluetooth Terminal par Kai Morich, mais plusieurs autres options sont possibles.  Vous pouvez même utiliser l'application réalisée dans cet article au moyen de MIT App Inventor.

Après avoir démarré Serial Bluetooth Terminal, il est important d'établir la communication bluetooth avec le Nucleo en cliquant sur le bouton illustré ci-dessous:


Lorsque la communication est établie, le bouton change de forme, et la LED rouge du module HC-06 cesse de clignoter.

Un exemple de sketch

Le sketch ci-dessous est conçu pour Energia (il pourrait donc être utilisé tel quel avec une carte Arduino).  Il s'agit d'un simple compteur:  le Lauchpad émet des nombres croissants qui, si tout se passe bien, devraient être captés via Bluetooth par l'autre appareil.






Comme exemple de communication bi-directionnelle, vous pouvez utiliser le sketch diffusé dans le billet sur l'utilisation du HC-06 et Arduino:  ce sketch permet d'allumer et éteindre une paire de LEDs branchée au Launchpad grâce à des commandes envoyés par le smartphone.  Bien que conçu pour l'Arduino, il devrait fonctionner tel quel sur Energia.

Yves Pelletier   (TwitterFacebook)


jeudi 10 août 2017

Module bluetooth HC-06 et Raspberry Pi (python)

Comme le titre l'indique, je vous explique aujourd'hui comment brancher un module bluetooth HC-06 à un Raspberry Pi, et comment utiliser le langage python pour envoyer et recevoir des messages au moyen de ce module.

À moins que quelque chose m'échappe, ce tuto ne devrait être d'aucune utilité pour les propriétaires de Raspberry Pi 3 ou de Raspberry Pi Zero W, qui comportent déjà un module bluetooth intégré. J'ai moi-même fait mes tests avec un Rasbperry Pi 1 Modèle B, ainsi qu'avec un Raspberry Pi 2, avec une version à jour de Raspbian (PIXEL) dans les deux cas.

(Le module bluetooth HC-06 peut aussi être utilisé avec une carte Arduino STM32 Nucleo ou MSP430 Launchpad)

Pendant la préparation de cette article, comme c'est souvent le cas avec le Raspberry Pi, je suis tombé sur un tas d'informations désuètes un peu partout sur le web.  Les choses bougent rapidement dans le monde du Raspberry Pi, et les réglages à effectuer sous Raspbian Jessie sont significativement différents de ceux qui devaient être faits dans les précédentes versions de Raspbian.  J'espère donc que les informations de cet article pourront s'avérer utiles avant qu'elles ne deviennent, à leur tour, désuètes!

Connexions

Le module HC-06 est un convertisseur UART/Bluetooth:  ce que le Rasbperry Pi envoie par l'entremise de son transmetteur UART (pin # 8, GPIO 14) sera transmis en bluetooth pour le HC-06, et ce que le HC-06 reçoit par bluetooth est acheminé au Rasbperry Pi par son récepteur UART (pin #10, GPIO 15).

Le module HC-06 doit être alimenté en 5 V même s'il utilise un niveau logique de 3,3 V pour l'échange des données.



  • VCC du HC-06 : Une des sorties 5 V du Raspberry Pi (pin #2, par exemple)
  • GND du HC-06:  Une des pins GND du Rasbperry Pi (pin #6, par exmple)
  • TXD du HC-06:  Pin #10, GPIO 15 du Rasbperry Pi
  • RXD du HC-06:  Pin #8, GPIO 14 du Raspberry Pi

Aussitôt que le module HC-06 est alimenté, une LED rouge se met à clignoter.  Elle restera allumée de façon continue lorsqu'une communication bluetooth sera établie.


Désactivation de la console

Les deux pins UART du Rasbperry Pi peuvent être utilisées comme console Linux, ce qui peut constituer une façon pratique de recueillir des informations lors du démarrage, ou encore d'ouvrir une session sur un Raspberry Pi dépourvu d'un écran et d'un clavier.  Malheureusement, cette fonctionnalité risque d'interférer avec notre propre utilisation du port UART, et nous devrons donc la désactiver.

Pour ce faire, il est possible de modifier manuellement certains fichiers, mais le plus simple est d'utiliser ce bon vieux raspi-config:

sudo raspi-config

On choisit d'abord l'option 5:  Interfacing Options


Puis P6 Serial

Nous refusons la console sur le port série (répondez "non"!):


Mais nous acceptons que le port série soit activé (répondez "oui")




Il faut ensuite redémarrer le Raspberry Pi.


Installation de la bibliothèque pySerial

Si elle ne l'est pas déjà, vous installez la bibliotèque pySerial en écrivant cette commande dans le terminal:

      sudo apt-get install python-serial

Préparation d'un interlocuteur bluetooth

S'il s'agit de la première utilisation de ce module HC-06 avec le deuxième appareil (smartphone, tablette, ordinateur) il faut coupler les deux dispositifs.  Voici la procédure pour l'appairage avec un appareil android (c'est similaire si vous utilisez autre chose qu'un appareil android).

Dans Paramètres, Bluetooth, assurez-vous d'abord que Bluetooth est activé.  S'il est alimenté, le module HC-06 devrait figurer dans la liste des appareils disponibles.



Cliquez sur le nom du module. Le mot de passe par défaut est "1234" (si ce mot de passe ne vous plaît pas, il est possible de le modifier).


Si tout se passe bien, le HC-06 apparaît ensuite dans la liste des périphériques couplés.



À cette étape, la LED rouge du module HC-06 continue de clignoter.  Ce n'est que lorsque la connexion sera établie avec une application de l'appareil android qu'elle demeurera allumée de façon continue.

Appli bluetooth

Il existe un grand nombre d'applications android permettant la communication bluetooth. Pour effectuer mes tests, j'ai utilisé avec succès Serial Bluetooth Terminal par Kai Morich, mais plusieurs autres options sont possibles.  Vous pouvez aussi utiliser l'application réalisée dans cet article au moyen de MIT App Inventor.

Après avoir démarré Serial Bluetooth Terminal, il est important d'établir la communication bluetooth avec le Nucleo en cliquant sur le bouton illustré ci-dessous:


Lorsque la communication est établie, le bouton change de forme, et la LED rouge du module HC-06 cesse de clignoter.


Premier script:  communication unidirectionnelle (compteur)

Ce  premier script permet au Raspberry Pi d'envoyer des nombres croissants par bluetooth.  Ça peut être utile pour vérifier si la connexion fonctionne convenablement.




Le nom "/dev/Serial0" devrait fonctionner pour tous les modèles de Raspberry Pi.  Si ce n'est pas le cas, vous pouvez utiliser "/dev/ttyAMA0" pour les modèles antérieurs au Rasbperry Pi 3, et  "/dev/ttyS0"  pour le Raspberry Pi 3.

Voici ce que ça donne à l'écran de Serial Bluetooth Termibnal:



Deuxième script:  communication bi-directionnelle (contrôle de LEDs)

Ce deuxième script permet d'allumer et éteindre des LEDs branchées au Rasbperry Pi à partir d'un appareil qui supporte bluetooth.



Les connexions du HC-06 n'ont pas changé, mais nous ajoutons une LED à la pin #22 (GPIO 25), et une autre à la pin #24 (GPIO 8).




Les messages que vous pouvez envoyer au Rasbperry Pi sont "a", "b", "c", "d" ou "e". Sur réception d'un de ces messages, le Raspberry Pi allume ou éteint les LEDs selon le protocole pré-établi, puis retourne un message indiquant l'état actuel des deux LEDs.


Yves Pelletier   (TwitterFacebook)

mercredi 2 août 2017

Livre: À la découverte des cartes Nucleo, par Marc Laury


À la découverte des cartes Nucleo
par Marc Laury
Éditions Eyrolles, Collection Serial Makers
280 pages
2017

Saluons avec enthousiasme la parution de ce livre de Marc Laury: trois ans après la mise en marché des premières cartes STM32 Nucleo, les livres qui en parlent sont encore bien rares, et celui-ci, en plus, est en français!  (Du côté anglophone, McGraw-Hill annonce un livre sur le Nucleo par Donald Norris, mais il ne sera disponible que dans quelques mois).

Avant d'entreprendre la lecture de ce livre, je m'attendais à y trouver une bonne part d'informations avec lesquelles j'étais déjà familier, puisque j'utilise assez régulièrement les cartes Nucleo.  Ce ne fut pas le cas:  alors que j'utilise l'IDE en ligne Mbed pour programmer mon Nucleo, Marc Laury préconise plutôt l'utilisation de STM32CubeMX pour la configuration des GPIO, puis de Keil μVision5 pour l'écriture du programme.  Mbed n'est abordé que très brièvement, dans le 18e et dernier chapitre du livre (et une part importante de ces quelques pages explique comment importer un code qui se trouvait sur Mbed pour l'utiliser dans Keil μVision5!).

Première mise en garde, donc:  il ne s'agit pas d'un livre sur la programmation des cartes Nucleo avec mbed.

Deuxième mise en garde: ce livre n'est pas une initiation à la programmation, ni une initiation à la l'électronique.  Tout un tas de livre sur l'Arduino et le Raspberry Pi vont vous expliquer en détail ce qu'est une LED et une boucle "while", car ils supposent vous n'en avez jamais entendu parler auparavant.   Ce n'est pas du tout l'approche de ce livre:   pour être en mesure de bien l'apprécier, vous devriez déjà connaître les bases du C++ et, dans une moindre mesure (puisqu'on utilise exclusivement des shields prêts à l'emploi), quelques bases d'électronique.

Si vous faites partie de ce public cible, le contenu devrait vous plaire:  marches à suivre très détaillées, nombreuses captures d'écran en couleur, par un auteur qui maîtrise très bien son sujet (Marc Laury travaille chez STMicroelectronics depuis deux décennies).

(J'ai peut-être été un tantinet irrité par des répétitions fréquentes d'un chapitre à l'autre.  Par exemple, un variante de la phrase "La compilation via le menu Project and Rebuild all target fils doit donner en bas de l'environnement de développement l'indication 0 Error (s), 0 Warning (s)." apparaît à 22 reprises tout le long du livre.  Le paragraphe "Enfin, connectez la carte Nucleo à l'ordinateur avec un cordon USB, puis lancez la programmation du STM32L152RET6 dans le menu Flash and Download.  La LED LD1 clignote alternativement vert et rouge pendant la programmation, puis se stabilise au rouge une fois la programmation terminée." revient 10 fois.  Je suppose que le livre n'a pas été conçu pour être lu d'une couverture à l'autre.)

Au menu:

Chapitre 1:  un premier chapitre très théorique sur ce qui caractérise les processeurs ARM  Cortex-M (pipeline, architecture RISC, organisation mémoire, etc.) et la famille STM32 en particulier.

Chapitre 2:  description du "hardware" présent sur une carte Nucleo.

Chapitre 3:  L'environnement de développement pour STM32 (STM32 ODE)

Chapitre 4:  Mise au point d'un programme avec Keil μVision5.

Chapître 5:  On fait clignoter une LED...

Chapitre 6:  Port virtuel par USB (communication série entre le Nucleo et l'ordinateur)

Chapitre 7:  Afficheur 7 segments par liaison I2C

Chapitre 8:  Jeu de lumières par liaison SPI

Chapitre 9:  Mesure d'une tension par l'ADC

Chapitre 10:  Capteur de température interne sous l'environnement SW4STM32

Chapitre 11:  Lumière progressive avec un compteur

Chapitre 12:  Interruption par compteur

Chapitre 13:  Alarme par RTC (l'horloge temps réel intégrée du STM32)

Chapitre 14:  Mode faible consommation

Chapitre 15:  Application temps réel (FreeRTOS)

Chapitre 16:  Gestion d'un afficheur TFT

Chapitre 17:  Contrôleur de carte SD

Chapitre 18:  L'environnement de développement MBED

Voici, finalement, un extrait du livre disponible sur le site d'Eyrolles.

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