Publié le 5 août 2018 - par

Arduino, ESP8266 et Python, trois nouveaux livres dans la collection “La Fabrique”

Arduino, Raspberry Pi et ESP8266, Python voilà les sujets traités par ces trois livres sortis en juin et juillet aux Editions ENI, dans la collection LA FABRIQUE, plus particulièrement destinée aux makers. Je vous propose de découvrir le contenu de ces ouvrages qui sont un support incontournable si vous découvrez un de ces sujets.

Trois nouveaux livres aux Editions ENI, dans la collection “LA FABRIQUE”

Les livres ?… c’est dépassé ! Plaidoyer pour le livre 🙂

Peut-être, mais il ne faut pas oublier que la vocation première d’Amazon a été la vente de livres en papier(1995), avant que l’entreprise ne se diversifie. Pour les amoureux du livre, ses avantages sont irremplaçables.
Tout d’abord, le livre est un objet Physique. On peut le soupeser, sentir son odeur, caresser le papier, voir comment il a été imprimé, sa couverture, sa reliure… Franchement une liseuse ne me procure pas les mêmes sensations. Et puis j’aime bien, quand je bricole, avoir mon livre de référence à portée de main, jeter un coup d’œil, vérifier un truc. Quand j’ai démarré la programmation en assembleur, c’était sur Z80 (on ne rigole pas) mon bouquin de prog du Z80 (par Rodnay Zacks) a été mon “compagnon” pendant plusieurs années. Je ne vous dis pas comme il était sale et abimé (en Bourgogne on dit “dégnapé”) mais… je l’ai encore 😉
Le livre trouve sa place sur le rayon d’une bibliothèque. Il vous rappelle que l’auteur a sorti un nouveau livre qu’il faudra acheter, il permet d’ouvrir une discussion avec un ami passé vous voir et qui s’étonne de vous voir lire “ça”.
Le livre permet de se repérer dans l’espace. Quand la liseuse vous dit qu’il reste 25% du livre à dérouler, ce n’est pas la même chose (pour moi) que quand je tiens le livre à la main et que je “sens” et que je “vois” ce que j’ai lu et ce qu’il me reste à lire.
Un livre, on peut le lire partout, sa batterie ne s’use jamais, son écran ne casse pas, il permet de détacher (enfin) le regard d’un écran (vous passez de la télé, au smartphone, à la liseuse…). Vous pouvez déposer votre livre dans une “cabane à livres” ou une “bibliothèque libre” et en reprendre un autre… ou pas ! Vous faites ça avec votre liseuse ?
Vous pouvez aussi prêter le livre à un ami car il n’est pas protégé par des DRM (le livre), et dans 200 ans, 300 ans, vos descendants le retrouveront dans le grenier, un peu jauni et poussiéreux. Mais ils pourront le lire. Tiens dans la caisse ils ont aussi retrouvé votre “Kindle” 😛 ils en font quoi à votre avis ?

source https://www.epopia.com/blog/arguments-livre-papier-numerique/

(c) Epopia

Enfin, le livre peut-être une œuvre d’art parce qu’il a été enrichi de dessins, d’enluminures

Source https://ouiaremakers.com/posts/tutoriel-diy-le-livre-vegetal

(c) La Fabrique éclectique – OuiAreMakers

Mais on peut aussi le sculpter ou le transformer… en jardin miniature !

Vous l’aurez compris, je suis de cette génération pour qui le livre n’est pas un simple objet. C’est le reflet d’une personne, son âme, ses connaissances. Je suis de cette génération qui s’agace quand l’hôtesse de caisse traite le livre comme un simple paquet de biscuits, le scanne et le balance avec les autres courses, au risque de l’abimer, de corner ses pages. Contrairement à celle qui pose précautionneusement le livre de côté, voire le glisse dans un sachet avant de vous le remettre en main propre. On se dit “tiens, elle lit” :)…
J’avoue, j’ai essayé de lire des livres sur une liseuse. Bin l’essai n’a pas été concluant. Allez je ne vous embête plus avec ça ! Ça va encore déclencher des polémiques 😀 Mais bon, c’est mon blog et je profite de cette période calme pour vous dire un peu de ce pense… Vous n’êtes pas obligé(e) de le lire.
On y va, je vais vous parler de ces trois livres qui viennent de sortir dans la même collection que le mien “Raspberry Pi 3 ou Pi Zero“, chacun concerne un domaine de notre monde de “makers”. Je vais vous donner le descriptif “officiel” du livre, et ensuite je vous dirai comment je l’ai perçu. Les voici, par ordre alphabétique.

Arduino : Apprivoisez l’électronique et le codage

Présentation

Arduino Apprivoisez l'électronique et le codage

Ce livre s’adresse aussi bien aux utilisateurs débutants qui souhaitent découvrir le fonctionnement de l’Arduino pour créer des objets intelligents qu’aux utilisateurs confirmés qui souhaitent rafraîchir leurs connaissances ou trouver des idées pour la réalisation de nouveaux projets. Il constituera également un support utile aux enseignants du secondaire pour enseigner l’électricité, l’électronique, la domotique ou le codage ou encore aux makers et amateurs de DIY pour être accompagnés dans les différentes phases de leurs projets.

Tout au long du livre l’auteur s’appuie sur des exemples concrets : gérer des feux de circulation, envoyer un message en morse, créer un appareil enregistrant l’évolution des températures, jouer de la musique avec des bananes, fabriquer une manette de jeu ou un clone du jeu Simon…

Pour commencer, vous ferez connaissance avec le matériel nécessaire, et particulièrement l’Arduino et ses différents modèles, et l’auteur consacre un chapitre aux notions indispensables d’électricité.

Vous découvrirez les principaux langages de programmation de l’Arduino et l’utilisation de l’IDE Arduino sous Windows, Mac OS X, Linux et Android. Vous étudierez également l’environnement de développement Arduino Web Editor, la programmation par blocs (Ardublock, Scratch, Blockly) et un Arduino virtuel (tinkercad.com).

Pour illustrer les principes de base du codage vous travaillerez sur des exemples concrets et vous utiliserez les composants électroniques les plus courants (LED, boutons, résistances, potentiomètres, buzzer) puis des composants et modules plus spécialisés comme les capteurs (analogiques ou numériques), les relais, les moteurs ou des modules d’affichage (à LED ou LCD), de lecture/écriture (RFID, carte SD) ou de gestion du temps (horloge en temps réel).

Dans un chapitre dédié, l’auteur explore différents modes de communication de l’Arduino avec le Raspberry Pi (bus I2C, liaisons série, Bluetooth, radio, infrarouge, Ethernet, Wi-Fi). Il poursuit avec la fabrication d’un clone rudimentaire de l’Arduino à partir d’un microcontrôleur (ATtiny85 ou ATmega328P) et vous fait découvrir les particularités d’autres modèles de cartes électroniques comme l’Arduino Leonardo, l’ESP8266, la WeMos ou la Kitco.

Le dernier chapitre regroupe les principales instructions de l’IDE Arduino permettant de retrouver facilement une fonction pour en vérifier la syntaxe, et les sketchs sont disponibles en ligne.

L’auteur

Jean-Christophe QUETIN possède une formation de base en informatique et a travaillé dans la maintenance informatique et la formation des utilisateurs en lycée, collège et cyberbase. Attiré dès sa jeunesse par la construction de kits électroniques, il est aujourd’hui passionné de tout ce qui touche aux nouvelles technologies. Après avoir découvert le Raspberry Pi, il s’est rapidement tourné vers l’Arduino qu’il expérimente et utilise en milieu scolaire, ce qui lui permet d’écrire un livre 100% efficace sur cette carte électronique.

Mon avis

A l’origine, comme beaucoup de makers, je viens du monde de l’Arduino. J’ai réalisé plusieurs projets à base d’Arduino et même assuré quelques formations sur Arduino 🙂 Du coup ce bouquin m’a intéressé et j’en ai même profité pour faire prendre l’air à deux de mes Arduinos qui s’ennuyaient dans un carton.

