設計一個封閉環境內的眼刺激系統:
一個人完整的視角
人在水平面的視野,單眼視野界限為標準視線每側94°~104°。雙眼視區大約在每側62°以內的區域,在這個區域里還包括辨別字的視線角度為10°~20°,辨別字母的視線角度為5°~30°,在各自的視線范圍以外,字和字母趨于消失。對于特定的顏色的辨別,視線角度為30°~60°。
垂直平面的視野是:假定標準視線是水平的,定為0°,則最大視區為視平線以上50°和視平線以下70°。顏色辨別界限為視平線以上30°,視平線以下40°,實際上人的自然視線是低于標準視線的,在一般狀態下,站立時自然視線低于水平線10°,坐著時自然視線低于水平視線15°。
眼垂直視野可以看到標準視線上約50°、下約70°的范圍,水平視野可以左右104°的范圍。人在眼睛不轉動的情況下視野是十分有限的,能夠集中注意力水平視野是40°,垂直視野15°。
我再補充一個縱深視野:
1、0.2-11m之間,我們能獲得一個“真實”3D的視野,這也是我們的舒適景深;
2、11-20m間,我們依然能夠通過雙眼在視網膜上成像的差別,獲得一個“邊緣”的3D視野;
3、而20米之外的事物,我們只能得到一個“扁平”的2D視野,因為景象通過雙眼的成像差別太小,無法分辨。
其實這說的更沒說一樣
主要刺激光源(3000-3500K):
將主要刺激光源安置在眼罩內部,以確保照明均勻且集中在用戶的視野中。
盡量避免直接光照用戶的眼睛,可以考慮使用漫射器材或將光源隱藏在眼罩的設計中,以防止強烈光線對用戶眼睛的刺激。
背景光源(850納米):
背景光源可以被用來模擬夜視或者在VR場景中提供某種環境信息。
與主光源相比,背景光源的亮度可以相對較低,以確保不會對用戶體驗造成干擾。
考慮采用柔和的背景照明,以避免過于刺眼或不自然的效果。
燈光布局和均勻性:
確保燈光布局均勻,以避免在眼罩內產生不均勻的亮度或陰影。
考慮使用多個光源來增加照明的均勻性,特別是在眼罩內覆蓋范圍較大的情況下。
對背景光源和刺激光源進行不同的光學評價可能是基于實驗、應用或觀察需求而定的。以下是一些常見的因素,這些因素可能導致對它們的光學評價存在差異:
感知效果:
刺激光源通常是實驗中要引起注意的主要光源,其顏色、強度和變化可能對實驗結果產生直接影響。因此,對刺激光源的評價可能更關注其在實驗中產生的感知效果。
背景光源可能更側重于提供一種環境、背景或輔助信息,其顏色和亮度可能被調整以創造某種氛圍,而不是成為實驗的主要焦點。
顏色溫度:
刺激光源的顏色溫度可能會更直接地影響觀察者的認知和情緒。在許多實驗和應用中,顏色的選擇對于調查不同條件下的感知和行為反應非常重要。
背景光源的顏色溫度則可能更多地取決于設計的整體氛圍和實驗的目的。它通常被設計成輔助刺激光源,以創造更逼真的環境。
亮度和對比度:
刺激光源可能需要更高的亮度和對比度,以確保在實驗中引起足夠的關注和反應。
背景光源通常會以相對較低的亮度出現,以避免干擾實驗者或觀察者對刺激光源的關注。
3000-3500K,表示這個 LED 燈泡的光的色溫在3000到3500開爾文之間。這對應于暖白色光,適合用于舒適的環境照明。 850納米(NM),表示這個光源的波長為850納米。這是紅外光譜中的近紅外范圍。
刺激光源和背景光源對瞳孔測量有一定的影響,這取決于它們的亮度、顏色和變化。
刺激光源的影響:
亮度:刺激光源的高亮度可能導致瞳孔收縮,尤其是在較暗的環境中。這可能會對瞳孔測量的基線產生影響。
顏色:不同顏色的光源可能會導致瞳孔有不同的反應。一些顏色可能引起更強烈或更迅速的瞳孔反應。
背景光源的影響:
亮度:背景光源的高亮度可能導致瞳孔收縮,尤其是在相對較暗的環境中。背景光源的亮度水平與刺激光源的亮度之間的對比可能影響瞳孔測量的靈敏性。
顏色:背景光源的顏色可能影響瞳孔的基礎大小和對刺激光源顏色變化的響應。一些顏色可能導致瞳孔對刺激光源的反應更為顯著。
光源變化的影響:
變化頻率:如果刺激光源或背景光源有頻繁的變化(例如閃爍),這可能導致瞳孔的相應變化。這在進行某些類型的瞳孔反應實驗時需要特別注意。
持續性變化:長時間的光源變化可能導致瞳孔適應,使其在測量過程中產生動態的響應。
里面控制的參數就是亮度和閃爍了,接下來就是寫一些代碼:
const int warmWhiteLED = 9; // 連接暖白LED的引腳 const int infraredLED = 10; // 連接紅外LED的引腳 void setup() { pinMode(warmWhiteLED, OUTPUT); pinMode(infraredLED, OUTPUT); } void loop() { // 控制暖白LED analogWrite(warmWhiteLED, 128); // 設置PWM值來調整亮度 delay(1000); // 延時1秒 // 控制紅外LED digitalWrite(infraredLED, HIGH); // 開啟LED delay(500); // 延時0.5秒 digitalWrite(infraredLED, LOW); // 關閉LED delay(500); // 延時0.5秒 }
最簡單的Arduino
const int warmWhiteLED = 9; // 連接暖白LED的引腳 const int infraredLED = 10; // 連接紅外LED的引腳 void setup() { pinMode(warmWhiteLED, OUTPUT); pinMode(infraredLED, OUTPUT); } void loop() { // 控制暖白LED的亮度 for (int brightness = 0; brightness <= 255; brightness++) { analogWrite(warmWhiteLED, brightness); // 設置PWM值來調整亮度 delay(10); // 延時10毫秒,可調整過渡的速度 } delay(1000); // 延時1秒 // 控制紅外LED的亮度和閃爍 for (int brightness = 0; brightness <= 255; brightness++) { analogWrite(infraredLED, brightness); // 設置PWM值來調整亮度 delay(10); // 延時10毫秒,可調整過渡的速度 } delay(1000); // 延時1秒 for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(infraredLED, brightness); // 設置PWM值來調整亮度 delay(10); // 延時10毫秒,可調整過渡的速度 } delay(1000); // 延時1秒 }
使用for循環變得更絲滑一些。
這里就是想著也可以提前預設一些刺激的規則,在樹莓派上面可以這樣寫:
import RPi.GPIO as GPIO import time # 定義LED引腳 warm_white_led_pin = 17 # 適應您的硬件設置 infrared_led_pin = 18 # 適應您的硬件設置 # 初始化GPIO設置 GPIO.setmode(GPIO.BCM) GPIO.setup(warm_white_led_pin, GPIO.OUT) GPIO.setup(infrared_led_pin, GPIO.OUT) # 定義LED控制函數 def set_led_brightness(pin, brightness): # 控制LED亮度,brightness范圍0-100 pwm = GPIO.PWM(pin, 100) # 頻率設置為100Hz pwm.start(brightness) def blink_led(pin, frequency, duration): # 控制LED閃爍,frequency為頻率,duration為持續時間 pwm = GPIO.PWM(pin, frequency) pwm.start(50) # 亮度設置為50% time.sleep(duration) pwm.stop() # 定義預先設計好的刺激規則 def apply_stimulus_rule(rule): if rule == "rule1": set_led_brightness(warm_white_led_pin, 50) blink_led(infrared_led_pin, 2, 5) elif rule == "rule2": set_led_brightness(warm_white_led_pin, 75) blink_led(infrared_led_pin, 5, 7) # 添加其他規則... # 測試 apply_stimulus_rule("rule1") # 清理GPIO設置 GPIO.cleanup()
可能對于所以樹莓派控制這樣簡單的功能性價比不高,可以在MCU上面實現:
import machine import time # 定義LED引腳 warm_white_led_pin = 19 # 適應您的硬件設置 infrared_led_pin = 18 # 適應您的硬件設置 # 初始化LED引腳 warm_white_led = machine.PWM(machine.Pin(warm_white_led_pin), freq=1000, duty=0) infrared_led = machine.PWM(machine.Pin(infrared_led_pin), freq=1000, duty=0) # 定義LED控制函數 def set_led_brightness(led, brightness): # 控制LED亮度,brightness范圍0-1023 led.duty(brightness) def blink_led(led, frequency, duration): # 控制LED閃爍,frequency為頻率,duration為持續時間 led.freq(frequency) time.sleep(duration) led.freq(0) # 定義預先設計好的刺激規則 def apply_stimulus_rule(rule): if rule == "rule1": set_led_brightness(warm_white_led, 512) blink_led(infrared_led, 2, 5) elif rule == "rule2": set_led_brightness(warm_white_led, 768) blink_led(infrared_led, 5, 7) # 添加其他規則... # 測試 apply_stimulus_rule("rule1") # 清理 warm_white_led.deinit() infrared_led.deinit()
那么也可以加入一些遠程控制的功能,使用串口:
import machine import time import ustruct # 定義LED引腳 warm_white_led_pin = 19 # 適應您的硬件設置 infrared_led_pin = 18 # 適應您的硬件設置 # 初始化LED引腳 warm_white_led = machine.PWM(machine.Pin(warm_white_led_pin), freq=1000, duty=0) infrared_led = machine.PWM(machine.Pin(infrared_led_pin), freq=1000, duty=0) # 初始化串口 uart = machine.UART(0, baudrate=115200, tx=17, rx=16) # 適應您的硬件設置 # 定義LED控制函數 def set_led_brightness(led, brightness): # 控制LED亮度,brightness范圍0-1023 led.duty(brightness) def blink_led(led, frequency, duration): # 控制LED閃爍,frequency為頻率,duration為持續時間 led.freq(frequency) time.sleep(duration) led.freq(0) # 定義通過串口控制LED的函數 def control_led_via_serial(): while True: if uart.any(): data = uart.read(4) # 期望接收4字節數據 if data: brightness, frequency = ustruct.unpack('hh', data) set_led_brightness(warm_white_led, brightness) blink_led(infrared_led, frequency, 1) # 1秒的閃爍示例 # 啟動串口控制 control_led_via_serial()
過串口接收兩個16位整數,分別代表LED的亮度和頻率。
這兩個值使用ustruct.unpack解包。可以通過串口發送相應的二進制數據來控制LED。
import struct brightness = 512 frequency = 2 data = struct.pack('hh', brightness, frequency) uart.write(data)
上位機這里可以這樣寫,這篇文章寫的很倉促,很多功能沒有考慮到,如果有需要的或者更加專業的建議可以告訴我。
審核編輯:湯梓紅
-
光源
+關注
關注
3文章
731瀏覽量
68439 -
代碼
+關注
關注
30文章
4886瀏覽量
70241 -
視網膜
+關注
關注
0文章
34瀏覽量
12907 -
vr
+關注
關注
34文章
9666瀏覽量
152062
原文標題:設計一套眼內刺激系統.上-光源
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Rainbow NB-IoT測試儀在封閉環境也能信號檢測
你是我的眼:環境光傳感器
開環步進電機與閉環步進電機系統對比分析哪一個更好?
基于C8051F020的密閉環境溫度恒溫控制系統設計

加州大學研發出一種閉環神經刺激器 可自動檢測和預防癲癇發作
什么是封閉煤場環境安全監控系統?

封閉式園區人員定位管理系統的功能和作用
研發閉環經顱超聲神經刺激——變形皮質粘附傳感器

評論