Le projet  d’un joystick tactile est très intéressant, le MakeyMakey en est une bonne représentation. Mais la contrainte de disponibilité, le prix et l’envie de le faire moi-même ont donné l’impulsion nécessaire pour créer le

TouchStick

TouchStick tout seul ...

TouchStick tout seul …

Il s’agit d’un contrôleur USB, reconnu nativement comme un joystick sous toutes les plateformes (Windows, Linux, Mac).

Sur ce petit circuit vous pouvez brancher jusque six objets, qui, une fois effleurés actionneront la commande correspondante : haut, bas, gauche,  droite, bouton A, bouton B. (ou 6 boutons dans le mode contrôle).

Imaginez un contrôleur à base de fruits, jouer à un jeu de plateforme avec de la pâte à modeler, contrôler votre logiciel de musique avec des canettes de boisson, faire reconnaitre les légumes  par les enfants …

DSC_0939.5

Banana Stick !

Comme le TouchStick est reconnu nativement par votre ordinateur, vous pouvez vous en servir directement comme un joystick avec vos jeux.

Vous pouvez utiliser des programmes tiers comme Processing, PureData, et consors pour découvrir l’univers infini du TouchStick.

Code Processing

import procontroll.*;
import java.io.*;

ControllIO controll;
ControllDevice device;
ControllSlider sliderX;
ControllSlider sliderY;
ControllButton b0,b1;
PImage bnn;
void setup() {
//  zone de jeu 600×400, c’est aps mal
size(600, 400);
controll = ControllIO.getInstance(this);
// On ne choppe que le touchStick
device = controll.getDevice(« asthrolab.fr USB TOUCHSTICK »);
device.setTolerance(0.05f);
device.rumble(100,1);
// On récupère l’axe X et Y
sliderX = device.getSlider(0);
sliderY = device.getSlider(1);
// On récupère les boutons :
b0 = device.getButton(0);
b1 = device.getButton(1);
fill(0);
rectMode(CENTER);
bnn = loadImage(« banana.png »);
}

void draw() {
background(255);
// Si bouton 0 pressé alors on affiche en bleu :
if (b0.pressed()) {
fill(0,255, 255);
println(« b0″);
tint(255);
image(bnn,0,0);
} else {

//sinon on grise la banane :
tint(100);
image(bnn,0,0);

}
// Si bouton 1 pressé alors on affiche en rose :
if (b1.pressed()) {
fill(255, 0, 255);
tint(255);
image(bnn,200,0);

}
else {
tint(100);
image(bnn,200,0);

}

// On déplace le curseur en fonction de la position :
float x = sliderX.getTotalValue() + width/2;
float y = sliderY.getTotalValue() + height/2;

if (x > width + 20 || x < – 20 || y > height + 20 || y < – 20) {
sliderX.reset();
sliderY.reset();
}
rect(x, y, 20, 20);
}

 

Mode d’emploi

  1. Brancher les pinces crocodile sur les pastilles
  2. Brancher les accessoires au bout des pinces crocodile
  3. Brancher le TouchStick en USB
  4. NE RIEN TOUCHER : phase de calibrage
  5. Une fois le clignotement fini : vous pouvez jouer !

Le bouton dans le coin de la carte sert à remettre à zéro (reset) le Touchstick, en cas de bug ou autre.

Le second bouton (Switch) sert à changer le mode de périphérique :

  • Clignotement en ligne des leds : Mode Joystick (H/B/G/D + 2 boutons)
  • Clignotement alterné des leds (2 par 2) : Mode Boutons (6 boutons)

Attention, dans certains cas, le changement de mode provoque la disparition du contrôleur sur l’ordi. Il faut alors relancer le programme ou la détection du contrôleur.

Les 4 LEDs s’allument quand l’un des 4 premier contacteur est actionné (les boutons 5 & 6 ne sont pas représentés). Ceci permet de tester l’installation visuellement, sans avoir d’ordinateur immédiatement à côté.

Pour tester sous Linux : l’outil js-test est parfait et reprend la même interface que l’outil de configuration des manettes de jeux de Windows (Panneau de configuration -> Contrôleurs de Jeu). Sur Mac, ???, mais ça doit pas être bien compliqué.

J’en veux un ! (ou plusieurs)

Le TouchStick est dispo au fur et à mesure que je les fabrique. Toutefois, ils sont très rapidement réalisables.

Je les propose au prix de 20€ TTC (avec 6 pinces croco), + frais de port, envoyez-moi un mail pour commander : thomas@asthrolab.fr. Payable en liquide (si sur Lille, France), Paypal…

Pour être complètement transparent, le prix de revient est de 12 €, la marge est réinvestie dans d’autres projets, en recherche, en investissement de composants & matériel.

Sources :

(remises en lignes dès que le petit bug matériel est corrigé sur les plans)

Firmware (mode joystick pour Atmega8)

Idée basée sur le travail d’Artem : http://www.artemlive.com/cgi-bin/news?c=v&id=749