QuickRepair 1: Diffuseur huile essentielle

Les gens, Salutations ūüėČ

Encore un format rapide, non que je fusse un homme press√©, ni m√™me si occup√© (un peu quand m√™me), mais j’ai une nette tendance √† agir plut√īt que r√©diger ici.

L’exercice est pourtant amusant, stimulant, alors je m’y pr√™terai encore.

Derni√®res occupations que j’aurais aim√© narrer

Caméra de recul sur Mazda

Fort de l’exp√©rience de d√©montage de la Mazda, m√®re d’un pr√©c√©dent article, j’ai voulu ajouter une cam√©ra de recul au v√©hicule, en esp√©rant qu’elle serait joliment int√©gr√©e au syst√®me de divertissement natif, comme si j’avais eu cette option √† l’achat.

Spoiler: √ßa a fonctionn√©, brancher sur l’entr√©e analogique du connecteur principal sur lequel les RX/TX dont j’avais parl√© lors de ce pr√©c√©dent article. Dans un futur article, je d√©taillerai la proc√©dure, les r√©f√©rences, ainsi que les d√©tails quand √† l’alimentation VCC de cette cam√©ra, et les d√©boires pratiques que j’ai rencontr√© pour la fixer avec discr√©tion au dessus de la plaque d’immatriculation.

Ces déboires ont impliqué notamment ma familiarisation avec un logiciel de conception 3d axé pièces mécaniques, DesignSpark Mechanical.

Avec un peu de ceci

 

Puis un peu de cela:

Le but √©tant d’imprimer une pi√®ce pour placer la cam√©ra (de forme cylindrique, d’o√Ļ le trou), avec des ergots sur les c√īt√©s pour clipser la pi√®ce. La structure arborescente visible sur le deuxi√®me dessin repr√©sente un pont pour permettre de contrer la gravit√© pendant l’impression.

Je rentrerai plus dans le d√©tail une autre fois, ainsi d’ailleurs peut √™tre que l’imprimante 3d que j’ai mont√©e il y a d√©j√† un an de dela, une Anet A8 lowcost mais efficace (√† l’√©poque acquise pour 110 euros frais de port inclus).

Ressusciter DJI Phantom 4 et sa batterie

Un ami (qui se reconna√ģtra, merci :mrgreen:) m’a donn√© un DJI phantom 4 qui ne vole plus, m√™me avec une batterie fonctionnelle (que je n’ai pas) et une batterie non fonctionnelle.

Un projet en cours consiste en leur réparation.

Une bonne piste est concernant la batterie sera mise √† l’oeuvre, d√®s qu’un peu de temps daignera me trouver.

Sujet de l’article

Alors, le quickie du jour, c’est donc un diffuseur d’huiles essentielles de qualit√©, le bien nomm√© Excelvan LM-S1, qui fonctionne par n√©bulisation. Plus pr√©cis√©ment, un proc√©d√© qui √©vite l’√©chauffement d’une flamme, la vaporisation par ultrason, avec ou sans eau.

Comment donc alors?

Attendons le démontage.

Voil√†, un b√™te moteur continu 5V, qui meut une micro pompe √† air pour aspirer l’air de la fiole d’huile essentielle et la projeter dans les airs.

Au fait, pourquoi l’avoir d√©mont√©, ce diffuseur?

Bonne question!

Parce qu’il ne marche plus. Plus sp√©cifiquement, il s’allume (la LED bleue en t√©moigne), mais il reste muet, silencieux, et inactif.

Réparation

.. plus simple que pr√©vue, (mal ūüôĄ )heureusement!

Apr√®s avoir branch√© le moteur sur une source de tension 5V pouvant fournir jusqu’√† 1A, le moteur restait d√©sesp√©r√©ment muet.

En tenant d’exercer une rotation sur son axe avec mes doigts, j’ai senti une tr√®s forte r√©sistance, probablement caus√©e par des r√©sidus graisseux/r√©sineux d’huiles essentielles.

Une m√©thode consiste √† tenter d’ouvrir le moteur (op√©ration d√©licate), et d’y s√©parer les √©l√©ments (op√©ration tr√®s d√©licate), d√©graisser avec de l’alcool et enfin de remonter le tout (op√©ration √† peine surmontable).

J’ai pr√©f√©r√© opter pour une solution plus ..efficace:

√Čtape 1: on nettoie au nettoyeur vapeur

√Čtape 2: on nettoie au WD40

√Čtape 3: on chauffe (c’est quand m√™me bien d’enlever l’eau restante)

Pas trop quand même, moins longtemps que sur cette vidéo Рle pistolet à air chaud était réglé à 300 degrés Celsius.

√Čtape 4: on teste si √ßa marche

√Čtape 5: on d√©monte, et au cas o√Ļ, on diffuse un peu de WD40 (attention, √©viter de respirer les vapeurs dans la mesure du possible)

 

Désolé pour la qualité des vidéos et le format portrait, la faute au nombre de mes mains (2).

Et voilà, un beau diffuseur tout neuf!

Mazdette!

Bonjour,

Pas mal de choses depuis la derni√®re fois, des choses non bidouillesques,¬†des choses bidouillesques mais pas (encore?) racont√©es et une chose bidouillesque que je m’en vais vous raconter maintenant.

Satisfait possesseur d’une Mazda 2 2015 achet√©e neuve en septembre 2015, je me suis permis de la tweaker quelque peu, quelques mois apr√®s la premi√®re mise en circulation √† l’aide de soft-tout-fait-qui-marchotte-mais-un-peu-fait-main-quand-m√™me facilement trouvable sur l’Internet Mondial, comme disent certains.

Image result for mazda entertainment cmu

¬ę¬†Bien¬†¬Ľ, tu me diras lecteur restant √† convaincre, ¬ę¬†mais pourquoi en √©taler la dessus?¬†¬Ľ

Il se trouve qu’il y a quelques semaines de cela, j’ai r√©it√©r√© l’op√©ration pour ajouter -notamment- une fonctionnalit√© des plus int√©ressantes pour le grand utilisateur d’app android podcasts/deezer que je suis: Android Auto. AInsi que mettre une s√©quence de boot anim√© √† la Matrix -parce que je le trouve joli- et un fond d’√©cran repr√©sentant un syst√®me stellaire imaginaire -pour la m√™me raison-.

Apr√®s une partielle r√©ussite, le seul d√©faut subsistant consistait en un d√©faut majeur d’affichage du lecteur audio legacy, que j’ai souhait√© corriger en tweakant plus que le tweaker, et l√† les foudres de l’enfer commenc√®rent √† pointer le bout de leur nez.

En effet, le jour m√™me du retour d’une semaine de vacances -un dimanche, ce d√©tail aura son importance plus tard-, je me lance dans cette ¬ę¬†correction finale¬†¬Ľ qui se cl√īt par une impassible, fatale, implacable s√©quence de boot qui ne peut finir. Infinie d√©ception.

Related image

Sans le d√©crire, le syst√®me sur lequel se base l’outil de tweaking mentionn√© plus haut ressemble aux autorun des anciens (et peut √™tre actuels?) Windows.

L’outil lanc√©, il se manifeste en ouvrant via un simple appel de script sh (oui, le syst√®me audio/video/gps vis√© par ces modifications tourne sous un linux custom) des fen√™tres sur l’√©cran embarqu√© dans la voiture pour manifester ses activit√©s.

Une des premi√®res actions prises alors fut alors d’activer la cr√©ation d’un access point (AP) wifi par la voiture (l’utilisation standard est invers√©e: la voiture se connecte typiquement √† un AP cr√©e par un smartphone pour mettre √† jour certaines donn√©es) et d’un acc√®s SSH, d√©marche toujours assist√©e par l’outil de tweaking.

Op√©ration faite sur l’autoroute de retour des vacances, bien s√Ľr ni laptop ni t√©l√©phone au volant.

Cet acc√®s m’a permis d’accentuer nettement la situation dramatique dans laquelle je m’embourbais, car il me d√©lia l’acc√®s au syst√®me de fichier, en tant que root, de la voiture.

La sagesse des premiers instants s’est alors vite estomp√©e, car quelques op√©rations que je ne raconterai pas ici – qui impliquent chose √† ne jamais, jamais faire de lancer un script qui parait bien trouv√© au hasard d’un forum¬†qui me causa la disparition pure et simple, sans backup, de fichiers critiques pour le syst√®me –¬† me firent dans un premier temps perdre l’autorun (aucune fen√™tre ne s’ouvrait apr√®s l’insertion de cl√©s USB d√īt√©es de l’autorun), et dans un deuxi√®me temps l’acc√®s SSH.

Je me retrouvai avec le syst√®me de divertissement HS (sans GPS, audio, possibilit√© de modifier le comportement de l’√©clairage de la voiture, etc…), qui essaye mis√©rablement de booter sans y parvenir.

Le destin ayant toujours le moyen de garder le sourire, il s‚Äôarrange√Ęt pour que cette m√©saventure arriva le jour m√™me des trois ans d’anniversaire de l’achat de ma voiture. Et la garantie √©tait, bien entendue, de trois ans exactement.

Le lendemain matin, j’arrivai √† la premi√®re heure, d√©pit√©, √† mon concessionnaire Mazda qui m’annon√ßa qu’en effet la garantie √©tait d√©pass√©e depuis 8 heures.

Le responsable local tente la procédure de recovery qui consiste à mettre le système dans un mode spécial pour mettre à jour le firmware (en appuyant simultanément sur les boutons musique+mute+favoris), sans effet. Peut être est ce du à la suppression du fichier sm.conf, qui semble séquencer le démarrage post boot kernel de certains composants importants..

..puis un technicien d√©di√© confirme, on m’annonce que cela n’est pas r√©parable, et qu’il faut commander le nouveau module entier.

Quelques mails et jours plus tard, un geste exceptionnel du constructeur me permettait d’obtenir un nouveau CMU (c’est le nom de la boite qui comprend l’√©cran, l’ampli audio, le SOC ARM (un Freescale iMX6, un cat /proc/cpuinfo permet de le trouver) orchestrant tout cela) avec un rabais de 80%, c’est √† dire 263.84 euros TTC au lieu de 1099.34 euros HT (prix standard Mazda), sans la pose bien entendu.

Nouvellement motiv√© par ce gain de pr√®s de 300 euros, je m‚Äôattelle √† la t√Ęche de tentative de r√©paration du syst√®me dit irr√©parable.

Tout syst√®me linux ou m√™me pas linux en g√©n√©ral, qu’il soit compliqu√© (smartphone android, syst√®me audio/gps/video voiture, gros routeur, tvbox…) ou plus simple (sonnette) permet quasi syst√©matiquement une communication s√©rie.

Une série de 0s et de 1s, échangée par deux fils, un pour transmettre (Tx) et un pour recevoir (Rx).

On branche le Tx du transmetteur sur le Tx du récepteur, le Rx du transmetteur sur le Rx du récepteur.

Le 0, c’est le niveau de la masse (GND), comme toujours.

Le 1, c’est soit une diff√©rence de potentiel de 5v ou de 3.3v par rapport √† la masse. C’est ce qu’on appelle le signal TTL.

Il est capital de savoir si on parle avec des signaux 5v ou 3.3v, car si le p√©riph√©rique comprend le 3.3v et qu’on lui parle avec un niveau TTL 5v, au mieux √ßa marche pas, au pire on casse tout.

On trouve ais√©ment sur le net que sur le Freescale MX6,¬† il s’agit de TTL 3.3v :

Donc ma mission, acceptée par défaut, sera de

  1. démonter le CMU
  2. tenter la communication en mode TTY/console via l’UART (qui permet la communication s√©rie) pour
  3. restaurer les fichiers d’origines.. ah oui j’ai oubli√© cette partie.

R√©cup√©rer les fichiers d’origines

La commence une croisade, celle qui consiste √† r√©cup√©rer les fichiers critiques modifi√©es par l’outil de tweaking, puis malencontreusement supprim√©s, qui se sont av√©r√©s √™tre:

  • /jci/opera/opera_home/opera.ini
  • /jci/scripts/stage_wifi.sh
  • /jci/sm.conf
  • /jci/opera/opera_dir/userjs/fps.js

Version brève:

  1. il faut r√©cup√©rer dans un lieu myst√©rieux et miraculeux, c’est √† dire ici. Pour chaque paire de fichier, il faut prendre le .up le plus volumineux. Ce .up est un .zip.
  2. il faut trouver o√Ļ y sont cach√©s les fichiers miraculeux.

Comme il est dommage de faire simple quand on peut faire compliqué, cet endroit est dans le répertoire racine rootfs1upd\, on y trouve:

Dans le .dat du premier fichier .gz, √† nouveau une archive cach√©e, on trouve un fichier si bien nomm√©:¬†e0000000001. Dans lequel, qui se trouve √™tre encore une archive cach√©e, qui contient un r√©pertoire nomm√©: . .Oui, il se nomme point (¬ę¬†.¬†¬Ľ). Dans lequel on trouve l’arborescence rootfs du / du syst√®me.

N’oublions pas, une des archives est prot√©g√©e par mot de passe. Et comme je suis sympa, voici le c√©same: 5X/9vAVhovyU2ygK (si, si).

Extraire la bête

En retirant la longue bande (en tirant vers 1, puis 2, …) en esp√©rant acc√©der au d√©montage du CMU.

Et bien c’√©tait une mauvaise id√©e, on y acc√®de pas par l√† malgr√© une all√©chante vis.

Il faut en fait déclipser la partie indiquée en rouge dans la photo suivante:

En faisant tr√®s attention √† ne pas rayer/√©rafler le plastique, tr√®s fragile. J’ai utilis√© le capuchon d’un stylo bic, tr√®s efficace et propre.

L’√©tape suivante est de d√©clipser la partie derri√®re l’√©cran, toujours m√™me technique, cela part plus facilement.

On alors facilement les deux vis sous l’√©cran qu’il faut enlever avec une cl√© √† douille avec une allonge (il faut un certain couple pour les desserrer) de taille 10.

Puis il suffit de déloger le CMU de son compartiment, en le tirant vers le haut (il faut un peu insister).

On remarque l’abondance de bandes adh√©sive (gros scotch marron) pour √©viter de rayer la console en plastique, vu que le CMU est en m√©tal.

On trouve des références techniques un partout plus ou moins claires sur le net, qui correspondent en vrac à des mazda 3, 6, CX-5, versions américaines, européennes, versions <2015 ou plus récentes, plus ou moins révélatrices de son modèle.

Communiquer avec la bête

Alors, sur le net on trouve de tout.

De ceux qui conseillent de souder directement les Tx, Rx sur le PCB de la carte mère:

Ceux qui utilisent un programmeur pour réécrire la flash soudée qui contient le système.

Et, enfin, les sages qui peuvent se le permettre qui rusent en ajoutant des fils dans le connecteur qui contient des slots pour les Tx Rx:

Mais je vois pas de pins Rx et Tx sur mon PC, comment je fais Monsieur?

Alors en général, on utilise un convertisseur usb TTL, soit 5v (bon pour nous) soit 3.3v (pas bon pour nous).

On en trouve des centaines entre 1 et 2 euros frais de port inclus sur aliexpress avec les mots cl√©s ¬ę¬†TTL USB converter 3.3v¬†¬Ľ.

Mais la proposition de Mazda (80% de remise) √©tait valable seulement 30 jours, je ne pouvais donc pas me permettre d’attendre ce convertisseur TTL.

Alors première solution envisagée: sortir un vieux laptop pentium 2 trouvée dans une poubelle avec un port série. Potentielle grosse erreur, car les niveaux TTL peuvent être 12v sur les PCs.

Autre solution, utiliser un arduino (qui n’en n’a pas quelques dizaines chez soi?) comme un convertisseur TTL.

En effet, les Arduino Uno sont compos√©s d’un Atmel 328P (le micro controlleur) et d’un chip FTDI convertissant USB (vers PC) <=> s√©rie (vers microcontrolleur).

Une astuce, que j’ai essay√©, consiste √† court-circuiter la borne RST (reset) du microcontrolleur √† la masse, pour ¬ę¬†d√©sactiver¬†¬Ľ le microcontrolleur, et n’activer que le chip FTDI USB s√©rie.

Astuce que j’ai essay√©, qui n’a pas march√©. Oui, c’est bien la peine que je vous la d√©voile..

Ce qui a marché pour moi, simplement faire un programme (sketch) arduino suivant:

void setup(){
pinMode(0,INPUT);   
pinMode(1,INPUT); 
} 
void loop(){ 
}

Qui a marché.

Par contre, attention!

Les arduino uno fonctionnent avec un TTL √©gal √† la tension d’alimentation, ici 5v.

Contre astuce 1: utiliser des circuits convertisseurs de niveau logique 5v<->3.3v trouvable pour moins d’un euro sur les sites asiatiques. Ou se le faire avec un pont diviseur de tension (r√©sistances).

Contre astuce 2: Il se trouve que j’ai un vieux clone chinois d’Arduino, le Funduino qui a comme pouvoir magique d’avoir un switch physique qui permet de basculer ses niveaux TTL de 5v √† 3.3v:

Il n’y avait plus qu’√† connecter l’ensemble:

J’ai test√© avec succ√®s avec des fils classiques dupont de breadboards.

Ma technique: d√©nuder de 3 bons centim√®tres, faire passer le fil √† l’int√©rieur de la fiche pour faire d√©passer les fils et les rouler √† l’ext√©rieur, pour s’assurer que le contact se fasse (il n’y a pas d’encoche metallique dans la fiche, car ces pins ne sont pas sens√©es √™tre utilis√©s).

Que le texte défile

Un putty/xshell/n’importe quel soft qui permet de communiquer en RS232 (s√©rie) 115200 bauds, 8 databits, pas de bit de parit√©, et 1 stop bit plus tard et la magie se passa.

Première déconvenue

Pour transférer en série les 4 fichiers textes mentionnés plus haut,

après avoir

  1. déactiver le watchdog timer noyau: echo 1 > /sys/class/gpio/Watchdog\ Disable/value
    (plus d’infos ici pour comprendre ce mecanisme watchdog et le lien avec /sys/class/gpio)
  2. et remonter le rootfs en écriture: mount -o rw,remount /

un

cat > lefichier

suivi d’un copie colle termin√© par un ^D (control D) fit le job.

Après redémarrage toutefois, cela ne redémarrait toujours pas.

Première déconvenue, donc, et coucher à 1h50 du matin.

Soupir, espoir

Le lendemain, plein d’espoir, surgit l’ombre du failsafe.

Le failsafe est l’un des deux .up qui composent le firmware. Le failsafe est un syst√®me rudimentaire qui permet de mettre √† jour le syst√®me, qui est normalement appel√© par le process qui s’active avec la combinaison Musique+mute+favoris d√©crite plus haut, qui ne fonctionnait plus dans notre cas.

Il y avait une page sur le net qui expliquait comment forcer ce mode en hardware, ici.

D√©sormais, cette page d√©bouche sur ce message obscur: ¬ę¬†These web pages were intended for sharing information from Electrical Engineer to fellow Electrical Engineer. They have now been removed due to people who ignore warnings, erroneously think that they can pretend to be an experienced Electrical Engineer, and think that following a haphazard subset of steps in a dangerous process (that they were warned not to do) is somehow equivalent to performing all of them.¬†¬Ľ

Non intimid√©, une recherche via le site – fabuleux dit en passant – web.archive.org (l’internet wayback machine) montre 14 snapshots entre juin 2016 et janvier 2018, le dernier qui montre l’information date du 8 mars 2017:¬†https://web.archive.org/web/20170308064828/2x4logic.com/invokefailsafe.html

La on apprendre une proc√©dure r√©serv√©e aux initi√©s qui explique comment l’auteur a, √† l’aide d’un bus pirate, forc√© le boot depuis le failsafe. Et notamment il explique que le bloc boot-select est configurable via un √©tat for√ßable dans mtd (mtdblock1).

Et oh surprise, un script configure_flash.sh trouvable dans le rootfs contient une fonction switch_ibc, qui en fonction de l’entier qu’on lui passe configure ce mtd : 1 boot normal (syst√®me de fichier linux rootfs), mais sinon (2 par exemple) : boot sur failsafe.

Bonheur

Apr√®s avoir inject√© ce script par la proc√©dure d√©crite plus haut, celle du chat raisonn√©, quel bonheur de voir le failsafe s’executer au prochain reboot, qui permet de r√©installer le firmware (les 2 fichiers up) plac√©es judicieusement dans un cl√© usb branch√©e sur le syst√®me.

Et de voir la vie rena√ģtre sur cet √©cran:

Information int√©ressante finale num√©ro 1: ne pas oublier d’appuyer r√©guli√®rement sur la p√©dale d’embrayage, le voyant d’indicateur du bouton on/off de la voiture change d’√©tat, et √ßa semble emp√™cher la mise en standby non souhaitable pendant le flashage du firmware

 

Information int√©ressante finale num√©ro 2: cette proc√©dure semble pouvoir fonctionner dans tous les v√©hicules mazda un peu r√©cents (>=2014), mazda 2, 3, 6, cx-5… et le user par d√©faut est user (avec droits root), le mot de passe jci

Reviving old wire-guided buggy

Bonjour, un article un peu sp√©cial, puisqu’il s’agit d’un copie colle d’un article (assez ancien) fait dans le cadre d’un club maker dont je fais parti:

Goal is to present a bit what we did, what we have, what we’re aiming at in the short term..

Our first project

One of the toy attracted us, this one:

Our goal was clear, reviving this buggy and making it autonomous using an arduino.

First, after taking it apart, we tried to understand the original – simple – design:

But also that many wires were corroded making the car useless in its current condition.

Turned into this hand-made drawing schematics:

First, we tried to control the 6V 250ma DC motor via the TTL voltage given by arduino outputs using the only transistor we had,at this time an IRF520N (here).

Which we hooked to a 12V battery + DC motor:

But we didn’t get the results we expected,indeed motor was running very weakly, plus the transistor was getting very hot.

After some thoughts, we concluded looking at specs¬†(page 3, characteristics graph on bottom left) that even if the graph is based on Vds = 50V, the Vgs we put is too low, as a consequence transistor is not ¬ę¬†fully¬†¬Ľ in court circuit state (¬ę¬†passant¬†¬Ľ) => big internal resistance => big voltage. Also, current at this regime is low, thus low rpms. We needed 10V on the gate to have it working in its nominal regime, that’s much more than TTL arduino levels (5V).

So we ordered another transistor better suited for our low activation voltage.

At some point, we wanted to control both front motor (for steering) and rear motor (to move forwards/backwards).

So we ordered a LS293 component, containing 2 H bridges, but only after one of us reinvented H bridge principle.

We wanted to jump from breadboard prototyping to PCB soldering prototyping cards..

As we lacked experience in PCB prototype board usage at this point, our first attempt was a bit laborious and not the cleanest imaginable (from now on we’ll avoid soldered tracks):

But was functional!

… until the LS293 exploded..

We were a bit too excited to test the whole thing, that we bypassed basic checks such as how much current motors were asking for, and LS293 temperature.

It happened that an adhoc repair we did for the steering prevented the front motor from moving freely, and additional torque made the motor take more current than preliminary tests.

=> we went well beyond internal LS293 h-bridges max current specs

Consequence:

  • we modelised and 3d printed the broken part to have cleaner repair:

  • we realised our original schematics could be improved by enlarging ground plane, also used to dissipate heat
  • maybe we should use a DC motor with max current usage within our LS293 specs¬†(sourire)
  • maybe we should use a servo/step motor, much better suited for steering than original DC motor

and here we are now, we’ll be back with latest updates!

Next steps

Once we have all basics working for our car, we want to plug one of the many sensors we have (ultrasonic, rgb, we have wide angle camera with RF transmission..), put basic AI (fitting in arduino’s atmel cpu), then using advanced controller (possibly configured via openpilot) and more advanced stuff (remote control via reinforcement learning running on PC..).

 

Sonnette sans fil Рébauche

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

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

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

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

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√Ę

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

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.