IntelliPi
(à évaluer)
 
 

A Propos

 
Le projet IntelliPi est une couche logicielle visant à simplifier la communication entre les casques EEG (OpenBCI et Muse) et les nano ordinateurs Raspberry PI, le projet a été crée en 2015 par Fredéric Simard (https://github.com/atom2626). 
 
Il a pour but d'apporter une solution pérenne et abordable permettant la création de projets DIY embarqués sans qu'on est à se soucier de la couche matérielle. Si on veut, par exemple, ajouter un capteur ou un bouton, la boites à outils doit gèrer la communication entre le Raspberry et ceux-ci de manière "plug & create". 
 
Le projet est suffisament modulaire et pensé pour faciliter l'"auto-génération" de pilotes pour qu'il soit facile d'ajouter de nouveau matériel comme nous pourrions le faire pour une souris d'ordinateur. Un soin est apporté pour que les données soient collectées dans le Raspberry (ie pas de service Cloud intégré de stockage tiers de données).
 
Principe de fonctionnement
 
Le projet initial s'appuie sur un ensemble de composants matériels et logiciels : 
  1. Un système d'exploitaion OpenWRT (note: système Linux Debian-like sans couche graphique très utilisé dans les systèmes open-source pour matériels réseaux comme des routeurs),
  1. Une couche logicielle pour le traitement des signaux EEG qui tourne sur tout type de systèmes Unix (note: principalement des systèmes Debian et Ubuntu),
  1. Un nano ordinateur RaspberryPi (note: projet plus adapté aux modèles A+, B+),
  1. Un casque EEG Muse ou OpenBCI.
 
 Les features
 
 Pour permettre le développement d'applications, le projet embarque un ensemble d'outils : 
  • Préprocessing des données EEG,
  • Appairage simple ou multiple d'appareils,
  • Analyse statistique,
  • Algèbre linéaire,
  • Machine Learning : analyse factorielle discriminante, machine à vecteur de support, réseaux de neurones, ...,
  • Enregistrement de données, features, labels sur support USB,
  • Accès simple au port d'entrées-sorties GPIO du RaspBerry via la librairie wiringPI.
 
Outre l'application de base (Braintone), deux projets ont été initiés utilisant la bibliothèque (note: library [en]) IntelliPI. Une, en partenariat avec la communauté NeuroTechX, MindBox, s'appuyant sur le principe des boites distribuant les journaux américains (note: on met une pièce dans la machine qui permet d'ouvrir la porte de la boite à journaux permettant ainsi de récupérer son journal) en utilisant l'état méditatif de l'utilisateur à la place de la pièce. 
Une autre, encore en développement, Cerebral Wars, qui met en compétition deux intervenants qui s'affrontent dans un "duel de leds".
 
Architecture logicielle
 
Ci-dessous, un schéma de l'architecture logicielle du projet IntelliPi :
 
 

Installation

 
L'installation du projet initial s'appuie sur la création de l'image OpenWRT, mais nous installerons, dans un premier temps, la bibliothèque sur une base Linux déjà installée (note: Ubuntu Mate 16,04 et Raspbian Jessie Pixel 8.0 pour Raspberry, Ubuntu 16.04 dans une VM Parallels lite Desktop sous macOS Sierra 10.12.x) :
 
Commandes
Ci-dessous, l'ensemble des commandes pour installer la bibliothèque et exécuter l'application de référence Braintone :
 
$mkdir IntelliPi
$cd IntelliPi/