Au sommaire, on trouve une description technique de la carte, mais surtout Jean-Christophe balaye toute la famille Arduino, avec les caractéristiques des cartes et des images pour les identifier, avant de discuter des Arduino originaux, des clones compatibles et… des autres.
Vient ensuite une présentation des outils indispensables pour se lancer dans l’aventure. Multimètre, fer à souder, tournevis, pinces… puis quelques shields comme la carte multifonction que j’utilise aussi pour les formations Arduino (ci-dessus à droite).


Suivent une trentaine de pages concernant l’électronique de base : l’électricité (courant, puissance), l’alimentation de l’Arduino, ainsi que les composants habituellement utilisés (breadboard, résistance, potentiomètre, thermistances, LED, condensateurs, buzzer, transistor, relais, moteurs). De quoi démarrer avec un vernis de base qui permettra d’aller plus loin si besoin.

Dans ce chapitre j’ai un peu coincé sur la page 63 et le calcul de l’énergie consommée par l’Arduino où l’auteur semble confondre le courant de sortie maximum de l’alim (2A) avec la consommation de l’Arduino pour le calcul de puissance dissipée. Il y a quelques lignes qui ne sont pas claires… Bon, c’est le seul endroit du livre où j’ai tiqué 🙂

On entre ensuite dans le vif du sujet avec l’installation de l’IDE sous Windows et Linux, et aussi l’utilisation de l’IDE en ligne. Les prolèmes de drivers assez communs sont évoqués ici. Jean-Christophe aborde également rapidement Ardublock, Scratch for Arduino (S4A) et BlocklyDuino avant de présenter un Arduino virtuel, Tinkercad. Viennent ensuite les librairies et le débogage des programmes.

Le premier programme abordé est Blink, qui fait clignoter une LED présente sur la carte. C’est l’occasion de détailler (de décortiquer) un sketch, puis de le modifier. L’auteur introduit ensuite les notions de constantes et de variables, pour un programme de morse sur une LED externe (l’occasion d’utiliser la breadboard). Les programmes vont aller en se compliquant, 2 LED, puis deux feux tricolores permettent d’introduire les conditions et les boucles.


Vient ensuite la lecture d’un bouton poussoir pour un passage piéton, un compteur binaire et la lecture d’une entrée analogique avec un potentiomètre. SUivent la LED RGB et l’encodeur rotatif, le buzzer (avec les tableaux) qu’on remplacera par un haut parleur piloté par un 2N2222. On aboutit à un piano banane, les touches étant remplacées par des fruits. Amusant pour initier des enfants, en plus ça peut faire le 4 heures après les manips 🙂 On termine cette séquence d’initiation avec un jeu de SIMON qui vous permettra de jouer avec un jeu que vous aurez créé !

Le chapitre suivant s’intéresse à des montages plus avancés : Photorésistance, capteurs de température, de distance, PIR, d’humidité, d’inclinaison, magnétique. Viennent ensuite la commande d’un galvanomètre en PWM, d’un relais, d’un moteur CC en direct et via un pont en H, d’un servomoteur et d’un pas à pas. On s’intéresse ensuite aux afficheurs 7 segments, seuls et utilisés avec des registres à décalage, puis à des matrices de LED 8×8 seules pui avec un MAX7219. Toujours dans le domaine de l’affichage vous piloterez un afficheur LCD 2×16 caractères directement ou sur un shield I2C. Vous verrez que l’Arduino peut lire des badges RFID, utiliser une horloge RTC, lire/écrire une carte SD et l’utiliser pour réaliser un enregistreur de température.

Le chapitre sur la communication aborde le dialogue entre Arduino par le bus I2C, en liaison série, en Bluetooth, par radio (433MHz), par infrarouge, par le réseau. Vous verrez par exemple comment accéder à l’Arduino via une page web pour lire une température et piloter des sorties. L’auteur n’a pas oublié le Raspberry Pi. L’Arduino parle avec la framboise très facilement via le port USB.

Pour ceux qui veulent aller plus loin un chapitre explique comment créer votre propre clone d’Arduino, et l’utiliser.
On termine la partie technique sur la console en kit KiCo, le module ESP8266, la carte WeMos-D1R2 et l’Arduino Leonardo.
Le dernier chapitre est un récapitulatif des principales fonctions du langage Arduino, un aide mémoire à garder à proximité de la main.

En résumé : Oui, vous pourrez trouver tout ça sur Internet (c’est ce que j’entends souvent !). Mais entre le temps que vous passerez pour trouver l’info, décortiquer les articles parfois fantaisistes qu’on trouve sur certains blogs, éliminer les pages au contenu inexistant qui ne sont là que pour passer des pubs et vous renvoyer sur une affiliation Amazon ou autre… Vous aurez vite amorti les 34€ de ce livre de 428 pages. Il y a tout ce qu’il faut pour démarrer avec les composants classiques qu’on relie à l’Arduino. Vous avez ici des briques qui fonctionnent et vous permettent de comprendre comment ça fonctionne. Modifiez les selon vos envies. N’ayez pas peur de planter le programme 😀 c’est comme ça qu’on apprend ! Et puis avec toutes ces briques, si vous avez un projet qui n’est pas décrit dans le livre, vous avez les “morceaux” qu’il faut assembler pour construire votre propre application.
Si ce livre vous intéresse : https://www.editions-eni.fr/livre/arduino-apprivoisez-l-electronique-et-le-codage

Raspberry Pi et ESP8266 Domotisez votre habitation

Présentation

Raspberry Pi et ESP8266 Domotisez votre habitation

Ce livre s’adresse à toute personne souhaitant réaliser elle-même une installation domotique à moindre coût pour améliorer le confort de son domicile (gestion de l’énergie, des luminaires…) et le rendre intelligent et connecté. Pour réaliser cette installation, l’auteur s’appuie sur le nano-ordinateur Raspberry Pi et sur le microcontrôleur ESP8266.

Après une introduction générale portant sur les possibilités offertes par une installation domotique, le lecteur découvre un aperçu des compteurs généralement disponibles dans son habitation (eau, électricité, gaz…) et la manière de les rendre communicants. Une liste de capteurs et actionneurs complémentaires, les « organes » de l’installation, est étudiée tout en sensibilisant le lecteur aux erreurs de mesure.

L’auteur détaille ensuite l’installation et la configuration du matériel et des logiciels nécessaires pour la réalisation des premiers projets qui constitueront l’installation domotique. Il poursuit avec l’étude des capacités offertes par un ESP8266 pour piloter les différents dispositifs connectés (possibilités de mesure, d’interaction…).

Des projets plus complexes, tirés de l’expérience personnelle et professionnelle de l’auteur, sont ensuite proposés à l’étude afin d’améliorer le confort de l’occupant et les consommations d’énergie, et de piloter de nombreux actionneurs (ventilateur, électrovanne, lampe LED…).

Un dernier chapitre clos l’ensemble en présentant certaines notions d’électronique et de programmation plus élaborées permettant de fiabiliser les dispositifs et offrant la possibilité au lecteur de personnaliser davantage son installation domotique.

L’auteur

Autodidacte, électronicien amateur et ingénieur « énergéticien », Kévin SARTOR a tiré de sa formation le goût pour l’amélioration de systèmes (énergétiques ou non). Il est aujourd’hui assistant à l’Université de Liège (Belgique) depuis plusieurs années et étudie les unités de cogénération, la biomasse et les réseaux de chaleur. Dans le cadre de son travail et de sa passion pour la domotique, il implémente de nombreux systèmes de mesure et de régulation dont il partage les secrets dans ce livre.

Mon avis

