Les articles de Hackable N°17

Image promotionnelle
Utilisez votre Arduino UNO comme périphérique USB
Article mis en avant

Utilisez votre Arduino UNO comme périphérique USB

Les cartes Arduino Leonardo et Micro utilisent un microcontrôleur bien différent des modèles UNO ou Mega, un ATmega32U4. De ce fait non seulement ces cartes n'ont plus besoin d'une puce faisant la liaison série/USB, mais elles peuvent également apparaître comme des périphériques USB sur-mesure. Les Arduino UNO semblent donc un peu en reste de ce point de vue, mais c'était sans compter un certain NicoHood et son HoodLoader2 ! Les Uno aussi peuvent devenir des périphériques USB. Suivez le guide !
Le titre de cet article de fait pas honneur au matériel et au logiciel que je vais décrire ici. Bien au-delà de la lecture et l'écriture de simples mémoires comme les EPROM, UVPROM ou EEPROM, le périphérique que vous êtes sur le point de découvrir sait également gérer la mémoire des microcontrôleurs Atmel AVR, Microchip PIC ou encore de la famille 80C51/87C51/80C52/87C52 de plusieurs constructeurs, mais également tester les circuits logiques, manipuler les mémoires i2c, les mémoires SRAM, les GAL, etc.
Les leds « intelligentes » de type WS2812b également appelées Neopixels permettent toutes sortes de réalisations. Plus il y en a, plus on peut obtenir des résultats attrayants et des effets attirant l’œil. Nous allons ici mettre en œuvre 64 de ces adorables composants, agencés en un carré de 8 par 8 qui fera office d'écran à très basse résolution. Notre objectif : simuler et animer un feu.
Inutile de le cacher, ce projet est une simple excuse pour découvrir quelque chose de bien plus vaste et intéressant que le fait de se faciliter la vie en faisant des copier/coller à l'aide de boutons dédiés. Ce qui se cache derrière ce simple exemple n'est rien de moins que d'automatiser n'importe quelle séquence de touches, peu importe leur nombre, pouvant être déclenchée par une simple pression sur un bouton.
Nous venons de voir que simuler un clavier ou une souris à l'aide d'un Arduino micro, ou Leonardo, n'est pas quelque chose de bien difficile. Mais dès lors qu'on sort des sentiers battus, les choses peuvent rapidement se corser. Notre objectif ici sera d'émuler l'utilisation des touches d'un clavier multimédia pour contrôler le volume audio. Autrement dit, créer un « bouton » de volume qui fonctionne avec n'importe quel ordinateur et n'importe quel système !
Rien se perd, tout se transforme... en particulier quand on prend l'habitude de ne rien jeter qui pourrait, un jour, servir à quelque chose. C'est précisément le cas de ce clavier IBM XT de 1985 qui attendait patiemment dans mon grenier que je daigne lui donner une seconde vie. L'article qui va suivre est tout autant une description technique de l'adaptation d'un clavier, qu'un retour d'expérience pouvant, je l'espère, vous aider dans vos propres expérimentations.
Qu'il s'agisse de la Raspberry Pi 3 ou d'un modèle précédent équipé d'un adaptateur USB Bluetooth, l'un des usages les plus courants pour ce type de connectivité se résume souvent à l'utilisation de périphériques d'entrée comme un clavier ou une souris. Ceci est très facile à configurer via l'interface graphique, mais qu'en est-il lorsqu'on utilise Raspbian Lite et qu'on préfère la ligne de commandes ?
... ou de n'importe quel autre ordinateur monocarte du même type. Les leds équipant généralement les cartes comme la Raspberry Pi, la BeagleBone Black, l'OrangePi, ou encore la NanoPi sont généralement configurées par défaut pour indiquer un certain type d'activité. Ceci peut cependant être changé relativement facilement pour adapter le comportement de ces leds à vos besoins.
Lorsqu'on utilise une télécommande que ce soit à fréquence ou infrarouge, un message est transmis de l'émetteur au récepteur. Cela fonctionne très bien, mais si quelqu'un capte un message, le copie et l'envoie à votre place, le voici capable de piloter votre installation. Ceci s'appelle le rejeu et pour contrer ce type d'attaque, l'astuce consiste à ne jamais envoyer deux fois le même message. C'est précisément ce que font, plus ou moins toujours selon les modèles, les télécommandes pour le verrouillage centralisé des voitures par exemple et ceci repose sur une notion particulière : les codes tournants. Chose que nous allons découvrir en pratique dans cet article...