اینو دیدم کسی تو نظرات پیشنهاد داده واسه این ماژول
نمایش نسخه قابل چاپ
دوستان من برا راه اندازی این ماژول، مغزی سیم شیلد مشکی رو به سنسور دایره ای فلزی که به پیشانی چسبانده میشود متصل و ازطرف برد مغزی رو به eeg و شیلد رو به پایه کناری وصل کردم و دوعدد گیره سفید که به لاله های گوش وصل میشن رو یکی به پایه ref و دیگری به پایه سوم از طرف eeg وصل کردم و پایه tx رو به پایه tx آردوینو uno (پایه اول از پایین ) وصل کردم و بعد از اجرای دستورات بند شش لینک پیغام قبلیم و کامپایل آردوینو کدهای دریافت شده کیفیتشون از 26 بهتره نمیشه ( اولین عدد صفر یعنی کیفیت سیگنال صد در صد )این نکه رو هم یاداوری کنم که تنظیمات باود ریت رو روی 9600 تنظیم کردم . کمکی که از دوستان میخام اینه که چطوری میشه کیفیت سیگنال رو بالا برد
تاکید میکنم پایه tx ماژول به پایه rx آردوینو uno (پایه اول از پایین ) وصل میشه
سلام
برنامه ای که گذاشتید این ارور رو میده :
Arduino: 1.6.0 (Windows 7), Board: "Arduino Uno"
aa.ino:2:13: error: 'serial' was not declared in this scope
aa.ino: In function 'void setup()':
aa.ino:5:2: error: 'serial' was not declared in this scope
aa.ino: In function 'void loop()':
aa.ino:11:5: error: 'serial' was not declared in this scope
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
مشکل از کجاست؟
من کد صفحه اول رو با کتابخونه ای که همونجا گذاشته شده تست کردم بدون ارور کامپایل میشه
کد:#include <Brain.h>
// Set up the brain parser, pass it the hardware serial object you want to listen on.
Brain brain(Serial);
void setup() {
// Start the hardware serial.
Serial.begin(9600);
}
void loop() {
// Expect packets about once per second.
// The .readCSV() function returns a string (well, char*) listing the most recent brain data, in the following format:
// "signal strength, attention, meditation, delta, theta, low alpha, high alpha, low beta, high beta, low gamma, high gamma"
if (brain.update()) {
Serial.println(brain.readErrors());
Serial.println(brain.readCSV());
}
}
مشکل برنامه حل شد و کامپایل شد و اتصال رو هم انجام دادم اما در سریال مانیتور چیزی مشاهده نمی کنم ، چطوری سیگنال در سریال مانیتور نمایش داده می شه؟
کلا چیزی نیست baud rate روی 9600 هست اما چیزی نشون نمیده
چطور میشه شکل سیگنال مغزی رو دید ؟ یا حتی در متلب وقتی با دستور fopen اطلاعات رو میارم اما plot نمیکنه میشه بگید چه در آردوینو و چه در متلب چطور میتونم سیگنال مغزی رو رسم کنم
ممنون
نه کاملا درست وصله فک می کنم تو مراحل اشتباه میکنم من اول برنامه رو کامپیل می کنم رو بورد بعد ماژول رو متصل می کنم و بعد که سریال مانیتور رو باز می کنم چیزی نمایش نمی ده
مشکل سخت افزاری می دونم نداره
من الان نمیدونم مشکل چیه
لطفا این کد رو آپلود کنیدو بهم بگید تو کنسول سریال start رو چاپ می کنه یا نه:
کد:#include <Brain.h>
Brain brain(Serial);
void setup() {
// Start the hardware serial.
Serial.begin(9600);
Serial.println("Start");
}
void loop() {
if (brain.update()) {
Serial.print ("read error : ");
Serial.println(brain.readErrors());
Serial.print ("read CSV : ");
Serial.println(brain.readCSV());
}
}
بله این کد رو آپلود کردم و start رو چاپ کرد فقط ، ولی با کد قبلی داده نمی ده
مشکل از کجاست ؟
مکشلی که هست اینه که وارد شرط brain.update() نمیشه .
تو فایل cpp رو که نگاه کنید میبیند کد نویسی این تابع این هست:
این کد رو مطالعه کنید و برای دیباگ قسمت به قسمتش یه چیزی مثل همون start رو سریال پرینت کنید ببینید به کدوم قسمت داره گیر میده که true بر نمیگردونهکد:boolean Brain::update() {
if (brainSerial->available()) {
latestByte = brainSerial->read();
// Build a packet if we know we're and not just listening for sync bytes.
if (inPacket) {
// First byte after the sync bytes is the length of the upcoming packet.
if (packetIndex == 0) {
packetLength = latestByte;
// Catch error if packet is too long
if (packetLength > MAX_PACKET_LENGTH) {
// Packet exceeded max length
// Send an error
sprintf(latestError, "ERROR: Packet too long");
inPacket = false;
}
}
else if (packetIndex <= packetLength) {
// Run of the mill data bytes.
// Print them here
// Store the byte in an array for parsing later.
packetData[packetIndex - 1] = latestByte;
// Keep building the checksum.
checksumAccumulator += latestByte;
}
else if (packetIndex > packetLength) {
// We're at the end of the data payload.
// Check the checksum.
checksum = latestByte;
checksumAccumulator = 255 - checksumAccumulator;
// Do they match?
if (checksum == checksumAccumulator) {
// Parse the data. parsePacker() returns true if parsing succeeds.
if (parsePacket()) {
freshPacket = true;
}
else {
// Parsing failed, send an error.
sprintf(latestError, "ERROR: Could not parse");
// good place to print the packet if debugging
}
}
else {
// Checksum mismatch, send an error.
sprintf(latestError, "ERROR: Checksum");
// good place to print the packet if debugging
}
// End of packet
// Reset, prep for next packet
inPacket = false;
}
packetIndex++;
}
// Look for the start of the packet
if ((latestByte == 170) && (lastByte == 170) && !inPacket) {
// Start of packet
inPacket = true;
packetIndex = 0;
packetLength = 0; // Technically not necessarry.
checksum = 0; // Technically not necessary.
checksumAccumulator = 0;
//clearPacket(); // Zeros the packet array, technically not necessarry.
//clearEegPower(); // Zeros the EEG power. Necessary if hasPower turns false... better off on the gettter end?
}
// Keep track of the last byte so we can find the sync byte pairs.
lastByte = latestByte;
}
if(freshPacket) {
freshPacket = false;
return true;
}
else {
return false;
}
}
با سلام خدمت دوستان عزیز. کسی هست که نحوه صحیح اتصال الکترودها به ماژول رو به اشتراک بزاره؟ کیفیت سیگنال 100 % نمیشه
سلام دوستان من تازه دارم اشنا میشم با این
توی نرم افزارش چطور نمودار رو میکشه؟منظورم اینه که باید با اردوینو وصل کنیم سخت افزار رو به کامپیوتر تا نرم افزار برامون نمودار بکشه یا خیر؟
بله علاوه بر آردوینو و نرم افزارش ،به نرم افزاری هم برا نمایش نمودار نیازه
سلام
متاسفانه ما هم دچار این بلا شدیم
هیچی از سریال نمیشه گرفت
همه اتصالات درسته
ولی هیچی نشون نمیده
سلام. من زیاد توی فروم نیستم. ولی ایمیل رو بخاطر مسایل کاری چک میکنم. بنابر این ممکنه کسی سوالی کرده باشه و نتونم مدت زیادی تو فروم بیام و جوابش رو بدم. به همین خاطر ایمیل دادم که سوالاتشون رو بپرسند.
کار با این ماژول دقت زیادی میخواد و خیلی چیزها توی راه اندازیش مهمه.
ولتاژ - اتصال زمین - نویز - الکترود - محل نصب الکترود - تمیز بودن محل اتصال الکترود و ...
توی این مدت دانشجوهای زیادی ایمیل زدند و برا پروژه یا پایان نامه کمک خواستد و تا حد امکان کمکشون کردم.
در خدمت دوستان عزیز هستم.
شهنازی