vendredi 30 octobre 2015

Association de condensateurs (série / parallèle)

Vous êtes en train de construire un circuit électronique en vous basant sur un schéma trouvé sur internet lorsque vous découvrez avec stupeur qu'il vous faut un condensateur de 15 µF, et que vous n'en avez pas!

Toutefois, vous disposez de deux condensateurs: un de 10 µF, et un autre de 5 µF:  vous pouvez les combiner pour obtenir l'équivalent d'un seul condensateur de 15 µF...  Mais vous les branchez comment?  En série, ou en parallèle?

Attention:  des condensateurs ne sont pas des résistances!   Pour obtenir une capacité totale de 15 µF, il faudra brancher vos deux condensateurs en parallèle.

Une petite démonstration:

Au moyen d'un capacimètre, nous mesurons la capacité d'un premier condensateur.   Résultat:  4,966 µF.



Nous mesurons ensuite la capacité d'un deuxième condensateur:  9,166 µF.



Branchons maintenant les deux condensateurs en série.


Lorsque ces deux condensateurs sont branchés en série, la capacité de la paire de condensateurs est de 3,2202 µF (ce qui est plus petit que la capacité individuelle des condensateurs).




Cette valeur aurait pu être calculée de la façon suivante:



Branchons maintenant les deux condensateur en parallèle.



Résultat: 14,134 µF.



Il s'agit bien l'addition des deux capacités:




Yves Pelletier   (TwitterFacebook)

mardi 27 octobre 2015

Contrôler les pins GPIO de l'OrangePi PC

Mise à jour (1er janvier 2017): Dans cet article, je fais référence à l'OS Rasbpian pour OrangePi PC, qui semblait la meilleure option à l'époque. De nos jours, il est nettement préférable d'utiliser Armbian).

Je vous présente aujourd'hui quelques conseils pour interagir avec les pins GPIO de l'OrangePi PC par l'intermédiaire d'un script en python. Nous allons d'abord faire clignoter une LED, puis lire l'état d'un bouton poussoir.

Tout d'abord, je précise que j'ai fait tous mes tests en utilisant Raspbian (version pour OrangePi PC disponible ici). En principe, je suppose que ça devrait fonctionner avec n'importe quelle distro conçue pour l'OrangePi PC, mais la semaine dernière j'avais essayé sans succès sous Linux Vivid Mate (version Loboris), et l'installation de la bibliothèque avait échoué.

Installation de la bibliothèque OrangePi PC GPIO pyH3

Pour interagir avec les pins GPIO en python, j'ai installé la bibliothèque "OrangePi PC GPIO pyH3" qui a été mise au point par un utilisateur de l'OrangePi PC à partir d'une bibliothèque mise au point chez Olymex pour une autre carte utilisant le même processeur.  Tout d'abord, vous téléchargez le fichier sur votre OrangePi (bouton "Download Zip" à droite de la page), vous le décompressez, et vous exécutez le script d'installation en écrivant "python setup.py install" dans le terminal.


Numérotation des pins

Tout comme pour le Raspberry Pi, il existe deux façons de numéroter les pins GPIOs de l'OrangePi PC.  En mode "connector", les pins sont numérotées dans le même ordre que leur disposition sur la carte.  Il s'agit des mêmes numéros que pour le Raspberry Pi en mode "board".  En mode "port", les pins sont numérotées en fonction de leur disposition sur le processeur.

Le schéma ci-dessous montre le numéro des 40 pins en mode "connector" (en bleu) et en mode "port" (en jaune).


Par exemple, vous pouvez constater que la pin qui porte le numéro 3 en mode "connector" est désignée "PA12" en mode "port".  Ainsi, vous pouvez accéder à cette pin en l'appelant "port.PA12" ou encore "connector.gpio1p3".

La pin qui porte le numéro 40 en mode "connector" est désignée "PG7" en mode "port".  Vous pouvez donc l'appeler "port.PG7" ou "connector.gpio1p40".

J'ai toutefois remarqué que les pins 11 et 13 sont interverties en mode "connector", dans la bibliothèque:  "connector.gpio1p11" fait référence à la pin 13, et "connector.gpio1p13" fait référence à la pin 11! (Ce sera certainement réparé dans une future version de la bibliothèque).

Autre bizzarerie: pour faire fonctionner la pin 13, je dois l'appeler "port.PA0", mais d'après le manuel d'utilisateur de l'OrangePi PC, elle devrait s'appeler PA2.

Pin en sortie:  clignotement d'une LED

Voici, comme premier exemple, l'utilisation de la pin 3 (PA 12) en sortie, pour faire clignoter une LED.



Ce script utilise la désignation "port":


Ce script fait la même chose, mais utilise le mode "connector":


Pin en entrée: lecture d'un bouton poussoir

Voici maintenant un exemple d'utilisation de la pin 3 (PA 12) en entrée, afin de lire l'état d'un bouton poussoir.



Voici le script en version "port":


Et voici le script en version "connector":


Un message nous indique l'état du bouton chaque fois qu'il change:



