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

    Yapay Zeka Destekli Konteyner Kontrolü:

    UNODC CCP Modelinin Geliştirilmesinde Makine Öğrenmesi Yaklaşımlarının Rolü ÖzetKüresel ticaretin %90’ından fazlası denizyolu ile gerçekleştirilmektedir. Bu büyük hacimli tücaret trafiği, suç örgütleri tarafından yasa dışı malların (uyuşturucu, silah, sahte ürünler,…

    UNODC Container Control Programme (CCP): Küresel Ticaretin Güvenliği İçin Stratejik Bir Model

    Özet Uluslararası ticaretin önemli bir bölümünün konteyner taşımacılığıyla yürütülmesi, limanlar ve sınır kapılarını yasa dışı ticaret faaliyetleri açısından kritik noktalar haline getirmiştir. Bu bağlamda, Birleşmiş Milletler Uyuşturucu ve Suç Ofisi…

    Bir yanıt yazın

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

    Neler Kaçırdın?

    Yapay Zeka Destekli Konteyner Kontrolü:

    • By admin
    • Nisan 17, 2025
    • 11 views
    Yapay Zeka Destekli Konteyner Kontrolü:

    UNODC Container Control Programme (CCP): Küresel Ticaretin Güvenliği İçin Stratejik Bir Model

    • By admin
    • Nisan 17, 2025
    • 11 views
    UNODC Container Control Programme (CCP): Küresel Ticaretin Güvenliği İçin Stratejik Bir Model

    Uyuşturucu ve Silah Kaçakçılığı: Uluslararası Güvenlik Açısından Küresel Bir Tehdit

    • By admin
    • Nisan 17, 2025
    • 17 views
    Uyuşturucu ve Silah Kaçakçılığı: Uluslararası Güvenlik Açısından Küresel Bir Tehdit

    Trump: Amerika’nın Çöküşünü mü Tetikleyecek, Yoksa Onu Tekrar İstikrarlı Bir Güce mi Dönüştürecek?

    • By admin
    • Nisan 17, 2025
    • 22 views
    Trump: Amerika’nın Çöküşünü mü Tetikleyecek, Yoksa Onu Tekrar İstikrarlı Bir Güce mi Dönüştürecek?

    ÇİN / TAYVAN SORUNU

    • By admin
    • Nisan 17, 2025
    • 29 views
    ÇİN / TAYVAN SORUNU

    AMD Instinct MI300X: Yapay Zekâ ve HPC için Yeni Nesil Hızlandırıcı

    • By admin
    • Nisan 9, 2025
    • 70 views
    AMD Instinct MI300X: Yapay Zekâ ve HPC için Yeni Nesil Hızlandırıcı