**** fabidouille ****

geekismes inside

Sonnette sans fil – ébauche

22/01/2017


A l’occasion d’une légère modification de ma sonnette (basique, sinon les quelques sonneries proposées, qu’on ne peut mettre à jour dixit le mode d’emploi) pour l’alimenter en USB (plutôt que les piles AA d’origine vite vidées), quelle fût ma surprise en voyant que le PCB fourmille de possibilités:

  • emplacement 2 pins avec label « MOTOR »
  • emplacement pour bouton pressoir afin de changer de « mode »
  • emplacement pour port USB… pour mettre à jour les sonneries pour une hypothétique version plus avancée, ou mieux une connection série (pour la brancher sur un arduino/raspberry.. pour être notifié de l’activation de la sonnette par sms via e.g. l’API smsapi.free-mobile.fr.. plein de possibilités!)

à creuser..

 


Danger de mort USB

22/01/2017


Petit article coup-de-gueule : ou comment vouloir faire trop d’économies peut coûter cher!

Un adaptateur USB 220V/5V, c’est toujours pratique pour alimenter un arduino ou autre montage pour lequel une batterie n’est pas pratique (consommation trop importante, flemme de maintenir une batterie bien chargée..).

Fin 2014, je commande donc 5x adaptateurs, et tant qu’à faire les moins chers de l’un des sites sur lesquels j’ai l’habitude de commander. A l’époque, 12.05 € les 5, soit 2.41 € l’unité. Soit 2 pains au chocolat – ou 20, selon les sources ;).

Au moment ou ces lignes sont écrites (un peu plus de deux ans après l’achat mentionné), le court du chargeur low-cost a un peu monté, 3.12 € désormais. L’apparence extérieure n’a pas changé. J’espère que l’intérieur, lui, a changé. Mais pourquoi donc, oui, mais pourquoi?

L’extérieur

La première chose qui frappe, c’est le poids de la chose. C’est très léger. 

Et déshabillé, ça donne:

Et enfin, comparé à un chargeur fourni avec un téléphone relativement récent (moto X v2 de 2014):

Bon, très bien, c’est à la mode d’être léger… vraiment?

Ouvrons lui ses tripes

Avec une partie des sous-titres:

On a les 220V branché quasi-direct sur le condensateur de 400V/2.2uF (), par l’intermédiaire d’une résistance et d’une diode.

Le C945 P331 est un transistor (voir les specs ici), c’est à dire un interrupteur. On remarquera que la saturation max en courant sur le collecteur est donnée à 300mA. Pas énorme, surtout quand on se rappelle que l’USB 1/2 doit pouvoir faire passer du 500mA.

A l’occasion d’un article future, nous pourrons essayer de déterminer les valeurs théoriques du condensateur d’entrée et de filtrage (16V/20uF), pour les comparer aux valeurs employées ici. Qui sait, peut être pourrait-on être surpris?

Il y a quoi derrière?

 

Aie!

Comme on peut le voir, on en peut pas dire que basses (5V) et hautes (220V) tensions soient séparées ici.. Mais surtout, les lignes phase et neutre sont séparées de moins d’un millimètre !! Une invitation aux arcs électriques, avec joyeusetés qui s’ensuivent (incendies, électrisation ou pire..). Surveiller son taux d’humidité devient alors vital.

Conclusion

Pour la petite histoire, le premier de ces adaptateurs que j’ai tenté de brancher au secteur, sans charge aucune, a provoqué un effet sonore inattendu, un grand boom.

Ce qui participé au repos des ses 4 camarades, jusqu’au dépecage pour cet article.

Je tiens tout de même à signaler que la boutique m’a remboursé l’intégralité des 12.05 de cette commande. Je n’en n’ai pas recommandé pour constater l’évolution..

Si j’avais eu le cran de tester les autres adaptateurs, ou si ce moment arrive, alors il aurait été plaisant de vérifier la tenue en tension en montant la charge (le courant demandé).

Ah, chose intriguante, le pétard a bien l’inscription CE. Rassurant?

 

 

 

 

 

 

 


Cheap OSVR HDK 1.4 comfort improvement

07/05/2016


After a long while spent on non-geek activities, I’m back, and this time (only?) in Shakespeare’s tongue. For those who understand it enough to understand they don’t understand it, but not enough to read this article (really?), please shout.

In short, I purchased an OVSR HDK 1.4 and I was clearly disappointed by the HMD (aka head mounted display) comfort, really a pain to hold for more than a minute. I tested some months ago Oculus Rift DK2, and DK2 was clearly putting much less stress on the face.

Also, the lens are really too close to the eyes, and I couldn’t see things sharp.

Actually, I did a small youtube video to show original foam padding provided in the kit: https://youtu.be/n5zIBtQKOf4.

Very thin padding, indeed. Here is a photo:

IMG_20160505_174322[1]

So I did quick (<40min in total) assembling&sewing to get a much more comfortable HMD, for ~14 euros.

IMG_20160505_193651[1]

 

 

  • What should I buy at my favorite DIY shop ?

1) insulation tape : needs to be thick, I picked ~17mm thick garage isolation (~6 €)

IMG_20160505_174334[1]

2) velcro tape (7 €)

IMG_20160505_174527[1]

3) microfiber rag (~1 €)

 

  • measure correct length of isolation tape and cut it

IMG_20160505_174355[1]

  • cut a 2nd bit of isolation tape, same length
  • cut velcro tape to get same length again, then stick it to one isolation tape only

IMG_20160505_174527[1]

  • stick the two isolation tapes to each other

IMG_20160505_175327[1]

  • now the lengthy part, if you are not used to do sewing: sew the microfiber rag to one side of velcro

IMG_20160505_175741[1]

IMG_20160505_181725[1]

Cut the rag so that you can turn it over the other side of the velcro:

IMG_20160505_185414[1]

  • Et voilà:

IMG_20160505_185531[1]


Récréation: 100 watts c’est bien, plus c’est mieux

31/12/2014


Histoire de sortir des girons classico-traditionels des articles de ce blog, et parce que la liberté c’est important, voici un article issu d’une visite chez un bidouilleur de tous les extrêmes, que l’on nous appellerons dans ce cadre BleuDenBas, avec BleuDenHaut qui est également bidouilleur, non moins extrême, mais lui professionnel.

BleuDenBas n’en n’est pas à son coup d’essai en matière de bidouille facilement qualifiable de dangereuse, impliquant des effets physiques aux limites du grand public.

L’objectif était de pousser une matrice de LED donnée pour 100W.

Mon rôle d’un soir: prise de note pour témoigner d’une belle soirée.

La led. Le radiateur sous la led : Thermalright Macho Rev A, capable de dissiper 100W. Réhausseur de tension. Des blocs LiPo 3S et 4S 2350 mAh (25C), capable de débiter 58A sous 16.7V chacun.

L’histoire, comptée chronologiquement sous forme d’un tableau:

Tension infligée led(V) Puissance(W) Puissance lumineuse(Lux) Annotation
24.38 0 1
25.5 0 2
26.5 0.6 18 ?:’Suffisant pour penser’
27.1 5.4 35
28.08 13.4 80 BDH:’j’en ai marre des haribos’
28.5 18.8 107
29.08 26.1 137
30 40.8 194
30.20 45.3 220 BDH:’******[ça] montre trop lentement’
30.76 57 260 BDB’RAS’
31 70 305
31.4 76 310
31.8 87 360 changement de 2 3S à 2 4S (lipo)
32.3 103 400
32.9 125 460 BDB:’Ah ***.’ Limitation en courant?
33.37 140 480
34.1 185 580 Une douce brise tiède. Ventilation du radiateur activée. Radiateur chaud.
34.22 162 570 Changement de rendement
34.2 165 675 repositionnement luxmètre
35.62 184 720
35 201 760 BDB:’***! 200W.’. 31V aux bornes LiPo.
35.2 215 ? Le régulateur semble en saturation en courant (10A)
35.4 220 ? BDB:’Espèce de ***. Tu fais ***.’ (cassage de multimètre? eh non)
36 250 819
36.4 270 880
36.7 295 895
36.8 310 904
37.3 329 904
39.2 320 ?

 

chart


Envolées éthériques

31/12/2014


De quoi parle t on aujourd’hui?

Ce qui est difficile avec un blog, c’est de prendre le temps de le maintenir à jour au détriment des avancées en mode plus « autiste ».

Mais cela permet aussi de s’arrêter un moment, pour prendre le temps de figer le passé récent.

Ceci dit, j’aimerais évoquer comment faire parler nos infatigables exécutants du terrain (que l’on pourra renommer Arduino, histoire de ne pas perdre le lecteur nouveau) avec leur grand frère beaucoup mieux doté, l’imprésentable Raspberry Pi.

Mon intérêt étant d’exposer le monde sensible accessible aux besogneux Arduinos à l’idéiste Raspberry Pi.

A ce stade, il apparaît essentiel de préciser les termes:

Idéiste:

1. [Chez Platon et ses héritiers] Ce qui appartient au domaine de l’intelligible et qui seul possède la perfection éternelle et la réalité absolue.

Plus concrètement, relier les Arduinos au Raspberry Pi (que je surnommerai Râ le temps de cet article) rend possible:

  • leur exposition (que l’on va rendre contrôlée, pour faire face aux vilains hackers de tout poil) au réseau des réseaux, possiblement mais pas forcément par l’entremise d’un serveur web hostée sur Râ
  • une plus grande puissance de traitement de l’information issue des Arduinos (nous verrons plus tard ce qu’on peut en faire)
  • un stockage potentiellement bien fait des infos issues des Arduinos (base NoSQL possiblement, mais pas forcément, hostée sur Râ)
  • l’accès à notre installation domotique par l’IA qui prend présentement, et discrètement, possession du monde

Bien, mais par quoi commence t on?

Alors j’aimerais un peu accélérer le rythme des articles, quitte à passer vite sur certains détails. Le cas échéant, toi lecteur qui reste toujours au centre des préoccupations de l’auteur de ce blog (si,si) ne doit pas hésiter à manifester des arrêts sur ceux ci si tu en ressens le besoin.

Donc, après un peu de reflexion, je me suis arrêté sur des modules RF à pas cher.

Les archi-utilisés NRF24L01 sont:

  • pas chers (entre 1.4€ et 3.6€ selon les modèles)
  • très bien documentés, il y a pas mal de librairies à la fois bas niveau et haut niveau qui les abstraient
  • consomment peu
  • fonctionnent bien sur Arduino et les Râ

Les modèles que j’ai moi même expérimentés:

  • le modèle avec antenne (3.6€)

RF1

  • le modèle avec PCB noir (1.5€)

RF2

  • le modèle avec PCB vert (1.6€)

RF3

 

Comparaison

Alors, pour avoir un peu expérimenté ces modules, voici mes conclusions malheureusement non étayées par des tableaux, chiffres, et autre argument solide (je n’ai pas pris le temps de faire tout ça).

D’un Arduino à un Râ, les meilleurs résultats furent de loin ceux entre 2 modules RF avec PCB vert. Oui, cette configuration était sensiblement plus efficace qu’entre 2 modules avec antenne, ou un module avec antenne et un module avec PCB vert.

Dans l’hypothèse ou les modules avec antenne seraient plus directionnels, j’ai également testé en orientant les antennes dans tous les sens sans mieux.

Oui mais

Ces modules étant sensés être mieux (donnés théoriquement pour une portée de 1 Km (!!)), étant plus chers, il semble que quelque chose pouvait toutefois clocher.

  • Alimentation

Tous ces modules s’alimentent en 3.3V. Les essais de votre serviteur se sont tous fait sur des clones d’Arduino nano à 3€ pièce, alimenté par USB (donc, rappelons le, en 5V).

Il y a deux régulateurs de tension dans ces Arduinos nano, un vers 5V et un vers 3.3V. Il semblerait que le régulateur 3.3V des clones utiisés soient dans le même chip gérant la conversion USB/série (CH340/341 dans notre cas), information non confirmée toutefois.

Quoi qu’il en soit, il semble crédible de mettre en cause l’efficacité du régulateur de tension vers 3.3V intégré.

Une piste à explorer est donc d’en utiliser un, et vérifier une possible amélioration.

  • Condensateur de découplage

Ce sujet est vaste, il pourrait être l’objet d’un futur article du blog.

Simplement, en électronique, il arrive qu’une partie d’un circuit ait un besoin non constant d’énergie, et « tire » ainsi plus ou moins d’électrons des lignes d’alimentation à une fréquence plus ou moins importante.

Nos modules RF fonctionnent à 2.4GHZ, et peuvent à la fois engendrer des interférences en amont du circuit, mais aussi peuvent être affectés par l’incapacité du régulateur qui fournit le 3.3V à fournir une belle tension constante, quelque soit la charge exigée par nos modules.

Un grand pouvoir (peut être le plus grand à vrai dire) d’un condensateur, c’est sa capacité à absorber, à lisser. Ou dit autrement, à « découpler » les parties du circuit en amont et en aval de celui ci. En effet, comme il stocke des électrons et les relâche avec la patience d’un sage à la blanche barbe, il s’oppose aux vives variations de charge.

Ainsi, placer un condensateur de 4.7 uF (ou plus) entre la borne d’alimentation VCC du module RF et la masse pourrait améliorer les choses.

Ceci sera fait, dans un prochain article cependant, histoire de ne pas alourdir celui ci.

On fait quoi avec nos modules RF

Différentes librairies utilisent pour manipuler nos NRF24L01.

J’espère que tu pardonneras l’absence d’étude comparative critique, nous partons directement sur la lib RF24, version stanleyseow : https://github.com/stanleyseow/RF24, un fork de la lib de maniacbug qui apporte notamment un support sur Râ.

On branche le module RF sur l’arduino

Arduino Module RF Couleur suggérée
GND GND Noir
3.3V VCC Rouge
9 CE Orange
10 CSN/CS Jaune
13 SCK Vert
11 MOSI Bleu
12 MISO Violet
2 IRQ Gris

On branche le module RF sur Râ

Module RF Couleur suggérée
GND GND Noir
3.3V VCC Rouge
GPIO25 CE Orange
GPIO8 CSN/CS Jaune
GPIO11 SCK Vert
GPIO10 MOSI Bleu
GPIO9 MISO Violet
pas branché IRQ Gris

GPIO

 

Si vous avez un modèle non +, le branchement est exactement le même (simplement, les lignes à partir de 27 ne sont pas présentes).

On code

Le code Arduino

[sourcecode language= »cpp »]
#include <SPI.h>
#include <RF24.h>

#define CE_PIN 9
#define CSN_PIN 10
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN,CSN_PIN);

const int PIRPin = 3;

void setup()
{

Serial.begin(9600);
Serial.println("RF module about to send..");

radio.begin();

radio.setRetries(15, 15);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.setCRCLength(RF24_CRC_8);
radio.setRetries(15,15);

radio.openWritingPipe(pipe);
}

void loop()
{
uint8_t toTransmit;

int PIRread = digitalRead(PIRPin);
if(PIRread == HIGH)
{
toTransmit = 1;
}
else
{
toTransmit = 0;
}

radio.write(&toTransmit,sizeof(toTransmit));
Serial.print("transmitting ");
Serial.println(toTransmit);
}
[/sourcecode]

Ce code n’amène pas moult discussions.
Il envoie simplement un entier qui est à 1 si le capteur branché sur la pin 3 (qui se trouve être un capteur de présence en l’occurrence) est à l’état haut, et 0 autrement.

Le reste est de la configuration. On peut cependant évoquer le PA max, pour un maximum de puissance en émission, la vitesse de transmission à 250 kbit/s, vitesse max qui permet une portée légérement plus importante.

Et chose importante, l’entier 64 bits donné à pipe peut être vu comme une référence du canal utilisé pour la transmission, il doit donc bien entendu être identique entre un émetteur et son récepteur.

Plutôt simple, donc.
Il se trouve que la taille de la payload envoyée a été empiriquement mesurée à 32 octets. Je n’ai pas encore cherché à comprendre le pourquoi, i.e. de quoi elle est composée.

nb: je ne décris pas comment installer la lib Arduino, chose relativement classique (copier les .h/.cpp dans le répertoire librairies de votre root de sketches arduino, propre à votre installation de l’IDE arduino).

Le code Râ

Il y a pas mal de façon d’aborder la chose sur notre mini ordinateur.

Activer le driver spi

Nous allons utiliser une lib qui utilise le driver SPI, pour cela il faut commencer par activer le driver SPI déactivé par défaut sur Raspbian.

Pour cela, on peut soit utiliser raspi-config qui permet de le faire via un menu, ou le faire « à la main ».

Faisons le à la main. En tant que root, modifier ce fichier /etc/modprobe.d/raspi-blacklist.conf pour commenter la ligne qui contient spi (et tant qu’à faire, celle qui contient i2c, qui pourra être utile par une suite..).

Ensuite, loader en tant que root ce module/driver : sudo modprobe spi-bcm2708.

Installer la lib RF24

Récuperer la lib RF24 depuis le github dont j’ai donné le lien plus haut (https://github.com/stanleyseow/RF24), aller dans RPi/RF24 puis un make/make install en tant que root installera la lib RF24 et les headers qui vont bien.

Implémenter l’utilisation de RF24 sur Râ

Alors la fainéantise c’est plutôt mal, même si c’est clairement discutable.

Cependant, les choses étant ce qu’elles sont, toi lecteur n’aura qu’une archive d’un work-in-progress pour faire tes tests.

test_RPI_RF24.tar

Un make à la racine de l’archivé detarré, decompressé produire le main, exécutable en tant que root.

[sourcecode]

pi@ffrp ~/gotoarduinoc/test $ sudo ./main
DBHandler initializing..
PING: PONG
DBHandler init OK
RFHandler initializing..
RFHandler init OK
read: 0 from pipe: 0
redis cmd: ZADD sensors:sensor_0_0 1420036719 1420036719:0
read: 0 from pipe: 0
redis cmd: ZADD sensors:sensor_0_0 1420036720 1420036720:0
read: 0 from pipe: 0
redis cmd: ZADD sensors:sensor_0_0 1420036721 1420036721:0

[/sourcecode]

Ce qui suit read:, à savoir 0 ou 1, est la valeur envoyée de l’Arduino.
Le lecteur attentif que tu es aura remarqué la présence de 3 adresses de pipe dans le code RFHandler.cpp, pour lire la valeur de 3 arduinos différents.
Aussi, tu auras remarqué que ce code en chantier met les valeurs lues dans une base NoSQL key/value Redis.

Mais pourquoi avoir arrêté en si bon chemin ce code?
Pour un avenir meilleur. La suite, dans un prochain article!


Bar Di Re Arduino : ze french connection

21/09/2014


L’objectif de ce premier billet est de :

– présenter ce qu’on souhaite faire in fine

– commencer la partie technique très doucement, avec présentation de la photorésistance et comment l’exploiter

 

Un objectif

L’idée de départ est venue d’un vieux frigo, qui se ferme avec réticence.

Je souhaite savoir quand le frigo est mal fermé, pour pouvoir faire des choses sensées en conséquence. Par exemple, me notifier d’une manière ou d’une autre, mettre à jour un statut dans un dashboard accessible depuis le net, ou soyons fou un moteur qui prendrait le soin de fermer la porte à ma place.

Le Comment

Quelques minutes de recherche sur le web ont suffit à orienter sur la plateforme Arduino.

Il est très simple d’aborder le monde Arduino. Déjà, l’environnement de développement logiciel est ultra simplifié (on verra plus tard) et surtout entièrement centralisé.

Physiquement, l’Arduino est une petite carte tout en un, alimenté par câble USB standard, on branche les capteurs et les trucs qui bougent / font de la lumière sur les trous déjà présent et c’est fini. Du vrai plug&play! Pas besoin de programmateur hardware, pas besoin de régulateurs de tension et autre soudure.

Un lego électronique, en (beaucoup!) moins cher.

On adore.

Mais encore?

Suite du programme: il faut ensuite trouver les bons éléments à brancher dessus, faire un petit programme et s’enorgueillir du résultat.

  • que brancher dessus : capteur
  • comment faire marcher tout ça ensemble : le programme

Que brancher dessus?

Dans le cadre du premier projet, il s’agit de détecter une porte de frigo ouverte. Par chance, mon frigo moderne dispose d’une lampe, qui -oh miracle technique-  s’allume quand la porte est ouverte.

Il aurait été dommage de ne pas en profiter.

Ainsi, une photorésistance va faire l’affaire. Ce petit composant ressemble à ceci:

DSC_6842

Sa résistance varie en fonction de l’intensité de la lumière qui lui parvient.

DSC_6843_2

1.7 Kohms sous lumième ambiante,2 MOhms dans la quasi obscurité, un peu moins de 190 ohms à 2 cm sous une lampe philips donnée à 741 lumen. La mesure est faite avec un multimètre lowcost (le gentil facteur devrait prochainement apporter un instrument un peu plus précis, et original, surprise réservée aux fidèles lecteurs).

Histoire de ne pas répéter « photorésistance » moults fois dans ce blog, parce que je n’ai pas envie de répéter ce mot, et que j’ai la prérogative de mettre ce que je veux dans ce blog, je l’appellerai Brigitte.

Pour brancher la chose à l’Arduino, une pin de Brigitte sera à la masse (voltage 0V de référence), et on va souhaiter mesurer le potentiel sur l’autre pin.

On va ainsi mesurer la différence de potentiel entre la 2ème pin et la 1ère, ce qui est exactement la même chose qu’une tension.

On remarque que la seule chose que l’on peut mesurer avec un Arduino sur une de ses pins, c’est une tension. Et c’est tout.

Heureusement pour nous, il existe une loi facile à retenir en électronique (peut être la seule à connaitre par cœur): U = R * I, aussi connue comme la loi d’Ohm (oui, le même ohm qui mesure les résistances et on s’en doute, ce n’est pas une coïncidence).

U, c’est la tension entre 2 points. R c’est la résistance entre ces deux points. I, c’est la quantité de courant qui passe entre ces deux points. Pour les puristes, la réalité est plus complexe, car il faut aussi prendre en compte des comportements capacitifs, inductifs et autres joyeusetés non linéaires mais oublions ceci pour l’instant.

Nous disions, U = R * I. Donc la tension mesurée aux bornes de Brigitte est proportionnelle à la résistance de celle ci. Bingo, on va pouvoir mesurer ça avec l’Arduino.

J’en entends certains s’interroger à pensée haute.

Très bien, nous savons que l’on peut mesurer une tension au niveau d’une pin de l’Arduino et qu’il existe une tension aux bornes de Brigitte proportionnelle à la quantité de lumière qu’on souhaite mesurer, mais comment relier tout ça?

Il nous manque une dernière notion essentielle en électronique, en fait dérivée de la loi d’Ohm. Regardons un peu l’image suivante:

250px-Pont_diviseur_tension.svg2

 

La loi d’ohm donne : U = (R1+R2)*I, car c’est la même intensité qui passe dans un circuit donné (les choses se corsent quand le chemin se sépare en deux, mais on n’aura pas à se poser ce genre de questions avant très longtemps). Oh lecteur, si tu insistes pour avoir le pourquoi du comment de cette affirmation, alors Mario entrera en jeu (sans mauvais jeu de mot, bien entendu).

Bref, U = (R1+R2)*I. Nous avons aussi U=U1+U2 (c’est le même Mario que nous appellerons à la rescousse pour justifier ceci, si tu l’exiges). Quelques savantes opérations mathématiques plus tard (si tu ne vois pas lesquelles, alors tu ne lis probablement pas ces lignes), nous obtenons U2=(R2/(R1+R2))*U ou son sombre maléfique, U=(R1/(R1+R2))*U (on voit bien la symétrie, non?).

Lecteur, si tu me permets de continuer à te tutoyer, tu es invité à imaginer que le point en bas de l’illustration est à la masse, qui par définition/construction est le point dans un circuit au potentiel de référence « 0 V ».

Voilà, maintenant tu peux imaginer que le point en haut est fixé à une tension fixe, mettons 5 V. Elle même ne se comprend que par rapport à l’existence du potentiel 0 V, qui lui même, on le comprend aisément, est relié à la source d’énergie, l’alimentation du circuit, étiqueté soit masse (bien trouvé comme nom), soit dans les cas des piles familières (AA, AAA et cie) est appelé « – » par opposition au « + » qui est à 1.5 V, 9 V, 3.6 V selon le type de pile).

