Mindflex EEG avec des données brutes via Bluetooth (1 / 9 étapes)

Étape 1: Quelques informations

N’hésitez pas à sauter cette toile de fond, mais il explique pourquoi certaines choses sont faites comme elles sont. Pour la sécurité, casque EEG doivent être isolés de quoi que ce soit branché sur secteur. Le Mindflex, Mindwave Mobile et un certain nombre d’autres casques EEG utilisent une puce ASIC ThinkGear. Cette puce communique via TTL série avec une radio, et la radio communique à son tour avec d’autres appareils, comme la station de base Mindflex jouet. Cela isole électriquement le casque.

Malheureusement, alors que la radio de la Mindwave Mobile est Bluetooth, le jouet Mindflex utilise un autre type de radio. Pour utiliser l’EEG Mindflex avec d’autres appareils, nous connecter simplement la puce ThinkGear reçoivent et transmettent des lignes à une radio Bluetooth HC-06 (environ 10 $ avec des câbles).

Eh bien, peut-être pas tout à fait aussi simple. Alors que c’est tout ce qu’il faut en termes de matériel, il y a une faute de logiciel. L’ASIC ThingGear a plusieurs modes de fonctionnement. Comme incorporé dans le jouet Mindflex, une résistance SMD lui affecte au mode par défaut de 0 x 01. En mode 0 x 01, la puce transmet à 9600 bauds, et envoie les données traitées chaque seconde : méditation, Concentration et valeurs pour différentes parties du spectre de la puissance, probablement dérivé par une FFT. Mais nous voulons avoir accès aux données brutes EEG. Pour cela, le casque Mindflex de commutation mode 0 x 02. En mode 0 x 02, la puce transmet à 57600 bauds, et en plus de la même mise à jour une fois par seconde qu’elle accomplit en mode 0 x 01, il envoie les données différemment amplifiées brutes de capteur d’EEG 512 fois par seconde. C’est le mode dans lequel le casque Mindwave Mobile fonctionne par défaut, donc si vous pouvez passer le casque à ce mode, non seulement que vous obtenez les données brutes, mais vous devriez être capable de l’utiliser avec toutes les applications compatibles Mindwave Mobile.

On peut basculer le Mindflex de mode 0 x 02 avec quelques travaux de soudage SMD, mais je suis terrible à souder (que vous verrez dans les photos plus tard), donc ce n’est pas une option pour moi. En outre, cette solution rend le casque ne fonctionnent plus avec le reste du jouet, et je n’aime pas casser des choses.

Heureusement, le protocole de communication pour la puce ThinkGear vous permet de passer au mode 0 x 02 très simplement en envoyant 0 x 02 à sa ligne de réception de série. Alors que ce n’est pas survivre powercycling, néanmoins il devrait rendre les choses plus simple : Assurez-vous que la ligne de réception de la puce est reliée à de la radio Bluetooth transmettre la ligne et envoyer 0 x 02. Mais il y a un accroc. Le 0 x 02 doit être envoyé à 9600 bauds, tandis que les données suivantes seront à 57600 bauds. Et malheureusement il n’existe aucun moyen pour contrôler la vitesse de transmission de la radio Bluetooth HC-06 dynamiquement en cours d’utilisation.

