Mindflex EEGEN med raw-data via Bluetooth (1 / 9 steg)

Steg 1: Lite bakgrund



Känn dig fri att hoppa över denna bakgrund, men det förklarar varför vissa saker görs som de är. För säkerhet måste EEG headset isoleras från något ansluten till elnätet. Mindflex, 12Sprints Mobile och ett antal andra EEG headset använder en ThinkGear ASIC chip. Detta chip kommunicerar över TTL följetong med en radio och radio i sin tur kommunicerar med andra enheter, såsom Mindflex leksak basstationen. Detta isolerar headsetet elektriskt.

Tyvärr, medan 12Sprints Mobile radio är Bluetooth, Mindflex leksaken använder form av radio. För att använda Mindflex EEGEN med andra enheter, kommer vi helt enkelt ansluta den ThinkGear chipet ta emot och överföra rader till en HC-06 Bluetooth-radio (ca $10 med kablar).

Tja, kanske inte riktigt så enkel. Det är allt som behövs i form av hårdvara, finns det en programvara utmaning. ThingGear ASIC har flera driftsformer. Som inbäddade i den Mindflex leksaken sätter en SMD motstånd den till läge 0x01 som standard. I läge 0x01, chippet överför på 9600 baud, och skickar bearbetade data varje sekund: Meditation, koncentration och värden för olika delar av spektrumet som makt, förmodligen härstammar genom en FFT. Men vi vill ha tillgång till rådata EEG. Detta kräver att byta Mindflex headsetet till läge 0x02. I läge 0x02, chip sänder på 57600 baud, och förutom den samma en gång per sekund uppdateringen som den gör i läge 0x01, skickar differentially förstärkt EEGEN sensor rådata 512 gånger per sekund. Detta är det läge där 12Sprints Mobile headset fungerar som standard, så om du kan slå på headsetet till detta läge, inte bara får du raw-data, men du bör kunna använda den med alla 12Sprints kompatibel mobilapplikationer.

Man kan byta Mindflex till läge 0x02 med vissa SMD lödning arbete, men jag är fruktansvärt på lödning (som du ser i senare bilder), så det inte är ett alternativ för mig. Också, denna lösning gör headsetet fungerar inte längre med resten av leksaken, och jag gillar inte bryta saker.

Lyckligtvis kan kommunikationsprotokoll för ThinkGear chip du växla till läget 0x02 mycket enkelt genom att skicka 0x02 till sin följetong ta emot linje. Medan detta inte överleva powercycling, men det bör göra saker enklare: se bara till att ta emot raden av chipet är ansluten till Bluetooth-radion sända linje, och skicka 0x02. Men det finns problem. 0x02 måste skickas på 9600 baud, medan efterföljande data kommer att vara på 57600 baud. Och tyvärr finns det inget sätt att kontrollera HC-06 Bluetooth-radion baudhastighet dynamiskt i bruk.

Men det finns en lösning som fungerar förvånansvärt. 9600 = 57600 / 6. Om du kunde skicka lite sex gånger på 57600 baud, det skulle vara samma sak som att skicka det en gång på 9600 baud. Den enda hitch är att när du skickar saker via RS232 seriell eller dess TTL variant, du får inte styra varje bit. Istället, förutsatt att den vanliga 8N1 kommunikation inställningen, bitarna paketeras till byte, med varje byte börjar med en extra 0 "mark", men till och med en extra 1 "stop" bit. De mark och stopp bitarna är utanför vår kontroll. Men vi kan undvika detta. Det visar sig att om vi sänder den hex-strängen 0x00, 0xF8, 0x00, 0x00, 0x00, 0xE0 på 57600 baud och sedan paus för minst en 9600 baud längd lite (en millisekund kommer att vara mer än tillräckligt, tomgång är detsamma som att skicka 1 i RS232 protokoll), det är som att skicka 0x02, med fyra buggar (och några extra nollor på framsidan) , varje glitch att vara 1/6 av lite i längd. Om vi har tur, ignorerar 9600 baud mottagaren det korta glapp. Och något överraskande det fungerar! Chip växlar till läget 0x02, börjar sända på 57600 baud, och allt är väl. I själva verket med HC-06 som sändaren funkar 100% av tiden (använder en Brainlink, den ibland kräver ett nytt försök).

Så finns det tre komponenter i projektet:

I. Ange HC-06 Bluetooth-radion 57600 baud. Den här inställningen överlever powercycling. Detta är besvärligt men behöver bara göras en gång.

II. löda anslutningar till headsetet för att ansluta den till HC-06 radion.

III. se till att headsetet går till läge 0x02 genom att skicka den magiska hex-strängen (eller någon variant på den) på 57600 baud. Detta kan göras genom att bygga magiska strängen i EEGEN programvara eller genom att skriva ett enkelt program som skickar den magiska hex-strängen till enheten och enheten kan sedan användas med någon programvara som är kompatibel med 12Sprints Mobile. Jag gjorde båda: Jag skrev några EEGEN programvara i Java som kan köras på en PC (förmodligen även Mac och Linux men jag har inte testat det där) och som skickar magiska strängen innan displayen råvaror och bearbetade data, och jag gjorde en enkel Android app som bara skickar den magiska snöre (eller en variant på den) på 57600 baud och aktiverar 12Sprints mobil kompatibla läge. Båda programmen är öppen källkod.

Se Steg
Relaterade Ämnen

Styra Arduino med Android-telefon via Bluetooth

Hej gott folk, här kan du lära dig hur man styr Arduino med Android-telefon via Bluetooth. Du kan använda din smartphone som en fjärrkontroll för dig hem belysningssystem eller du kan använda som en drone remote etc.För att göra anslutningen mellan A...

Styra arduino med visual studio via bluetooth

Hej alla,Här kommer att vi kontrollera en ledde via bluetooth med din dator av en progam wirtten med visual studiovad du behöver är:1) Arduino (en)2) Bluetooth-modul (hc05 eller hc 06)3) ledde4) 2 motstånd (10ko och 15ko)och du kan göra det ;)alla ko...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Framgång med JY-MCU (linvor) Bluetooth-modul

jag skriver detta instructable eftersom jag har haft mardrömmar att få detta billigt, men bra byggd bluetooth-modulen att arbeta. Det var värt att spara mig $50 för en enkel SPP serieport (RS232 Emulator) tjänst! Jag kommer att gå över vett och etike...

Arduino - kontroll likströmsmotor via Bluetooth

Hi guys,I detta projekt kommer vi att kontrollera en DC-motor med en smartphone via bluetooth. Detta projekt är bra att lära sig mer om:-DC-motor-Gränssnitt Arduino med din smartphone-Bluetooth-modul-L293DDu kan besöka min hemsida för mer elektronisk...

Göra en Android App att styra via Bluetooth en Arduino kontrollera ditt hus via RF, alla med AppInventor

Jag vet att titeln är en munsbit, men det är precis vad det är.För en tid sedan gjorde jag en instructable som beskriver en krets kring en atmega328 (eller en "Arduino") som var att avskräcka inbrottstjuvar genom simulering av mig att vara hemma...

Styra ledde med Android-telefon via BLE (Bluetooth 4.0), MangoCube App och Arduino UNO

