สารบัญ:

ภาพยนตร์ Biofeedback: 7 ขั้นตอน
ภาพยนตร์ Biofeedback: 7 ขั้นตอน

วีดีโอ: ภาพยนตร์ Biofeedback: 7 ขั้นตอน

วีดีโอ: ภาพยนตร์ Biofeedback: 7 ขั้นตอน
วีดีโอ: Biofeedback Therapy หรือการฝึกเบ่ง อีกหนึ่งวิธีรักษาอาการท้องผูกเรื้อรังจากการเบ่งไม่ถูกวิธี 2024, กรกฎาคม
Anonim
Image
Image
ภาพยนตร์ Biofeedback
ภาพยนตร์ Biofeedback

ผู้เขียนโครงการ

เจสสิก้า แอน

ผู้ร่วมงาน

  • เกรกอรี ฮัฟ
  • ซาลุด โลเปซ
  • เปโดร เปียร่า

เกี่ยวกับ

ระบบจับภาพวิดีโอทดลองที่เชื่อมต่อสมองของผู้เข้าร่วมกับฟังก์ชันกล้องผ่านชุดหูฟัง Neurosky Mindwave EEG Reader ระบบ Biofeedback Cinema ทำงานแทนนักถ่ายภาพยนตร์แบบดั้งเดิม แทนที่จะมอบสิทธิ์ในการเรียบเรียงองค์ประกอบให้กับผู้เข้าร่วมเองผ่านอินเทอร์เฟซ BRAIN to CAMERA ที่กำหนดเอง โครงการได้รับการพัฒนาร่วมกับผู้เข้าร่วมเวิร์กช็อป Gregory Hough, Salud Lopez และ Pedro Peira สามารถอ่านผลการอบรมได้ที่:

การกำหนดค่าต้นแบบ

ระบบ Biofeedback Cinema รองรับการใช้งานที่หลากหลาย สำหรับคำแนะนำนี้ เราได้เตรียมการสาธิตของระบบที่พิจารณาระดับโฟกัส/ความสนใจของผู้เข้าร่วม (จำนวนเต็มเดียว) และแปลเป็นตำแหน่งกล้อง (ผ่านการแพนและเอียง) และโฟกัสของกล้อง (ภายในผ่าน OpenCV) ทั้งหมดนี้เกิดขึ้นได้ด้วยการเชื่อมต่อบลูทูธระหว่างชุดหูฟัง Neurosky EEG Reader และ Raspberry Pi

Raspberry Pi เป็นคอมพิวเตอร์ขนาดเล็กที่ติดตั้งเว็บแคมและสคริปต์ (มีให้ด้านล่าง) ที่เชื่อมโยงการทำงานของสมองของผู้เข้าร่วมเข้ากับการตั้งค่ากล้องและตำแหน่งของกล้อง ตำแหน่งกล้องแบบไดนามิกเป็นไปได้ผ่านไมโครคอนโทรลเลอร์ Arduino รับสัญญาณจาก Raspberry Pi เราตั้งตารอที่จะพัฒนาต่อไปในขณะที่เราตั้งเป้าที่จะรวมพารามิเตอร์คลื่นสมองเพิ่มเติม (ความถี่ที่เกี่ยวข้องกับการกะพริบตา ฯลฯ) และฟังก์ชันของกล้อง (เช่น สี ความอิ่มตัว ความสว่าง ฯลฯ)

ด้านล่างนี้คือคำแนะนำในการสร้างระบบ Biofeedback Cinema ของคุณเอง

มีความสุขในการทดลอง

ขั้นตอนที่ 1: วัสดุสิ้นเปลือง

เสบียง
เสบียง