Mais il existe une solution qui fonctionne étonnamment. 9600 = 57600 / 6. Si vous pouviez juste envoyer un peu six fois à 57600 bauds, ce serait la même que l’envoi d’une fois à 9600 bauds. Le seul hic, c’est qui lors de l’envoi des choses via RS232 serial ou sa variante TTL, vous n’obtenez pas de contrôler chaque bit. Au lieu de cela, en supposant que le paramètre de communication 8N1 habituels, les bits sont empaquetées dans octets, avec chaque byte commençant par un « repère » extra 0 mais et se terminant avec un extra 1 peu « stop ». Les bits de la marque et l’arrêt sont hors de notre contrôle. Mais nous pouvons contourner ce problème. Il s’avère que si nous envoyons la chaîne hexadécimale de 0 x 00, 0xF8, 0 x 00, 0 x 00, 0 x 00, 0xE0 à 57600 bauds et ensuite une pause d’au moins la longueur d’une 9600 bauds peu (une milliseconde sera plus que suffisant, la marche au ralenti est le même que l’envoi de 1 dans le protocole RS232), c’est comme envoyer 0 x 02, avec quatre pépins (et certains zéros supplémentaires à l’avant) , chaque Pépin étant 1/6 d’un peu de longueur. Si nous sommes chanceux, le récepteur de 9600 bauds ignorera les pépins de courts. Et étonnamment, ça marche ! Les commutateurs de puce mode 0 x 02, démarre la transmission à 57600 bauds, et tout va bien. En effet, avec le HC-06 comme l’émetteur il fonctionne à 100 % du temps (à l’aide d’un Brainlink, il parfois nécessite une nouvelle tentative).

Donc, il y a trois éléments au projet :

I. définir la radio Bluetooth HC-06 à 57600 bauds. Ce paramètre survit powercycling. C’est lourd, mais il faut faire qu’une seule fois.

II. souder les connexions vers le casque pour le connecter à la radio de HC-06.

III. s’assurer que le casque passe en mode 0 x 02 en envoyant la chaîne hexadécimale de magie (ou une variante à ce sujet) à 57600 bauds. Cela pourrait se faire en construisant la chaîne magique dans le logiciel de l’EEG, ou en écrivant un programme simple qui envoie la chaîne hexadécimale magique à l’appareil, et ensuite l’appareil peut être utilisé avec n’importe quel logiciel compatible avec le Mindwave Mobile. J’ai fait les deux : J’ai écrit un logiciel EEG en Java qui peut être exécuté sur un PC (probablement aussi Mac et Linux, mais je n’avons pas testé là) et qui envoie la chaîne magique avant l’affichage des données brutes et traitées, et j’ai fait une simple application Android qui simplement envoie la chaîne magique (ou une variante à ce sujet) à 57600 bauds et active le mode compatible Mindwave Mobile. Les deux programmes sont open source.

Articles Liés

Découpé au laser des cartes en bois avec des données publiques

Découpé au laser des cartes en bois avec des données publiques

Dans ce tutoriel, que nous allons faire un laser cut carte en bois à l'aide de données ouvertes du catalogue de données ouvertes de Vancouver. Le catalogue de données ouvertes de Vancouver a de nombreux fichiers de forme différente qui peuvent être u
Arduino pour débutants, maintenant avec les données de traçage, contrôlée par l’androïde, aucun codage requis, aucune soudure requise.

Arduino pour débutants, maintenant avec les données de traçage, contrôlée par l’androïde, aucun codage requis, aucune soudure requise.

IntroductionCette montre instructable vous comment vous pouvez lire et écrire les broches numériques sur votre Arduino Uno et lire les valeurs des broches analogiques tous commandé depuis votre mobile Android sans faire n'importe quel codage. Ce proj
Cellulaire tracker GPS avec des cartes de Cloud

Cellulaire tracker GPS avec des cartes de Cloud

ce projet montre comment construire un dispositif qui suit la localisation GPS, envoie des données via une connexion cellulaire Skywire vers le nuage et trace les coordonnées GPS sur une carte de sentier connectés de nuage qui est accessible depuis n
Graver des images visibles sur des CD-r avec les données (beta)

Graver des images visibles sur des CD-r avec les données (beta)

de bien choisir le droit 1 et 0 à graver sur un CD, il est possible de graver des images visibles sur les CD-r normal. Ces images s'appuient sur le fait que les 1 et les 0 créé par fosses dans la surface de CDs reflètent la lumière différemment.Étape
À l’aide de capteurs, modules RF 433Mhz et puce Bluefruit BLE de Adafruit pour recueillir des données sur Smartphone avec Evothings Studio

À l’aide de capteurs, modules RF 433Mhz et puce Bluefruit BLE de Adafruit pour recueillir des données sur Smartphone avec Evothings Studio

Dans ce projet, vous apprendrez comment utiliser Bluefruit LE UART ami de Adafruit, une puce Bluetooth Low Energy et le Evothings Workbench pour envoyer des données dans les deux sens entre un Arduino Uno et votre Smartphone. L'application sera codée
Rakshak un : une rover pour la collecte de données et de surveillance avec des fonctionnalités de journalisation de données, voix alertes et distance de mesure.

Rakshak un : une rover pour la collecte de données et de surveillance avec des fonctionnalités de journalisation de données, voix alertes et distance de mesure.

I NTRODUCTIONCe système robotique peut être contrôlé à l'aide d'une interface graphique construite à l'aide de la transformation. Le rover peut être contrôlé en envoyant des commandes via l'interface utilisateur en cours d'exécution sur l'ordinateur
Comment faire pour enregistrer des données avec une application de données IMU/GPS (en utilisant le système Android)

Comment faire pour enregistrer des données avec une application de données IMU/GPS (en utilisant le système Android)

La série suivante d'instructions fournit des conseils sur la façon de configurer et de collecter des données en utilisant l'application 'Sensorstream IMU + GPS' développée par Axel Lorenz. Cette application spécifique peut être utilisée pour recueill
Contrôle des données de capteur avec Edison (Intel IoT)

Contrôle des données de capteur avec Edison (Intel IoT)

Cette instructable est d'intégrer le bosquet de capteurs et d'actionneurs avec Intel Edison par NodeJS et surveiller les données des capteurs comme qualité de l'air, bruit, température, lumière, Touch et LED, Buzzers.Pour cela, des modules de nœud :M
Manette NES sans fil avec affichage des données

Manette NES sans fil avec affichage des données

apportant votre manette de NES, BACK TO THE FUTURE!Ce projet intègre un xbee, arduino, affichage des données et manette de nes générique pour créer un contrôle à distance pour toute arduino + xbee projet.  L'affichage vous permet d'obtenir les commen
Intro aux GPS avec des microcontrôleurs

Intro aux GPS avec des microcontrôleurs

Une fois que la compétence des opérations strictement militaires, GPS est devenu une partie intégrante de la vie moderne et en relativement peu de temps ! Qui ne voudrait pas envie de savoir quand et où ils sont n'importe où sur la planète ? C'est un
Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Arduino est fantastique comme un intermédiaire entre votre ordinateur et d'un circuit électronique brut. À l'aide de l'interface série, vous pouvez récupérer des informations provenant de capteurs attachés à votre Arduino. (Vous pouvez également envo
Rempli de œufs en chocolat avec des fleurs de dentelle

Rempli de œufs en chocolat avec des fleurs de dentelle

Quel meilleur cadeau pour Pâques qu'une grandeur nature remplie d'oeufs au chocolat avec une fleur en dentelle peinte à la main sur elle ?Au Danemark, nous avons un jeu de Pâques où nous envoyer "gækkebreve" (gække-lettres) consistant en un papi
Longboard Skateboard - avec des camions sur le dessus!! Et!! Bottom

Longboard Skateboard - avec des camions sur le dessus!! Et!! Bottom

Salut tout - fait un moment que j'ai rien posté.Ce n'est pas tellement une instructable comme un concept qui me permet de rouler rugueux et lisse au sol où j'habite, en utilisant la technique de landpaddle et de pompage de longboard.Où je vis les che
Contrôle LED avec téléphone Android via BLE (Bluetooth 4.0), MangoCube App et Arduino UNO

Contrôle LED avec téléphone Android via BLE (Bluetooth 4.0), MangoCube App et Arduino UNO

Ce Instructable montre comment envoyer des données au contrôle LED sur Arduino UNO appareil Android.Vous aurez besoin au moins des éléments suivants ;1. Arduino UNO ou Conseil compatible.2. MangoCube BLE Conseil ( https://www.kickstarter.com/projects