Detta Instructable visar hur att skicka data från Android-enhet att kontrollera lysdioden på Arduino UNO.Du behöver minst av följande komponenter;1. Arduino UNO eller kompatibel styrelse.2. MangoCube BLE styrelsen ( https://www.kickstarter.com/projec...

Servo motorisk kontroll via bluetooth med potentiometer

I detta projekt vi servo motorstyrning med potentiometer via bluetooth.Två kommer att göra Arduino styrelsen via bluetooth trådlös haberleştirerek kontroll. Förvaltar en av modulerna för detta (master) medan den andra lyckades (slavar) måste vara i l...

LinkIt en musikspelare Via Bluetooth

Coolaste projekt jag har någonsin gjort för musikälskare utan någon tråd. Så nu kan du spela, pausa, stoppa, volym öka/minska på din LinkIt via Bluetooth.Grundläggande krav:LinkIt en styrelseSD-minneskortBluetooth-programvara som finns på Google lagr...

Raspberry Pi Robot kontrollerad via Bluetooth

denna handledning är baserad på en tidigare Instructable -Byggnaden robotar med Raspberry Pi och PythonSyftet är att presentera ett exempel på hur man ställer in en Bluetooth seriell anslutning med Arduino att styra en Raspberry Pi robot. Men kan ta...

Arduino röst erkännande Via Bluetooth HC-05

Det är verkligen lätt och snabbt att lägga till röststyrning till din arduino projekt. Oavsett om det är home automation eller dörrlåset eller robotar, röststyrning kan vara en iögonfallande inslag i ett arduino projekt. I denna tutorial jag "ll Visa...

Ansluta Arduino Uno till Android via Bluetooth

I detta projekt används en seriell Bluetooth-modul för att skapa en anslutning mellan Arduino Uno och en Android app som jag skapat med MIT App Inventor.Arduino lyssnar efter kommandon att tända några lysdioder eller visa sin status. Dessutom en time...

Hur man kontrollerar arduino via bluetooth från (PC, pocket PC PDA)

Jag ville göra det möjligt att styra en arduino ombord från min telefon.Så att jag kunde styra andra enheter.Det enklaste sättet tycktes med bluetooth.men när jag fick de delar som behövs för jag vill ha riktigt så enkelt som jag hade hoppats.Och eft...

Hur man styr en arduino bil via Bluetooth (för nybörjare)

Alla vet vi att Arduino är en utmärkt prototyping plattform, främst eftersom den använder ett eget programmeringsspråk och det finns en hel del extra otroliga komponenter som ger oss stora upplevelser.Vi kan integrera Arduino med differents sköldar e...

Göra en DIY sensor för att förstora och Visa mätningen på din Android-telefon via Bluetooth

behöver du en sensor för att mäta något som kroppstemperatur, utanför temperatur, UV-strålning, ljusintensitet, solar irradians, magnetfält, tryck, etc. etc.? Med dagens teknik blir det mycket lätt att göra en sensor och Visa den på din mobiltelefon...

Ställa in trådlös Laser skär ljuslåda via Bluetooth (TfCD)

Detta instructable visar hur du ställer in en trådlös ljus till en Arduino UNO. Ljuset är kontrollerad tråg en android-telefon via Bluetooth.MaterialHårdvara krets:Bluetooth HC-05 modulLogik nivå shifterKondensatormikrofon 1000 µFNeopixel remsaHane/h...

Smart power socket kontroll från din smartphone via Bluetooth

Smart eluttag via Arduino, vad kan vara enklare. Denna makt socket controll via Bluetooth, smartphone eller tablett används.Steg 1:För att genomföra projektet, använde vi följande komponenter:-Arduino UNO eller kompatibel styrelse.-Relä modul 2 kanal...

Programmera en Arduino trådlöst via Bluetooth

En Arduino Uno är en riktigt cool maskinvarudel att komma igång med elektronik, men en nackdel med Arduino är den måste anslutas till datorn med en följetong till USB-kabel varje gång du vill ladda upp koden. I vissa projekt skulle det verkligen prak...

DIY öppna GARAGEPORT VIA BLUETOOTH

Hej, alla!Det är är min första instructables och jag presentera min projet öppna dörren med modulen HC-06, servo och en Arduino uno.Jag tycker att det är perfekt när min mamma måste varje dag öppna garageporten när jag kom tillbaka till badminton.Jag...