Very important about eye blinking in Neurosky with Arduino

hi :slight_smile:

I am working on a robot run by Neurosky mindwave

right by on blink
left by two blink
forward meditation
backward attention

and i see this code from www.pantechsolutions.net
the code blink this

// //
// Program : Mindwave with Arduino //
// Interfacing : HC-05 Bluetooth Module //
// Output : Eye Blink Control LED //

#define BAUDRATE 57600
#define LED 8
#define Theshold_Eyeblink 110
#define EEG_AVG 70

long payloadDataS[5] = {0};
long payloadDataB[32] = {0};
byte checksum=0,generatedchecksum=0;
unsigned int Raw_data,Poorquality,Plength,Eye_Enable=0,On_Flag=0,Off_Flag=1 ;
unsigned int j,n=0;
long Temp,Avg_Raw,Temp_Avg;

void setup()
{
Serial.begin(BAUDRATE); // USB
pinMode(LED, OUTPUT);
}

byte ReadOneByte() // One Byte Read Function
{
int ByteRead;
while(!Serial.available());
ByteRead = Serial.read();
return ByteRead;
}

void loop() // Main Function
{
if(ReadOneByte() == 170) // AA 1 st Sync data
{
if(ReadOneByte() == 170) // AA 2 st Sync data
{
Plength = ReadOneByte();
if(Plength == 4) // Small Packet
{
Small_Packet ();
}
else if(Plength == 32) // Big Packet
{
Big_Packet ();
}
}
}
}

void Small_Packet ()
{
generatedchecksum = 0;
for(int i = 0; i < Plength; i++)
{
payloadDataS* = ReadOneByte(); //Read payload into memory*
_ generatedchecksum += payloadDataS ;_
* }*
* generatedchecksum = 255 - generatedchecksum;*
* checksum = ReadOneByte();*
* if(checksum == generatedchecksum) // Varify Checksum*
* { *
* if (j<512)*
* {*
* Raw_data = ((payloadDataS[2] <<8)| payloadDataS[3]);
if(Raw_data&0xF000)
_
{_
Raw_data = (((~Raw_data)&0xFFF)+1);
_
}_
_
else*_
* {*
* Raw_data = (Raw_data&0xFFF);
_
}_
Temp += Raw_data;
_
j++;_
_
}_
_
else*_
* {*
* Onesec_Rawval_Fun ();
_
}_
_
}_
_
}*_

void Big_Packet()
{
* generatedchecksum = 0;*
* for(int i = 0; i < Plength; i++)*
* { *
_ payloadDataB* = ReadOneByte(); //Read payload into memory*
generatedchecksum += payloadDataB ;
* }
generatedchecksum = 255 - generatedchecksum;
checksum = ReadOneByte();
if(checksum == generatedchecksum) // Varify Checksum*

* {
Poorquality = payloadDataB[1];
if (Poorquality==0 )
{_

Eye_Enable = 1;
_ }
else*

* {_
Eye_Enable = 0;
_ }
}
}*_

void Onesec_Rawval_Fun ()
{
* Avg_Raw = Temp/512;
if (On_Flag==0 && Off_Flag==1)
_ {
if (n<3)
{_

Temp_Avg += Avg_Raw;
_ n++;
}
else*

* {_
Temp_Avg = Temp_Avg/3;
if (Temp_Avg<EEG_AVG)
_ {_
On_Flag=1;Off_Flag=0;
_ }_
n=0;Temp_Avg=0;
_ }
} _

Eye_Blink ();
_ j=0;
Temp=0;
}*_

void Eye_Blink ()
{
* if (Eye_Enable)
_ {_
if (On_Flag==1 && Off_Flag==0)
_ {_
if ((Avg_Raw>Theshold_Eyeblink) && (Avg_Raw<350))
_ {
digitalWrite(LED,HIGH);
}
else*

* {_
if (Avg_Raw>350)
_ {_
On_Flag==0;Off_Flag==1;
_ }
digitalWrite(LED,LOW);
}
}
else*

* {
digitalWrite(LED,LOW);
}
}
else*

* {
digitalWrite(LED,LOW);
}
}*_

this code one blink only
and i want this code by two blink how????
*any information about this give me *
thank you :slight_smile:

Now, hopefully, you can see why we ask you to use code tags when posting code.

Hi! Can i do the same work using the shield module (RN42) instead of the module hc-05? Thank you!

@abdullah

I am working on the same project. trying to blink LEDs with the eye blink levels. did you figure that out? you completed the project?'

hello abdulla, Do you find to detect two eye blink ?