Accéder au contenu principal

Le tapis interactif - "Les 100 dalles"

Les "100 dalles"

Dans ce billet qui fait suite à la description du multiplexeur MCP 23017, je vais présenter l'utilisation que j'ai faite de ce circuit intégré pour faire un tapis interactif de 10x10 cases (les "100 dalles") dans le cadre d'une formation que j'ai suivie sur "les 7 habitudes de ceux qui réalisent tout ce qu'ils entreprennent". L'objectif de ce tapis qui symbolise une rivière infestée de crocodiles est de voir comment un groupe de personnes vont s'auto-organiser pour réussir à franchir la rivière.

Le matériel nécessaire

Pour cette recette, il vous faudra :
- 1 micro-contrôleur : comme d'habitude, j'ai choisi un Fez Panda II,

Fez Cerbuino Bee (37,12€ chez Lextronic)
ou Fez Cerbuino Net(49,20€) Net mais ça devrait tout aussi bien marcher avec un Arduino ou un Raspberry

- 2 x 3 mètre de câble en nappe de 10 fils pour un tapis 10x10 (0,60 € le mètre chez Lextronic). Si vous voulez faire du 8x8, une nappe de 16 fils (0,90€ le mètre) coupée en 2 fera l'affaire.
- 2 cartes de prototypage sans soudure (breadboard) de 400 points avec 2 lignes +/- (4,51€ chez Lextronic)
- 1 led RVB Grove chainable (4,51 € chez Lextronic)

- 4 rubans de cuivre de 5 mm de large * 15 m (2,90€ chez Lextronic)

- 1 shield Grove (9,53€ chez Lextronic) - j'ai la version 1.2 mais la version 1.3 convient également bien qu'elle dispose de moins de ports i2c et série

- 1 pack de composants pour prototypage (21,6€ chez Lextronic) - contient des résistances, des leds et des straps
-  1 réseau de résistance 9 pins (0,35€ chez Lextronic) - la première pin est utilisée comme point d'entrée. Choisissez une résistance de 4,7 Kohms ou 10 Kohms. Une valeur plus grande marche également.

 équivalent avec des résistances normales

- 2 circuits MCP 23017 (2€ chez GrRobotronics)
- 4 feuilles de Velostat (4€ la feuille chez GrRobotronics): je reviendrai sur ce produit magique
 - 2 connecteurs IDC 2x5 PCB breadboard friendly (0,70€ chez GrRobotronics)

- 3 rouleaux en plastique pour couvrir les livres 45cm x10 m (3€ chez Auchan)
- 1 pince à dénuder automatique facultatif mais super pratique (6€ chez Cora)
- 25 dalles en moquettes de 50 cm x 50 cm (5€ la dalle chez Leroy Merlin)
- 2 barrettes dominos de 12 connecteurs pour le raccordement (4€ chez Cora)

Sous total (sans micro-contrôleur) : 104 €
Sous total (y compris le micro-contrôleur) : 141€

En plan B, j'avais prévu l'option de pouvoir allumer la led RGB à distance via Bluetooth. J'ai donc rajouté :
- une bouton Grove (1,96€ chez Lextronic) 
- une carte Bluetooth série Grove (19,90 chez GoTronic) 

Total avec toutes les options : 163€

L'utilisation du Velostat

Afin de ne pas utiliser des boutons standards pour détecter la présence d'une personne sur une dalle, j'ai cherché une solution la plus plate possible pour pouvoir résister au poids d'une personne de 80 kg tout en étant suffisamment sensible à travers une dalle en moquette de quelques millimètres d'épaisseur. J'ai donc cherché des composants sensibles à la pression, à la flexion ou à la force, mais ces composants électroniques sont autour de 5€ pièce, ce qui multiplié par 100 devenait inacceptable. J'ai finalement trouvé après quelques recherches un matériaux en plastique suffisamment fin qui réagissait à la pression : le Velostat (ou le Linqstat qui est son équivalent chinois). Ce produit est en vente chez Adafruit, mais également chez GrRobotronics qui ont des frais de livraison autour de 6€.

Ce produit développé par 3M est initialement utilisé pour les emballages anti-statiques utilisés pour le transport de composants électroniques. C'est un polymère imprégné de particules de carbone, ce qui le rend conducteur et dont la résistance varie en fonction de la pression ou de la flexion. Il sert donc initialement de "cage de Faraday" pour le transport de matériaux, mais est de plus en plus utilisé pour créer des capteurs pour les micro-contrôleurs. Inutile donc de s'adresser directement à 3M qui les vend par bobines entières, on des feuilles de 30 cm x 30 cm dans quelques boutiques informatiques spécialisées dans ce qui touche aux matériaux et tissus conducteurs. Notons pour la petite histoire que certaines personnes l'utilisent également comme couverture, casque, casquette ou chapeau pour se protéger des ondes électromagnétiques (ça peut encore se comprendre) ou du débarquement des Aliens (http://www.stopabductions.com/ - chacun fait se qu'il veut après tout, tant que ça ne dérange pas les autres).
On trouve sur les site http://www.kobakant.at/DIY/?tag=velostat, plusieurs exemples d'utilisation de ce plastique, mais également d'autres composants conducteurs.

Réalisation

J'ai fait plusieurs essais avant d'arriver à une solution à peu près acceptable.
La première option était d'adresser chaque dalle individuellement. Cela aurait conduit à avoir 100 entrées connectées sur le micro-contrôleur. Cela aurait été possible avec 7 circuits multiplexeurs pouvant adresser 16 entrées, mais cela aurait conduit à plusieurs dizaines de mètres de câblage.
Après quelques recherches, je suis tombé sur des solutions alternatives présentées sur http://www.interface-z.fr/conseils/tapcam.htm en français, sur http://www.kobakant.at/DIY/?tag=velostat ainsi que sur http://www.plugandwear.com/default.asp?mod=cpages&page_id=37.
Le site interface-z montre dans le détail la réalisation de son tapis interactif qui utilisé du papier aluminium ménager recouverte d'un tapis de mousse perforée. Le contact est détecté lorsque la surface du haut entre en contact avec la surface du bas à travers la mousse perforée. Le site utilise également une carte mère et plusieurs cartes filles (une par ligne) pour surveiller l'ensemble des cases.
Dans mon cas, j'ai choisi d'utiliser une lecture matricielle pour lire l'état des cellules.

Etape 1 : découper le plastique
Il faut découper 10 bandes de plastique généralement utilisé pour les couvertures de livre en bandes de 2,5 m (50 cm x 5 de longueur et 45 cm de largeur), soit 25 m de plastique (2 rouleaux de 10 m + 1 demi rouleau). Un carré de 50 cm contiendra ainsi 4 zones de 25 x 25 cm chacune.
Cinq bandes seront utilisées pour les lignes et cinq pour les colonnes.


Etape 2 : coller les bandes de cuivre
Pour chaque bande plastique, il faut découper 2 bandes de cuivre de 2,5m. Les bandes sont autocollantes, ce qui simplifie grandement le travail. J'ai réalisé que l'on pouvait finalement les utiliser pour faire des circuits intégrés grandeur nature à la manière des "Paper Circuits".
Pour les 5 bandes utilisées pour les lignes :
 - coller les bandes cuivrées à 11,25 cm (= 45/4) cm de la largeur de la bande.
Pour les 5 bandes utilisées pour les colonnes :
- coller les bandes cuivrée avec 25 cm d'écart, soit à 10 cm de la largeur et à 12
Pour me simplifier le travail, j'ai construit un patron en carton de de 22,5cm x 25 cm percé au centre pour indiquer le milieu. J'ai ensuite utilisé un marqueur indélébile pour marquer le centre

Etape 3 : découper les feuilles de Velostat
Les feuilles de Velostat arrivent au format 30 cm x 30 cm environs. J'ai découpé 6 lignes et 6 colonnes de 5 cm dans chacune des feuilles.

Etape 4 : coller le Velostat au centre pour les 5 bandes qui constituent les lignes
Le patron décrit précédemment permet de facilement identifier le centre. Une fois marqué, j'ai scotché le Velostat sur un bord de manière à pouvoir éventuellement l'ajuster précisément ultérieurement.

Etape 5 : ajouter un connecteur pour chaque bande de cuivre
Afin de faciliter la connexion avec le câble en nappe, j'ai rajouté en un bout de fil avec un header en bout de chaque bande de cuivre. Pour cela, j'ai coupé un strap mâle/mâle en 2 et récupéré chaque moitié pour une bande. La connexion avec les barrettes domino est ainsi beaucoup plus simple.

Etape 6 : découper la nappe en biseau pour accéder à chaque entrée
Séparez les fils de la nappe en découpant chaque fil avec un espace de 25 cm.
Cela doit donner une sorte de flûte de pan comme ceci. Essayez de les garder ensemble jusqu'au moment où ils devront être séparés. Cela évitera qu'ils s’emmêlent.
A bout de chaque nappe, fixez un connecteur IDC mâle qui viendra ensuite se connecter sur le breadboard. Ces connecteurs sont auto-perforants. Vous pouvez forcer la perforation en serrant avec un étau, avec vos doigts (il faut un peu de force) ou avec vos dents (ça marche aussi).

Etape 7:mise en place au sol des lignes (celles avec le Velostat)
La mise en place au sol est une des étapes cruciale afin que les bandes soient bien alignées sur le Velostat pour faire contact et surtout pour ne pas faire passer le courant en continu.
Si nécessaire, faites un tracé avec du ruban utilisé pour le papier peint. Faites des carrés de 50 x 50 cm et centrez chaque bande de 45 cm à l'intérieur. Il devrait donc y avoir 10 cm d'espace entre chaque feuille.

Etape 8 : mise en place au sol des colonnes
Installez les colonnes par dessus les lignes. Veuillez à ce que les bandes de cuivre soient bien au dessus d'un bout de Velostat. Si nécessaire, repositionnez le Velostat correctement. Il est préférable d'être 2 pour cette opération.
 


Etape 9 : raccordez les nappes aux tapis
A l'aide des barrettes dominos, raccordés chaque extrémité de la nappe avec le connecteur en bout de chaque bande de cuivre.

Etape 10 : raccordement des nappes sur le breadboard
Les connecteurs IDC s'enfichent assez simplement sur le breadboard. Attention à la numérotation des fils.

Etape 11 : raccordement des breadboard au micro-contrôleur
Les 2 breadboards utilisent le circuit MCP 23017. L'un des breadboards est utilisé pour l'écriture uniquement et le second pour la lecture uniquement.
Le breadboard utilisé pour la lecture dispose d'un réseau de résistances reliées à la masse afin de renvoyer 0 si le capteur n'est pas enfoncé. Les résistances ne sont pas nécessaires pour l'écriture.
Pour des besoins de tests, vous pouvez utiliser une led afin de détecter que les signaux sont bien envoyés et reçus. Attention cependant à ne pas les utiliser en fonctionnement normale sinon vous verrez la led s'allumer mais le micro-contrôleur ne recevra qu'un signal trop faible pour être considéré comme un 1.

Voici le résultat final.








Commentaires

Posts les plus consultés de ce blog

Supprimer les partitions Raspberry sur une carte SD sous Windows 7 avec Diskpart

Si vous souhaitez récupérer une ancienne carte SD utilisée pour démarrer un Raspberry pour un autre usage (appareil photo, etc), il vous faudra supprimer les deux partitions créées au moment de l'écriture de l'image sur la carte SD. Vous pouvez voir les partition en sélectionnant Menu Windows/Ordinateur/bouton droit "Gérer". Voici un exemple du résultat final. Vous pouvez supprimer la partition Unix de 7 Gb (ou 4Gb en fonction de la taille de votre carte) en sélectionnant la partition puis en faisant "bouton droit Supprimer". Laissez juste une partition pour pouvoir faire les autres manipulations avec DISKPART. Démarrez l'outil DISKPART en ligne de commande. Une nouvelle fenêtre s'ouvrira. Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. Sur l'ordinateur : FRVILN0H305806 DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   D

Comment lire son écran de téléphone Android sur PC (2)

Voici une nouvelle manière d'accéder à votre téléphone depuis votre PC. Cette méthode utilise le câble USB et Google Chrome. Elle fonctionne donc sur Windows, Mac et Linux. Les pré-requis sont les mêmes que ceux du billet précédent : Téléphone configuré en mode Développement Drivers USB installés sur le PC Google Chrome installé L'application Vysor s'installe comme une extension de Google Chrome. Cherchez dans le Webstore et lancez l'installation. Une fois installée, l'application apparaît dans les extensions. Vous pouvez la lancer de différentes manières. La manière la plus simple est d'ouvrir la fenêtre des applications : chrome://apps/ Une autre manière est de créer un raccourci en cliquant sur « Détails ». Ensuite créez un raccourci sur le bureau, le menu démarrer et/ou la barre de tâche. Vous pouvez également cliquer sur afficher dans la boutique et lancer l'application depuis la boutique. Une fois

Serveur d'impression CUPS sur Raspberry Pi

Je possède une très vieille imprimante laser HP Laserjet 6L noir et blanc de 12 ans d'age qui a survécu à plusieurs imprimantes jet d'encre couleurs tombées en désuétude pour obsolescence programmée. J'envisage tout de même sérieusement de les démanteler pour les recycler en CNC, graveur ou autre.   Je continue donc a utiliser cette bonne petite imprimante parallèle qui me rend bien des services (en 12 ans, j'ai changé le toner 3 fois pour un coût de 20 € la cartouche). J'ai donc dû m'équiper d'une adaptateur USB/Parallèle pour pouvoir la connecter sur un PC récent. Le problème principal est que le driver de cette imprimate n'est reconnu que par un seul de mes PC sous Windows 7. Les autres PC sous Windows 8 ou Windows 10 reconnaissent bien l'imprimante, mais sortent des feuilles avec le code Postscript. L'impression depuis une tablette ou un téléphone Androïd est également tout simplement impossible. Pour remédier à ce problème, j'ai don