[Untiy3D]使用Arduino光敏電阻控制Unity

本篇介紹使用Arduino光敏電阻來控制Unity。簡單來說,Arduino當成輸入端;Unity當成輸出端,同樣是使用序列通訊SerialPort來當作溝通橋樑。

準備材料:

  1. Arduino板一塊
  2. 麵包板一塊
  3. 光敏電阻一顆
  4. 500k可變電阻一顆
  5. 跳線數條
  6. 色碼電阻220紅紅棕一顆

Step1:先將光敏電阻與可變電阻、色碼電阻接在麵包板上,電路圖如下:

5

Step2:打開Arduino IDE編寫如下程式碼:

4

a.設定類比腳位為0

b.設定變數sensorValue

c.設定公式:sensorValue = 0.5*sensorValue+0.5*analogRead(analogInPin)  將測到的數值做平均值計算

上述程式的概念是將光敏電阻測到的值顯示出來。先把光敏電阻測到的值利用可變電阻來調整敏感度後,再設立條件如果測到的值大於100,表示手沒有遮住光敏電阻,則傳一個為0的值;否則表示手遮住了光敏電阻,傳一個為11的值,程式碼新增如下:

7

新增之後請將前二行的Serial.println(sensorValue);和delay(100);註解掉。

Step3:打開Untiy,在Asset中建立一個C#腳本,命名為read,程式碼如下:

6

程式的概念是當讀取到Arduino傳來的值為0時,則方塊向右跑;若傳來的值為11時,方塊向左跑,在Unity中讀取Arduino傳來的值使用ReadLine()指令。

Step4:建立一個物件,並將腳本拖進物件後執行程式。執行後即可看到如下結果喔!

2 thoughts on “[Untiy3D]使用Arduino光敏電阻控制Unity

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *