Так - нет.
Гоняя в голове разные возбуждения (активируя разные зоны) получается ассоциативная карта мозговая деятельность-зона. Подбираются те зоны, которые проще всего человеку активировать вызывая в мозгу примерно связанные с движениями “мысли”. И уже человек учит себя думая о кнопке активировать ту или иную мозговую деятельность. Или наоборот, активность сопоставлять с кнопкой.
как в итоге считывает, и что, на такой частоте не понятно… другие собирали, и примеры в сети есть, данные какие то считать можно… надо наверное брать))) на ad620 хотел силой мысли лампочку зажигать))) не вышло, надо попробовать на этом чтоль…
думаю один мозг не сможет, надо брать 2 модуля!))) один будет перемещать а другой поднимать, но это не точно)))
Ну так есть примеры коммутации электроприборов силой мысли или видео прикольное на подобии? А то всё одни магниты, обмотанные разноцветными проводами.
Нейроитерфейс обычно может фиксировать одно, реже два действия. Поэтому, например, для ввода с клавиатуры на экране курсор последовательно перебирает клавиши с символами и на каком я сосредоточусь, тот и выберется.
В случае с пробирками нужно последовательно перебирать циферки с номером пробирки и стрелочки влево/вправо/опустить. И мысленно я сперва фиксирую номер пробирки, затем перемещаю и опускаю шарик.
И еще, для работы с нейроинтерфейсом необходимо обучение. Мозг должен приспособится. Разным людям по разному это дается. У людей с ограниченной подвижностью есть огромная мотивация для обучения, остальным это просто средство для повышения концентрации внимания.
не видел, надо собирать и смотреть… он вроде как потенциометр работает… при нужных значениях которые выдает, можно указать включить… а выдает ли он значения не рандомные, и главное будут ли они на мне работать))) надо собирать и смотреть… электроды я бы такие взял…
Слабенький. Силы мысли нет. Либо силы, либо мысли.
Еще в 2010 году у меня в руках была такая игрушка в руках. Она одевалась на голову и там шарик надо было как-то катать. Из магазина подарков, китай.
аааааа, автор не чекает личку, или зажал модуль для меня))))
тут насколько я помню юристы есть ? можете проконсультировать его, за его счет, что он нарушает ст. 426 Гражданского кодекса РФ, и 4 ст. 445 ГК РФ)))
Он же избавляется от излишек, девайсы его личные, с бизнесом не сложилось, максимум НДФЛ заплатит, ИМХО
А чек выписать?
Дико извиняюсь. В отъезде был
В личку ответил.
По просьбе трудящихся готовлю материал на обзор. Вот набросал платку контроллера
на базе ESP32C3 с аккумулятором и зарядкой
В принципе, все тоже самое делает готовый модуль ESP32-C3 Lolin.
наконец таки появились силы и время покопаться с модулем, если браин не фига не брайнит то вот)))
Ждем данные с NeuroSky TGAM
Signal, Attention, Meditation
Signal: 254 Attention: 53 Meditation: 186
Signal: 7 Attention: 53 Meditation: 173
Signal: 250 Attention: 0 Meditation: 0
Signal: 0 Attention: 93 Meditation: 0
Signal: 7 Attention: 123 Meditation: 22
Signal: 249 Attention: 123 Meditation: 203
Signal: 249 Attention: 0 Meditation: 242
Signal: 253 Attention: 0 Meditation: 43
Signal: 7 Attention: 186 Meditation: 0
Signal: 248 Attention: 85 Meditation: 104
Signal: 249 Attention: 130 Meditation: 0
Signal: 249 Attention: 130 Meditation: 53
Signal: 7 Attention: 0 Meditation: 2
Signal: 251 Attention: 90 Meditation: 183
Signal: 7 Attention: 0 Meditation: 0
Signal: 248 Attention: 19 Meditation: 130
Signal: 249 Attention: 0 Meditation: 117
Signal: 249 Attention: 173 Meditation: 211
Signal: 7 Attention: 182 Meditation: 0
Signal: 248 Attention: 225 Meditation: 0
Signal: 248 Attention: 59 Meditation: 69
Signal: 248 Attention: 59 Meditation: 2
Signal: 7 Attention: 250 Meditation: 5
Signal: 249 Attention: 9 Meditation: 228
Signal: 248 Attention: 0 Meditation: 53
Signal: 249 Attention: 27 Meditation: 166
Signal: 3 Attention: 0 Meditation: 0
Signal: 250 Attention: 178 Meditation: 231
Signal: 248 Attention: 240 Meditation: 181
Signal: 7 Attention: 181 Meditation: 246
Signal: 248 Attention: 40 Meditation: 179
Signal: 248 Attention: 251 Meditation: 0
Signal: 7 Attention: 251 Meditation: 16
Signal: 248 Attention: 0 Meditation: 0
Signal: 7 Attention: 132 Meditation: 173
Signal: 7 Attention: 0 Meditation: 0
Signal: 7 Attention: 220 Meditation: 215
Signal: 249 Attention: 0 Meditation: 0
Signal: 248 Attention: 64 Meditation: 0
Signal: 248 Attention: 0 Meditation: 0
Signal: 248 Attention: 0 Meditation: 57
Signal: 249 Attention: 0 Meditation: 0
Signal: 248 Attention: 106 Meditation: 230
Signal: 5 Attention: 53 Meditation: 103
#include <SoftwareSerial.h>
// Настройка пинов для SoftwareSerial
// RX pin подключается к TX модуля TGAM
// TX pin подключается к RX модуля TGAM
#define TGAM_RX_PIN 10
#define TGAM_TX_PIN 11
SoftwareSerial tgamSerial(TGAM_RX_PIN, TGAM_TX_PIN); // RX, TX
// Переменные для хранения данных
int poorSignal = 200; // 200 - нет данных
int attention = 0;
int meditation = 0;
// Буфер для данных
byte serialBuffer[512];
int bufferIndex = 0;
void setup() {
Serial.begin(57600); // Скорость для монитора порта
tgamSerial.begin(57600); // Скорость для TGAM модуля
Serial.println("Запуск системы...");
Serial.println("Ждем данные с NeuroSky TGAM");
Serial.println("Signal, Attention, Meditation");
}
void loop() {
readTGAMData();
// Выводим данные каждые 500мс
static unsigned long lastPrint = 0;
if (millis() - lastPrint > 500) {
lastPrint = millis();
Serial.print("Signal: ");
Serial.print(poorSignal);
Serial.print("\tAttention: ");
Serial.print(attention);
Serial.print("\tMeditation: ");
Serial.println(meditation);
}
}
void readTGAMData() {
// Читаем все доступные байты
while (tgamSerial.available() > 0) {
byte currentByte = tgamSerial.read();
// Добавляем байт в буфер
if (bufferIndex < sizeof(serialBuffer)) {
serialBuffer[bufferIndex++] = currentByte;
} else { // Буфер переполнен, сбрасываем
bufferIndex = 0; }
// Пытаемся найти и распарсить пакеты в буфере
parseBuffer();
}
}
void parseBuffer() {
// Ищем начало пакета: 0xAA, 0xAA
for (int i = 0; i < bufferIndex - 1; i++) {
if (serialBuffer[i] == 0xAA && serialBuffer[i + 1] == 0xAA) {
// Проверяем, что пакет полностью в буфере
if (i + 2 < bufferIndex) {
byte payloadLength = serialBuffer[i + 2];
// Проверяем длину пакета
if (i + 3 + payloadLength < bufferIndex) {
byte checksum = serialBuffer[i + 3 + payloadLength];
// Проверяем контрольную сумму
if (validateChecksum(&serialBuffer[i + 3], payloadLength, checksum)) {
// Парсим полезные данные
parsePayload(&serialBuffer[i + 3], payloadLength);
// Удаляем обработанный пакет из буфера
removeProcessedBytes(i, 4 + payloadLength);
return;
}
}
}
}
}
}
bool validateChecksum(byte* payload, byte length, byte checksum) {
int sum = 0;
for (int i = 0; i < length; i++) { sum += payload[i]; }
sum &= 0xFF;
sum = ~sum;
sum &= 0xFF;
return (sum == checksum);
}
void parsePayload(byte* payload, byte length) {
for (int i = 0; i < length; i++) {
switch (payload[i]) {
case 0x02: // Пакет с данными качества сигнала
if (i + 1 < length) { poorSignal = payload[i + 1]; }
break;
case 0x04: // Пакет с данными внимания (Attention)
if (i + 1 < length) { attention = payload[i + 1]; }
break;
case 0x05: // Пакет с данными медитации (Meditation)
if (i + 1 < length) { meditation = payload[i + 1]; }
break;
}
}
}
void removeProcessedBytes(int index, int count) {
// Сдвигаем буфер
for (int i = index + count; i < bufferIndex; i++) {
serialBuffer[i - count] = serialBuffer[i];
}
bufferIndex -= count;
}
не спрашивайте как это работает! хорошего настроения)))
Он то плакал, то смеялся, то щетинился, как еж. Он над нами издевался. Ну сумасшедший, что возьмешь! (с)
Пивка тяпнул наверное и понеслось ![]()
То парень к лесу мчится
То к полю, то к ручью
Всё поймать стремится
Молнию!
Весь сельский люд
Смотреть на это выходил
Как на холме безумец бегал и чудил
Он, видно, в ссоре с головою
Видно, сам себе он враг
Надо-ж выдумать такое — во дурак!
…послушаю пожалуй разок, другой.