Ainsi, si mettons R2 est la résistance de Brigitte, qui rappelons le est notre inconnue, il ne reste qu’une inconnue dans l’équation, R1.

Fixons arbitrairement R1 à 20 Kohms, par exemple.

Il n’y a plus d’inconnue: si on mesure U2, on mesure R2.

Ca tombe bien, c’était exactement notre but.

Un dernier point maintenant.

Tentons de glorifier un peu son rôle, à cette fameuse résistance R1, qui semble jouer un rôle fort ingrat, celui d’être l’intermédiaire à la relation entre Brigitte et Arduino.

Elle peut être explicitement ajoutée par le créateur pas forcément omniscient mais clairement omnipotent du circuit. Elle peut aussi être cachée par les tripes de notre Arduino. En effet, quand on programme l’Arduino, la première chose (ou quasi) que l’on fait, c’est dire pour chacune de ses pins utilisée si on souhaite le configurer en entrée (INPUT pour les francophones coincés) ou en sortie (OUTPUT). Dans notre cas, on aura compris que l’on souhaite configurer la pin de l’Arduino reliée à Brigitte en INPUT, et même à vrai dire en INPUT_PULLUP.

Lorsqu’une pin est configurée en INPUT_PULLUP, tout se passe comme si une résistance était placée entre la pin physique en question et la ligne d’alimentation 5V.

