2012年5月12日 星期六

壓在Force Sensor上玩Arduino

寫在前頭

你會從這篇文章看到:
  • 使用分壓電路規則,讀取類比數值來計算電壓。
  • 如何從Force Sensor取得電阻值,並轉換成壓力數值。

準備材料

  1. Arduino Board * 1 
  2. Breadboard * 1 
  3. 10K resistor * 1 
  4. Hookup wires * 1 
  5. Force Sensor (FlexiForce Sensors A201 100lb) * 1

Force Sensor

FlexiForce屬於以壓阻效應式壓力感測器,以A201(100lb)為測試對象。在沒有壓力的情況下,其電阻值大於5MΩ,隨著壓力增加,電阻值開始下降。因此,藉由不同壓力所產生的電阻值,來計算其壓力值,也能結合使用分壓電路,轉換成電壓變化,便可得到電壓與壓力的關係圖。

分壓電路


根據KVL(Kirchhoff’s Voltage Law)可以從串聯電阻中,計算出每個電阻兩端之電壓。

Vout = Vtoal * (Rfixed/(Rfix+Rsensor))
 Rsensor =( Rfixed*(Vtotal – Vout)) / Vout

壓力與電阻(電導)曲線圖

從Conductance可以計算出這條直線的方程式Y=aX+b:
先抓兩點求斜率,再求方程式。
X1=20    Y1=0.004
X2=120    Y2=0.018
a=(0.018-0.004)/(120-20)=0.00014
b=0.004-(0.00014*20)=0.0012
Y=0.00014X+0.0012
已知Conductance後,求出Force值的公式。
X=(Y-0.0012)/0.00014

麵包板電路配置圖

電路概要圖

FSR V.1

把類比數值經過一道道的計算,轉換成壓力單位。
Arduino

FSR V.2

把Arduino抓到的數值,透過Serial方式傳到Processing程式,利用Processing的互動特性,將這些數值視覺化,方便觀察數字變化關係。
Arduino

Processing

總結

剛開始對基本電學完全不瞭解,只知道Google找類似資料,並依樣畫葫蘆照做一次,其觀念不是很清楚,在這樣的學習情況下,確實會讓人越做越無知,故決定拾起基本電學課本,重新奠定基礎,經過前面幾章的內容,漸漸明白出電阻為何要這樣擺放,又該放多少歐姆的電阻值,以及電流及電壓等概念。另外,Processing程式語言也引起極大的興趣,有助於將冷冰冰地資料轉換成互動式圖形,是一套即簡單又方便的工具。

最後,從這次小小的實作過程中,真是收獲良多,但有些部份仍需改進。一、轉換過程精準值,從Analog Pin取得數值,求得出Force值,其計算步驟之精確度,還需要微調並驗證。二、每筆資料取得之間會延遲一秒,造成Force Sensor與Arduino之反應時間會產生不同步的現象。三、此測試中,固定電阻為10KΩ,應試著增加電阻值,使Analog reading不至於過小。

5 則留言:

  1. 請問一下版大.
    我們的實驗的程式碼 搭配兩個 flexiforce a201 -100
    可是當感測時 有時候 所印出來的 數值會有負值這是為何!?

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除
  4. 電導不是1 / R可是這張圖表怎麼會算成R的單位是k-ohms例如400k的電導應該是1/400000但這張表是1/400
    這是為啥???是我理解錯了嗎!!還是哪裡我不懂!!有人知道嗎????

    回覆刪除