Yves Pelletier   (TwitterFacebook)

dimanche 25 octobre 2015

Raspbian pour OrangePi PC: ça fonctionne!

Il y a 3 semaines, je partageais avec vous mes premières impressions concernant l'OrangePi PC, petit cousin asiatique du Raspberry Pi, disponible au prix dérisoire de $15.  À ce moment, ma réaction était mitigée:  malgré ce qui avait été promis lors de l'achat, aucune version de Raspbian n'était offerte pour l'OrangePi PC, et pour jouir d'une connexion ethernet et de 3 ports USB fonctionnels, j'avais été obligé d'utiliser une version non-officielle d'Ubuntu Vivid Mate mise au point par un utilisateur du forum OrangePi.

Il y a quelques jours à peine, une version de Raspbian pour l'OrangePi PC a finalement été mise en ligne, et la situation s'est déjà considérablement améliorée.  Comme vous pourrez le lire plus loin dans cet article, j'ai réussi à contrôler les pins GPIO de l'OrangePi PC par python sans rencontrer de problème majeur.

Download de Raspbian pour OrangePi PC

En principe, Raspbian pour l'OrangePi PC peut être téléchargé ici.  Au moment où j'écris ces lignes, toutefois, le lien vers Google Drive n'est pas fonctionnel, et la version sur Baidu est pratiquement impossible à obtenir si vous n'habitez pas en Chine.  Heureusement, un utilisateur du forum l'a placée sur Mega; c'est là que j'ai obtenu ma copie.

Installation de Raspbian pour OrangePi PC

Le fichier est en format .xz : il faut d'abord le décompresser (j'ai utilisé le logiciel 7-Zip).  Suite à cette décompression, vous obtenez un fichier de format .img qui vous permet de graver Raspbian sur une carte microSD (j'ai utilisé le logiciel Win32DiskImager).  Il est préférable que la carte ait préalablement été initialisée au moyen du logiciel SDFormatter.

Utilisation et configuration de Raspbian

Par défaut, notre nom d'utilisateur est "root" et notre mot de passe est "orangepi".  Vous disposez donc de tous les pouvoirs d'administrateur sans même avoir besoin d'écrire "sudo".

Le premier démarrage sous Raspbian n'a présenté aucun problème:  un fond d'écran nous rappelle qu'il ne s'agit pas d'un Raspberry Pi, mais pour le reste on a bel et bien l'impression d'utiliser un Raspberry Pi muni de l'ancienne interface de Raspbian, à l'époque où le menu qui donne accès aux applications était situé en bas à gauche.


Plusieurs applications sont pré-installées, dont Midori, Scratch , Mathematica et Arduino (version 1.0.1).

Contrairement à ce qui m'était arrivé il y a 3 semaines, tout semble fonctionner correctement, y compris les trois ports USB et la connexion au réseau par câble ethernet.  J'ai installé sans problème TightVNCServer (en faisant "apt-get install tightvncserver") et je peux donc utiliser l'interface graphique de l'OrangePi à partir d'un autre ordinateur.

Seule ombre au tableau:  j'ai essayé de configurer une communication en WiFi dans WPA_GUI, mais l'OrangePi ne détecte pas la présence de mon dongle WiFi.  Il ne s'agit pas d'un dongle officiellement supporté par le Raspberry Pi, mais il a toujours fonctionné sans problème avec le Raspberry Pi (version 1 et 2).  Au rythme où vont les choses, j'ai bon espoir que cet irritant soit corrigé dans un proche avenir.

Clignotement d'une LED avec python

Ha oui, mais le présent article est publié dans un blog pour amateurs d'électronique, et l'OrangePi n'aura d'intérêt pour nous qu'à la condition de pouvoir interagir efficacement avec ses pins GPIO.

Dans un premier temps, j'ai essayé de faire clignoter une LED au moyen d'un script en python qui avait été conçu pour le Raspberry Pi, en utilisant les instructions que j'avais moi-même publiées dans cet article.  Raté:  confronté à l'instruction "import RPi.GPIO as GPIO", Python m'a répondu "This module can only be run on a Raspberry Pi!".  Zut, j'étais démasqué!

Ensuite, j'ai installé la bibliothèque "OrangePi PC Gpio PyH3":  après avoir downloadé et décompressé le fichier zip (bouton "Download Zip" en bas à droite de l'écran), on navigue avec le terminal jusqu'au répertoire et on écrit "python setup.py install".

J'ai ensuite essayé le script "blink_led.py" fourni en exemple avec la bibliothèque, et ça a marché du premier coup.  Le port PA12 m'a laissé un peu perplexe, mais par essai/erreur j'ai découvert qu'il s'agit de la pin qui, sur un Raspberry Pi, porte le numéro 2 (en numérotation BCM) ou 3 (en numérotation Board).  C'est donc là qu'on branche la LED.



Je me suis limité à ça pour l'instant:  il me reste encore à tester des trucs un peu plus délicats (SPI, I2C, etc.), mais ça s'annonce bien!

Yves Pelletier   (TwitterFacebook)