Yapay Zeka İle Engelleri Aşıyoruz. III (Proje Yönetiyoruz Makine Öğrenmesi ile Öğrenme)

makine öğrenmesi (ML) ile beyin dalgalarını analiz ederek protezi kişiselleştiren gelişmiş bir BCI destekli protez kontrol sistemidir.

📌 Özellikler:
Makine öğrenmesi (ML) modeli, kullanıcının beyin dalgalarını kişiselleştirerek analiz eder.
✅ Kullanıcının beyin dalgalarını gerçek zamanlı olarak takip eder ve protezin hareketlerini öğrenir.
Scikit-learn ve TensorFlow kullanarak, beta dalgalarındaki değişimlere göre yürüyüş stilini belirler.


🔹 1. Makine Öğrenmesi ile BCI Protez Kontrolü (Python)

pythonKopyalaDüzenleimport numpy as np
import serial
import time
import joblib  # Modeli kaydetmek ve yüklemek için
from brainflow.board_shim import BoardShim, BrainFlowInputParams, BoardIds
from brainflow.data_filter import DataFilter, FilterTypes
from sklearn.ensemble import RandomForestClassifier  # Makine öğrenmesi modeli

# **1. EEG CİHAZI BAĞLANTISI**
params = BrainFlowInputParams()
params.serial_port = "COM3"  # OpenBCI için seri port
board = BoardShim(BoardIds.CYTON_BOARD.value, params)
board.prepare_session()
board.start_stream()
time.sleep(2)

# **2. ARDUINO BAĞLANTISI**
arduino = serial.Serial('COM5', 115200)  # Arduino veya ESP32 için port

# **3. MODELİN YÜKLENMESİ VEYA YENİDEN EĞİTİLMESİ**
try:
    model = joblib.load("brainwave_model.pkl")  # Önceden eğitilmiş model yükle
    print("📌 Model yüklendi!")
except:
    model = RandomForestClassifier(n_estimators=50)  # Yeni model oluştur
    print("⚠️ Yeni model eğitilecek!")

# **4. EEG VERİLERİNİN ALINMASI VE FİLTRELENMESİ**
def get_eeg_features():
    data = board.get_board_data()
    eeg_channels = BoardShim.get_eeg_channels(BoardIds.CYTON_BOARD.value)
    
    alpha_waves, beta_waves = [], []
    for ch in eeg_channels:
        DataFilter.detrend(data[ch], 3)
        DataFilter.perform_bandpass(data[ch], 250, 8.0, 12.0, 4, FilterTypes.BUTTERWORTH.value, 0)  # Alpha (8-12 Hz)
        DataFilter.perform_bandpass(data[ch], 250, 12.0, 30.0, 4, FilterTypes.BUTTERWORTH.value, 0)  # Beta (12-30 Hz)

        alpha_waves.append(np.mean(data[ch]))
        beta_waves.append(np.mean(data[ch]))

    return np.mean(alpha_waves), np.mean(beta_waves)

# **5. MODELİN ÖĞRENMESİ & PROTEZ KONTROLÜ**
def train_and_control():
    training_data = []
    labels = []

    while True:
        alpha, beta = get_eeg_features()

        print(f"Alpha: {alpha}, Beta: {beta}")
        
        if beta > 20:
            print("📌 Komut: YÜRÜ!")
            arduino.write(b'1')
            training_data.append([alpha, beta])
            labels.append(1)  # Yürüme etiketi
        elif alpha > 15:
            print("📌 Komut: DUR!")
            arduino.write(b'0')
            training_data.append([alpha, beta])
            labels.append(0)  # Dur etiketi
        else:
            print("⏳ Beyin dalgaları analizi devam ediyor...")

        # **Makine öğrenmesi modelini eğitme**
        if len(training_data) > 50:
            model.fit(training_data, labels)
            joblib.dump(model, "brainwave_model.pkl")  # Modeli kaydet
            print("✅ Model güncellendi!")
            training_data, labels = [], []  # Veri setini sıfırla

        time.sleep(0.5)

# **6. BAŞLATMA**
try:
    train_and_control()
except KeyboardInterrupt:
    board.stop_stream()
    board.release_session()
    arduino.close()
    print("🔌 Bağlantılar kapatıldı!")

🔹 2. Protez Hareketini Kontrol Eden Arduino Kodu

cppKopyalaDüzenle#include <Servo.h>

Servo kneeServo;  // Diz eklemi için servo motor
Servo ankleServo; // Ayak bileği için servo motor

void setup() {
  Serial.begin(115200);
  kneeServo.attach(9);
  ankleServo.attach(10);
}

