Inhaltsverzeichnis:
- Schritt 1: Zubehör
- Schritt 2: Raspberry Pi einrichten
- Schritt 3: Neurosky-Headset anschließen
- Schritt 4: Verbinden Sie die USB-Webcam mit dem Open CV
- Schritt 5: Arduino anschließen
- Schritt 6: Alles zusammenfügen
- Schritt 7: Verbesserungen & Entwicklung
Video: Biofeedback-Kino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Projektautor
Jessica Ann
Mitarbeiter
- Gregory Hough
- Salud Lopez
- Pedro Peira
Über
Ein experimentelles Videoaufnahmesystem, das das Gehirn eines Teilnehmers über ein Neurosky Mindwave EEG Reader Headset mit Kamerafunktionen verbindet. Das Biofeedback Cinema-System arbeitet anstelle eines traditionellen Kameramanns und überlässt stattdessen der Teilnehmerin selbst die Agentur der Komposition über eine benutzerdefinierte BRAIN-zu-CAMERA-Schnittstelle. Das Projekt wurde in Zusammenarbeit mit den Workshop-Teilnehmern Gregory Hough, Salud Lopez und Pedro Peira entwickelt. Die Ergebnisse des Workshops können Sie nachlesen unter:
Prototypenkonfiguration
Das Biofeedback Cinema-System bietet viele Anwendungsmöglichkeiten. Für dieses anweisbare haben wir eine Demo des Systems vorbereitet, die das Konzentrations- / Aufmerksamkeitsniveau des Teilnehmers (eine einzelne ganze Zahl) betrachtet und dies in die Kameraposition (über Schwenken und Neigen) und den Kamerafokus (intern über OpenCV) übersetzt. Dies alles wird durch eine Bluetooth-Verbindung zwischen einem Neurosky EEG Reader Headset und einem Raspberry Pi ermöglicht.
Der Raspberry Pi ist ein kleiner Computer, der mit einer Webcam und Skripten (siehe unten) ausgestattet ist, die die Gehirnaktivität des Teilnehmers mit den Kameraeinstellungen und der Kameraposition verbinden. Die dynamische Kameraposition wird über einen Arduino-Mikrocontroller ermöglicht, der Signale vom Raspberry Pi empfängt. Wir freuen uns auf die weitere Entwicklung, da wir beabsichtigen, zusätzliche Gehirnwellenparameter (Frequenzen im Zusammenhang mit Augenblinzeln usw.) und Kamerafunktionen (z. B. Farbton, Sättigung, Helligkeit usw.) aufzunehmen.
Nachfolgend finden Sie die Anweisungen zum Erstellen Ihres eigenen Biofeedback Cinema-Systems.
Viel Spaß beim Experimentieren
Schritt 1: Zubehör
Alles, was Sie brauchen, um Ihren eigenen Biofeedback Cinema-Prototyp zu bauen, ist unten aufgeführt.
- Neurosky Mindwave Mobiles EEG-Headset
-
Raspberry Pi B+ (b+ ist besser, mehr USB-Anschlüsse, aber ein B-Modell ist auch in Ordnung, wenn Sie einen USB-Hub haben).
- Raspberry Pi Netzteil oder Akku
- WLAN-Dongle -oder- Ethernet-Verbindung (nur während der Einrichtung erforderlich)
- Bluetooth Dongle siehe Wiki für kompatible Dongles
- SD-Karte (mindestens 8 GB) mit NOOBS.
-
Arduino Jedes Board ist in Ordnung, mit Uno in diesem Instructable. Beachten Sie auch, dass Sie einfach die E / A auf dem Pi verwenden können.
- Arduino Netzteil oder Akku
- A-B-USB-Kabel
- USB-Webcam
- Mini-Schwenk-Neige-Kit
-
Monitor mit HDMI-Eingang Oder verwenden Sie VNC, um Ihren Pi von Ihrem Computer aus fernzusteuern [Anleitung hier]
HDMI Kabel
- USB-Tastatur und -Maus empfehlen Bluetooth-Tastatur und -Maus, um die verwendeten USB-Anschlüsse zu minimieren.
Schritt 2: Raspberry Pi einrichten
1. Hardware einrichten
Schließen Sie Tastatur, Maus, Bluetooth-Dongle, WLAN-Dongle (oder Ethernet), Webcam, Monitor über HDMI-Kabel und Strom an Ihren Raspberry Pi an
2. Betriebssystem einrichten
- Schalten Sie das Gerät ein und Ihr Pi sollte starten. Installieren Sie Rasbpian OS, Anweisungen hier:
- Wenn das System gestartet und Raspian richtig installiert ist, sollten Sie den Home-Desktop sehen [Bild oben].
HINWEISE:
- Wenn das Desktop-Seitenverhältnis deaktiviert ist, versuchen Sie, Ihren Raspberry Pi neu zu starten. Wenn es immer noch ausgeschaltet ist, sehen Sie hier, um das Seitenverhältnis manuell zu aktualisieren.
- Wenn Sie einen Texteditor öffnen und die Sonderzeichen Ihrer Tastatur falsch zugeordnet sind, sehen Sie hier nach, um Ihre Tastaturkonfiguration zu aktualisieren.
- Testen Sie Ihre Internetverbindung (diese benötigen Sie, um während des Setups Bibliotheken zu installieren). Suchen Sie hier nach Hilfe bei der WLAN-Einrichtung.
Schritt 3: Neurosky-Headset anschließen
1. Bluetooth-Konfiguration
Bevor sich der Pi mit dem Neurosky verbinden kann, müssen wir Bluetooth einrichten:
Öffnen Sie auf dem Desktop "LXTerminal" (im Folgenden als Terminal bezeichnet). Führen Sie diesen Befehl aus, um Mängel zu beheben und zu aktualisieren:
$ sudo apt-get update
Installieren Sie Bluetooth mit diesem Befehl:
$ sudo apt-get Bluetooth installieren
Installieren Sie das praktische Bluetooth-Dienstprogramm für die Desktop-Symbolleiste:
$ sudo apt-get install -y bluetooth bluez-utils blueman
Pi vom Terminal neu starten:
$ sudo Neustart
2. Bluetooth-Verbindung testen
- Schalten Sie das Neurosky-Headset ein
- Aus dem Terminal-Scan nach Geräten:
hcitool scannen
Das Mindwave-Headset sollte aufgelistet sein, notieren Sie sich die MAC-Adresse des Headsets [Bild oben]
3. Installieren Sie Neurosky-Bibliotheken
Jetzt sind wir bereit, die Neurosky Python-Bibliotheken zu installieren und ihren Datenstrom mit dem Bibliothekstestskript aufzunehmen:
Installieren Sie vom Terminal aus das Dienstprogramm github:
sudo apt-get install git-core
Klonen Sie das Github-Repository mit der Neurosky Python-Bibliothek:
sudo git-Klon
Wir müssen die Datei MindwaveMobileRawReader.py mit der MAC-Adresse Ihres Headsets aktualisieren. Zu Ihrer Information: Bei Dateinamen muss die Groß-/Kleinschreibung beachtet werden
sudo nano /home/pi/python-mindwave-mobile/MindwaveMobileRawReader.py
- Aktualisieren Sie die in der Datei aufgeführte MAC-Adresse. Strg-X zum Beenden, Y zum Speichern, Enter zum Beenden.
- Koppeln Sie Neurosky und Pi und erlauben Sie die automatische Verbindungsfunktion, wenn Sie zur Eingabe einer PIN aufgefordert werden, verwenden Sie "0000":
$ sudo bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX
$ sudo bluez-test-device vertrauenswürdig XX:XX:XX:XX:XX:XX ja
Installieren Sie die Python-Bluetooth-Bibliothek:
sudo apt-get install python-bluez
Führen Sie das Bibliothekstestskript aus, um sicherzustellen, dass der Pi eine Vorschau des Datenstroms anzeigen kann. Sie sollten das Datenstreaming [Bild oben] sehen:
$ sudo python /home/pi/python-mindwave-mobile/read_mindwave_mobile.py
Schritt 4: Verbinden Sie die USB-Webcam mit dem Open CV
1. Installieren Sie OpenCV
Vom Terminal:
$ sudo apt-get install libopencv-dev python-opencv
Wenn Sie fertig sind, fahren Sie fort:
$ sudo apt-get -f install
Zur Sicherheit:
$ sudo apt-get install libopencv-dev python-opencv
Testen Sie die Installation, indem Sie versuchen, die Bibliothek zu importieren:
$python
> cv2 importieren
2. Testen Sie OpenCV in Python mit einer USB-Webcam
- Auf dem Desktop "IDLE" öffnen (IDLE3 nicht öffnen!)
- Wählen Sie im Menü Datei die Option Neues Fenster. Kopieren Sie unser Cv-Blur-Test-Skript in das neue Fenster und speichern Sie es. Skript hier verfügbar:
- Wählen Sie im Menü Ausführen die Option Modul ausführen (oder drücken Sie F5). Es kann einige Sekunden dauern, bis Sie loslegen, aber Sie sollten einen kleinen Rahmen in Ihrem Live-Webcam-Feed sehen und das Video sollte verschwommen sein. Herzlichen Glückwunsch, OpenCV wurde installiert und funktioniert erfolgreich mit Ihrer Webcam [Bild oben].
Schritt 5: Arduino anschließen
1. Arduino-IDE herunterladen
Vom Terminal:
sudo apt-get install arduino
2. Arduino verbinden und Sketch laden
- Schließen Sie das Arduino mit dem A-B-USB-Kabel an den Pi an.
- Gehen Sie vom Desktop-Startmenü zu Electronics und öffnen Sie die Arduino IDE. Kopieren Sie unsere Arduino-Serial-Pi-Skizze in die IDE [Link unten]. Dies ist eine sehr einfache Skizze, die Servomotoren basierend auf der Eingabe über die Serie bewegt. Wir werden Daten basierend auf der Gehirnwellenausgabe über die serielle Schnittstelle senden und im letzten Schritt eine Python-Skizze verwenden, wenn wir alles zusammenstellen.
Arduino-Seriell-Pi-Skizze hier online:
Gehen Sie in der Arduino IDE zum Menü Tools, wählen Sie Serial Port und wählen Sie den aufgelisteten Arduino-Port aus, wahrscheinlich etwas wie /dev/ttyACM0. Notieren Sie sich den Port
3. Deaktivieren Sie die serielle Konsole
Laden Sie ein Skript herunter und führen Sie es aus, um die serielle Konsole zu deaktivieren, damit die serielle USB-Verbindung reibungslos funktioniert:
$ wget
/alamode-setup.tar.gz?raw=true -O alamode-setup.tar.gz
$ tar -xvzf alamode-setup.tar.gz
$ cd alamode-setup
$ sudo./setup
$ sudo Neustart
Zu Ihrer Information:
Wenn Sie den B+ verwenden, gibt es möglicherweise genug E / A, um die Servos zu unterstützen (sehen Sie hier, um den GPIO einzurichten und zu verwenden). Ich bin jedoch daran interessiert, zusätzliche Komponenten für zukünftige Gehirn-zu-Elektronik-Experimente hinzuzufügen. Das Einrichten des ersten Prototyps mit einem Arduino sorgt also für viele elektronische Breakout-Möglichkeiten.
Schritt 6: Alles zusammenfügen
1. Endgültiges Python-Skript
Bevor wir das endgültige Python-Skript zum Ordner "python-mindwave-mobile" hinzufügen können, müssen wir die Ordnerberechtigungen ändern. Vom Terminal:
$ chmod a=rwx /home/pi/python-mindwave-mobile
- Öffnen Sie IDLE und führen Sie unser endgültiges Python-Skript aus, das hier online verfügbar ist: https://github.com/PrivateHQ/biofeedback-cinema/ Stellen Sie sicher, dass es sich im Ordner python-mindwave-mobile befindet. Zu Ihrer Information: Sie müssen unser Python-Skript mit Ihrer tatsächlichen Arduino-Portadresse aktualisieren.
- Wenn Sie dieses Skript ausführen, sollten drei Dinge passieren: 1) Ihre Aufmerksamkeitsstufe wird in der Python-Shell aufgelistet, 2) Ein kleiner Rahmen erscheint, der den Live-Feed der Webcam zeigt, wobei sich die Unschärfe je nach Aufmerksamkeitsstufe ändert, 3) der Motor (s) Bewegen Sie sich, während die Aufmerksamkeitsstufe über die serielle [Video oben] an das Arduino weitergegeben wird.
Schritt 7: Verbesserungen & Entwicklung
Der Raspberry Pi hat eine begrenzte Rechenleistung und hat Schwierigkeiten, OpenCV-Funktionen reibungslos auszuführen. Dies ist etwas, das ich weiter entwickeln und verbessern werde. Darüber hinaus plane ich, in zukünftigen Iterationen zusätzliche Gehirnwellenparameter (Frequenzen im Zusammenhang mit Augenblinzeln usw.) und Kamerafunktionen (z. B. Farbton, Sättigung, Helligkeit usw.) aufzunehmen.