機器人模擬軟體
 
 
     
  壓力感應器原理及偵測  
     
     
  ADC(Analog To Digital)的介紹  
     
    類比數位轉換    
               
      類比訊號經由IC的AI(Analog Input)腳位輸入至IC內,會經由ADC(Analog To Digital Converter)將類比訊號轉換為數位的數值,使程式能夠讀取,並且能夠用來在程式中進一步運算或是換算為需要的輸出。      
               
     

     
               
    類比數位轉換的例子    
               
      例如,讀取的溫度感測器的類比訊號後,在程式中轉換為實際溫度的數值,再從七段顯示器上顯示出來,我們才能直覺地知道溫度感測器偵測到的溫度是多少。      
               
           
     

 

       
    類比數位轉換的數值對應關係    
     

 

     
      輸入的類比信號的電壓,經過ADC轉換後的數值,將會是如下圖表示的對應關係。在程式中讀取到的AI數值,也就是ADC的轉換值。      
               
     
     
               
      下圖以一個二元一次直線方程式的函數圖形,來表示輸入的類比信號的電壓與ADC轉換後的數值的對應關係。      
             
     
     
               
      在程式中,我們可以將讀取到的ADC數值經過這個方程式的轉換,得到電壓的數值,由此程式中便能夠知道AI讀取的電壓。      
             
     

     
             
    薄膜式壓力感測器介紹    
               
     

     
             
      薄膜式壓力感測器受到壓力時,會改變兩個接點之間的電阻值,我們可以利用電阻的改變,以簡單的分壓電路來製造出電壓的變化,另IC能夠以AI的方式讀取到電壓的改變,藉此間接地偵測到壓力的變化。      
             
     

     
             
     

     
             
    壓力感測電路原理    
             
      薄膜式壓力感測器受到壓力時,會改變兩個接點之間的電阻值,在電路當中我們將薄膜式壓力感測器式同為一個可變電阻,將這個可變電阻安裝在分壓電路中,當可變電阻阻值變化時,就能夠製造出電壓的變化。      
             
      分壓電路的運作原理,可參考克西荷夫分壓定律。      
             
     

     
             
      下圖說明了薄膜式壓力感測器的電阻變化時,經過分壓電路產生的電壓變化情形      
      請注意電壓將會在一個變化區間之中,後續的程式中我們將會使用到變化區間的最大值與最小值。      
               
     

     
     

 

     
  Micro:Bit線路組裝  
             
    Micro:Bit偵測電路介紹    
             
      彈射座使用一組壓力感測器線材,將壓力感測器連接至Micro:Bit的AI腳位上。      
               
     

     
             
    Micro:Bit壓力感測線路圖    
             
     

     
     

 

     
    將裸露的電線部分捲成圓圈狀    
             
     

     
             
    將電線鎖接在Micro:Bit    
         
     

     
             
    組裝完成的壓力感測電路    
             
     

     
     

 

     
  使用方程式來編寫程式  
             
    使用方程式的概念    
               
      在彈射座的壓力偵測程式中,我們將使用到將偵測的ADC類比訊號值進行分級顯示的功能,我們將偵測有效區間值分為0~9級,以函數圖形表示如下:      
             
     

     
             
      此函數可以二元一次方程式來計算,我們可以將方程式修改如下:      
             
     

     
             
      依照這個方程式的計算,我們就可以代入adc的值換算為Grade分級值。      
             
      在程式的世界中,使用了許多許多各種方程式來解決各種問題,也發展了許多許多數學的方法或是應用數學的演算法,來簡化複雜的計算或是判斷,使其最終能夠以程式的方式進行運算並且得到我們需要的結果,數學及方程式在程式的世界中佔有極為重要且不可取代的角色。      
             
    使用方程式的優點    
             
      1. 簡化計算的程式碼      
      參考下面的對照範例,使用方程式判斷分級僅需要一行程式碼,而使用if-else判斷分級則需要十數行程式碼。      
             
      2. 能夠快速改變設定值      
      使用方程式判斷分級能夠將必要的參數變成變數,成為變數的好處在於能夠快速地修改關鍵的變數,更進一步能夠以使用者介面或通訊修改參數,使程式或是裝置具備更大的使用彈性。      
             
      3. 容易進行程式的修改,並且減少程式修改時的錯誤      
      參考下面的對照範例,使用方程式判斷分級僅需要修改兩個變數,而使用if-else判斷分級則需要修改十行程式碼中的數值,容易造成修改時的錯誤。      
             
      4. 減少處理器運算的次數      
      能夠增快程式執行的時間,或能夠使用成本較低的處理器進行運算,能夠節省成本。      
             
      5. 減少記憶體的使用量      
      能夠使用成本較低的處理器進行運算,能夠節省成本。      
             
     

     
     

 

     
  平均值濾波器  
             
    甚麼是濾波器    
             
      實務上,類比訊號都會因為電壓的穩定度不足,造成漣波,還有各種外界的干擾造成許多不穩定的狀況,一般稱之為雜訊。      
      由於漣波及雜訊的問題,造成讀取到的ADC數值不穩定,數值以很快的速度跳動,最終使顯示出來的值因為不停的改變而難以被人們辨認,通常就以濾波器的方法來解決這些漣波及雜訊造成的不穩定狀況,使最終顯示出來的結果能夠容易被人們辨認。      
             
     

     
             
      濾波器有以電路,如電容、各種濾波電路的方式製成,也有以程式來製作一個濾波器演算法的方式,這裡將介紹一種應用最廣泛、也最簡單的濾波器演算法-平均值濾波器。      
             
    平均值濾波器介紹    
      平均值濾波器也常被稱為算數平均濾波法,方法為連續取N個ADC取樣值進行算術平均運算。      
             
     

     
             
    平均值濾波器的特性    
             
      平均值濾波器的特性      
             
      N值較大時,計算出來的結果值平滑度較高,但靈敏度較低。      
      N值較小時:計算出來的結果值平滑度較低,但靈敏度較高。      
             
      所以根據我們需求的平滑度及靈敏度,我們需要在程式中設定好N值大小,讓輸出的反應較為適當。      
             
    平均值濾波器的優缺點比較:    
             
     
優點 缺點
  1. 適用於對一般為隨機干擾的信號進行濾波。
  2. 具有一個平均值,信號在某一數值範圍附近上下波動,不因特殊狀況出現突波。
  3. 調整參數至適當反應的狀態相當容易。
  4. 程式碼簡單,容易編寫。
  1. 對於測量速度較慢、或要求數據計算速度較快的實時控制較不適用。
  2. 需要較大的記憶體(RAM),在成本極精簡的MPU/MCU上無法使用。
     
     

 

     
  程式實作  
             
    壓力偵測測試程式    
      範例程式 : Program \pressure_test.py      
             
      1. 在Button A按下的動作時,讀取壓力偵測的ADC類比信號值,並且使用LED矩陣顯示ADC類比信號值。      
      2. 以此程式測試確認壓力偵測實際使用的ADC類比信號值區間,讓後續的程式能夠使用適當的偵測區間進行分級。      
      3. 沒有壓力時,按下Button A,紀錄顯示的ADC類比信號值為最小區間值。      
      4. 最大壓力力時,按下Button A,紀錄顯示的ADC類比信號值為最大區間值。      
             
    Level-1程式說明    
      範例程式 : Program\level_1.py      
             
      1. 將壓力偵測的ADC類比信號值,分為0~9等級,以方便LED矩陣顯示即時的壓力變化      
      2. 將max_adc變數設為最大區間值。      
      3. 將min_adc變數設為最小區間值。      
      4. 壓力偵測的ADC類比信號值小於低於最小的ADC區間值時,顯示悲傷圖形。      
      5. 壓力偵測的ADC類比信號值大於等於低於最大的ADC區間值時,顯示笑臉圖形。      
      6. 顯示結束時,暫停200ms以降低顯示速度,以利讀取分級值。      
             
    Level-2程式說明    
      範例程式 : Program\level_2.py      
             
      1. 改進壓力偵測的ADC類比信號值分級的程式,以二元一次直線方程式計算的方式計算分級值。      
             
    Level-3程式說明    
      範例程式 : Program\level_3.py      
             
      1. 使用平均值濾波器改善ADC類比信號值跳動,導致使用者不易確定目前壓力級數的問題,以改善使用者的操作經驗。      
      2. 取消暫停200ms之動作,觀察顯示分級值的反應速度及平滑效果,並調整緩衝區取樣的總數至最佳效果。      
             
             
               
               
               
     
     
     
     
     
     
     
     
     
     
   

威宇嵌入式科技股份有限公司

新北市三峽區愛國路198號1樓

電話 : 02-26737160 傳真 : 02-26738712

 

 

CopyRight Cat Embedded Vision System Co.,Ltd. ,All rights reserved.

 
 

Python MicroBit 教學 課程 機器人程式設計 演算法 校園營隊 社團活動 編程DIY 教學資源 自學資源 機構組裝 自動控制 電子 電機 資工 機械 108課綱 自主學習 多元學習 學習履歷 特殊選材 大學招生 大學入學 前進大學 前進大學資訊站 IsaacSpace 機器人模擬器