vendredi 30 mars 2018

Forums de discussion en français sur l'électronique et les microcontrôleurs


Je ne suis pas un habitué des forums de discussion.  Quand je m'y aventure, c'est généralement parce qu'une recherche par mots clés dans Google m'y a entraîné (et là, je suis bien d'accord: quand on cherche une information, il y a presque toujours quelqu'un qui a posé la question avant nous dans un forum de discussion).  Mais voilà: puisque je parviens généralement à trouver l'information désirée par une recherche dans Google, il m'arrive rarement de poser une question dans un forum.

Les forums de discussion pourraient probablement servir de base à d'intéressantes recherches en sociologie: on y retrouve des gens qui n'ont fait aucun effort pour se documenter, et qui espèrent que quelqu'un fera tout le travail à leur place; il y a ceux qui demandent pourquoi ce qu'ils ont fait n'a pas fonctionné, sans juger utile d'expliquer ce qu'ils ont fait; il y a ceux qui prennent plaisir à répondre de façon condescendante et à humilier ceux qui posent des questions trop naïves, et ceux qui n'y connaissent rien, mais qui répondent quand même...   Heureusement, on y trouve aussi (et surtout) des questions clairement formulées, suivies de réponses pertinentes et instructives.

Avant d'envoyer votre premier message, prenez toujours la peine de lire les règles du forum, effectuez préalablement une recherche pour vous assurer que votre problème n'a pas déjà été résolu dans une discussion précédente, et expliquez clairement ce que vous avez fait et ce qui ne fonctionne pas (en incluant les schémas de circuits, programmes, etc).  Si vous ne vous donnez pas la peine d'être clair, pourquoi des inconnus voudraient-ils avoir envie de vous répondre?

Tentons donc d'établir un petit répertoire des forums de discussion en français, consacrés à l'électronique et aux microcontrôleurs.  Si vous connaissez un bon forum qui n'apparaît pas dans cette liste, n'hésitez pas à nous en faire part dans la section "commentaires", ci-dessous.


Forums sur l'électronique en général

ABC Électronique


Depuis 2005, plus de 50 000 discussions portant sur l'électronique.  Si vous désirez de l'information sur la réparation d'un appareil, visitez plutôt le forum de dépannage.   Avant de publier un premier message, assurez-vous de consulter les règles du forum.


Forum d'électronique de Futura-Sciences


Un gros forum très, très fréquenté, dans lequel on retrouve un nombre incalculable de discussions portant sur l'électronique en général (y compris les microcontrôleurs).  Par contre, tel que spécifié dans les règles du forum,  les questions concernant la réparation d'appareils électroménagers doivent plutôt être dirigées dans le forum dédié à cette fin.  Notez aussi l'existence du forum Projets électroniques, qui sert à...la présentation de projets électroniques.

Forum d'Elektor


Le magazine d'électronique a son forum de discussion: plus de 41 000 messages dans 4000 discussion, incluant une catégorie "Mon circuit marche" et une catégorie "Mon circuit ne marche pas (encore)".  Et je ne parle ici que des forums généraux, car il y a également une partie consacrée aux discussions sur les articles publiés dans la revue!

Mentionnons rapidement quelques forums tout aussi généralistes que les précédents, mais plus modestes: Électro-bidouilleur,  BricotroniqueForum lelectroniqueHardware.fr, Elekronique.

 Forums plus spécialisés

Forum Arduino


La partie francophone du forum hébergé sur le site officiel arduino.cc est très fréquentée: près de 200 000 interventions réparties sur 20 000 discussions depuis janvier 2011.  C'est l'endroit incontournable où aller lorsque vous avez une question pour un projet impliquant une carte Arduino.  Au minimum, votre question sera visionnée par quelques dizaines de personnes, et elle recevra très probablement au moins une réponse.  Pour cette raison, je vois mal pourquoi quelqu'un choisirait de poser à un autre endroit une question concernant l'Arduino.  Évidemment, avant d'y publier quoi que ce soit, prenez le temps de bien lire les règles et apprenez à utiliser les balises de code...

Forum Framboise314


Le forum de discussion sur le Rasbperry Pi associé au site de François Mocq n'existe que depuis 2014, mais 2918 membres y ont malgré tout publié 26215 messages répartis sur 4248 sujets.  Le domaine étant très vaste, les subdivisions sont nombreuses, ce qui permet aux adeptes de domotique de ne pas embêter les fanatiques de retro gaming.   Un incontournable, bien sûr.

Forum Rasbpian France


Un autre bon forum sur le Raspberry Pi, avec moins de catégories différentes que sur le forum de Framboise 314 (ce qui est un peu normal, puisqu'on se limite à un seul système d'exploitation). Il y a des nouveaux messages tous les jours.  Vous pouvez lire les règles ici.


Fantaspic


Je n'ai découvert que très récemment ce forum consacré à la programmation de microcontrôleurs PIC, démarré en juillet 2015.  535 membres inscrits, 8643 messages répartis sur 590 sujets.  Vous y trouverez des tutoriels, une section réservée à chaque langage de programmation (C, assembleur, basic, pascal), etc.  N'oubliez pas de consulter les règles du forum.

Forum Pinguino


Pinguino est un projet inspiré d'Arduino, mais impliquant des cartes munies d'un microcontrôleur PIC.  Le forum hébergé sur le site officiel pinguino.cc comporte un volet en français depuis 2011 (les règles sont en anglais, toutefois).  530 messages, répartis sur 75 discussions.  L'activité y est très faible: au moment où j'écris ces lignes, le message le plus récent date de quelques mois, mais a quand même été visionné 600 fois.  J'ai l'impression que le projet est sur son déclin, malheureusement.

Yves Pelletier   (TwitterFacebook)

samedi 10 mars 2018

Livre: À l'aventure avec Arduino


À l'aventure avec Arduino
par Becky Stewart
Collection Pour les kids
Éditions Eyrolles
340 pages
2015

La particularité de ce livre d'initiation à l'Arduino, c'est qu'il s'adresse à des lecteurs âgés entre 10 et 15 ans.  Je précise donc tout de suite que 35 années me séparent du public cible (mes trois enfants en font partie, par contre).

En quoi un livre sur Arduino destiné aux jeunes adolescents diffère-t-il d'un livre sur Arduino destiné aux adultes?
  • On tutoie le lecteur.
  • Les mises en garde de sécurité sont fréquentes.
  • En plus du codage et de la réalisation d'un circuit électronique, les projets comportent tous une bonne part de bricolage impliquant du carton, de la colle et des ciseaux.
Ce livre est particulièrement efficace, à mon avis, dans sa façon de proposer la fabrication de bidules inhabituels comportant un circuit électronique relativement simple: un panneau d'affichage qui illumine le message de votre choix, un coffre-fort à combinaison dont le couvercle s'ouvre tout seul si vous placez les 3 potentiomètres dans la bonne position, un carillon à vent qui produit des sons synthétiques lorsque ses grelots conducteurs entrent en contact, un labyrinthe à bille, etc.

Pendant la réalisation de ces projets, en plus d'apprendre les principes de base de la programmation, les jeunes auront l'occasion d'utiliser des LEDs, un servomoteur, un élément piézoélectrique, un registre à décalage...  Sans transformer votre enfant en ingénieur diplômé, on dépasse nettement le circuit où une petite lumière s'allume lorsqu'on appuie sur un bouton.

Puisque le livre s'adresse à une génération dont le premier réflexe est de se documenter sur Youtube sous prétexte que 30 images par secondes valent...heu...30 000 mots par seconde, je ne suis pas certain qu'une description de ce genre soit optimale:  "Insère l'un des fils de la résistance dans une rangée courte de la moitié haute de ta plaque, vers le bord gauche. Insère l'autre fil dans la rangée courte en face de la précédente, dans la partie basse de la plaque."  Heureusement, de nombreux schémas Fritzing rendent superflues ces longues descriptions.

Le plupart des sketches du livre sont présentés en deux versions distinctes: une version en français (commentaires et noms de variable en  français) et la version originale en anglais (commentaires et noms de variable en anglais).  J'ai beau chercher, la pertinence de présenter la version en anglais m'échappe totalement.

Et pendant qu'on parle de français et d'anglais, j'aurais quelques commentaires négatifs à formuler... Le traducteur explique son choix de conserver la plupart des recommandations de lecture de l'édition originale, c'est à dire en anglais.  "Malheureusement, les sources d'informations les plus à jour et les plus complètes sont presque toujours dans la langue de Shakespeare..." et "En plus, cela améliorera ton niveau en anglais".

!!!

Je sais que je ne suis pas tout à fait neutre, mais...il existe des tas d'excellentes ressources sur l'Arduino en français sur le web!  Comment peut-on proposer la consultation de DIY Drones (site anglophone n'ayant pas grand chose à voir avec le sujet du livre) et se contenter de citer deux uniques blogs en français (le blog de MC Hobby, qui est effectivement excellent, et le défunt TutoArduino, qui l'était moins)?  Comment peut-on proposer des vidéos en anglais sur Youtube et ne pas remarquer qu'il en existe une énorme quantité sur les mêmes sujets qui sont en français?  Et pourquoi recommander la lecture de Getting Started With Arduino, par Massimo Banzi dans sa version anglaise, alors que sa traduction française "Démarrez avec Arduino" en est à sa 3e édition?  Même dans la description du site officiel arduino.cc, le forum en français n'est mentionné qu'en dernier recours, en cas de "difficultés avec la langue anglaise"!

Malgré cette préoccupante négation d'une communauté francophone de pasionnés de l'Arduino, il me semble que ce livre atteint correctement son but.  Bien sûr, vous pouvez également opter pour la version originale anglaise publiée chez Wiley, puisque "ça améliorera ton niveau en anglais"... 😉

Yves Pelletier   (TwitterFacebook)

lundi 5 mars 2018

digitalRead(): où se situe la frontière entre LOW et HIGH?

Une des premières choses qu'on apprend lorsqu'on s'initie à l'Arduino, c'est que la fonction digitalRead() retourne 0 lorsque l'entrée numérique qui lui est associée est soumise à une tension nulle, et 1 lorsque l'entrée numérique est soumise à une tension de 5 V.  Mais qu'arrive-t-il si la tension de cette entrée numérique se situe quelque part entre 0 et 5 V?  Quelle valeur de tension constitue la frontière entre 0 et 1?

On peut trouver la réponse dans la fiche technique du mircontrôleur Atmega 328, qui est à la base de l'Arduino Uno.  Si vous avez en tête une fiche technique de moins de 10 pages comme celles qui accompagnent les transistors ou les amplificateurs opérationnels, détrompez-vous: les fiches techniques des microcontrôleurs sont beaucoup plus volumineuses (442 pages dans le cas de notre Atmega 328).

À la page 365, dans la section 32.2 intitulée "Common DC Characteristics", on peut voir les informations reproduites ci-dessous:


VIL (pour "voltage input low") représente la plus grande tension d'entrée qui sera, de façon certaine, interprétée comme un signal logique bas.  Pour une tension d'alimentation de 5 V, le tableau indique une valeur correspondant à 0,3*Vcc, c'est à dire 1,5 V.

VIH (pour "voltage input high") représente la plus petite tension d'entrée qui sera, de façon certaine, interprétée comme un signal logique haut. Pour une tension d'alimentation de 5 V, le tableau indique 0,6*Vcc, donc 3 V.

Le fabricant s'engage donc à ce que tous les microcontrôleurs qui sortent de son usine interprètent comme "bas" un signal d'entrée de 1,5 V ou moins, et interprètent comme "haut" un signal d'entrée de 3 V ou plus.

Il s'agit d'une bonne chose si vous devez brancher à l'Arduino un capteur qui utilise un niveau logique de 3,3 V: cette tension de 3,3 V sera correctement interprétée par l'Arduino comme un signal logique haut, même s'il est significativement inférieur à 5 V.

Mais qu'arrive-t-il si le signal d'entrée se situe entre 1,5 V et 3 V?  Vous vous retrouvez alors à l'extérieur de la zone garantie par le fabricant.   Les résultats pourraient donc être différent pour deux cartes Arduino Uno en apparence identiques entre elles.

Par curiosité, j'ai mesuré la tension de seuil pour quelques-unes de mes cartes Arduino.  J'ai utilisé le montage illustré ci-dessous:  une tension pouvant varier de 0 à 5 V grâce à un potentiomètre est acheminée à la fois à l'entrée numérique dont je désire mesurer la tension de seuil, et à une entrée analogique qui nous sert de voltmètre.


Le sketch ci-dessous permet d'afficher dans le moniteur série la tension correspondant à chaque changement d'état de l'entrée numérique (il faut, bien sûr, faire varier la tension en tournant lentement le potentiomètre).




Voici les résultats pour la broche 5 d'une de mes cartes.


On peut remarquer une petite hystérésis: lorsque le niveau initialement bas, il devient haut lorsque la tension atteint 2,55 V.  Par contre, si le niveau est initialement haut, il doit descendre à 2,23 V pour devenir un niveau bas.  En d'autres mots, le niveau logique ne change pas d'état lorsque la tension se situe entre 2,24 V et 2,54 V.

Sans surprise,  ces résultats respectent très facilement les valeurs minimales garanties dans la fiche technique.

J'ai effectué des mesures sur 5 cartes différentes, des clones chinois achetés de vendeurs différents à des moments différents, et je n'ai observé que de très faibles variations d'un carte à l'autre.


On peut voir que pour l'ensemble des 5 cartes testées, la tension nécessaire pour passer de l'état "bas" à l'état "haut" n'est pas très éloignée de 2,55 V, alors que la tension qui permet de passer de l'état "haut" à l'état "bas" se situe quelque part entre 2,20 et 2,25 V.

Je m'attendais à une assez forte dépendance à la température mais, après avoir laissé une carte au congélateur pendant plusieurs minutes (de façon à ce qu'elle devienne très froide), les résultats sont demeurés très similaires.

Yves Pelletier   (TwitterFacebook)