Sommario:

Biofeedback Cinema: 7 passaggi
Biofeedback Cinema: 7 passaggi

Video: Biofeedback Cinema: 7 passaggi

Video: Biofeedback Cinema: 7 passaggi
Video: Webinar - Riablo: sensori inerziali, biofeedback e riabilitazione ortopedica 2024, Dicembre
Anonim
Image
Image
Biofeedback Cinema
Biofeedback Cinema

Autore del progetto

Jessica Ann

Collaboratori

  • Gregory Hough
  • Salud Lopez
  • Pedro Peira

Di

Un sistema di acquisizione video sperimentale che collega il cervello di un partecipante alle funzioni della fotocamera tramite un auricolare Neurosky Mindwave EEG Reader. Il sistema Biofeedback Cinema opera al posto di un direttore della fotografia tradizionale, dando invece l'agenzia della composizione al partecipante stesso tramite un'interfaccia BRAIN to CAMERA personalizzata. Il progetto è stato sviluppato in collaborazione con i partecipanti al workshop Gregory Hough, Salud Lopez e Pedro Peira. Puoi leggere i risultati del workshop su:

Configurazione del prototipo

Il sistema Biofeedback Cinema si presta a molte potenziali applicazioni. Per questo tutorial abbiamo preparato una demo del sistema che esamina il livello di messa a fuoco/attenzione del partecipante (un singolo numero intero) e lo traduce in posizione della telecamera (tramite panoramica e inclinazione) e messa a fuoco della telecamera (internamente tramite OpenCV). Tutto ciò è reso possibile da una connessione bluetooth tra un auricolare per lettore EEG Neurosky e un Raspberry Pi.

Il Raspberry Pi è un piccolo computer dotato di webcam e script (disponibili di seguito) che collegano l'attività cerebrale del partecipante alle impostazioni della fotocamera e alla posizione della fotocamera. La posizione dinamica della telecamera è resa possibile tramite un microcontrollore Arduino che riceve segnali dal Raspberry Pi. Attendiamo con impazienza un ulteriore sviluppo poiché miriamo a includere ulteriori parametri delle onde cerebrali (frequenze associate ai battiti di ciglia, ecc.) e funzioni della fotocamera (cioè tonalità, saturazione, luminosità, ecc.).

Di seguito sono riportate le istruzioni per costruire il proprio sistema Biofeedback Cinema.

Buon esperimento

Passaggio 1: materiali di consumo

Forniture
Forniture

Tutto ciò di cui hai bisogno per costruire il tuo prototipo di Biofeedback Cinema è elencato di seguito.

  1. Auricolare EEG mobile Neurosky Mindwave
  2. Raspberry Pi B+ (b+ è meglio, più porte USB, ma va bene anche un modello B se si dispone di un hub USB).

    1. Adattatore di alimentazione o batteria per Raspberry Pi
    2. Wifi Dongle -o- Connessione Ethernet (necessaria solo durante la configurazione)
    3. Bluetooth Dongle vedere wiki per dongle compatibili
    4. Scheda SD (almeno 8 GB) con NOOBS.
  3. Arduino Qualsiasi scheda va bene, usando Uno in questo Instructable. Nota anche che puoi semplicemente usare l'I/O sul Pi.

    1. Adattatore di alimentazione Arduino o pacco batteria
    2. Cavo USB A-B
  4. Webcam USB
  5. Mini kit pan-tilt
  6. Monitor con ingresso HDMI Oppure usa VNC per controllare a distanza il tuo pi dal tuo computer [tutorial qui]

    Cavo HDMI

  7. Tastiera e mouse USB consigliano la tastiera e il mouse bluetooth per ridurre al minimo le porte USB utilizzate.

Passaggio 2: imposta Raspberry Pi

Configura Raspberry Pi
Configura Raspberry Pi

1. Configurazione dell'hardware

Collega tastiera, mouse, dongle bluetooth, dongle wifi (o ethernet), webcam, monitor tramite cavo HDMI e alimenta il tuo Raspberry Pi

2. Configurazione del sistema operativo

  • Accendi l'alimentazione e il tuo Pi dovrebbe avviarsi. Installa il sistema operativo Rasbpian, istruzioni qui:
  • Se avviato e Raspian installato correttamente, dovresti vedere il desktop di casa [Immagine sopra].

SUGGERIMENTI:

  • Se le proporzioni del desktop sono disattivate, prova a riavviare il tuo Raspberry Pi. Se è ancora disattivato, guarda qui per aggiornare manualmente le proporzioni.
  • Se apri un editor di testo e i caratteri speciali della tastiera non sono mappati correttamente, guarda qui per aggiornare la configurazione della tastiera.
  • Prova la tua connessione Internet (ti servirà per installare le librerie durante l'installazione). Cerca qui aiuto per ottenere la configurazione del wifi.

Passaggio 3: collegare l'auricolare Neurosky

Collega l'auricolare Neurosky
Collega l'auricolare Neurosky
Collega l'auricolare Neurosky
Collega l'auricolare Neurosky

1. Configurazione Bluetooth

Prima che il Pi possa connettersi al Neurosky, dobbiamo configurare il bluetooth:

Sul desktop apri "LXTerminal" (indicato come Terminale da qui in poi). Esegui questo comando per risolvere e aggiornare le carenze:

$ sudo apt-get update

Installa il bluetooth con questo comando:

$ sudo apt-get install bluetooth

Installa la pratica utility bluetooth della barra degli strumenti del desktop:

$ sudo apt-get install -y bluetooth bluez-utils blueman

Riavvia Pi dal terminale:

$ sudo reboot

2. Prova la connessione Bluetooth

  • Accendi le cuffie Neurosky
  • Dal Terminale di ricerca dispositivi:

scansione hcitool

L'auricolare Mindwave dovrebbe essere elencato, prendere nota dell'indirizzo MAC dell'auricolare [immagine sopra]

3. Installa le librerie Neurosky

Ora siamo pronti per installare le librerie Neurosky Python e iniziare a raccogliere il suo flusso di dati con lo script di test della libreria:

Dal Terminale installa l'utility github:

sudo apt-get install git-core

Clona repository github con la libreria Neurosky Python:

sudo git clone

Dobbiamo aggiornare il file MindwaveMobileRawReader.py con l'indirizzo MAC dell'auricolare. Cordiali saluti: i nomi dei file fanno distinzione tra maiuscole e minuscole

sudo nano /home/pi/python-mindwave-mobile/MindwaveMobileRawReader.py

  • Aggiorna l'indirizzo MAC elencato nel file. Ctrl-X per finire, Y per salvare, Invio per uscire.
  • Associa Neurosky e Pi e consenti la funzione di connessione automatica, se richiesto per un PIN usa "0000":

$ sudo bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX

$ sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX sì

Installa la libreria Bluetooth Python:

sudo apt-get install python-bluez

Esegui lo script di test della libreria per assicurarti che Pi sia in grado di visualizzare in anteprima il flusso di dati. Dovresti vedere lo streaming dei dati [immagine sopra]:

$ sudo python /home/pi/python-mindwave-mobile/read_mindwave_mobile.py

Passaggio 4: collegare la webcam USB con CV aperto

Collega webcam USB con CV aperto
Collega webcam USB con CV aperto

1. Installa OpenCV

Dal Terminale:

$ sudo apt-get install libopencv-dev python-opencv

Al termine, continua:

$ sudo apt-get -f install

Per buona misura:

$ sudo apt-get install libopencv-dev python-opencv

Prova l'installazione tentando di importare la libreria:

$ pitone

> importa cv2

2. Prova OpenCV in Python con webcam USB

  • Sul desktop apri "IDLE" (non aprire IDLE3!)
  • Dal menu File selezionare Nuova finestra. Copia il nostro script Cv-Blur-Test nella nuova finestra e salva. Script disponibile qui:
  • Dal menu Esegui selezionare Esegui modulo (o premere F5). Potrebbero essere necessari alcuni secondi per iniziare, ma dovresti vedere una piccola cornice apparire con il feed della webcam dal vivo e il video dovrebbe essere sfocato. Congratulazioni, OpenCV è stato installato e funziona correttamente con la tua webcam [Immagine sopra].

Passaggio 5: collega Arduino

1. Scarica Arduino IDE

Dal Terminale:

sudo apt-get install arduino

2. Collega Arduino e carica lo schizzo

  • Collega l'arduino al Pi con il cavo USB A-B.
  • Dal menu di avvio del desktop vai su Elettronica e apri Arduino IDE. Copia il nostro schizzo arduino-serial-pi nell'IDE [Link sotto]. Questo è uno schizzo molto semplice che sposterà i servomotori in base all'input proveniente dal seriale. Invieremo i dati sul seriale in base all'output delle onde cerebrali, utilizzando uno schizzo Python nell'ultimo passaggio quando mettiamo tutto insieme.

Schizzo Arduino-serial-pi online qui:

Nell'IDE Arduino, vai al menu Strumenti, seleziona Porta seriale e seleziona la porta Arduino elencata, probabilmente qualcosa come /dev/ttyACM0. Prendi nota del porto

3. Disabilita la console seriale

Scarica ed esegui uno script per disabilitare la console seriale in modo che la connessione seriale USB possa funzionare senza problemi:

$ wget

/alamode-setup.tar.gz?raw=true -O alamode-setup.tar.gz

$ tar -xvzf alamode-setup.tar.gz

$ cd alamode-setup

$ sudo./setup

$ sudo reboot

Cordiali saluti:

Se stai usando il B+ potrebbe esserci abbastanza I/O per supportare i servi, (guarda qui per impostare e usare il GPIO). Tuttavia, sono interessato ad aggiungere componenti aggiuntivi per la futura sperimentazione dal cervello all'elettronica. Quindi, l'impostazione del prototipo iniziale con un arduino garantisce molte possibilità elettroniche di rottura.

Passaggio 6: mettere tutto insieme

Image
Image

1. Script Python finale

Prima di poter aggiungere lo script python finale alla cartella "python-mindwave-mobile", dobbiamo modificare i permessi della cartella. Dal Terminale:

$ chmod a=rwx /home/pi/python-mindwave-mobile

  • Apri IDLE ed esegui il nostro script Python finale, disponibile online qui: https://github.com/PrivateHQ/biofeedback-cinema/ Assicurati che si trovi nella cartella python-mindwave-mobile. Cordiali saluti: dovrai aggiornare il nostro script Python con il tuo attuale indirizzo della porta Arduino.
  • Quando esegui questo script dovrebbero succedere tre cose: 1) Il tuo livello di attenzione sarà elencato in Python Shell, 2) Apparirà un piccolo riquadro che mostra il feed live della webcam con la sfocatura che cambia in base al livello di attenzione, 3) il motore (s) spostati mentre il livello di attenzione viene passato all'arduino tramite il seriale [Video sopra].

Passaggio 7: miglioramenti e sviluppo

Il Raspberry Pi ha una potenza di elaborazione limitata e fatica a far funzionare le funzioni OpenCV senza problemi. Questo è qualcosa che continuerò a sviluppare e migliorare. Inoltre, ho intenzione di includere ulteriori parametri delle onde cerebrali (frequenze associate al battito di ciglia, ecc.) e funzioni della fotocamera (ad esempio tonalità, saturazione, luminosità, ecc.) nelle iterazioni future.

Consigliato: