واجهة دماغ-حاسوب بلوحة OpenBCI تصنف إشارات EEG بنماذج EEGNet وLDA وتحولها إلى أوامر S/F/B/R/L لسيارة نموذجية عبر Arduino وبلوتوث HC-05.

مشروع بناء منظومة واجهة دماغ-حاسوب (BCI) غير غازية تلتقط إشارات تخطيط كهربية الدماغ (EEG) من لوحة OpenBCI Cyton ثمانية القنوات، فتنقّيها وتقطعها إلى نوافذ زمنية وتصنفها إلى خمس حالات حركية (سكون، تحريك اليد اليمنى، اليد اليسرى، القدم اليمنى، القدم اليسرى)، ثم تترجم التصنيف إلى أوامر قيادة تُرسل عبر المنفذ التسلسلي (USB أو Bluetooth HC-05) إلى متحكم Arduino Uno يشغّل أربعة مرحّلات تتحكم بمحركات سيارة نموذجية. نفذ المشروع فريق من الطلاب بمساعدة تقنية من مكتب تكنو إنجاز.
بُنيت المنظومة بلغة Python حول نواة معالجة موحدة تخدم ثلاثة مسارات: التدريب غير المتصل على بيانات PhysioNet العامة، والمعايرة الشخصية عبر التسجيل المباشر، والاستدلال الحي مع الإرسال الفوري للأوامر. وأفضل النتائج الموثقة دقة 86.22% لتمييز فتح العينين وإغلاقهما، ونحو 69.42% للمهام الحركية الثنائية على PhysioNet، وزمن استجابة أولي أقل من 500 ميلي ثانية من استقبال الإشارة إلى إصدار الأمر؛ بينما بقيت دقة النماذج الشخصية للتخيل الحركي قريبة من مستوى الصدفة، وهو ما يوثقه الكتاب بصراحة.
| العنصر | البيانات |
|---|---|
| نوع المشروع | منظومة واجهة دماغ-حاسوب برمجية ومادية للتحكم بسيارة نموذجية |
| المجال | واجهات الدماغ-الحاسوب، معالجة الإشارات الحيوية، تعلم الآلة، الأنظمة المدمجة |
| حالة المشروع | نموذج بحثي تعليمي عامل؛ ليس جهازًا طبيًا |
| دور تكنو إنجاز | دعم ومساعدة تقنية للطلاب أثناء تطوير المشروع |
| تقنيات أساسية | OpenBCI Cyton، BrainFlow، Python 3.11، SciPy، MNE، scikit-learn، PyTorch (EEGNet، ShallowConvNet)، Shrinkage LDA، FastAPI، Tkinter، Arduino Uno، HC-05 |
| المخرجات | الفئة المتوقعة مع درجة الثقة، تقارير جودة الإشارة، نماذج مدربة وسجل لها، أوامر قيادة S/F/B/R/L للسيارة |
يوفر تخطيط كهربية الدماغ وسيلة غير غازية ومنخفضة التكلفة لالتقاط النشاط العصبي، وتتيح لوحات مفتوحة المصدر مثل OpenBCI بناء منظومات تجريبية، بينما توفر مجموعة PhysioNet تسجيلات 109 أشخاص بأكثر من 1500 تسجيل. لكن الانتقال من نموذج مدرب على بيانات عامة إلى تحكم حي بجهاز حقيقي يصطدم بفجوة يحددها المشروع في أربعة أبعاد:
نُفذ المشروع أكاديميًا بواسطة الطلاب، مع مساعدة ودعم تقني من مكتب تكنو إنجاز أثناء مراحل التطوير. ويُعرض ضمن أعمال المكتب مثالًا على دعمه للمشاريع التي تربط معالجة الإشارات الحيوية وتعلم الآلة بطبقة تحكم مادية مبنية على المتحكمات الدقيقة.
| النموذج | الوصف في المشروع |
|---|---|
| EEGNet | شبكة التفافية مدمجة مخصصة لإشارات EEG، نحو 5.5 ألف معامل قابل للتعلم في النسخة ثلاثية الفئات |
| ShallowConvNet | شبكة ضحلة تتعلم مرشحات زمنية ومكانية ثم تحسب الطاقة بمقياس لوغاريتمي، نحو 14.4 ألف معامل في النسخة الثنائية |
| Shrinkage LDA | تحليل التمييز الخطي مع انكماش التغاير على ميزات طيف القدرة في خمسة نطاقات ومصفوفة التغاير اللوغاريتمية؛ المسار المفضل للبيانات الشخصية القليلة |
| One-Class SVM | كاشف شذوذ بنواة RBF |
| DeepConvNet | معمارية موجودة في الشيفرة دون نموذج مدرب حتى تاريخ المراجعة |
درِّبت الشبكات العميقة بـ PyTorch باستخدام خسارة إنتروبيا متقاطعة موزونة لمعالجة عدم توازن الفئات، ومحسن Adam بمعدل تعلم ابتدائي 0.001، وإيقاف مبكر بعد 15 حقبة دون تحسن. ولمنع التسرب الإحصائي، يُقسم المسار الحديث البيانات طبقيًا على مستوى المحاولات قبل استخراج النوافذ.
| المكون | الدور |
|---|---|
| OpenBCI Cyton | لوحة استقبال EEG بثماني قنوات وتردد 250 عينة/ثانية |
| Arduino Uno (ATmega328P، 16 ميغاهرتز) | استقبال الأوامر التسلسلية وفك ترميزها وتشغيل المرحّلات |
| وحدة مرحّلات (4 قنوات مستخدمة) | عزل دارة المتحكم (5 فولت) عن دارة المحركات وتشغيل المحركات حسب الأمر |
| HC-05 Bluetooth | اتصال تسلسلي لاسلكي كمنفذ COM افتراضي بمدى نحو 10 أمتار، مع إمكانية استخدام USB بديلًا |
| خافض جهد (Step Down) | تحويل جهد بطارية السيارة (7.2–12 فولت) إلى الجهود المستقرة اللازمة للمتحكم والوحدات |
| سيارة نموذجية | منصة الاختبار المادية لحلقة التحكم المغلقة |
اعتمد المشروع مستودعًا واحدًا بنواة مشتركة تُستخدم في ثلاث واجهات: واجهة ويب (FastAPI وخادم Uvicorn مع HTML وCSS وJavaScript دون أطر)، وواجهة سطح مكتب (Tkinter)، وواجهة أوامر (CLI). وتشمل الطبقات: مصادر الإشارة (اللوحة، وملفات PhysioNet، وملفات محلية، ومولد إشارات تجريبي Mock للاختبار دون أجهزة)، والتخزين الخام، والمعالجة المشتركة، والتعلم، والخدمات، والمخرجات.
صُمم نموذج بيانات من 17 جدولًا في أربع مجموعات (جمع البيانات والجلسات، جودة الإشارة، بناء البيانات والتدريب، النماذج والتنبؤات)، يعكس التخزين الملفي الحالي (EDF وCSV وJSON وNPZ وPT وjoblib)، ويستخدم معرفات مجهولة للمشاركين مثل S001. كما تتحقق المنظومة من توافق البيانات الوصفية لكل نموذج (القنوات، التردد، طول النافذة، التطبيع) وتمنع تحميل النماذج القديمة غير المتوافقة، وتطبق آلية ترقية للنموذج عند تجاوز عتبة الأداء.
وتضم الواجهة شاشات لجمع بيانات الحركات الخمس، وعرض الإشارة الحية، وإعداد الجلسة وأزمنة البروتوكول، وفحص جاهزية المجسات، ومراحل الجلسة (خط الأساس، الاستعداد، تنفيذ الحركة، الراحة)، وتدريب النماذج واختبارها، وسجل النماذج، وبدء التنبؤ المباشر.
| التجربة | النتيجة |
|---|---|
| تمييز فتح العينين وإغلاقهما | 86.22% (أعلى دقة مسجلة) |
| أفضل مهمة حركية ثنائية على بيانات PhysioNet | نحو 69.42% |
| المعايرة الشخصية ثلاثية الفئات (راحة، يد يمنى، يد يسرى) بالتعلم العميق | دقة اختبار بين 0% و21.43% |
| المعايرة الشخصية بـ LDA (دقة متوازنة بالتحقق المتقاطع) | 33.63%، أي قرابة مستوى الصدفة (33.33%) |
| زمن الاستجابة الكلي للحلقة المغلقة (نتائج أولية) | أقل من 500 ميلي ثانية من استقبال الإشارة إلى إصدار الأمر |
يخلص المشروع إلى أن الإنجاز الهندسي تحقق: بنية موحدة تعمل في المسارات الثلاثة، وحلقة تحكم مغلقة مختبرة على سيارة نموذجية. لكن الصلاحية العلمية للنماذج الشخصية لم تتحقق بعد؛ فالمعايرة الشخصية في الجلسة النموذجية لم تتجاوز 33 محاولة، وكان التحقق محصورًا داخل الجلسة نفسها. ولاحظ المشروع أن المصنف التقليدي قد يتفوق على الشبكات العميقة حين تكون البيانات الشخصية قليلة.
المنظومة أداة بحثية تعليمية وليست جهازًا طبيًا. ويتطلب أي استخدام مع أشخاص أو في بيئات مفتوحة إضافة طبقات أمان مادية وبرمجية وتقييم مخاطر شاملًا، ويحتاج التحكم بمركبة حقيقية أو آلية خطرة إلى معايير وشهادات اعتماد خارج نطاق هذا المشروع. كما أن إشارات الدماغ بيانات بيولوجية حساسة، وقد صُمم نموذج البيانات لاستخدام معرفات مجهولة للمشاركين.
إذا كنت تعمل على واجهة دماغ-حاسوب أو تحكم بالإشارات الحيوية وتحتاج إلى مساعدة تقنية في تطوير الفكرة أو بناء نموذج أولي، يمكن التواصل مع مكتب تكنو إنجاز لمناقشة متطلبات المشروع ونطاق الدعم المناسب.
تلتقط لوحة OpenBCI Cyton إشارات EEG بثماني قنوات وتردد 250 عينة/ثانية، ثم تُرشح بنوتش 50 هرتز وتمرير نطاق 8–30 هرتز وتُطبق عليها المرجع المشترك والتطبيع. يصنف نموذج EEGNet أو ShallowConvNet أو LDA النافذة الزمنية، ويترجم محول الأوامر الفئة إلى حرف S أو F أو B أو R أو L يُرسل عبر USB أو بلوتوث HC-05 إلى Arduino Uno يشغل مرحّلات محركات السيارة النموذجية.
حقق نموذج تمييز فتح العينين وإغلاقهما دقة 86.22%، وبلغت أفضل دقة لمهمة حركية ثنائية على بيانات PhysioNet نحو 69.42%، وأظهرت النتائج الأولية زمن استجابة أقل من 500 ميلي ثانية من استقبال الإشارة إلى إصدار الأمر. أما المعايرة الشخصية ثلاثية الفئات فبقيت قرب مستوى الصدفة: بين 0% و21.43% بالتعلم العميق و33.63% بـ LDA.
البرمجيات مكتوبة بـ Python مع BrainFlow وSciPy وMNE وscikit-learn وPyTorch، وواجهة ويب بـ FastAPI وواجهة سطح مكتب بـ Tkinter. أما العتاد فيشمل لوحة OpenBCI Cyton، ومتحكم Arduino Uno، ووحدة مرحّلات بأربع قنوات مستخدمة، ووحدة بلوتوث HC-05، وخافض جهد، وسيارة نموذجية.
يعزو المشروع ذلك إلى قلة بيانات المعايرة (لا تتجاوز 33 محاولة في الجلسة النموذجية)، وضعف جودة بعض القنوات، وفجوة المجال بين بيانات PhysioNet (64 قناة، 160 هرتز) ونظام OpenBCI (8 قنوات، 250 هرتز). ويقترح جلسات متعددة بعشرين محاولة صالحة على الأقل لكل فئة، وبوابة جودة صارمة، وتقسيمًا على مستوى الجلسة أو الشخص.
لا؛ هو أداة بحثية تعليمية وليست جهازًا طبيًا. ويتطلب أي استخدام مع أشخاص أو في بيئات مفتوحة طبقات أمان مثل زر توقف طارئ وحدود سرعة ورفض الأوامر منخفضة الثقة، إضافة إلى تقييم مخاطر شامل.
تواصل مع فريق تكنو إنجاز لمناقشة قابلية التنفيذ العملي، اختيار القطع، وتطوير النموذج الأولي.