Yes. I guess element 0 of ADS.channelData array is constantly changing.Sorry, I misunderstood you. There is no problem with ADS.channelData[0]. It doesn't return 0.
When I do x=ADS.channelData[0] serialprintln(x), I always see zero on the serial monitor. But I see the values in ADS.channelData[0]. So there is no problem in reading the value.
I looked at the link you sent but it didn't help. I can't specify a range in the code and create an if condition. Because I don't know if ADS.channelData[0] keeps the data it reads in an array. Or is element 0 of this command constantly changing? In either case, I can transfer each read data to another array and access any element of that array. Since there is a decrease in the amplitude of the signal as soon as I close my eyes, I will solve my problem by making any pin 1 when this decrease is experienced. But it doesn't.
The device (TI dev kit) you are using, is not supported by OpenBCI. We are only making some suggestions that may point you in the right direction. We cannot write your program.
As a clarification, EOG is used for monitoring eye movement. So your goal of detecting "eyes closed" state is different. Although EOG signal will react to eyelid blinks. You'll have to do the reading to figure out how to proceed.
With any EEG, EMG, ECG, EOG device, the goal is to read out successive samples taken at the sample rate of the device. If the TI dev kit instructions do not explain how to do that, then you might try posting on the TI forum to ask what you are doing wrong.
As stated previously, this kit is designed primarily for hardware developers who are using the Windows app provided by TI. So they would generally not be focused or concerned with Arduino users. But posting on their forum may find some answers. The code statement x=ADS.channelData[0], is intended to get a SINGLE sample. Depending on how the surrounding code is set up, you will need to delay some amount of time for the ADS1299 to generate the next sample. Not having expertise on this TI dev kit, I don't know how that is done. The best way to do this is to read out the next sample when the ADS1299 makes it available. Generally this is done by some type of hardware handshake between the CPU and the device, using the SPI bus (MISO, MOSI, etc.)
Thank you for your help. I don't want you to write code for me. The signals I see in my setup are those whose amplitude drops as soon as I close my eyes. What I want to do is if(Vmax_eyesopen-Vmax_eyesclosed<x) { digitalwrite(5,HIGH); } . I could not do this with the command ADS.channelData[0]. I asked you for help with this. Either I couldn't explain myself or I misunderstood you. Anyway, thanks again for your help.
You really need to do some reading on how analog to digital conversion is done: receiving samples, signal processing, etc. That is what the EOG tutorials would do. I don't know how samples are read correctly from your device. That is why I gave you the TI developer forum link.
EOG or eye blink / open / closed states, DO NOT result in fixed voltage values. That is why you need to do some reading.
See this thread on the TI forum. It states that their kit cannot be used for real-time signal acquisition. The kit is only intended for hardware engineers to evaluate the features of the ADS1299 chip.
Comments
So ADS.channelData[0] is always 0?
Yes. I guess element 0 of ADS.channelData array is constantly changing.Sorry, I misunderstood you. There is no problem with ADS.channelData[0]. It doesn't return 0.
Sorry, I misunderstood you. There is no problem with ADS.channelData[0]. It doesn't return 0.
so:
n1 = ADS.channelData[0]
sleep(100 milliseconds)
n2 = ADS.channelData[0]
if n2 - n1 > x
// do something ....
When I do x=ADS.channelData[0] serialprintln(x), I always see zero on the serial monitor. But I see the values in ADS.channelData[0]. So there is no problem in reading the value.
Any thoughts on my situation?
Posted this previously, twice in fact.
Regards, William
I looked at the link you sent but it didn't help. I can't specify a range in the code and create an if condition. Because I don't know if ADS.channelData[0] keeps the data it reads in an array. Or is element 0 of this command constantly changing? In either case, I can transfer each read data to another array and access any element of that array. Since there is a decrease in the amplitude of the signal as soon as I close my eyes, I will solve my problem by making any pin 1 when this decrease is experienced. But it doesn't.
The device (TI dev kit) you are using, is not supported by OpenBCI. We are only making some suggestions that may point you in the right direction. We cannot write your program.
As a clarification, EOG is used for monitoring eye movement. So your goal of detecting "eyes closed" state is different. Although EOG signal will react to eyelid blinks. You'll have to do the reading to figure out how to proceed.
With any EEG, EMG, ECG, EOG device, the goal is to read out successive samples taken at the sample rate of the device. If the TI dev kit instructions do not explain how to do that, then you might try posting on the TI forum to ask what you are doing wrong.
https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/848779/ads1299eegfe-pdk-ads1299eegfe-pdk
As stated previously, this kit is designed primarily for hardware developers who are using the Windows app provided by TI. So they would generally not be focused or concerned with Arduino users. But posting on their forum may find some answers. The code statement
x=ADS.channelData[0], is intended to get a SINGLE sample. Depending on how the surrounding code is set up, you will need to delay some amount of time for the ADS1299 to generate the next sample. Not having expertise on this TI dev kit, I don't know how that is done. The best way to do this is to read out the next sample when the ADS1299 makes it available. Generally this is done by some type of hardware handshake between the CPU and the device, using the SPI bus (MISO, MOSI, etc.)Regards, William
Thank you for your help. I don't want you to write code for me. The signals I see in my setup are those whose amplitude drops as soon as I close my eyes. What I want to do is if(Vmax_eyesopen-Vmax_eyesclosed<x) { digitalwrite(5,HIGH); } . I could not do this with the command ADS.channelData[0]. I asked you for help with this. Either I couldn't explain myself or I misunderstood you. Anyway, thanks again for your help.
You really need to do some reading on how analog to digital conversion is done: receiving samples, signal processing, etc. That is what the EOG tutorials would do. I don't know how samples are read correctly from your device. That is why I gave you the TI developer forum link.
EOG or eye blink / open / closed states, DO NOT result in fixed voltage values. That is why you need to do some reading.
See this thread on the TI forum. It states that their kit cannot be used for real-time signal acquisition. The kit is only intended for hardware engineers to evaluate the features of the ADS1299 chip.
https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/617593/ads1299eegfe-pdk-ads1299eegfe-pdk-help
More threads that came up on this search:
https://www.google.com/search?q=ADS1299EEGFE-PDK+ti+forum
I read the TI forum constantly before joining this forum. But I can read data. Anyway thank you to everyone who helped.