void loop() {
  if (Serial.available()) {
    char command = Serial.read();
    
    if (command == '1') {  // Yürüme komutu
      kneeServo.write(90);   // Dizi bük
      ankleServo.write(45);  // Ayak bileğini kaldır
      delay(500);
      kneeServo.write(0);    // Diz aç
      ankleServo.write(0);   // Ayak düz
    } 
    else if (command == '0') {  // Durdurma komutu
      kneeServo.write(0);
      ankleServo.write(0);
    }
  }
}

🔹 Çalışma Mantığı

1️⃣ Makine Öğrenmesi ile Öğrenme:

  • RandomForestClassifier kullanarak, kullanıcı beyin dalgalarına göre protezin hareketlerini kişiselleştirir.
  • Beta dalgaları yükseldiğinde yürüme komutu, alpha yükseldiğinde dur komutu verilir.
  • Model, zamanla kullanıcının beyin aktivitesini öğrenerek daha iyi kararlar verir.

2️⃣ EEG Sensörlerinden Veri Alımı:

  • OpenBCI veya Neurosky gibi EEG cihazları ile alpha & beta dalgaları ölçülür.
  • Python kodu beyin dalgalarını filtreler ve Arduino’ya komut gönderir.

3️⃣ Arduino Üzerinde Protez Kontrolü:

  • Servo motorlar, Arduino üzerinden beyin sinyallerine göre hareket eder.
  • Makine öğrenmesi, kullanıcının yürüme stilini öğrenir ve zamanla daha akıcı bir hareket sağlar.

🔹 Sonuç

✅ Protez makine öğrenmesi ile kullanıcının beyin sinyallerini analiz eder.
Zamanla kullanıcının yürüyüş alışkanlıklarını öğrenir ve optimize eder.
Gerçek zamanlı beyin dalgası analizi ile yürüyüş komutları kişiselleştirilir.

  • Gönderiler/Makaleler/Tezler

    İsrail Hava Savunma Sistemi: Iron Dome (Kippat Barzel / Demir Kubbe)

    Kısa özet Iron Dome, kısa menzilli roket, topçu mühimmatı ve havadan gelen benzer tehditleri (kısa menzilli füzeler, bazı dronlar ve havan/topçu mermileri) tespit edip, tehdit oluşturdukları sivil veya stratejik alanlara…

    Operasyonel Mükemmelliğe Giden Yol: Endüstri Mühendisliğinin Temel Prensipleri ve Araçları

    Özet Küresel rekabetin yoğunlaştığı günümüzde, organizasyonların sürdürülebilir başarı elde etmesi için operasyonel mükemmellik kritik bir stratejik hedef haline gelmiştir. Operasyonel mükemmellik, yalnızca maliyet düşürme değil; kaliteyi, verimliliği, esnekliği ve müşteri…

    Bir yanıt yazın

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Neler Kaçırdın?

    İsrail Hava Savunma Sistemi: Iron Dome (Kippat Barzel / Demir Kubbe)

    • By admin
    • Eylül 11, 2025
    • 23 views
    İsrail Hava Savunma Sistemi: Iron Dome (Kippat Barzel / Demir Kubbe)

    Operasyonel Mükemmelliğe Giden Yol: Endüstri Mühendisliğinin Temel Prensipleri ve Araçları

    • By admin
    • Eylül 9, 2025
    • 24 views
    Operasyonel Mükemmelliğe Giden Yol: Endüstri Mühendisliğinin Temel Prensipleri ve Araçları

    Senaryo: Siber Yolla İHA/SİHA’ların Ele Geçirilmesi – En Kötü Durum Analizi

    • By admin
    • Eylül 7, 2025
    • 29 views
    Senaryo: Siber Yolla İHA/SİHA’ların Ele Geçirilmesi – En Kötü Durum Analizi

    ABD Siber İstihbarat Oluşumları

    • By admin
    • Eylül 7, 2025
    • 23 views
    ABD Siber İstihbarat Oluşumları

    Temel İstihbarat ve Uluslararası İlişkilerSiber Çağda Bilgi ve Güvenlik (KİTABI)

    • By admin
    • Temmuz 18, 2025
    • 172 views
    Temel İstihbarat ve Uluslararası İlişkilerSiber Çağda Bilgi ve Güvenlik (KİTABI)

    ISP Log Management and Deletion Methods from Servers: Technical Guide and Application Handbook

    • By admin
    • Temmuz 12, 2025
    • 110 views
    ISP Log Management and Deletion Methods from Servers: Technical Guide and Application Handbook