lundi 15 février 2016

Une carte de développement Microchip gratuite!

Crédit photo:  microchip.com
Mise à jour (17 février 2016):  les 2000 cartes gratuites semblent avoir déjà trouvé preneur.  Microchip parle maintenant d'un rabais à l'achat d'une carte.

Pour un temps limité, Microchip offre une carte "Xpress Evaluation Board" gratuitement aux internautes qui en font la demande.

Cette petite carte comporte un microcontrôleur PIC16F1885 et ne nécessite aucun programmateur externe. Elle est conçue pour être utilisée avec le nouvel environnement de programmation en ligne "MPLAB Xpress", et sera vendue à un prix modique (10 USD).

J'ai trouvé peu d'information sur cette carte, mis à part cet article sur le site HackADay.

Pour obtenir votre exemplaire gratuit un rabais, il s'agit de visiter cette page.  Je vous donne des nouvelles quand j'aurai reçu le mien...

Yves Pelletier   (TwitterFacebook)

dimanche 14 février 2016

Communication par laser entre deux cartes Arduino


Hé oui: aujourd'hui, notre projet consistera à utiliser un laser afin de transmettre un message d'une carte Arduino vers une autre.  Pour ce faire, nous utiliserons l'émetteur-récepteur universel asynchrone (UART) de l'Arduino (les pins Rx et Tx).

L'émetteur

L'émetteur est constitué d'un module laser contrôlé par une carte Arduino.

J'ai utilisé un module laser rouge conçu pour fonctionner sous une tension d'alimentation de 5 V (attention: il en existe aussi qui sont conçus pour une tension de 3,3 V).



L'idée est toute simple:  le laser sera contrôlé par la pin 1 (Tx) de l'Arduino.  Le laser sera allumé lorsque la pin Tx est à 5 V, et éteint lorsqu'elle sera à 0 V.




Par mesure de précaution, j'ai également utilisé un transistor pour éviter de drainer trop de courant de la sortie Tx de l'Arduino (j'ai mesuré que le laser en fonctionnement consomme 30 mA, ce qui est un peu plus que les 20 mA qu'on recommande généralement).


J'ai piqué le circuit dans cet instructable, qui décrit un projet très similaire impliquant le Raspberry Pi, mais j'ai remplacé leur MOSFET par un 2N7000 (pas parce que c'est mieux, simplement parce que c'est ce dont je disposais).

Une façon efficace de vérifier que votre circuit est fonctionnel consiste à utiliser l'exemple "Blink" pour faire clignoter votre laser.

Pour l'émission de messages destinés au récepteur, j'ai choisi d'émettre des valeurs numériques croissantes (nous pourrons donc facilement vérifier si toutes les valeurs sont correctement décodées par le récepteur).  Côté codage, rien d'intimidant:  c'est comme si vous écriviez des valeurs dans le moniteur série:



Ne soyez pas surpris de voir le laser demeurer allumer pendant qu'aucun message n'est transmis:  il s'agit du comportement normal de la pin Tx:  son état normal est 5 V, et elle alterne rapidement entre 5 V et 0 V pendant la transmission d'un message.

Le récepteur

Le récepteur est constitué d'un phototransistor branché à une carte Arduino (je n'ai pas vérifié, mais je suppose qu'une photorésistance réagirait trop lentement pour être utile ici).




J'ai utilisé un phototransistor TEPT5600 (optimisé pour les longueurs d'ondes de 440 à 800 nm, ce qui semble parfait pour de la lumière rouge à 633 nm).  Sur le schéma, la broche la plus longue du phototransistor est du côté 5 V.

Au départ, j'avais prévu qu'il serait probablement nécessaire d'ajouter un comparateur pour rendre le signal un peu plus "propre" avant de le transmettre à l'Arduino, mais ce ne fut pas le cas. Le signal était d'environ 4 V quand le laser état allumé, et d'environ 1,2 V quand il était éteint (ces valeurs sont suffisamment proches de 5 V et 0 V pour être correctement interprétées par une entrée numérique).



Petit pépin, par contre:  le circuit cesse de fonctionner correctement aussitôt qu'on le branche à la pin 1 (Rx) de l'Arduino.  Je crois que problème est causé par une résistance pull up dans la carte.  J'ai donc utilisé une autre pin (la numéro 3) et la bibliothèque "SoftwareSerial" (pas la peine d'installer cette bibliothèque, puisqu'elle est fournie avec l'IDE).

Voici le sketch, qui s'occupe de transcrire ce qu'il reçoit dans le moniteur série.




Résultats

Si tout fonctionne normalement, vous devriez voir les valeurs numériques s'afficher dans le moniteur série, du côté du récepteur.  L'affichage s'interrompt lorsque vous bloquez le faisceau laser, et repart à zéro si vous appuyez sur le bouton reset du côté de l'émetteur.


La fréquence de transmission est limitée:  les résultats sont corrects à 1200 bauds, mais ça ne fonctionne plus du tout à 2400 bauds.

Lors de la phase de développement, le laser et le phototransistor se faisaient face sur la même breadboard à quelques centimètres l'un de l'autre.  Ensuite je les ai séparés d'une distance de 4 mètres et les résultats on continué d'être excellents (bien sûr, l'alignement est très important:  le laser doit atteindre le phototransistor de plein fouet).

L'éclairage ambiant n'a pas affecté la qualité de la transmission (il faut quand même préciser que les tests ont eu lieu dans un sous-sol dont l'éclairage est plutôt modéré).


Yves Pelletier   (TwitterFacebook)

dimanche 7 février 2016

105 interrupteurs individuels dans un vieux clavier Macintosh

J'avais en ma possession un vieux "Apple Extended Keyboard II" fabriqué en 1990, qui avait jadis accompagné un ordinateur Macintosh aujourd'hui disparu.

Puisqu'il s'agit d'un clavier ADB (Apple Desktop Bus) et qu'il y a belle lurette qu'aucun ordinateur n'utilise ce protocole, il ne m'était d'aucune utilité. Peut-être que j'aurais pu essayer de le vendre sur eBay, car il semble y avoir un marché pour ce genre d'antiquités et les enchères atteignent parfois des montants qui me laissent quelque peu dubitatif, mais bof; je crois que je n'ai pas tellement la fibre commerçante.

J'ai plutôt décidé de jeter un petit coup d'oeil à l'intérieur, au cas où il y aurait quelque chose de valable à récupérer à l'intérieur. Je n'étais pas spécialement optimiste, car je suis habitué aux claviers "à membrane", qui ne comportent à peu près rien de récupérable.

Mais ce clavier là n'est pas de la gnognotte: il s'agit d'un clavier mécanique dans lequel chaque touche est constituée d'un véritable interrupteur de bonne qualité, muni d'un mécanisme à ressort et de 2 broches pouvant sans problème être insérées dans une breadboard ou une perfboard.





J'ai donc dessoudé chacun des 105 interrupteurs. Ils pourront servir dans des projets Arduino nécessitant quelques boutons poussoirs: ce sera bien mieux que les minuscules boutons qu'on trouve dans les appareils de nos jours.



Yves Pelletier   (TwitterFacebook)