Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Étape 3: Création préliminaire Sketch à la caisse Disposition de l'écran (pré-version Alpha)

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Remarque: vous n'avez pas vraiment besoin de faire cette étape, il est juste à des fins de documentation







Voici le code préliminaire pour vérifier la mise en page de l'écran des données que nous voulons afficher

tft.initR (INITR_BLACKTAB); // initialiser une puce ST7735S, languette noire

// Démarrer la série du matériel.
Serial.begin (9600);
// tft.setCursor (0, 30);
// tft.setTextColor (ST7735_RED);
tft.fillScreen (ST7735_BLACK);
tft.drawLine (0, 50, tft.width () - 1, 50, ST7735_WHITE);
tft.setCursor (0, 60);
tft.setTextColor (ST7735_YELLOW);
tft.println ( "Temp du corps.");
tft.setTextColor (ST7735_RED);
tft.println ( "Heart Rate:");
tft.setTextColor (ST7735_GREEN);
tft.println ( "GSR VAL.");
tft.setTextColor (ST7735_YELLOW);
tft.println ( "signal d'EEG:");
tft.setTextColor (ST7735_WHITE);
tft.println ( "Attention.");
tft.setTextColor (ST7735_WHITE);
tft.println ( "méditation:");
tft.drawLine (0, 110, tft.width () - 1, 110, ST7735_WHITE);
>

void loop () // tft.fillScreen (ST7735_BLACK); // écran propre

//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
//tft.println((float)DHT11.temperature,1);

//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
//tft.println((float)DHT11.humidity,1);

//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
// tft.println (DHT11.fahrenheit (), 1);

// tft.print ( » « );
//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
// tft.println (DHT11.kelvin (), 1);


//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
//tft.println (DHT11.dewPoint (), 1);

//tft.setTextColor(ST7735_GREEN, ST7735_BLACK);
//tft.println (DHT11.dewPointFast (), 1);

Etape 4: Phase 1: EEG Monitor (Hardware)

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Comme je l'ai mentionné précédemment, je vais développer ce projet en plusieurs phases parce que je ne suis pas tout à fait sûr de savoir comment il va se réunir encore, et si l'Arduino sera capable de gérer tout cela.

permet donc commencer par le moniteur EEG:

Vous aurez besoin d'avoir le casque Flex esprit.

1.- Enlever les 4 vis du couvercle arrière de la nacelle gauche du casque Flex esprit. (La nacelle droite tient les piles.)

2.- Ouvrez le boîtier pour exposer l'électronique.

4.- Si vous regardez attentivement, vous verrez des broches qui sont étiquetés T et R - ce sont les broches du conseil EEG utilise pour communiquer en série au microcontrôleur sur la carte de circuit principal.

5.- Souder une longueur de fil (attentivement) à la broche « T ». J'ai utilisé une paire de fils qui est venu d'un ancien PC. Veillez à ne pas court-circuiter les broches voisines.

6.- Souder une autre longueur de fil à la masse en utilisant le grand pastille de soudure où la connexion à la masse de la batterie est.
7. - Percez un trou dans le cas pour les deux fils de pointer à travers après l'affaire était close.