L’idée de ce livre est de vous aider à réaliser votre propre système de domotique (Kevin présente une install de Domoticz, mais on peut imaginer utiliser ces modules avec d’autres box domotiques) Si vous avez quelques notions de programmation et/ou d’électronique, ça sera un plus. Cependant ce livre démarre à un niveau permettant à des débutants de se lancer. Comme l’indique son titre, il met en œuvre notre framboise préférée, avec l’ESP8266. Si vous avez suivi une de mes conférences “Raspberry Pi et maker” je présente la coopération Raspberry Pi = Cerveau et Arduino = muscles. Kevin et moi sommes sur la même longueur d’onde, et c’est l’approche qui a guidé l’écriture de son ouvrage.

On trouve d’abord une description de ce qu’est la domotique, et de ce qu’on peut en attendre. Sont évoquées les possibilités infinies de cette discipline, mais aussi la sécurité, quand il s’agit de protéger un accès, des biens , ou de gérer/surveiller un environnement qui peut se révéler dangereux (détecteurs de fumées, de gaz nocifs, d’incendie…). La gestion et les économies d’énergie et de fluides (eau, gaz) ne sont pas oubliées. L’auteur aborde également la vie privée avec la gestion des données via des services web ou en local. Se pose ensuite la question du choix entre la box domotique “clés en main” et la fabrication maison. Comme toujours on voit que les choix sont étendus et que chacun devra se déterminer en fonction de son propre cahier des charges, de ses préférences, de ses craintes… Le chapitre se termine par une présentation technique rapide des Raspberry Pi et ESP8266 qui seront utilisés par la suite.

