Librairie MIDI pour l’environnement Arduino

Celle que j’avais mis il y a quelques temps était assez limitée, la nouvelle version prend en charge l’envoi et la réception de tous les messages MIDI (hormis les messages Système).

Vous n’aurez besoin d’utiliser que quelques fonctions, MIDI.send, qui prend comme paramètres le type de message, les deux valeurs de données et le canal, et la fonction MIDI.read, qui ne prend comme paramètre que le canal d’entrée servant de filtre aux messages.
Le message reçu est stocké dans une structure, vous pouvez accéder à ses paramètres avec les fonctions MIDI.getType, MIDI.getChannel, MIDI.getData1 et MIDI.getData2.
Veillez bien à lancer la fonction MIDI.begin dans la fonction setup de l’Arduino, pour initialiser les communications. Cette fonction prend en paramètre le pin sur lequel est connecté l’alimentation de l’optocoupleur du MIDI in.
Je ferai un manuel plus détaillé à l’occasion, qui inclura les petites mises à jour que j’ai en tête… 

Librairie MIDI

Je viens de finir d’écrire une librairie MIDI pour l’environnement Arduino, qui peut donc envoyer des ProgramChange et ControlChange, mais aussi des NoteOn et NoteOff.

Du côté réception, je n’ai encore que la lecture des PC et CC, la lecture des NoteOn/Off n’étant pas prioritaire dans l’utilisation que j’en ai, elle ne viendra que plus tard, pour une autre version.

J’avais déjà testé la sortie MIDI avec succès, reste à tester l’entrée, avec un petit optocoupleur pour respecter la norme de transmission.

J’ai même prévu une fonction “thru” qui copie un message entrant vers la sortie, c’est pratique quand on veut faire une sortie MIDI qui tient à la fois compte du code “utile”, présent dans l’Arduino, et des messages entrants, sans avoir à merger le MIDI Thru et le MIDI Out.

La librairie est disponible ici pour ceux que ça intéresse.

Sanguino

Je viens de recevoir et de monter mon kit Sanguino.

Il s’agit d’une version boostée de l’Arduino/Boarduino, utilisant un ATmega 644p, et présentant le double de mémoire et de vitesse, plus de pins (32 Digital, 8 analog), et 2 UARTs série pour communiquer à la fois avec un écran LCD et en MIDI.

Il reste quelques petits problèmes d’incompatibilité avec la librairie SLCD de SparkFun que j’ai modifié en rajoutant quelques fonctions, mais Zach Hoeken, le créateur du Sanguino, travaille sur une version plus stable et polyvalente du logiciel.

BoArduino

Le BoArduino est un microcontrôleur à base d’ATmega168 compatible Arduino, disponible sur le site de ladyada, et faisant partie du programme Open Source / Open Hardware Arduino.

Il possède 14 entrées/sorties numériques (dont 6 compatibles PWM pour émuler des sorties analogiques), et 6 entrées analogiques. Il possède également des interfaces série et ICSP pour la programmation, et un bus d’émission/réception série.

C’est un microcontrôleur programmable en C, un logiciel servant de compilateur et de programmateur est disponible sur le site d’Arduino.

Je l’ai acheté sous forme de kit chez ElectroShop pour 22€ (frais de ports gratuits, reçu en moins de 24h !), ça se monte facilement, tous les composants sont inclus. Il manque seulement une interface USB-Série pour pouvoir le programmer. L’ATmega est préchargé avec le bootloader, donc il suffit tout simplement de le brancher à l’ordinateur et de charger son programme.

Il s’agit d’une version du module Arduino destinée à s’implanter sur un breadboard, pour les essais. Hormis l’interface de programmation USB-Série, le BoArduino partage les mêmes caractéristiques que son grand frère l’Arduino Diecimila. Il s’agit donc aussi d’une version nomade, qui se passe d’un port USB encombrant.