8 .- Guider les fils à travers le trou et revérifier votre soudure. Je vous recommande de mettre un peu de colle dans le trou pour fixer les fils en place (j'ai utilisé mon pistolet à colle chaude pour le faire).

9.- soigneusement mis le dos du boîtier en marche et re serrez les vis.

10.- Connectez l'esprit Flex à l'Arduino; Branchez le fil provenant de la broche T à la broche rx Arduino, Connectez l'autre fil à une broche arduino GND.

Nous avons fini avec la partie matérielle du Hack.

Étape 5: Phase 1: EEG Monitor (logiciel)

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Comme je l'ai mentionné précédemment, les gars de frontiernerds ont fait un excellent travail à expliquer comment réaliser ce hack et de la façon de relier le casque flex esprit à l'Arduino et représentation graphique de la sortie en utilisant le traitement (que je l'ai fait et travaillé fantastiquement!), Donc Je ne passer par les étapes d'obtenir les données à afficher sur le mini-écran. (Si vous êtes familier avec le traitement, je vous recommande d'essayer leur projet. Il est vraiment intéressant!)

Test initial du logiciel pour vous assurer que votre esprit Flex parle à l'Arduino: Exécutez le exampleBrainSerialOutsketch.

Remarque: Vous ne aurez pas besoin de l'affichage Mini pour ce test, et si vous avez connecté rien affichera sur encore.

Vous devriez maintenant être en mesure de voir la bibliothèque et des exemples dans sélectionnez Fichier> Exemples> Cerveau> BrainSerialOut croquis.

Si vous avez réussi à installer les bibliothèques, et le chargement du croquis BrainSerialOut, Cliquez sur le bouton Vérifier pour compiler l'esquisse et assurez-vous qu'il n'y a aucune erreur.







Il est temps de connecter votre Arduino à votre PC via le câble USB, puis cliquez sur le bouton Télécharger pour télécharger le croquis à l'Arduino.

Branchez les deux fils que vous avez dans le casque flex esprit à l'Arduino: le fil de signal T du flex esprit à la broche rx dans l'Arduino; Le fil de terre du casque flex esprit à la broche gnd Arduino.

Une fois l'esquisse est téléchargé sur l'Arduino, assurez-vous que votre casque flex Mind est connecté à l'Arduino, et allumez-le. Ouvrez le numéro de série monitor.You devrait voir un flux de coma nombres séparés par défilement.

REMARQUE:
Si l'esquisse ne télécharge pas et vous obtenez un message comme celui ci-dessous,

avrdude: stk500_getsync (): pas en synchronisation: resp = 0x00

Débranchez le fil de la broche arduino rx, elle interfère parfois avec le processus de téléchargement.

Notez que la connexion au casque Neurosky est semi-duplex - il utilisera la broche rx sur votre Arduino, mais vous serez toujours en mesure d'envoyer des données à un PC via USB. (Bien que, dans ce cas, vous ne serez pas en mesure d'envoyer des données à l'Arduino à partir du PC.)

une fois déconnecté, cliquez sur le bouton Envoyer à nouveau et, en cas de succès, rebrancher le fil à la broche rx.

Si vous avez le flux de données série montrant un moniteur de série, vous êtes prêt à passer à l'étape suivante.

Étape 6: Phase 1: EEG Monitor (Explication des données) Suite.

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Voici une brève explication des données que vous voyez: (parce que je pensais que vous poseriez). Livré directement de la documentation de la bibliothèque du cerveau.

La fonction retourne une chaîne (bien, char *) liste des données les cérébrales les plus récentes, dans le format suivant getCSV (): force » du signal, l'attention, la méditation, delta, thêta, faible alpha, haute alpha, bêta faible, bêta élevé, faible gamma, gamma élevé »

La puissance du signal est compris entre 0 - 200. 0 signifie que l'unité est correctement connecté et 200 signifie qu'il n'y a pas de signal.

Les valeurs de l'attention et de méditation à la fois vont de 0 - 100. Un plus grand nombre représentent plus d'attention ou de la méditation.

Les valeurs de puissance EEG - delta, thêta, etc. - sont une représentation fortement filtrée de l'activité relative à différentes longueurs d'onde du cerveau. Ces valeurs ne peuvent pas être mises en correspondance directement à des valeurs physiques (par exemple volts), mais sont encore d'usage lorsqu'on les considère au fil du temps ou par rapport à l'autre.

VUE D'ENSEMBLE DE FONCTION - Une liste des fonctions disponibles dans la bibliothèque du cerveau

Cerveau (HardwareSerial -_brainSerial)
Instancie la bibliothèque du cerveau sur un port série du matériel.

mise à jour booléen ();
Appelez cela dans votre boucle principale pour lire les données à partir du casque. Retourne true s'il y a un paquet frais.

char * readErrors ();
Chaîne de caractères contenant des erreurs les plus récentes. Une valeur d'impression ceci sur série si vous éprouvez des difficultés.

char * readCSV ();
Chaîne de caractères avec toutes les dernières valeurs du cerveau dans un format délimité par des virgules. Destiné à être imprimé en série. Les données sont renvoyées dans cet ordre: la force du signal, l'attention, méditation, delta, thêta, alpha faible, teneur élevée en alpha, bêta faible, bêta élevé, une faible gamma, gamma élevé

octet readSignalQuality ();
Renvoie la dernière lecture de la qualité du signal. 200 a pas de signal. 0 est élevé (bonne connexion). Ce (et le reste des fonctions) sont principalement destinés à être utilisés lorsque vous souhaitez l'Arduino à utiliser les données du cerveau interne. (Vous enregistre les dépenses sans tracas / mémoire de l'analyse du CSV.)

octet readAttention ();
Renvoie la valeur d'attention NeuroSky "de eSense".

octet readMeditation ();
Renvoie la valeur de la méditation NeuroSky « de eSense ».

unsigned long * readPowerArray ();
Renvoie un tableau de valeurs, dans le même ordre huit bandes d'alimentation (FFT) comme CSV.

unsigned long readDelta ();
Renvoie la valeur de puissance delta (1-3Hz), souvent associée au sommeil.

unsigned long readTheta ();
Renvoie la valeur de puissance thêta (4-7Hz), associée à un état de relaxation, méditation.

unsigned long readLowAlpha ();
Renvoie la valeur de faible puissance alpha (8-9Hz), plus élevé lorsque les yeux sont fermés ou que vous êtes détendu /

unsigned long readHighAlpha ();
Renvoie la valeur de puissance haute alpha (10-12Hz).

unsigned long readLowBeta ();
Renvoie la valeur de puissance faible bêta (13-17Hz), plus haut lorsque vous êtes alerte et concentré.

unsigned long readHighBeta ();
Renvoie la valeur de puissance bêta élevé (18-30Hz).

longue readLowGamma () non signé;
Renvoie la valeur de puissance basse gamma (31-40Hz), associé à un traitement multi-sensorielle.

longue readMidGamma () non signé;
Renvoie la valeur de puissance élevée gamma (41-50Hz).

Étape 7: Phase 1: EEG Monitor (Affichage des données Ecran TFT) Suite.

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Avant de passer à l'esquisse, je veux partager quelques notes avec vous.
Si le signalquality 1.- est tout sauf 0, vous n'obtenez une valeur de méditation ou d'attention.
2.- Les valeurs des ondes cérébrales (alpha, bêta, gamma, etc.) sont une sorte de non-sens. Ils changent encore de la valeur, même si la qualité du signal est supérieur à zéro! Aussi, si vous placez tout doigt sur le capteur frontal et l'autre sur le capteur de l'oreille sur la jambière gauche, vous obtenez toujours des lectures pour toutes les fonctions d'ondes cérébrales. Je mentionne cela parce que je ne suis pas tout à fait sûr que les valeurs sont en fait très fiables. Dans tous les cas, les seules valeurs qui sont utilisables, si vous voulez contrôler quelque chose avec votre cerveau sont l'attention et la méditation.

Bon, voici le code:

// Copiez et collez le croquis ci-dessous pour votre ardunio IDE.
#define SCLK 4
#define Mosi 5
#define cs 6
#define dc 7
#define premier 8


#comprendre // bibliothèque graphique de base
#comprendre // bibliothèque spécifique matériel
#comprendre
#comprendre

Adafruit_ST7735 tft = Adafruit_ST7735 (cs, dc, cachets, SCLK, rst);

tft.initR (INITR_BLACKTAB); // initialiser une puce ST7735S, languette noire

tftPrintTest (); // texte d'introduction initiale,
retard (1000);

tft.fillScreen (ST7735_BLACK); // écran propre
tft.setTextColor (ST7735_WHITE);
tft.setTextSize (1);
tft.setCursor (30,0);
tft.println ( "EEG Monitor");

Serial.begin (9600);
>
void loop ()

if (brain.update ()) if (brain.readSignalQuality ()> 100) tft.fillScreen (ST7735_BLACK);
tft.setCursor (0,30);
tft.setTextColor (ST7735_RED, ST7735_BLACK);
tft.println ( "faible qualité de signal");
>


d'autre tft.setCursor (30,0);
tft.println ( "EEG Monitor");
tft.drawLine (0, 20, tft.width () - 1, 20, ST7735_WHITE);
tft.drawLine (0, 130, tft.width () - 1, 130, ST7735_WHITE);

tft.setCursor (0, 30);
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK);
tft.print ( "la qualité du signal:");
tft.print (brain.readSignalQuality ());
tft.println ( » « );
tft.setTextColor (ST7735_RED, ST7735_BLACK);
tft.print ( "Attention");
tft.print (brain.readAttention ());
tft.println ( » « );
tft.setTextColor (ST7735_WHITE, ST7735_BLACK);
tft.print ( "méditation:");
tft.print (brain.readMeditation ());
tft.println ( » « );
tft.setTextColor (ST7735_GREEN, ST7735_BLACK);
tft.print ( "Delta".);
tft.print (brain.readDelta ());
tft.println ( » « );
tft.print ( "Theta.");
tft.print (brain.readTheta ());
tft.println ( » « );
tft.print ( "Low Alpha.");
tft.print (brain.readLowAlpha ());
tft.println ( » « );
tft.print ( "High Alpha.");
tft.print (brain.readHighAlpha ());
tft.println ( » « );
tft.print ( "Beta faible.");
tft.print (brain.readLowBeta ());
tft.println ( » « );
tft.print ( "High Beta.");
tft.println (brain.readHighBeta ());
tft.print ( "Low Gamma.");
tft.print (brain.readLowGamma ());
tft.println ( » « );
tft.print ( "Mid Gamma.");
tft.print (brain.readMidGamma ());
tft.println ( » « );
>>

>
annuler tftPrintTest () tft.setTextWrap (false);
tft.fillScreen (ST7735_BLACK);
tft.setCursor (0, 10);
tft.setTextColor (ST7735_WHITE);
tft.setTextSize (1);
tft.println ( "INSTRUCTABLES.COM");
retard (500);
tft.setCursor (40, 60);
tft.setTextColor (ST7735_RED);
tft.setTextSize (2);
tft.println ( "EEG");
tft.setTextColor (ST7735_YELLOW);
tft.setCursor (20, 80);
tft.println ( "Monitor");
tft.setTextColor (ST7735_BLUE);
retard (50);
>

Étape 8: Réflexions et Aller de l'avant ..

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Mini Arduino d'EEG portable - Brain Wave Moniteur 9 étapes

Étape 9: Vidéo







Articles Liés