Dans le chapitre suivant, Kevin aborde les différents compteurs et actionneurs que vous trouverez en environnement domestique. En préambule une révision des unités, erreur, précision et résolution, un vocabulaire indispensable quand on se lance dans le domaine. Suivent les notions de puissance et d’énergie, ainsi que les compteurs utilisés pour les mesurer. Viennent ensuite les capteurs qu’on rencontre en domotique (ILS , photorésistance, capteur de réflexion, de température, d’humidité, de pression et… tous les autres : ultra-sons, gaz,PIR. Pour les actionneurs on commence par les relais et les transistors avant de s’intéresser aux moteurs (CA, CC, servomoteurs) avant d’aborder le buzzer et les LED.

Le chapitre suivant décrit l’ESP8266 et l’installation de l’IDE nécessaire au développement des programmes (sketch), on passe ensuite au Raspberry Pi (là on est en pays de connaissance), à l’installation de son OS et à sa configuration. L’installation et la configuration de Domoticz est l’étape suivante. On apprend à utiliser Domoticz, à sauvegarder sa configuration, à établir un planning pour automatiser une tâche (par exemple déterminer les plages horaires pour lesquelles la consigne d’un thermostat doit changer)? Vous verrez également ici comment créer des capteurs virtuels dans Domoticz, sur lesquels vous connecterez les projets ESP8266 réalisés par la suite.

On rentre ensuite dans le concret en reliant l’ESP8266 au WiFi et en commençant à communiquer avec Domoticz, installé sur le Raspberry Pi. Les premières mesures seront faites avec un capteur à ultrason, pour déterminer la distance d’un objet, ce qui peut servir à mesurer un niveau dans une cuve d’eau (avec un capteur étanche). Un capteur à ILS permettra de détecter l’ouverture/fermeture d’une porte et bien d’autres choses (on l’utilise par exemple pour mesurer la vitesse du vent). Le projet suivant détecte le clignotement d’une LED. par exemple sur un compteur électrique, la LED clignote pour chaque Wh consommé… Je vous laisse imaginer la suite 🙂 On peut aussi lire un compteur en détectant le changement de réflexion d’une surface (zone noire d’un compteur électrique, demi-lune d’un compteur d’eau etc.) comme le montre le montage suivant. Kevin nous explique également comment mesurer des valeurs analogiques avec l’ESP8266 : tension, courant, résistance (température, lumière…).

Vous mettrez ensuite en communication l’ESP8266 avec des composants utilisant un protocole particulier : DHT22, DS18B20, circuits capteurs I2C. Ce sont ces capteurs qui alimenteront votre centrale Domoticz.  Le chapitre suivant nous emmène dans les secrets du confort domestique et aborde la régulation (tout ou rien, à hystérésis). Un exemple de projet d’arrosage reprend un certain nombre des notions et exemples précédents avec une sonde d’humidité, suivi d’une ventilation automatique pour pièce humide avec un DHT22. On continue par un thermostat connecté, la gestion de l’intensité lumineuse d’un ruban de LED en fonction de la luminosité, la commande d’un servomoteur et d’un buzzer.

Le dernier chapitre apporte des compléments sur la programmation Arduino (écriture du code, variable et fonctions), sur des notions d’électronique (résistance, diode de roue libre, relais statique et électromagnétique). Il propose une solution d’antirebond (logiciel et matériel). On trouve également des infos sur l’ESP8266 (Mise en veille, détermination du port de COM, serveur web et utilisation en IP fixe). L’auteur s’intéresse ensuite au Raspberry Pi (SSH avec Putty, accès depuis l’extérieur et port forwarding) et à l’utilisation de Domoticz avec une application sur un smartphone, et en connexion avec DarkSky pour récupérer des données climatiques.

En résumé : Vu le prix réduit d’un ESP8266 (1 à 2 euros), ce livre (256 pages) vous ouvre les portes du monde de la domotique et de l’ ESP8266 (et de l’Arduino+wifi). Il vous permettra de réaliser des capteurs sans fil à moindre coût et avec toutes les infos pour concocter une installation qui fonctionne (vous pouvez télécharger les programmes). La présentation de Domoticz est suffisante pour démarrer. Elle sert de fil rouge … La configuration des capteurs virtuels (p105) est utilisée plus loin dans le livre, quand vous réalisez les projets avec les différents capteurs et que vous les relierez à Domoticz. Cette centrale domotique mériterait qu’on s’y attarde… Peut être le prochain livre de Kévin ?

Python Libérez le potentiel de votre Raspberry Pi

Présentation

Python Libérez le potentiel de votre Raspberry PiCe livre s’adresse à toute personne qui souhaite disposer d’une synthèse des connaissances du langage Python nécessaires à la prise en main rapide du développement sur le nano-ordinateur Raspberry Pi : passionnés d’électronique ou d’informatique, étudiants et enseignants du cycle secondaire ou de premier cycle de l’enseignement supérieur (DUT, BTS…), FabLabs, etc.

Pour commencer, l’auteur présente les différents outils utilisés tout au long du livre. Il propose un historique du Raspberry Pi puis détaille son système d’exploitation Raspbian ainsi que le langage Python. Il étudie ensuite les éléments essentiels au développement avec le langage Python : les types de variables, les listes, les boucles, les structures conditionnelles. Une part importante est consacrée à la programmation-objet et à la création de code modulaire.

Des chapitres dédiés détaillent l’électronique du Raspberry Pi, l’exploitation de son interface d’entrée-sortie GPIO et de différentes interfaces de communication (Bluetooth, USB…) ou encore la programmation d’une interface graphique avec tkinter. A l’aide d’une application de détection de présence, l’auteur illustre la prise en main de périphériques multimédia avec notamment les modalités audio et vidéo. Enfin, le dernier chapitre est consacré à la programmation système de Raspberry Pi à l’aide de Python.

Les développements proposés dans le livre sont réalisés sur le Raspberry Pi 3 B+ et le Raspberry Pi Zero W. Toutefois, la très grande majorité des exemples est portable sur d’autres versions du nano-ordinateur ou sur d’autres systèmes, comme Linux sur cible PC, grâce à la propriété multiplateforme du langage Python.

L’auteur

Cofondateur et Responsable R&D d’une start-up en lien avec l’Intelligence Artificielle et la vision par ordinateur, Cédric LEMAîTRE est également passionné d’électronique numérique, de domotique et d’informatique. A travers son blog (http://cl-rpi.fr/), il partage volontiers ses connaissances sur les ressources permettant d’exploiter un Raspberry Pi. Ce livre est l’occasion pour lui de pousser plus loin l’expérience et de transmettre son expertise du langage Python et de la série de nano-ordinateurs Raspberry Pi.

Mon avis

Cédric est un pro du Python, qu’il utilise dans ses développements. Pour tout vous dire, on est presque voisins puisqu’il travaille à quelques centaines de mètres de chez moi, ce qui nous a permis des échanges intéressants 🙂
Consacré au Raspberry Pi et à Python, ce livre de 245 pages vous emmène d’abord dans le monde de la framboise. Cédric nous présente tout d’abord la “famille” Raspberry Pi, avant d’expliquer comment installer Raspbian, l’OS classique du RasPi (même s’il y en a bien d’autres). On passe ensuite rapidement à Python avec son histoire et ses versions, puis une présentation de la partie la plus intéressante de Python quand vous développez : les packages et les bibliothèques. Utilisé par des quantités de développeurs, chercheurs et universitaires, Python dispose d’un impressionnante liste de bibliothèques adaptés à toutes les problématiques (calcul scientifique, parallèle, dev web, traitement d’images, du signal, intelligence artificielle etc.)

Python a été élu « meilleur langage 2017 » par IEEE. Il dépasse encore Java et C en termes d’influence en 2018. Ce classement a été élaboré à partir des données collectées sur différentes sources. Ce sont les nombres de requêtes pour Python sur Google Search et les tendances provenant de Google Trends qui le confirment. C’est le best of qu’il faudrait apprendre à maîtriser en 2018. (source Journal du Net)

Cédric présente les outils d’édition et d’exécution des programmes Python (console et outils intégrés) ainsi que les méthodes de débogage puis vous explique comment écrire du code cohérent et homogène. Viennent ensuite les éléments de base du langage : variables et types de données, entiers, flottants, chaîne de caractères et actions sur cette chaîne,  Listes, dictionnaires et tuples. Le chapitre se termine sur un exercice qui vous permet de mettre en œuvre les connaissances que vous venez d’acquérir. Bon, la solution est proposée, mais je vous engage à essayer de réaliser l’exercice, quitte à revenir en arrière sur des notions pas bien assimilées.

Le chapitre “Modularité” parle des fonctions (qui retournent des valeurs, ou pas) et de la programmation orientée objet avec un exemple classique, celui de la voiture, qui permet de bien saisir (à mon avis) le concept d’objet. Vous y découvrirez les constructeurs et les attributs, les méthodes membres. Vous comprendrez comment encapsuler des données, ce qu”est un héritage.
Pour participer à la “modularité” vous verrez comment créer vos propres modules et packages, des briques de base qui vous resserviront dans vos futurs développements.

Le chapitre suivant traite du GPIO et vous donne accès à l’extérieur du Raspberry Pi. Les E/S et le port I2C sont abordés, suivis par l’interfaçage d’un classique BME280, capteur de pression, température et humidité. Il vous explique comment exploiter la DataSheet (feuille de caractéristiques) du composant pour écrire un programme. Vous apprendrez ensuite comment communiquer via le port USB (ici pour communiquer avec un STM32) et le Bluetooth avec un nRF52832 sur lequel est connecté un capteur inertiel (accéléomètre, gyroscope…).

Pour stocker et utiliser vos données, vous apprendrez comment lire et écrire dans les fichier, utiliser des CSV (sans puis avec Pandas). La base de données MySQL vient ensuite, avec les opérations possibles sur la BDD. Enfin avec MatPlotLib vous pourrez afficher graphiquement vos données.

Pour agrémenter vos interfaces, vous apprendrez à créer des fenêtres avec tkinter, y ajouter boutons, zones de texte, boutons radio, listes déroulantes…

Le multimédia est ensuite abordé, avec l’acquisition d’un signal audio et l’utilisation d’alsa depuis Python, la compression du signal. Le traitement d’image à partir de la caméra officielle vous montre comment acquérir les images et manipuler leur contenu en Python (détection de régions, reconnaissance d’objets, amélioration d’image…). On est ici dans le domaine de prédilection de Cédric 🙂

On termine par l’utilisation de Python pour des commandes systèmes, et enfin les méthodes de test des programmes.

En résumé : Le public cible de ce livre est large des makers et fablab aux élèves/enseignants de tous niveaux. On retrouve dans ce livre les bases pour démarrer la programmation en Python avec  des exemples (dont les sources sont disponibles en ligne) permettant de vérifier l’acquisition du “minimum vital”. Les exemples concrets de traitement d’image et de son permettent de se lancer dans ce domaine pas toujours facile à aborder pour un maker. Pour ma part je suis en train de plancher sur le chapitre tkinter qui va me permettre (je pense et l’espère) de développer une interface sympa pour une appli avec l’écran HyperPixel que je vous ai présenté récemment.

Conclusion

Chacun dans son domaine, ces trois ouvrages vous ouvrent les portes de mondes immenses. Mon collègue Jean-Pierre a l’habitude de dire qu’en informatique, quand on ouvre une porte, il y en 10 autres derrière… et ainsi de suite 🙂 Ici vous avez la clé pour les premières portes en Arduino, Domotique et Python ! Après… il vous reste du chemin à parcourir et de nombreuses portes à ouvrir, mais vous aurez fait un premier pas !

Bien entendu si vous avez utilisé un de ces livres, n’hésitez pas à faire part de votre avis dans les commentaires ci-dessous.

Sources

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

21 réflexions au sujet de « Arduino, ESP8266 et Python, trois nouveaux livres dans la collection “La Fabrique” »

  1. Jean Christophe

    Merci François pour tes remarques constructives concernant mon livre. Je suis un lecteur régulier de ton blog et c’est d’ailleurs grâce à toi que je me suis lancé, il y un peu plus d’un an dans l’écriture de ce livre sur l’Arduino.
    Concernant la page 63 (où tu as un peu coincé), je reconnais que ce passage manque quelque peu de clarté. En fait, j’ai voulu comparer 2 alimentations de 2A (7V et 12V) et montrer que celle de 7V était préférable car elle sollicite moins le régulateur de l’Arduino ce qui laisse plus de puissance disponible pour alimenter d’autres composants (ou modules).
    Mais ce n’est qu’un détail, j’espère surtout que vous aurez du plaisir à découvrir et à vous amuser en explorant les nombreuses possibilités qu’offre l’Arduino (qui est plutôt complémentaire avec le Raspberry).
    Si vous avez d’autres questions ou remarques, je reste à votre disposition pour y répondre.
    Bonne lecture à tous
    Merci pour ton article et bonne continuation
    JC

    Répondre
  2. Denis Brion

    Concernant le premier livre , dédié à Arduino -et en français- :

    Il a l’air bien mieux que la presentation qui en est faite.
    En effet, l’influence de la tension d’alimentation (et de ses variations) est rectifiée en commentaire (je suppose que le rendement d’une alim d’arduino alimenté en 7v est meilleur que si il est alimenté en 12 v, avec les LDO; je ne sais pas ce que l’ampérage a à y faire) A noter que certains clones d’arduino sont alimentés par une alim à découpage, évitant de se préoccupper de rendement et de refroidissement.

    J’avais été horrifié en lisant qu’il faisait clignoter une LEd avec un délai bloquant. En fait, l’examen de la table des matières semble indiquer que la notion de “systicks” -chez les arms, une horloge leur est dédiée, IITC – est introduite, permettant de piloter plusieurs appareils à la fois…

    Malgré la qualité indéniable du livre (du moins, de son ossature et des lambeaux qu’on peut consulter librement), je me suis aprerçu que j’avais déjà presque tout exploré, grâce au Net et au mode d’emploi en ligne : faut il le vilipender sans nuances, alors que, avec un faible effort de filtrage, on peut exploiter avec profit les sites officiels d’Arduino, ses fora, wikipedia et stackoverflow (je ne cite pas des sites d’ahuris).

    Le second livre m’a agréablement surpris :

    le prix des espxx est alléchant (ce qui confirme les npuvelles d’Hackable Magazine), et les codes que j’ai pu télécharger sont, pour certains, bien écrits (ce qui fait une différence avec un autre livre d’ENI : dans une présentation calamiteuse -au début de cette année dans ce site! – d’un de ces livres, des copies de code (de qualité , disons, médiocre) étaient brandies; e, m’en tenant aux bases :

    a) le dérebondisseur est bien programmé : sa ligne à protéger contre les boutons jouant au trampoline est déclée constante, ce qui est propre. Cette programmation défensive (déclarer en constante un numéro de ligne protège un tout petit peu contre les fautes de frappe lors d’évolution de code) me semble nécessaire. On peut être indulgent quand ce type de programmation n’est pas appliqué systématiquement….

    2.b) dans le chapitre 4, les fichiers en télechargement suivants sont des binaires : DS18B20.ino, DHT22.ino, Impulsions.ino, Mesure_tension.ino (excusez du peu) …. C’est inquiétant pour la qualité de la relecture chez ENI (un auteur peut être distrait; un éditeur peut s’efforcer de ne pas infliger des distractions au lecteur …. ou pas)

    Malgré ces quelques défauts, le sujet -que je ne connais pas- de l’ESPxxx est suffisamment interessant pur que je me laisse tenter, d’autant plus q’à la consultation du plan, l’ossature du livre me paraît riche et saine.

    Le dernier livre, dédié à Python,

    est fortement desservi par une gueguerre de langages qui ne peut sue déconcenter le lecteur à la recherche d’emplettes : certes, python a gagné la coupe du monde des langages, pour un an (s’il la perd l’an prochain, sera-til subitement mauvais); mais il peut être plus interessant de se concentrer sur C++ (ça sert à programmer des Arduini et, couplé à opencv, à faire du traitement d’images : learnopencv dot com offre un code python et un code c++ ayant les meêmes fonctionnalités, pour chaque cours en ligne -et je préfère c++ : les ligatures python 3.x sont bien ennuyeuses à installer sur nanoPi , un octocore, c’est pire sur un RPi, IIRC-. De plus, depuis le temps que python existe et est populaire, les cous prolifèrent, aussi bien sur le net que sur cellulose.
    Par ailleurs, java -qui n’a pas gagné la coupe du monde des logiciels- sert de base à processing, dont des binaires installables -testés sur nanoPi- sont disponibles pour arm (ça devrait interesser d’autant plus les utilisateurs de RPi que processing est très proche de l’arduino, et est parfois utilisé par Hackablemagazine , en sources- des vraies sources!- disponibles….
    Je pourrais peut être me laisser tenter par le traiement di çon, où je suis ignare.

    Répondre
  3. Jean Christophe

    Je te remercie pour ton point de vue, mais il ne faut pas oublier que le livre sur l’Arduino s’adresse aussi bien aux débutants qu’aux utilisateurs plus avancés. Il est donc indispensable de commencer par le programme Blink (qui est considéré comme le “Hello World” de l’Arduino).
    Ce programme est effectivement basé sur un clignotement de LED qui utilise la fonction delay (qui met le programme en pause pendant un certain temps). Mais c’est un passage obligé pour tout utilisateur de l’Arduino. Je pense que c’est certainement le 1er sketch que tu as téléversé sur ton Arduino. Évidement le livre ne s’arrête pas là, il explique aussi comment contourner le problème.
    Autrement, c’est vrai que l’on peut trouver des infos sur l’Arduino sur Internet, mais dans ce livre, tout est regroupé avec une logique et une progression. Le code et les branchements sont détaillés et ont été testés…
    Après, si tu connais déjà tout ça, c’est vrai que tu n’as peut être pas besoin de ce livre, mais si tu veux qu’on en discute, tu devrais quand même le lire, cela te donnerait une vision plus claire de son contenu.

    Répondre
    1. Denis Brion

      Mon point de vue était une réaction à une revue parasitée (le terme est faible) par des généralités sur la gueguerre entre le livre et le Net (alors qu’un bon livre peut lier en annexe à des infos sur le net, si l’auteur pense que le site sera assez pérenne et donnera toujours des infos à jour) et la gueguerre, totalement ridicule à mon avis, sur les langages.
      J’ai pu constater, à la lecture du plan, que
      a) le livre était structuré
      b) qu’il ne se contentait pas de présenter des délais bloquants, mais faisait usage de millis() -sinon, un débutant ne pourrait pas avoir un automate qui semble faire plusieurs choses à la fois.

      Vous pouvez constater que j’ai du regarder des bouts de livres en accès libre , (je n’ai pas le temps de regarder des bouts de code, ayant déjà fait l’essentiel du plan depuis des années (j’ai regardé pour les autres livres).

      Je trouve cependant la logique suivante bien étrange :

      a) je me méfie beaucoup d’ENI (pour un autre livre, des sources offerts en téléchargement sont en fait … des binaires : un éditeur reponsable verifierait que ce qu’il met sur le site est conforme à ce qu’il a annoncé). J’ai vu dans ce même blog des horreurs liées à ENI.

      b) la revue que j’ai lue est mauvaise (trop de gueguerres déconcentrant le lecteur : n’analyse pas assez le contenu, ce qui devrait être le sujet – conformité au titre du billet-.
      J’ai donc été obligé de regarder des bouts de ce pour quoi on fait la réclame/ ce qu’on analyse, ce qui est un échec de l’analyse de ce billet….

      c) le remède que vous proposez consiste à acheter,un livre dont, à la vue de la table des matières, je peux me passer (pour un débutant, il est vraisemblable que ce livre soit moins cher que la collection complète d’Hackable Magazine -pour Arduino, D.Bodor avait réussi, dans les premiers numéros, à introduire progressivement les notions essentielles -, ceci chez un éditeur bien léger -sans préjuger de la qualité ou de l’interet d’un livre dans son catalogue.

      Doit on pénaliser le client potentiel par la mauvaise qualité d’un éditeur et d’une revue/analyse?

      Répondre
  4. le roux stephane

    bonjour,
    suite a cet article, j ai fait l acquisition de 2 des livres :
    – arduino. apprivoisez l electronique et le codage.
    – raspberry et esp8266

    je voulais faire un premier retour d experience sur le livre arduino (j en suis que a la page 166…)

    avant de passer au concret, je voulais preciser que je n ai aucune experience dans ce domaine, si ce n est une formation scolaire electronique Bac/Dut datant de 1998 dont j ai conserver tres peu de souvenirs…
    j ai evolué depuis dans le domaine de la protection des données (sauvegarde/stockage) au sein de SSII francaises spécialisées.
    =======================
    je suis satisfait de mon achat.
    =======================
    c est mon premier livre “technique”.
    cependant, quelques remarques qui auraient pu le rendre meilleur, et donc qq deceptions :

    1/ la prise jack (Chapitre 4 p63)
    je suis resté bloqué sur les calculs d alimentation et de dissipation… il manque de la precision et de la clarté dans la démonstration du choix d une alimentation externe 7-12V

    NB: j ai lu la reponse plus haut dans un post precedent.

    2/ LED externe (Chapitre 6 p129)
    le choix de la resistance en serie avec la LED (220 ou 330 ohms) n est pas justifié… l auteur indique que la LED a une tension d entree de 1,2V… sans plus de précisions.
    apres recherche, elle est relative a la tension des sorties analogiques (5V), et de l intensité délivrée…
    une LED a besoin de 10 a 20mA selon la luminosité désirée.
    la demonstration complete aurait été la suivante : R = 5V – 1,2V / 0,01A soit 380 ohms (190 ohms minimum pour obtenir un courant de 20mA).
    cependant, des blogs plus specialisés indiquent plutot une tension d entree de 2V pour une LED classique (elle varie legerement selon la couleur de la LED).
    donc, en realité, la valeur de la resistance serait plutot comprise entre 150 et 300 ohms selon l intensité.

    3/ programme SOS (Chapitre 6 p137/138)
    il y a une erreur de logique dans le programme SOS.
    a l avant derniere ligne, on trouve :
    delay (5*FINDEMOT);
    bien sur, le programme fonctionne qd mm. cependant, on aurait du trouver:
    delay (FINDEMOT); // ou (5*DUREEPOINT)

    4/ fonction switch (Ch 6 p154/155)
    exemple typique d un copier/coller a la va-vite :
    case -1: // si x est egal a 1, alors…

    c est embetant car dans cet exemple, c est la variable lum qui est testé pour determiner si sa valeur est a -1…
    il n y a pas de variable x, et on ne teste pas si sa valeur est a 1…
    de plus, on remarque qu au niveau de la mise en forme, il manque l espace entre -1 et ;

    5/ operateurs logiques Boolean
    ici, c est un exemple typique des defauts de francisation de termes qui sont plus compréhensibles quand ils restent en anglais :
    ET && => AND
    OU || => OR
    NON ! => NOT
    la traduction de NOT n est pas NON… c est un detail,

    6/ liste des fotes d ortografe :
    p149 exepté….

    c est toujours tres frustant de trouver des erreurs ou des fautes d orthographe dans un livre papier… cela demontre la mediocrité des relecteurs/correcteurs et du manque d exigences des editeurs.

    je ne critique pas specialement l auteur car j ai bcp de respect pour ce travail didactique, la methode et les recherches necessaires a un tel ouvrage.

    désolé, je sais que je suis un perfectionniste, mais ma demarche est “honnete”. elle est aussi plus complete que les retours precedents.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Stéphane
      je vois que vous avez pu poster (enfin) votre commentaire, merci d’avoir insisté.
      Je laisserai l’auteur répondre à vos remarques.
      Juste deux choses : le calcul des résistances pour les LED est toujours, comment dire ? à la louche. Si les grandes familles de LED (par couleur) ont “à peu près ” la même tension directe, ce n’est jamais hyper précis. Du coup, pour ma part, si le calcul donne 300 ohm comme résistance à utiliser… je prends ce que je trouve en premier dans la boite, de 220 à 470 et… ça fonctionne
      J’ai mis ce calculateur de résistance sur le blog, jetez y un coup d’oeil et dites moi ce que vous en pensez : https://www.framboise314.fr/scratch-raspberry-pi-composants/resistance/#Calculateur_de_pont_diviseur
      La deuxième chose concerne les erreurs et fautes dans le livre. Mes livres sont aussi édités chez ENI, et pour avoir publié auparavant dans des revues, je peux vous assurer du sérieux de l’éditeur. J’ai également constaté qu’après avoir personnellement relu le manuscrit, puis l’avoir fait relire par une personne “neutre”, et enfin après relecture par le correcteur de l’éditeur, il subsiste quand même toujours quelques fautes. Et pourtant je vous assure que les correcteurs qui ont relu mes livres (je ne les connais absolument pas) n’étaient pas tendres 🙂 aussi bien côté technique que côté grammaire et orthographe, compréhension des phrases etc.
      comme quoi ce n’est pas simple de sortir un produit parfait, même en s’appliquant.
      Merci encore pour votre message et n’hésitez pas à intervenir si vous le souhaitez
      cordialement
      François

      Répondre
      1. Denis Brion

        Il est normal que les correcteurs soient anonymes (dans certains domaines, ils pourraient être soumis à des pressions invraisemblables -même si dans des domaines spécialisés, le milieu est tellement fermé que l’on peut subodorer le nom d’un correcteur du style de ses lettres anonymes).
        Le critère de choix d’un (ou plusieurs) correcteurs n’est certainement
        *** pas la tendresse (valable pour des bouts de bidoche) mais,
        ***soit une grande compétence en pédagogie,
        *** soit une grande compétence en électronique,
        ***soit une grande compétence en informatique -dans le sujet qui nous interesse-.
        Ceci devrait, dans un monde parfait, être joint à un peu de temps et une capacité de …. lire (et pas en diagonale : je comptais 3 lectures, une pour expurger le français, une autre pour chercher des incohérences internes et une dernière pour chercher des approximations/innovations/horreurs par rapport à ce que je savais a priori- et j’étais bien content qu’il y ait un autre relecteur : c’était un domaine hors électronique et hors informatique).

        Manifestement ENI n’a pas deux relecteurs (ou alors, ils ont accablés de travail (se tenir au courant…) ou -incl- payés au lance pierre). Je serais surpris qu’une perle rare combine des talents pédagogiques, une connaissance approfondie de C++ et de l’électronique .
        Je m’en suis aperçu en début d’année, avec des copies -dans ce site, ce qui est ironique- de quelques pages, censées leur faire de la pub…. (et depuis, je suis très méfiant)

        Hackable Magazine a aussi un seul correcteur , qui s’en tient aux fautes d’orthographe avec des résultats ….spectaculaires entre les premiers numéros et les numéros actuels. Le rédacteur en chef/principal auteur arrive à éviter des incohérences internes et avec l’état actuel de la science/technologie, ce avec des contraintes de temps que n’a pas un éditeur de livres. Mais c’est beaucoup plus cher (les premiers numéros de HM étaient très pédagogiques et m’ont beaucoup appris, en ce qui concerne l’Arduino)que ENI (traite de plusieurs contenus)

        Quant aux fotes de français : alors que 90% de la doc actuelle est en anglais/omericoin, et qu’elle risque d’être en cantonais/mandarin d’ici 20 ans -ce qui va poser un blème aux jeunes…. est il plus utile d’apprendre le chinois ou de maîtriser la structure d’un microcontrôleur- , je ne m’énerve pas trop sur ce point.

        Répondre
  5. Jean-Christophe

    Bonjour Stéphane,
    Je vous remercie d’avoir acheté mon livre et d’avoir pris le temps de nous donner votre avis. Vos remarques sont très intéressantes et je vais tenter de vous répondre :

    1) la prise jack (Chapitre 4 p63)
    J’ai déjà répondu sur ce point, il faut surtout retenir que l’Arduino est plutôt tolèrent en matière d’alimentation par son prise Jack (entre 7 et 12V), car il possède un régulateur. Cela permet d’utiliser facilement un vieux transformateur de récupération (à condition qu’il respecte la polarité).

    2) LED externe (Chapitre 6 p129)
    Vous avez tout à fait raison, la tension maximum des LED est effectivement comprise entre 1,6 et 3,2 V (cela dépend de la couleur). Mais n’oubliez pas qu’il s’agit, dans cet exemple de faire simplement clignoter une LED à intervalle précis. Il n’est pas donc pas indispensable de calculer avec précision pour chaque type de LED la tension maximum qu’elle peut supporter (comme dans un exercice scolaire). J’ai conseillé d’utiliser une résistance de 220 ou de 330 Ω parce qu’il s’agit de valeurs générales. Ce sont les plus couramment utilisées car elles permettent de protéger tout type de LED sans avoir à se soucier sa couleur. C’est une fourchette et je suis d’accord avec François quand il dit que ces valeurs sont un peu “à la louche”. Le lecteur débutant ne doit pas avoir peur d’utiliser une de ces résistances (en fonction de ce qu’il possède chez lui) et même s’il se risque à utiliser une valeur assez proche (180 ou 390 Ω) cela ne changera pas fondamentalement le résultat final (faire du Morse avec une LED).

    Ensuite quand j’écris dans le paragraphe suivant (destinée à expliquer pourquoi il faut ajouter une résistance en série) : “la plupart des LED ont besoin d’environ 1.2 volt pour fonctionner”. La tension indiquée doit être considérée comme la valeur minimale qui permet d’allumer tout type de LED, avec une petite marge de sécurité. D’ailleurs, vos calculs donnent une fourchette variant de 190 à 380 Ω. Ce qui n’est pas très éloigné de ce que je conseille (220 à 330 Ω).

    Le livre aborde quelques notions d’électricité indispensables, mais ce n’est pas le sujet principal. Il ne faut pas perdre de vue que l’exemple que vous citez est tiré d’un des premiers branchements. L’exercice est destiné à apprendre (à un débutant) comment brancher une LED à l’Arduino sans risquer de détériorer son matériel (ou que la lumière soit imperceptible). Mais, l’objectif est également d’étudier le code qui permet de composer un message en Morse.

    Mais je comprends parfaitement que vos connaissances en électricité (compte tenu de votre formation de base) vous poussent à aller plus loin. Dans ce cas, rien ne vous interdit de calculer (et d’expérimenter) la valeur optimal pour allumer chaque type de LED. L’objectif de ce livre n’est pas de vous limiter en vous obligeant à suivant à la lettre les exemples fournis. Bien au contraire, je vous encourage à sortir des chemins battus pour tester, modifier et améliorer les schémas proposés. Puis, lorsque vous serez plus à l’aise, vous pourrez créer vos propres schémas (et éventuellement les partager).

    3) Programme SOS (Chapitre 6 p137/138)
    C’est vrai, il s’agit là d’une erreur qui fait passer la pause entre chaque exécution du programme de 2,5 secondes à 12,5. Je précise que j’ai pourtant testé (et débogué) tous programmes présentés dans le livre, mais cette erreur m’a quand même échappé (certainement parce cela n’empêche pas vraiment le fonctionnement du programme, comme vous le précisez, vous même).

    4) Fonction switch (Ch 6 p154/155)
    Vous avez raison, il y a 2 erreurs concernant le commentaire de cette ligne (que l’on retrouvent aussi à la page suivante, à cause du piège du copier/coller). Heureusement cette fois encore, cela n’affecte pas directement le fonctionnement du programme, puisse que l’Arduino ne tient pas compte des commentaires mais ce n’est pas une excuse car cela nuit à la compréhension du programme.

    5) Opérateurs logiques Boolean
    Effectivement, il serait plus juste de traduire “NOT” par “PAS”

    6) Liste des fotes d ortografe : “p149 exepté”
    Oui, cette vilaine petite faute a lâchement réussi à tromper ma vigilance, mais aussi celle de mes correcteurs d’orthographes :
    – Informatique (mon traitement de texte qui souligne les fautes en rouge),
    – Humains (ma femme, qui est professeur de français et le relecteur de l’éditeur ENI).
    Je vous félicite de l’avoir débusquée…

    En conclusion, je suis vraiment désolé que ces erreurs aient pu subsister jusqu’à l’impression du livre (malgré de nombreuses lectures et relectures du manuscrits). Je suis moi aussi plutôt perfectionniste et j’ai veillé à apporter un maximum de soin à ce livre (que ce soit sur la forme ou sur le fond). Cela ne reflète pas non plus un manque de sérieux de la part de l’éditeur. Comme l’a fait remarqué François le relecteur de ENI n’a pas été négligeant.
    Mais, ne laissez pas tout cela gâcher la découverte de ce formidable objet qu’est l’Arduino. C’est vraiment un outil merveilleux qui permet faire énormément de choses. Et mon livre, (même s’il n’est pas parfait) est là pour vous guider et vous accompagner…

    Répondre
  6. LE ROUX stephane

    merci Jean-Christophe pour votre reponse.

    malheureusement, j ai encore quelques remarques :

    6/ clignotement sans blocage (ch6 p168)
    “affichage du resultat de la fonction micro toutes les secondes.”
    => la fonction micros prends un s…

    7/ utilisation potentiomètre (ch6 p176)
    => le schema tinkercad presente une anomalie : les 2 extrémités du potentiometre sont reliées a la masse GND. une d entre elles devrait etre relié au +5V….
    => un commentaire du programme est erroné :
    l entree analogique utilisée est A0, et le commentaire pour la variable “lum” mentionne A2…
    => il manque une information pour la comprehension du programme potentiomètre avec la division par 4 : la lecture de la tension avec analogRead est codée sur 10bits, et l information renvoyée pour allumé la LED avec analogWrite est convertie sur 8bits… pourquoi ?

    Répondre
    1. Jean Christophe

      6 bis) Vous avez raison, c’est l’abréviation de microsecondes

      7) C’est vrai, il y a une erreur dans le schéma et aussi dans le commentaire

      Ouf, enfin une vraie question…
      Pourquoi doit-on convertir la valeur retournée dans le potentiomètre qui est en 10 bits en une valeur exprimée en 8 bits ?
      En fait, il faut s’adapter aux caractéristiques techniques du microcontrôleur.
      L’ATmega328 (qui équipe l’Arduino Uno) dispose pour les entrées analogiques (A0, A1, A2, A3, A4 ou A5) d’une résolution de 10 bits (de 0 à 1023), voir page 174.
      Mais les sorties analogiques (PWM ou MLI) possèdent seulement une résolution de 8 bits (de 0 à 255), voir page 146.
      C’est pourquoi, il n’est pas possible d’utiliser directement sur la sortie analogique, la valeur retournée par le potentiomètre à l’entrée analogique. Il faut donc la convertir en gardant la même proportion avec une règle de trois.
      Dans cet exemple, la perte de résolution ne pose pas de problèmes car l’œil humain n’est déjà pas capable de percevoir toutes les nuances de la variation de luminosité de la LED en 8 bits, alors une résolution 10 bits n’apporterait rien de plus. Toutefois si vous avez besoin pour votre projet qu’une résolution plus importante, il faudra vous tourner vers un autre modèle d’Arduino, comme les Arduino Zero, Due ou MKR (que je ne possède pas et qui sont seulement évoqués dans le livre page 404).

      Répondre
  7. LE ROUX stephane

    merci 😉
    une autre remarque….

    7bis/ toujours sur le programme potentiometre…

    parce que je n aime pas la division par 4, j ai voulu utilisé la formule complete en commentaire pour la variable “lum”, cad:
    int lum = analogRead(A0)*256/1024;

    => cela ne donne pas le resultat attendu…
    maintenant que je sais utilisé le moniteur serie, j ai pu essayer de decomposer et de retourner les valeurs pour comprendre ce phenomene mystique.

    je pensais bien a un probleme de type de variable, et de debordement, mais je tournais en rond depuis 24h… et je ne pouvais pas abandonner sans trouver la solution…
    ma solution n est peut etre pas optimisé mais je n ai pas trouver mieux avec mon niveau de connaissance actuel :
    int lum=float(long(analogRead(A0))*256)/1024;

    mais cela fonctionne !!!

    Répondre
    1. Jean Christophe

      Alors, les variables de type “int” n’acceptent que des entiers compris entre -32768 et +32768 (voir page 132). Si vous écrivez le code sous cette forme, vous aurez effectivement un dépassement (et des résultats un peu surprenants) :
      int lum = analogRead(A0)
      lum = lum*256;
      lum = lum/1024;
      analogWrite(LEDROUGE, lum);

      Pour résoudre le problème, il suffit d’utiliser un autre type de variable, comme par exemple “long”, voila un exemple de code utilisant le moniteur série :

      // Potentiometre
      const int POTENTIOMETRE = A0; // Le potentiomètre
      const int LEDROUGE = 9; // La LED rouge est reliée à la pin 9
      void setup() {
      pinMode(POTENTIOMETRE, INPUT);
      pinMode(LEDROUGE, OUTPUT); // La LED rouge est une sortie
      Serial.begin(9600);
      }
      void loop() {
      // Conversion de la valeur de l’entrée (de 0 à 1023)
      // en une valeur de sortie (de 0 à 255)
      //int lum = analogRead(A0)/4;
      long lum = analogRead(A0);
      lum = lum*256;
      Serial.print(lum);
      Serial.print(” “);
      lum = lum/1024;
      Serial.println(lum);
      analogWrite(LEDROUGE, lum);
      delay(50);
      }

      Cela dit, je viens de tester le code suivant (sur un Arduino Uno) et je n’ai pas rencontré de problèmes (essayez chez vous et dites moi si ça fonctionne…)

      // Potentiometre
      const int POTENTIOMETRE = A0; // Le potentiomètre
      const int LEDROUGE = 9; // La LED rouge est reliée à la pin 9
      void setup() {
      pinMode(POTENTIOMETRE, INPUT);
      pinMode(LEDROUGE, OUTPUT); // La LED rouge est une sortie
      Serial.begin(9600);
      }
      void loop() {
      // Conversion de la valeur de l’entrée (de 0 à 1023)
      // en une valeur de sortie (de 0 à 255)
      //int lum = analogRead(A0)/4;
      int lum = analogRead(A0)*256/1024;
      Serial.println(lum);
      analogWrite(LEDROUGE, lum);
      delay(50);
      }

      Répondre
  8. LE ROUX stephane

    non cela fonctionne pas correctement dans ma simulation.
    pour situer le contexte, j utilise tinkercad avec un arduino uno virtuel.

    avec la formule : int lum=analogRead(A0)*256/1024;

    cela fonctionne uniquement pour les valeurs du potentiometre <127;
    des que la valeur du potentiometre est superieur a 128, la valeur de lum est incorrecte; j obtiens alternativement des nombres negatifs, des nombres positifs incorrects, des 0 et des -1…
    il y a t il des bug dans l utilisation de l arduino virtuel, ou des limitations differentes par rapport a un arduino physique ?

    pour que la formule fonctionne avec toutes les valeurs du potentiometre (11022), je dois modifier la formule par celle que j ai indiqué précédemment :
    int lum=float(long(analogRead(A0))*256)/1024;

    pourquoi obtenons nous des resultats si differents ?

    Répondre
  9. LE ROUX stephane

    toutes les valeurs numeriques du potentiometre (1 a 1022).
    d ailleurs, 128*256=32768 soit la valeur max d une constante de type int.
    cela me semble donc logique, et je ne pense pas qu il s agisse d un bug…

    Répondre
  10. LE ROUX stephane

    je continu…. 🙁

    8/ encodeur rotatif (ch6 p179/180)
    => le schema tinkercad utilise un encodeur rotatif a 3 broches (2 boutons).
    dans le programme de la page suivante, les 2 boutons sont declarés avec les resistances Pull-Up interne des entrees numeriques 2 et 3.
    or, le commentaire indique :
    //INPUT (sans pull-up interne)

    plus bas, quand l état des 2 boutons est testé pour determiner le sens de rotation, la condition if du bouton2 ajoute 1 a la variable compteur (incrementation)
    dans le cas contraire, else, on soustrait 1 a la variable compteur.
    contrairement au commentaire, on appelle cette opération arithmétique une décrémentation….

    Répondre
  11. LE ROUX stephane

    ceci sera mon dernier message, car je suis de plus en plus gener par l accumulation de mes remarques sur ce blog.
    ca en devient contre productif, et j ai peur de continuer pour les 235 pages restantes.

    je suis egalement tres inquiet pour mon second livre raspberry et ESP8266.

    je vous remercie d avoir pris le temps de repondre a mes remarques jusqu a present, et je tiens a m excuser aupres de Francois pour la gêne occasionnée…

    bien cordialement,

    Stephane

    Répondre
    1. Jean Christophe

      7 Ter) “Non cela fonctionne pas correctement dans ma simulation. Pour situer le contexte, j’utilise Tinkercad avec un Arduino Uno virtuel. Y a t il des bug dans l’utilisation de l’Arduino virtuel, ou des limitations différentes par rapport a un Arduino physique ?”

      Alors, Si vous utilisez un Arduino virtuel, c’est normal que vous n’obteniez pas exactement les mêmes résultats qu’avec un véritable Arduino. L’émulateur d’Arduino de tinkercad est parfait pour débuter, mais il ne peut pas imiter parfaitement l’Arduino ainsi que tous les composants qu’il est possible d’ajouter à un Arduino réel. Par exemple, pour reproduire le piano-banane, vous risquez de rencontrer quelques difficultés.
      Vu votre degré d’implication dans le livre, je pensais que possédiez quand même un Arduino. Il est très facile de trouver sur internet des clones à partir de 5,00 € et un Arduino véritable ne coûte pas plus d’une vingtaine d’euros (le prix d’un repas dans une pizzeria). Quand aux autres composants (LED, fils, résistances, potentiomètre…), ils ne coûtent que quelques euros et certains peuvent même être récupérés gratuitement sur de vieux appareils électroniques hors d’usage.

      Pour répondre à votre question, il faudrait étudier le code source de l’émulateur, pour le comparer à la datasheet du microcontrôleur ATmega328, qui est disponible sur internet. Il s’agit de 442 pages de documentation très technique en anglais. Malheureusement, je ne suis donc pas certain de possèder le temps, la motivation ou même les compétences pour une telle chose.
      Je me contenterai donc de constater qu’au vue des résultats différents que nous rencontrons :

      OUI, il y des limitations (ou des bugs) entre un Arduino virtuel et un Arduino physique.

      8) Encodeur rotatif (ch6 p179/180)
      Là, il ne s’agit pas d’une erreur. Comme le schéma ne comporte pas de résistance de tirage, il faut activer la résistance de pull-up interne dans le code, (en utilisant l’instruction INPUT_PULLUP). Le commentaire est simplement destiné à rappeler que si l’on préfère utiliser une vraie résistance, il faut utiliser l’instruction INPUT (au lieu de INPUT_PULLUP). Mais comme ce sujet, avait déjà été traité (page 160). Je l’ai juste indiqué brièvement dans les commentaires.

      C’est vrai que j’aurais dû écrire décrémentation dans le commentaire (pour décrémentation négative).

      Pour conclure cet échange, je suis plutôt d’accord avec vous. Le blog de François n’est pas forcement le meilleur endroit pour lister toutes les coquilles, erreurs, questions et remarques que peuvent vous évoquer la lecture d’un livre concernant l’Arduino. Surtout que le rythme de vos messages s’accélérait de façon inquiétante (4 en 3h).
      Je pense aussi que vous prenez cela un peu trop à cœur. Oui, vous avez trouvé des erreurs dans mon livre, j’en suis profondément désolé mais le livre parfait n’existe pas. Cela ne doit pas entacher votre impression générale ou vous empêcher de profiter de ce livre qui a encore beaucoup de chose à vous apporter.

      Mais s’il vous plaît, avant de continuer achetez quand même un Arduino…

      Je vous remercie pour vos interventions et merci à toi, François pour avoir accueilli notre discussion.
      Bien cordialement,
      Jean Christophe

      Répondre
  12. LE ROUX stephane

    merci.

    je possede un arduino uno R3 et une boite complete de composants de la marque Elegoo.
    j ai plusieurs breadboards, et des cables Dupont, et 2 raspberry Pi en attente…

    je reserve mes “precieux” composants pour mes projets finaux DIY. je n en ai pas absolument besoin pour des montages simples, etant donné que tinkercad est un outil magnifique qui me permet de simuler, de tester, de valider, avant de passer a l implementation physique.

    je suis dans une demarche d auto formation personnelle ( c est pour ca que j ai acheté ces livres…) pour maitriser les bases et m en servir comme source de reference future, et d inspiration, quand je mènerais bientot des projets personnels complexes.

    en attendant, j essaye de comprendre et de decortiquer dans les moindres details votre ouvrage que j ai selectionné parmis d autres…

    je ne suis pas un professeur de francais, de physique ou d electronique… je ne suis pas en concurrence avec vous car je n ecrit pas d ouvrage (et je vous envie…).

    comme vous avez pu le pressentir, je suis une personne d une rigueur et d une precision extreme… et mon niveau d exigence m amene souvent au devant de grandes deceptions…

    je vois souhaite bcp de succès et de realisation dans vos futurs ouvrages en gardant a l esprit que vos lecteurs/clients peuvent apporter une attention tres importante a votre travail…
    vous pouvez en etre fier malgré toutes mes remarques.

    stephane

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.

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