一、任務概述
在進行行爲範式任務時,需要對任務事件進行編碼並實時打標記錄。在二維的任務中是通過MonkeyLogic系統實現,但是三維任務中沒有對應的系統。我們搭建了一套可以用於進行電生理打標的AR信號控制系統。
二、原理概述
AR信號控制系統基於STM32單片機開發,配合DB37電生理編碼接口,串口數據線,BlackRock設備,以及上位機端的Unity3d實現。上位機端將編碼信號通過串口線傳輸給單片機,單片機接收信號解碼後將信號以並口傳輸方式,通過DB37接頭,向BlackRock傳輸信號完成。
三、任務難點
1、STM32單片機需要同時處理髮送和接收任務時,出現打標異常,即:值和頻率均不對。
設置接收中斷爲最高優先級,可以解決頻率上的問題。值的問題,還需要將除DStrobe端,16位數據端外,其他所有的接頭都需要接地。再則是,簡化接收時的硬件代碼。
2、僅打標一個編碼信號時,打標不成功。當大於1個時,纔出現打標信號。
這個問題目前無解,參考二維繫統的設計代碼,仍然無法解決。因此,我們引入了一個零編碼,只要是出現單個編碼信號時,在其後多加一個零。最後在進行數據處理時,去掉該信號即可。
3、無線Wifi延遲問題,導致打標頻率異常。
經過網絡測試,即使在自建局域網內,任然無法保證數據的傳輸的穩定性,偶爾出現的幾十ms延時,系統無法接受。因此,均採用了串口有線傳輸的方式。
4、DB37電生理接口的端口選擇。
DB37中需要有18位接口對接單片機的IO口,鑑於不是所有的IO均可以作爲普通IO輸出口。因此,在進行硬件設計前,需要事先預留端口,並且採用端口很多的單片機。因爲,我們的單片機還外接了很多的其他硬件,佔用了端口,STM32的108個端口也顯得不夠用。