ทุกสิ่งที่คุณต้องการเพื่อสร้างต้นแบบ Biofeedback Cinema ของคุณมีดังต่อไปนี้

  1. ชุดหูฟัง Neurosky Mindwave Mobile EEG
  2. Raspberry Pi B+ (b+ ดีกว่า พอร์ต USB มากกว่า แต่รุ่น B ก็ใช้ได้เช่นกันหากคุณมีฮับ USB)

    1. Raspberry Pi Power Adapter หรือ Battery Pack
    2. การเชื่อมต่อ Wifi Dongle หรือ Ethernet (จำเป็นระหว่างการตั้งค่าเท่านั้น)
    3. Bluetooth Dongle ดู wiki สำหรับ dongle ที่เข้ากันได้
    4. การ์ด SD (อย่างน้อย 8GB) พร้อม NOOBS
  3. Arduino บอร์ดใดก็ได้โดยใช้ Uno ในคำแนะนำนี้ โปรดทราบว่าคุณสามารถใช้ I/O บน Pi ได้

    1. Arduino Power Adapter หรือ Battery Pack
    2. สาย USB AB
  4. เว็บแคม USB
  5. ชุดแพนเอียงขนาดเล็ก
  6. ตรวจสอบด้วยอินพุต HDMI หรือใช้ VNC เพื่อควบคุม pi ของคุณจากคอมพิวเตอร์ของคุณ [บทช่วยสอนที่นี่]

    สาย HDMI

  7. แป้นพิมพ์และเมาส์ USB แนะนำให้ใช้แป้นพิมพ์และเมาส์บลูทูธเพื่อลดพอร์ต USB ที่ใช้

ขั้นตอนที่ 2: ตั้งค่า Raspberry Pi

ตั้งค่า Raspberry Pi
ตั้งค่า Raspberry Pi

1. ตั้งค่าฮาร์ดแวร์

เชื่อมต่อแป้นพิมพ์ เมาส์ ดองเกิลบลูทูธ ดองเกิล wifi (หรืออีเธอร์เน็ต) เว็บแคม จอภาพผ่านสาย HDMI และจ่ายไฟให้กับ Raspberry Pi ของคุณ

2. ตั้งค่าระบบปฏิบัติการ

  • เปิดเครื่องและ Pi ของคุณควรเริ่มทำงาน ติดตั้ง Rasbpian OS คำแนะนำที่นี่:
  • หากบูทและติดตั้ง Raspian อย่างถูกต้อง คุณจะเห็นโฮมเดสก์ท็อป [รูปภาพด้านบน]

คำแนะนำ:

  • หากอัตราส่วนกว้างยาวของเดสก์ท็อปปิดอยู่ ให้ลองรีบูต Raspberry Pi ของคุณ หากยังคงปิดอยู่ ดูที่นี่เพื่ออัปเดตอัตราส่วนภาพด้วยตนเอง
  • หากคุณเปิดโปรแกรมแก้ไขข้อความและอักขระพิเศษบนแป้นพิมพ์ของคุณมีการแมปไม่ถูกต้อง ดูที่นี่เพื่ออัปเดตการกำหนดค่าแป้นพิมพ์ของคุณ
  • ทดสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ (คุณจะต้องใช้สิ่งนี้เพื่อติดตั้งไลบรารีระหว่างการตั้งค่า) ดูที่นี่เพื่อขอความช่วยเหลือในการตั้งค่า wifi

ขั้นตอนที่ 3: เชื่อมต่อชุดหูฟัง Neurosky

เชื่อมต่อชุดหูฟัง Neurosky
เชื่อมต่อชุดหูฟัง Neurosky
เชื่อมต่อชุดหูฟัง Neurosky
เชื่อมต่อชุดหูฟัง Neurosky

1. การกำหนดค่าบลูทูธ

ก่อนที่ Pi จะสามารถเชื่อมต่อกับ Neurosky ได้ เราต้องตั้งค่าบลูทูธ:

บนเดสก์ท็อปเปิด "LXTerminal" (จะเรียกว่า Terminal จากที่นี่เป็นต้นไป) เรียกใช้คำสั่งนี้เพื่อแก้ไขและอัปเดตข้อบกพร่อง:

$ sudo apt-get update

ติดตั้งบลูทู ธ ด้วยคำสั่งนี้:

$ sudo apt-get ติดตั้งบลูทูธ

ติดตั้งยูทิลิตี้บลูทู ธ แถบเครื่องมือเดสก์ท็อปที่มีประโยชน์:

$ sudo apt-get install -y บลูทู ธ bluez-utils blueman

รีบูต Pi จาก Terminal:

$ sudo รีบูต

2. ทดสอบการเชื่อมต่อบลูทูธ

  • เปิดชุดหูฟัง Neurosky
  • จากการสแกนเทอร์มินัลสำหรับอุปกรณ์:

hcitool scan

ควรแสดงรายการชุดหูฟัง Mindwave จดที่อยู่ MAC ของชุดหูฟัง [ภาพด้านบน]

3. ติดตั้ง Neurosky Libraries

ตอนนี้เราพร้อมที่จะติดตั้งไลบรารี Neurosky Python และเริ่มรับสตรีมข้อมูลด้วยสคริปต์ทดสอบไลบรารี:

จาก Terminal ติดตั้งยูทิลิตี้ github:

sudo apt-get ติดตั้ง git-core

โคลนที่เก็บ github ด้วยไลบรารี Neurosky Python:

โคลน sudo git

เราจำเป็นต้องอัปเดตไฟล์ MindwaveMobileRawReader.py ด้วยที่อยู่ MAC ของชุดหูฟังของคุณ FYI: ชื่อไฟล์ต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

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

  • อัปเดตที่อยู่ MAC ที่แสดงอยู่ในไฟล์ Ctrl-X เพื่อเสร็จสิ้น Y เพื่อบันทึก Enter เพื่อออก
  • จับคู่ Neurosky กับ Pi และอนุญาตคุณสมบัติการเชื่อมต่ออัตโนมัติ หากได้รับแจ้งให้ป้อน PIN ให้ใช้ "0000":

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

$ sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX ใช่

ติดตั้งไลบรารี Python Bluetooth:

sudo apt-get ติดตั้ง python-bluez

เรียกใช้สคริปต์ทดสอบไลบรารีเพื่อให้แน่ใจว่า Pi สามารถดูตัวอย่างสตรีมข้อมูลได้ คุณควรเห็นการสตรีมข้อมูล [ภาพด้านบน]:

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

ขั้นตอนที่ 4: เชื่อมต่อเว็บแคม USB พร้อมเปิด CV

เชื่อมต่อเว็บแคม USB พร้อมเปิด CV
เชื่อมต่อเว็บแคม USB พร้อมเปิด CV

1. ติดตั้ง OpenCV

จากเทอร์มินัล:

$ sudo apt-get ติดตั้ง libopencv-dev python-opencv

เมื่อเสร็จแล้ว ดำเนินการต่อ:

$ sudo apt-get -f ติดตั้ง

สำหรับการวัดที่ดี:

$ sudo apt-get ติดตั้ง libopencv-dev python-opencv

ทดสอบการติดตั้งโดยพยายามนำเข้าไลบรารี:

$ python

> นำเข้า cv2

2. ทดสอบ OpenCV ใน Python ด้วย USB Webcam

  • บนเดสก์ท็อปเปิด "IDLE" (อย่าเปิด IDLE3!)
  • จากเมนูไฟล์ ให้เลือกหน้าต่างใหม่ คัดลอกสคริปต์ Cv-Blur-Test ของเราลงในหน้าต่างใหม่และบันทึก มีสคริปต์อยู่ที่นี่:
  • จากเมนู Run เลือก Run Module (หรือกด F5) อาจใช้เวลาสองสามวินาทีในการดำเนินการ แต่คุณจะเห็นกรอบเล็กๆ ปรากฏขึ้นพร้อมกับฟีดเว็บแคมสดของคุณ และวิดีโอควรเบลอ ขอแสดงความยินดี OpenCV ได้รับการติดตั้งและทำงานกับเว็บแคมของคุณได้สำเร็จ [ภาพด้านบน]

ขั้นตอนที่ 5: เชื่อมต่อ Arduino

1. ดาวน์โหลด Arduino IDE

จากเทอร์มินัล:

sudo apt-get ติดตั้ง arduino

2. เชื่อมต่อ Arduino & Load Sketch

  • เสียบ Arduino เข้ากับ Pi ด้วยสาย A-B USB
  • จากเมนูเริ่มต้นของเดสก์ท็อปไปที่ Electronics และเปิด Arduino IDE คัดลอกภาพสเก็ตช์ arduino-serial-pi ของเราลงใน IDE [ลิงก์ด้านล่าง] นี่เป็นภาพร่างพื้นฐานที่จะย้ายเซอร์โวมอเตอร์ตามอินพุตที่ส่งผ่านอนุกรม เราจะส่งข้อมูลผ่านซีเรียลโดยอิงจากผลลัพธ์ของคลื่นสมอง โดยใช้ร่าง Python ในขั้นตอนสุดท้ายเมื่อเรารวมทุกอย่างเข้าด้วยกัน

Arduino-serial-pi ร่างออนไลน์ที่นี่:

ใน Arduino IDE ให้ไปที่เมนูเครื่องมือ เลือกพอร์ตอนุกรมแล้วเลือกพอร์ต Arduino ที่อยู่ในรายการ ซึ่งอาจคล้ายกับ /dev/ttyACM0 จดบันทึกพอร์ต

3. ปิดการใช้งาน Serial Console

ดาวน์โหลดและเรียกใช้สคริปต์เพื่อปิดใช้งานคอนโซลซีเรียลเพื่อให้การเชื่อมต่อแบบอนุกรม usb ทำงานได้อย่างราบรื่น:

$ wget

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

$ tar -xvzf alamode-setup.tar.gz

$ cd alamode-setup

$ sudo./setup

$ sudo รีบูต

ชี้แจง:

หากคุณกำลังใช้ B+ อาจมี I/O เพียงพอเพื่อรองรับเซอร์โว (ดูที่นี่เพื่อตั้งค่าและใช้ GPIO) อย่างไรก็ตาม ฉันสนใจที่จะเพิ่มส่วนประกอบเพิ่มเติมสำหรับการทดลองระหว่างสมองกับอิเล็กทรอนิกส์ในอนาคต ดังนั้นการตั้งค่าต้นแบบเริ่มต้นด้วย Arduino ช่วยให้มั่นใจได้ถึงความเป็นไปได้ทางอิเล็กทรอนิกส์ที่ฝ่าวงล้อม

ขั้นตอนที่ 6: นำทุกอย่างมารวมกัน

Image
Image

1. สคริปต์ Python สุดท้าย

ก่อนที่เราจะสามารถเพิ่มสคริปต์ python สุดท้ายลงในโฟลเดอร์ "python-mindwave-mobile" เราต้องเปลี่ยนการอนุญาตของโฟลเดอร์ จากเทอร์มินัล:

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

  • เปิด IDLE และเรียกใช้สคริปต์ Python สุดท้ายของเรา ออนไลน์ได้ที่นี่: https://github.com/PrivateHQ/biofeedback-cinema/ ตรวจสอบให้แน่ใจว่าอยู่ในโฟลเดอร์ python-mindwave-mobile FYI: คุณจะต้องอัปเดตสคริปต์ Python ของเราด้วยที่อยู่พอร์ต Arduino จริงของคุณ
  • เมื่อคุณเรียกใช้สคริปต์นี้ คุณควรเกิดขึ้นสามสิ่ง: 1) ระดับความสนใจของคุณจะแสดงอยู่ใน Python Shell 2) เฟรมเล็ก ๆ ปรากฏขึ้นซึ่งแสดงฟีดสดของเว็บแคมพร้อมความเบลอที่เปลี่ยนไปตามระดับความสนใจ 3) มอเตอร์ (s) ย้ายเมื่อระดับความสนใจถูกส่งไปยัง Arduino ผ่านซีเรียล [วิดีโอด้านบน]

ขั้นตอนที่ 7: การปรับปรุงและการพัฒนา

Raspberry Pi มีพลังในการประมวลผลที่จำกัด และไม่สามารถเรียกใช้ฟังก์ชัน OpenCV ได้อย่างราบรื่น นี่คือสิ่งที่ฉันจะพัฒนาและปรับปรุงต่อไป นอกจากนี้ ฉันวางแผนที่จะรวมพารามิเตอร์คลื่นสมองเพิ่มเติม (ความถี่ที่เกี่ยวข้องกับการกะพริบตา ฯลฯ) และฟังก์ชันของกล้อง (เช่น สี ความอิ่มตัว ความสว่าง ฯลฯ) ในการทำซ้ำในอนาคต

แนะนำ: