Faire un don
Panier Compte
Sons gratuits et bruitages a telecharger
Tous les dossiers

Expan'Son (notice d'utilisation)

L'Expan'Son est une carte d'extension qui ajoute 16 voies à votre Ambi'Son, ou à un Arduino, un ESP32 ou un Raspberry Pi. Chaque voie sert d'entrée (un bouton, un contact, un capteur) ou de sortie (une LED, un ordre envoyé à un relais). Elle est vendue sur la boutique de LaSonotheque.

Tout passe par le bus I2C : deux fils de communication partagés, plus l'alimentation. Vous pouvez en brancher jusqu'à 8 en cascade, soit 128 voies, sans occuper d'autres broches de votre carte.

AgE8u9m3KQM

Présentation rapide

J'ai conçu cette carte pour mon Cadavre Exquis Sonore, une installation de 32 boutons lumineux, puis je l'ai voulue assez polyvalente pour d'autres projets gourmands en boutons et en lumières. Je la dessine et je la soude moi-même.

  • Elle est construite autour d'un MCP23017, une puce qui donne 16 broches de plus à un microcontrôleur.
  • Chaque voie a son bornier à vis (la voie et sa masse) et une résistance de 330 Ω déjà soudée.
  • Elle s'alimente en 3,3 ou 5 V, la tension de la carte qui la pilote, par le même câble que le bus.
  • Elle est livrée toute soudée, avec une nappe pour la relier à l'Ambi'Son ou à la carte précédente, mais sans bouton poussoir.
  • Depuis la V2, elle a exactement le format de l'Ambi'Son : mêmes dimensions, mêmes coins, mêmes quatre trous de fixation. On peut donc les empiler.

Utilisateurs ou bidouilleurs, n'hésitez pas à me contacter si vous avez la moindre question sur le sujet !

Mise en garde

Attention : la carte est livrée sans boîtier. Aucun élément conducteur ne doit toucher le circuit imprimé : risque de court-circuit. Alimentez-la uniquement en 3,3 ou 5 V (le « 5V » de l'Ambi'Son ou de votre Arduino), jamais avec l'alimentation 9 V de l'Ambi'Son. Et ne tirez pas plus de 150 mA pour toute la carte.

En détail

L'Expan'Son V2 et ses éléments

Légende

Le schéma montre la carte V2, vue de dessus. La V1 a les mêmes éléments, placés un peu autrement (voir Versions).

  • 1 : deux connecteurs à 5 broches (GND, SDA, SCL, INT, VCC), reliés entre eux : l'un reçoit la nappe de l'Ambi'Son ou de la carte précédente, l'autre repart vers la carte suivante. C'est aussi par là que la carte est alimentée.
  • 2 : interrupteurs d'adresse 1, 2 et 3. Chaque carte d'un même montage doit avoir sa propre adresse (voir Régler l'adresse).
  • 3 : le MCP23017, la puce qui fait tout le travail.
  • 4 : bornier des voies B0 à B7, chacune avec sa masse (GND) juste en dessous.
  • 5 : bornier des voies A0 à A7, chacune avec sa masse (GND) juste en dessous.
  • 6 : fente pour faire passer les câbles d'un côté à l'autre de la carte, par exemple quand plusieurs cartes sont empilées.
  • 7 : quatre trous de fixation de 3,5 mm, pour des vis ou des entretoises M3, placés exactement comme ceux de l'Ambi'Son.

Avec un Ambi'Son

C'est l'usage le plus simple : chaque voie reliée à la masse par un bouton lance son propre son, jusqu'à 128 boutons avec 8 cartes.

Brancher des Expan'Son sur un Ambi'Son
  • Le branchement : la nappe relie le connecteur « I2C Option » de l'Ambi'Son (à partir de la V14, si l'option est choisie) à l'un des deux connecteurs 1 de la première carte. Une autre nappe repart de son second connecteur vers la carte suivante, et ainsi de suite.
  • Rien à ajouter : l'Ambi'Son alimente les cartes et porte déjà les résistances dont le bus a besoin.
  • Les fichiers : la carte réglée sur l'adresse 0x20 lance les fichiers 1 à 16, celle sur 0x21 les fichiers 17 à 32, et ainsi de suite jusqu'à 0x27 (fichiers 113 à 128). C'est l'adresse qui compte, pas la place de la carte sur la nappe. Les cartes sont reconnues toutes seules au démarrage.
  • Le programme : dites-moi à la commande de l'Ambi'Son que vous utiliserez des Expan'Son, je règle son programme pour vous. Avec le programme livré, elles servent uniquement d'entrées (boutons, contacts) ; pour allumer des LED ou piloter des relais, il faut adapter le programme du Nano.
  • L'installation : la carte a le format de l'Ambi'Son et ses trous au même endroit. Vous pouvez l'empiler au-dessus ou en dessous, avec des entretoises, dans l'ordre qui vous arrange : la nappe passe d'un côté ou de l'autre, et la fente 6 aide à faire passer les câbles.

Régler l'adresse

Chaque carte branchée sur un même bus doit avoir une adresse différente, de 0x20 à 0x27. Elle se règle avec les trois petits interrupteurs 2 (ON vers le haut, vers la puce), sans outil ni soudure. Le tableau est aussi imprimé au dos de la carte.

Les huit adresses de l'Expan'Son
Inter. 1Inter. 2Inter. 3AdresseAvec un Ambi'Son
OFFOFFOFF0x20fichiers 1 à 16
OFFOFFON0x21fichiers 17 à 32
OFFONOFF0x22fichiers 33 à 48
OFFONON0x23fichiers 49 à 64
ONOFFOFF0x24fichiers 65 à 80
ONOFFON0x25fichiers 81 à 96
ONONOFF0x26fichiers 97 à 112
ONONON0x27fichiers 113 à 128

Sur une Expan'Son V1, qui a quatre interrupteurs, l'adresse se règle de la même façon avec les interrupteurs 2, 3 et 4. Son interrupteur 1 branche des résistances de tirage du bus : laissez-le sur OFF avec un Ambi'Son, qui a déjà les siennes, et sur ON sur une seule carte (la première) avec un Arduino seul.

Brancher les voies

Chaque voie a deux bornes : la voie elle-même (B0 à B7, A0 à A7) et sa masse (GND). Un fil dénudé de 5 à 6 mm se glisse sur le côté du bornier et se serre par la vis du dessus.

Brancher un bouton ou une LED sur une voie
  • En entrée (bouton, interrupteur, contact, capteur tout ou rien) : branchez-le entre la voie et GND. Le programme active la résistance de rappel interne de la puce : la voie lit 1 au repos et 0 quand le contact se ferme.
  • En sortie (LED) : la patte + de la LED (la plus longue) sur la voie, l'autre sur GND. La résistance de 330 Ω est déjà sur la carte, rien à ajouter : comptez environ 10 mA par LED en 5 V, un peu moins en 3,3 V (la LED est alors un peu moins lumineuse).
  • Le courant : 150 mA au maximum pour toute la carte, toutes voies additionnées. N'allumez pas 16 LED à pleine charge en même temps.
  • Pour commander plus costaud (relais, moteur, ruban de LED, ampoule, électrovanne) : ne tirez pas le courant de la carte. La voie donne seulement l'ordre, à un module relais, un transistor, un MOSFET ou un circuit de type ULN2803, qui fournit le courant.
  • Vous pouvez mélanger entrées et sorties sur une même carte, par exemple 12 boutons et 4 lampes, ou 8 boutons lumineux (le bouton sur une voie, sa lumière sur une autre).

Avec un Arduino, un ESP32 ou un Raspberry Pi

L'Expan'Son fonctionne avec n'importe quelle carte qui parle l'I2C, indépendamment de mes lecteurs audio. Repérez les broches I2C de votre carte :

CarteSDA (données)SCL (horloge)
Arduino Uno / NanoA4A5
Arduino Mega2021
Arduino Leonardo / Micro23
ESP32GPIO 21GPIO 22
Raspberry PiGPIO 2 (broche 3)GPIO 3 (broche 5)
Brancher une Expan'Son sur un Arduino
  • L'alimentation : reliez VCC à la tension de votre carte, 5 V pour un Arduino Uno, Nano ou Mega, et impérativement 3,3 V pour un Raspberry Pi (ou toute carte en 3,3 V) : ses broches ne supportent pas le 5 V.
  • Les résistances du bus : le bus I2C a besoin de deux résistances qui ramènent SDA et SCL à VCC, une seule fois pour tout le bus, pas une par carte. Un Raspberry Pi les a déjà. Avec un Arduino ou un ESP32 seul, ajoutez deux résistances de 4,7 kΩ : l'une entre SDA et VCC, l'autre entre SCL et VCC.
  • L'adresse : indiquez dans votre programme l'adresse réglée sur chaque carte (0x20 à 0x27).
  • Le fil INT (facultatif) : au lieu d'interroger les cartes sans arrêt, votre programme peut être prévenu dès qu'une entrée change : le fil INT passe alors à 0. Reliez-le à une broche libre (par exemple D2), réglée en entrée avec rappel interne (INPUT_PULLUP). Les fils INT de toutes les cartes se relient ensemble sans risque.

Pour les programmeurs

  • Le MCP23017 se pilote avec la bibliothèque Wire d'Arduino, ou avec une bibliothèque toute faite pour le MCP23017.
  • Au dos de la carte figure le réglage ODR=1 (sortie INT en collecteur ouvert) : conseillé, mais la carte est protégée même sans lui, grâce à une diode sur le fil INT. La V1 rappelait aussi MIRROR=1 : indispensable sur la V1, où une seule sortie d'alerte de la puce est câblée ; sur la V2, les deux le sont, ce réglage n'y change plus rien.
  • Laissez INTPOL à 0, son réglage d'usine (alerte quand INT passe à 0).
  • À cause des diodes, le fil INT ne descend qu'à environ 0,5 V. C'est sans souci pour un Arduino ; sur un Raspberry Pi ou un ESP32, gardez le rappel interne ou une résistance de 10 kΩ sur INT, pas plus forte.

Problèmes, résolutions et idées

  • Une carte n'est pas reconnue : vérifiez que deux cartes n'ont pas la même adresse, que la nappe est bien enfoncée, et, avec un Ambi'Son, que son programme est réglé pour les Expan'Son.
  • Des lectures fausses ou des boutons qui se déclenchent seuls : avec un Arduino seul, il manque sans doute les deux résistances du bus. Avec un Ambi'Son et une Expan'Son V1, vérifiez que son interrupteur 1 est sur OFF.
  • Sur une V1, seules les voies A0 à A7 préviennent par le fil INT : réglez MIRROR=1 dans votre programme.
  • Les LED éclairent peu : c'est normal en 3,3 V ; en 5 V, choisissez des LED à haut rendement.
  • Pour toute autre question ou idée, contactez-moi.

Versions

  • Mai 2024 - prototype : boutons et LED sur un MCP23017, pour le Cadavre Exquis Sonore.
  • 2026 - V1 : première carte, 50 × 75 mm, un trou de fixation. Quatre interrupteurs : le 1 branche des résistances de tirage du bus, les 2, 3 et 4 règlent l'adresse.
  • Fin 2026 - V2 : le format exact de l'Ambi'Son (55 × 78 mm, quatre trous de fixation) et une fente pour les câbles. Plus de résistances de tirage sur la carte (elles sont sur l'Ambi'Son, et la carte reste universelle), donc trois interrupteurs d'adresse seulement. Une diode sur chacune des deux sorties d'alerte de la puce : plus besoin du réglage MIRROR. Borniers alignés sur les côtés.

Conclusion

Brancher une Expan'Son est vraiment simple, mais au risque de me répéter : n'hésitez pas à me contacter si vous avez la moindre question ou suggestion à son sujet !

- Joseph SARDIN - Fondateur et Sonothécaire de BigSoundBank.com et LaSonotheque.org - Contact