fouineur - n. fam. pej. Personne qui fouine syn. curieux, indiscret, inquisiteur. Vocab. quebequois : hacker
fouine - nm [foui-n'] Petit mammifère appartenant à l'espèce de la martre
fWIIne - Functions for WIImote 'N for Engineering
Bande passante de l'accéléromètre de la Wii remote et échantillonnage
Dans le post précédent, la bande passante de l'accéléromètre de la wiimote était considérée de [0Hz 25Hz] en raison des limitations dues aux capacités externes. Cette limitation en fréquence est effectivement fonction des valeurs des Capacités Cx,Cy and Cz par le calcul suivant :
Bande Passante = 1/(2*PI*32kOhms*Capacité)
Afin d'évaluer cette bande passante, le fichier fwiine_recording_experiment.m a été modifié avec un nouveau pas de ré-échantillonnage : t_sample=0.012; à la place de t_sample=tps_sample(1,3); %0.02s Avec un nouveau fichier stimulus (.wav), la mesure a été enregistrée. En théorie, le signal stimulus présente le spectrogramme suivant :
[Zoom sur la zone 0-100Hz du spectre théorique du stimulus (.wav) sans tenir compte de l'expérience et du subwoofer)]
Ce sont les capacités externes qui vont limiter, principalement, le spectre des fréquences enregistrées. Le graphe ci-dessous montre l'évolution du spectre durant l'enregistrement :
[AZ(f) Spectrogramme de l'enregistrement] [ A gauche, spectrogramme initial / A droite, après traitement d'image et identification de zone (manuellement)]
Le spectre observé prend en considération les réglages de la wiimote (positionnement sur le dessus du caisson de basse) et de la réponse en fréquence du subwoofer.Si l'on considère que la Wiimote et le caisson peuvent transmettre des fréquences de l'ordre de 50Hz sans atténuation, le spectre du stimulus initial est identifiable et le bruit couvre ses fréquences à partir de 33Hz/34Hz. Finalement avec cette fréquence de coupure autour de 33Hz, la valeur de capacité attendue est Cz=150nF. Cette valeur est de l'ordre d'une valeur déjà mesurée de 0.2µF. En outre, cela implique qu'un pas d'acquisition min. de 0.015s (soit 66 trames par seconde / 2x33 selon le th. de Shannon) est acceptable et significatif pour la chaine de mesure de l'outil "Wiimote Matlab" .
In the previous post, the Wii remote accelerometer bandwidth was considered as [0Hz 25Hz] because of external capacitors limitations. Indeed, this consideration comes from values of external capacitors. For Cx,Cy and Cz external capacitors, the calculation is given by :
Bandwidth = 1/(2*PI*32kOhms*Capacitor)
In order to check bandwidth limitations, the file fwiine_recording_experiment.m was modified with a new re-sampling time : t_sample=0.012; instead of t_sample=tps_sample(1,3); %0.02s The measurement were recorded with a new .wav file as stimulus. Theorically, the power spectrum of the .wav file is described by the following spectrogram :
[Zoom of area 0-100Hz on theoretical spectrogram of stimulus (.wav file) without considerations about subwoofer and experiment]
The capacitors are going to limit the recorded spectrum. Indeed, the following graph shows the change of spectrum during the recorded measurement :
[AZ(f) Spectrogram of recorded measurement] [ Left, initial spectrogram / Right, after image processing and area identification(manually)]
The observed spectrum takes in consideration wiimote settings on top the subwoofer and frequency response of subwoofer box itself. Considering frequency responses of subwoofer box and wiimote device can be out of 50Hz (at least) without attenuation, the initial stimulus spectrum is recognized and the noise covers its frequencies up to 33Hz/34Hz. Then, with this cut-off frequency around of 33Hz, the expected capacitor value is Cz=150nF. This value is around of an already measured value of 0.2µF. In addition, it also means a min. acquisition step of 0.015s (66 frames per second / 2x33 according to Shannon's theorem) is acceptable and relevant for the "Wiimote Matlab" tool chain.
Modal analysis is used to obtain Power Spectrum from accelerometer. Quickly (see the tech. note for more info.), the aim of this analysis is an identification of frequencies from a recorded signal. The wiimote's accelerometer is able to record signal with a range of frequency between [0Hz 25Hz]. This range is useful for mechanical constraints of human body. (Soldering skills can allow you to extend this range but this is not the purpose of this post). Then, some notions from signal processing need to be described.
1. Sampling
Theorically, the bluetooth connection allows an acquisition of 100 frames per second. But the bluetooth stack management, the Operating System, applications and other peripherals are very disturbing for the acquisition chain Wiimote-Matlab :
Theor., acquisition step is around 0.01s. A Gaussian distribution with a short standard deviation centered around 0.01s is tolerated. However, this statistical distribution is not temporally-granted. So, a re-sampling is necessary without too much information losses. Here, an acquisition step of 0.02s (25Hz) were chosen. Well, thoughtful by Nintendo engineers, capacitor limitations of accelerometer range (max. 25Hz) can be considered as an anti-aliasing filter. (Be aware of anti-aliasing if re-sampling period is up to 0.02s.)
[right picture : Distribution of acquisition steps / Recording Wiimote data with fWIIne ]
2. Fast Fourier Transform (FFT)
One example of an application of FFT to wiimote measurements :
[FFT of signals ax(t), ay(t), az(t) - repetitive arm movements ]
Auto Power Spectrum (APS) comes from FFT computation and provides signal power for a given frequency. It was necessary to compare Power Spectrum of Both signals before and after re-sampling in order to control efficiency of the re-sampling :
[Zoom of range 8.5-11.5Hz : Auto Power Spectrum from a 10Hz-pulse - Re-sampled signal indicates 10Hz, properly, whereas first signal was erroneous with a peak frequency of 10.2Hz]
[The Power Spectrum (left side : 2Hz pulse) is in accordance with theorical spectrum of pulses - right side]
3. Experiment - Technical aspects :
Steps :
Pulses were produced at a defined frequency - 1Hz, 2Hz, 10Hz - from a subwoofer (from a computer). The wiimote is located on the top of the subwoofer, horizontally. Recording the values with fWIIne v0.2 for Matlab/Windows XP :
- 1st step : Data Acquisition. At the end, a filename is asked in order to save a txt file. - 2nd step : Data analysis. In the same directory, loading the file.
NB: Using an older release fWIIne v0.1 for Matlab/WinXP, the user will have to adapt the acquisition file, slightly.
In spite of a restricted frequency range, the wiimote allows recording data and Power Spectrum analysis for given experiments and for educational purposes.
[Spectre de Puissance |AZ(f)|² d'un train d'impulsion de de 2 Hz]
L'étude du spectre de puissance du signal provenant d'un accéléromètre est courante en analyse modale. Pour faire simple (voir cette note technique), cette étude revient à identifier les fréquences présentes dans le signal enregistré. L'accéléromètre de la wiimote présente l'intérêt de pouvoir enregistrer des signaux comportant des fréquences comprises entre [0Hz 25Hz]. Cette plage convient parfaitement pour des contraintes mécaniques humaines comme les mouvements du corps et des bras (une modification technique de la wiimote permet de l'étendre. Ce n'est pas l'objet de ce post). Pour poursuivre, il est nécessaire de détailler certaines notions de traitement du signal.
1. Echantillonnage
Pour une connection Bluetooth, la fréquence d'acquisition de la Wiimote est de 100 trames/s. Or le traitement de la pile Bluetooth, le Système d'Exploitation, les applications, les autres périphériques font que la chaine de mesure perturbe cette fréquence d'acquisition :
La période d'acquisition théorique est de 0.01s. Une tolérance peut être permise si la distribution statistique des pas d'acquisition est une gaussienne centrée sur 0.01s. avec un écart-type restreint. Or dans le cas d'une connection Bluetooth, cette distribution n'est pas garantie. En revanche, il est possible de ré-échantillonner le signal sans perdre trop d'information. Ici nous choisissons le pas d'acquisition de 0.02s (25Hz). Bien pensées par les ingénieurs de Nintendo, les limitations dues au capacités de l'accéléromètre (max. 25Hz) peuvent faire office de filtre anti-aliasing. (Penser à reconsidérer cela pour des pas de ré-échantillonnage supérieurs à 0.02s)
[image de droite : Distribution des pas d'acquisition / enregistrement des données de la wiimote avec fWIIne]
2. Transformée de Fourier Rapide (FFT)
Un exemple de FFT appliqué à un enregistrement avec la wiimote :
[FFT des enregistrements de ax(t), ay(t), az(t) lors de mouvements saccadés du bras]
Cet outil mathématique de traitement des signaux numériques permet d'obtenir le spectre de puissance (APS) du signal. Afin de contrôler que l'efficacité du ré-échantillonnage, il suffit de comparer le spectre des signaux avant et après ré-échantillonnage :
[Zoom sur la zone 8.5-11.5Hz du spectre de puissance d'un train d'impulsion de 10Hz - le signal ré-échantillonné indique 10Hz correctement alors que le signal initial indique une composante erronée à 10.2Hz ]
[Le spectre obtenu - fig. de gauche : pulsations de 2Hz - est effectivement le spectre d'un train d'impulsion - fig. de droite]
3. Aspect techniques de l'expérimentation :
Etapes de l'expérimentation :
Des pulses sont produits à une fréquence fixe de 1Hz, 2Hz ou 10Hz à l'aide d'un subwoofer (haut parleur fréquence basse d'ordinateur). La wiimote est posée horizontalement sur le subwoofer et l'enregistrement se fait avec fWIIne v0.2 pour Matlab/Windows XP :
- 1ère étape : Enregistrement des données. A la fin de l'acquisition un enregistrement du fichier de mesure est demandé. - 2ème étape : Analyse des données. L'application demande de charger le fichier d'acquisition (fichier devant être disponible dans le même répertoire courant)
Rappel : les utilisateurs de fWIIne v0.1 pour Matlab/WinXP devront légèrement adapter le fichier d'acquisition du signal.
En dépit de la plage de fréquence restreinte, la Wiimote permet, en conclusion, l'enregistrement de données et une exploitation du Spectre de Puissance pour des expérimentations adaptées ou à des fin pédagogiques.
[english version] Re-engineered applications with a wiimote and DIY projects - one way of innovation
As a concrete result of an idea, innovation does not follow a defined process. It is possible to accelerate or delay innovation, only.
Here, I would like to get back, to introduce and to show some analysises of re-engineered applications of the wiimote. The innovation in area of video games has spread in other knowledge areas. It is interesting to observe how.
Improvising a new way of use of an object is in human nature. The following article describes hacking - I prefer speaking about DIY projects or diverted use - as a spontaneous life form of innovation and especially in area of "pervasive computing" as hacking the wiimote.
Of course, first, Nintendo innovated with a new game peripheral. Basically, composed of several buttons, a tri-axial accelerometer, an IR sensor device, a bluetooth communication and a comprehensive communication protocol, the device became interesting, soon. The following article describes technical characteristics and some surprising applications :
A constant emulation between searchers/developpers, DIY projects, spreading ideas through the web and research are the cause of new applications and new devices.
In the same way, Johnny Chung Lee provides us his own feedback about his activities with the Wii Remote in the following document :
As noticed in the article from Newsweek, "The Tom Sawyer of Innovation" (spanish version), Open Source developments allowed emerging applications. Furthermore, this phenomenon was supported by latest web-tools.
Indeed, developing and spreading ideas are facilitated by network tools as forums (Link 1, Link 2) , wiki (description, drivers), blogs(Link 1, Link 2 ), forges (Link 1, Link 2, Link 3) and Online Videos sites. It can be noticed that "Web 2.0" tools are used as a media, here. Then, a link was simply established with "classical" tools (sites, downloading), providing contents (drivers, sources, exe).
New applications with a wii controller met 3 conditions in order to exist : - Mass production of an innovative peripheral (with wireless communication and several sensors and "actuators"). - Open Source development (scripts, drivers or applications). - Communication : Emulation searchers/developers and Internet.
And so, these conditions are exactly the cause of several critics as : - Use of a device out of a granted process and without warranty. - Specific development constraints and no warranty from and for a firm or an institution. - Interest/Fashion/Geek hobby ?
Finally, we must keep in mind that a lot of applications with the wiimote are for few people. But, nowadays, Open source and internet contributed to prove the "long tail" theory and provided content to interested people.
Let's go through the way of innovation...
References :
[1] Hacking is pervasive – Guest's editor introduction IEEE CS - July-September 2008 Joseph A. Paradiso (MIT Media Laboratory), John Heidemann (USC Information Sciences Institute), Thomas G. Zimmerman (IBM Almaden Research Center) – U.S.A.
[2] Hacking the Nintendo Wii Remote IEEE CS - July-September 2008 Johnny Chung Lee (Carnegie Mellon University – U.S.A.)
[3] Teaching Statement Johnny Chung Lee – personal web site
[version française] Utilisation détournée de la wiimote – un chemin vers l'innovation
L'innovation, comme résultat concret d'une création, ne suit pas de processus défini. Il est seulement possible d'accélérer ou de retarder son apparition.
Dans ce post, je voudrais revenir, présenter et citer les analyses de l'utilisation détournée de la wiimote et ces conséquences et applications possibles. Il est intéressant d'observer comment les innovations dans le domaine du jeu video se sont diffusées dans d'autres sphères de connaissance. Innover en détournant des objets de leur fonctions initiales n'est pas nouveau. L'article suivant présente le hacking - plus joliment nommé bidouillage ou bricolage - comme une forme spontanée de l'innovation et plus particulièrement dans le champ de l"Informatique ambiante" au travers du hacking de la wiimote.
Biensur, à la base se trouve Nintendo et sa manette de jeu innovante. Dotée de multiples boutons, un accéléromètre tri-axial, un système de capteur infrarouge, une connectivité Bluetooth et un format de données intelligibles, ce périphérique innovant devient vite un objet d'étude intéressant. L'article suivant décrit les caractéristiques techniques de l'appareil ainsi que des applications originales :
L'apparition d'application et de composants est aussi le fruit de la recherche, est catalysé par le rôle d'internet dans la diffusion des idées et enfin la conséquence heureuse d'une émulation croisée entre mouvement "Do-It-Yourself" et chercheurs/développeurs. Dans l'article suivant, l'auteur – Johnny Chung Lee – nous fait profiter de son retour d'expérience afin de comprendre l'utilisation de ce périphérique de jeu comme nouvelle interface Homme-Machine :
En parallèle, un phénomène, noté dans l'article "The Tom Sawyer of Innovation" de Newsweek, a permis l'émergence et la diffusion de nouvelles applications : le développement des logiciels Open Source (version espagnole) a profité des derniers outils du Net.
En effet, le développement et la diffusion des idées ont été catalysés par les outils du web comme les forums (Lien 1, Lien 2) , wiki (description, drivers), blogs(Lien 1, Lien 2 ) forges (Lien 1, Lien 2, Lien 3) et sites Vidéos. Chose notable : les applications dites "web2.0" ont servi majoritairement de médium de diffusion. Un lien naturel entre celles-ci et les applications plus classiques (sites, téléchargements, forums) fournissant le contenu (drivers, sources, executables) s'est établi naturellement.
Pour conclure, trois conditions réunies caractérisent les applications innovantes à partir de la wiimote : - la production de masse d'un périphérique innovant (doté d'un système de communication et d'une variété de capteurs et actionneurs). - la conception Open Source (scripts, drivers ou applications). - la communication : l'émulation chercheurs/développeurs et la diffusion de contenus sur Internet.
Et les critiques sont souvent les conséquences de cette conjoncture :
- Utilisation d'un matériel sans garantie en dehors de sa fonction principale. - Contrainte de développement logiciel spécifique et sans garantie d'une entreprise ou d'une institution. - Intérêt / Effet de mode ?
Il faut garder à l'esprit que la majorité des applications détournant la wiimote s'adresse à un public restreint. Toutefois, le développement Open-Source et Internet contribue à prouver la théorie de la "longue traine" et à trouver un public toujours intéressé.
Les chemins de l'innovation ne demandent qu'à être empruntés...
Références :
[1] Hacking is pervasive – Guest's editor introduction IEEE CS - Juillet-Septembre 2008 Joseph A. Paradiso (MIT Media Laboratory), John Heidemann (USC Information Sciences Institute), Thomas G. Zimmerman (IBM Almaden Research Center) – U.S.A.
[2] Hacking the Nintendo Wii Remote IEEE CS - Juillet-Septembre 2008 Johnny Chung Lee (Carnegie Mellon University – U.S.A.)
[3] Teaching Statement Johnny Chung Lee – site web personnel
Bringing connectivity with the Wii remote and Matlab and Scilab, the project fWIIne aims : - a technical and educationnal use of a gaming peripheral - to accelerate studies and potential applications. One example :
Object[Title] Location
Blog Post – [Wiimote como podómetro] (trans. Wiimote as a pedometer) Personal Blog "La escotilla de Rox", Spain
The aim of the post is an evaluation of a technical feasibility with a Wiimote as pedometer.
[ Butterworth filtering to accelerometer values – source]
fWIIne model
Yes – Link 1 (remove ".txt" to run the m-file with Matlab)
Comment
A fast and efficient presentation of a potential application. 100% objective reached .
Rate
wwwww
The fWIIne library still remains evolutive (...open-source spirit as usual).
Several improvements and new features were suggested by users. My proposals were also added to the following tables :
N°
Proposal for improvement
Level
I1
4 IR-dots detection
easy
I2
Activation/Deactivation of vibration mode, 4 LEDS
easy
I3
algortihm improvements C++ source files / Integration of new Wiimote C++ libraries (estimation)
easy/ medium
I4
filtering of accel. values as an integrated option
easy
I5
Sampling time configuration (set and computation inside MEX-command)
medium
I6
Sfwiine S-Function compatible with RealTime Workshop Library
medium/
advanced
I7
Integration of the wiimote with Matlab DAQ Acquisition Toolbox
medium/ advanced
I8
New demo files Matlab/Scilab/Simulink (Kalman, inclinometer, frequential analysis, 3D graph display...)
All levels
N°
Proposal for new feature
Niveau
N1
Adaptations : - fWIIne for Matlab & OS X - fwiine for Matlab & Linux - fWIIne for Scilab & WinXP - fWIIne & Vista
medium
N2
Nunchuk support
easy/ medium
N3
2 Wiimotes support
medium
N4
Wii Balance (Wii Fit) support
-
N5
Sampling time configuration (realtime, simulation)
medium
N6
fwiine.dll for Matlab version <7.1
medium
N7
Initialization configuration : - set of continuous/non-continuous acquisition - automatic bluetooth initialization with WinXP (as the same as Linux)
-
You are interested, you can take part to the project sourceforge or to contact at my profile adress . All developpers and contributors are welcome because more than 2 persons will be necessary to cover all the items.
L'objectif de l'utilisation détournée de la Wii remote avec Matlab/Scilab est, avant tout, de permettre une utilisation technique et pédagogique d'un objet ludique, puis, de vous faire économiser du temps dans l'étude et l'analyse de applications potentielles. Un exemple :
Objet[Titre] Localisation
Blog Post – [Wiimote como podómetro] (trad. Utilisation de la wiimote comme podomètre) Blog personnel "La escotilla de Rox", Espagne
L'objet de ce post est d'évaluer la Wiimote comme système d'acquisition pour la faisabilité d'un podomètre.
[filtrage Butterworth appliquées aux données de l'accéléromètre – source]
Modèle fWIIne
Oui – Lien 1 (supprimer le suffixe .txt pour executer sous Matlab)
Comment
Une présentation efficace et rapide d'une application avec un logiciel libre d'analyse scientifique. L'objectif est pleinement atteint ici.
Niveau
wwwww
La bibliothèque fWIIne ne cesse d'être évolutive (c'est un peu l'essence même de l'open source). De multiples améliorations et de nouvelles fonctionnalités restent à développer. Histoire d'intéresser de futurs développeurs voici quelques suggestions techniques qui m'ont été proposées ainsi que d'autres qui me sont venues à l'esprit :
N°
Proposition d'amélioration
Niveau
I1
Détection de 4 points IR
facile
I2
Activation/Désactivation du mode vibration et des 4 LEDS
facile
I3
Amélioration des algorithmes des fichiers C++ / estimation de nouvelles bibliothèques C++
facile/moyen
I4
Option de filtrage intégré des valeurs d'accélération
facile
I5
Configuration du temps d'échantillonnage (réglage et calcul dans la commande MEX)
moyen
I6
Sfwiine S-Function compatible avec la bibliothèque RealTime Workshop
Moyen/ Difficile
I7
Evaluation d'une adaptation de la boite à outil Matlab DAQ Acquisition Toolbox pour la Wiimote
Moyen/ Difficile
I8
Nouveaux fichiers de démo Matlab/Scilab/Simulink (Kalman, inclinomètre, analyse fréquentielle, suivi de graphe 3D...)
Tous Niveaux
N°
Proposition de fonctionnalité nouvelle
Niveau
N1
Adaptations diverses : - fWIIne pour Matlab & OS X - fWIIne pour Matlab & Linux - fWIIne pour Scilab & WinXP - fWIIne & Vista
moyen
N2
Support du Nunchuk
facile/moyen
N3
Support de deux Wiimotes
moyen
N4
Support de la Wii Balance (Wii Fit)
-
N5
Configuration du temps d'échantillonnage
moyen
N6
fwiine.dll pour les versions de Matlab <7.1>
Moyen
N7
Configuration de l'initialisation : - sélection acquis continue/discontinue - initialisation automatique sous WinXP (comme sous Linux)
-
Si vous êtes intéressé, vous pouvez en faire part à l'adresse de mon profil ou sur la page sourceforge du projet. Tous les contributeurs et développeurs sont bienvenus car il faudra plus de deux personnes pour pouvoir couvrir tous les points.
Wiimote G-Force Logger records accelerometer data from the Wiimote. As indicated in Wiimote Apps 's blog, the recorded file can be analyzed and viewed with Excel or OpenCalc .
Of course, interesting, here. I will come back about this application, later.
OS : WinXP Lang. : English Date : 2007-19-03 Authors : Jordan Brindza, Jessica Szweda
Computer Science and Engineering Department, University of Notre Dame, U.S.A.
Finally, other documents to browse around the web :
* You want to know the best library and scientific tools to use with the wiimote. See the following thesis proposal. (source : Politecnico di Milano - Dipartimento di Elettronica e Informazione)
fWIIne was created for curious people who want to make proofs of concept (or feasibility studies) with the WII REMOTE sensors and
SCILAB and MATLAB scientific applications, easily and freely.
How to support fWIIne :
- You can contribute to the next release of fWIIne (sourceforge project) : Software, Hardware Devices, Translations, Trainings, Presentations
- Training the trainers : If you live near of Toulouse, student or if you want to use it for educational purpose, I can deliver you training for free.
- You can also support fWIIne developments, trainings and presentation (Vous pouvez aussi soutenir les développements fWIIne, les formations et les présentations):
- And first of all : Freely, you can use it for your studies, for scientific and educationnal purposes.
---
fWIIne a été conçu pour toute personne curieuse et désireuse de réaliser facilement et librement une étude de faisabilité (ou de mettre à l'épreuve une idée)
à partir des capteurs de la WII REMOTE et des applications scientifiques SCILAB et MATLAB.
Comment soutenir fWIIne :
- Vous pouvez contribuer à la prochaine livraison de fWIIne (projet open source hébergé par sourceforge) sur les sujets suivants : Logiciel Matériels, Traductions, Formations et Présentations
- Former les formateurs : Et si vous résidez près de Toulouse et que vous êtes étudiant ou que vous voulez utiliser fWIIne dans des projets éducatifs,
je peux vous fournir une petite formation gratuite.
-vous pouvez soutenir fWIIne avec le lien PayPal ci-dessus.
- Avant tout : vous pouvez l'utiliser librement pour vos études ainsi que pour des applications scientifiques et pédagogiques.