En INPUT_PULLDOWN, tout se passe comme si une résistance était placée entre la pin physique en question et la masse.

D’ailleurs, dans un article à venir, j’aimerais mesurer cette impédance interne pour valider ces propos.

Dans les deux cas, il s’agit de limiter le courant qui passe par cette pin, mais aussi de pouvoir faire un pont diviseur de tension « implicite ».

Si on peut ainsi théoriquement brancher Brigitte directement sur l’Arduino, on va quand même intercaler une résistance entre les deux. Comme on ne sait pas toujours ce qui se passe dans ces cas là (un court circuit est si vite arrivé), on s’assure qu’il y a un minimum de résistance entre les deux loustics.

Mettons 10 Kohms, parce que c’est plus que peu, et moins que beaucoup.

Maintenant, place à une petite galerie d’images pour confronter attentes théoriques et expérimentations.

DSC_6848

 

DSC_6846

 

DSC_6844

 

 

 

 

 

DSC_6850

Incroyable, on retrouve bien les 0.4 mA calculés 🙂

Pour référence, voici le code arduino qui fait tourner notre exemple:

int pinLecture = A0;
void setup()
{
 Serial.begin(9600); 
 pinMode(pinLecture, INPUT); 
}
void loop()
{
 int valeurLue = analogRead(pinLecture); 
 Serial.println("Valeur lue: ");
 Serial.println(valeurLue);
 delay(1000);
}

Conclusion

Si vous trouvez que cet article n’est pas très homogène, c’est normal. C’est mon premier article, que je trouve beaucoup trop long, trop ambitieux à tout vouloir décrire.

Se voulant exhaustif, son écriture s’est étalée sur une trop longue période.

Je n’oublie pas l’objectif initial de l’article, à savoir faire une alarme de frigo. Cependant, j’aimerais poursuivre ce blog avec des articles plus courts, et pas forcément dans une continuité.

Une bonne dizaine de thèmes trottent actuellement dans ma tête pour faire de prochains articles:

– tentative de réparation de matériels divers

– essayer de « vérifier » des principes élémentaires en électronique (mesurer charge/décharge d’un condensateur, mesure d’impédances internes)

– reverse engineering dans un premier temps simpliste de choses et d’autres (contrôleur, bus, protocoles)

– des mesures concrètes des transmetteurs RF low cost rRFL01 (j’en ai reçu une bonne dizaines dernièrement, de types différents), mesures de consommation, de portée

– faire de l’apnée en consommation du microcontrôleur au coeur de l’Arduino (dans un premier temps avec des astuces software, dans un deuxième temps en faisant subir une cure de régime à l’Arduino)

– finir le projet d’alarme de frigo, et en initier d’autres!

– et plein d’autres choses

 

N’hésitez pas à laisser vos messages/commentaires, je débute dans le petit monde des blogs et je prends tout ce qui pourrait améliorer le bonheur de toi, lecteur.


premier post!

21/09/2014


Hello World!

Le but de ce blog est de tenir un cahier d’expériences plus (ou moins) rigoureux, de parler de choses qui me semblent intéressantes.

Il s’agira de tâtonner et de découvrir ensemble (le « ensemble » t’inclue toi, lecteur, que je me permet de tutoyer).

Il n’y a pas de limites sur les domaines touchés, mais on va commencer par l’électronique car c’est un domaine qui est intriguant, et plein de promesses dans un monde toujours plus connecté.

Mais comme on va pas faire comme tout le monde, le but c’est de construire soi même, pour éviter la consommation « mass market » (non mais) – et si en plus ça coûte moins cher, c’est pas pour déplaire!