[教學] Raspberry Pi 搭配力量感測器(force sensing resistor)

文章推薦指數: 80 %
投票人數:10人

原計畫的應用要搭配可感測壓力的sensor,偵測使用者施壓的力量大小,但過程中遇到許多困難,尤其是類比訊號的sensor 適合Arduino 用,但接上Raspbery ... 成立PCManFacebook專頁 之前常被許多網友要求加Facebook,但是數量過多難以管理,大部分也都不認識,無法一一加入,所以成立PCManFB專頁。

未來長篇的文章還是會放Blog上,而平常的小動態會放在FB。

另外,現在也可以使用http://blog.pcman.im/來連到本網站 2015年12月19日星期六 [教學]RaspberryPi搭配力量感測器(forcesensingresistor) 前言 RaspberryPi是像名片一樣大小的低價電腦,搭配各種外接裝置,能做許多應用。

最近對這類開發板有興趣,於是我也買了一片RaspberryPi2來學習使用。

原計畫的應用要搭配可感測壓力的sensor,偵測使用者施壓的力量大小,但過程中遇到許多困難,尤其是類比訊號的sensor適合Arduino用,但接上RaspberyPi無法直接使用。

基於這方面的中文文件較少,逐一摸索克服之後,決定寫一篇教學,分享給有同樣需要的朋友,可以少走一些冤枉路。

本文使用的硬體裝置 RaspberryPi2開發板 類比-數位轉換器(ADC):MicrochipMCP3008  力量感測(FSR):InterlinkFSR406 麵包板及各種杜邦跳線 MCP3008 FSR406 詳細實驗過程 類比-數位轉換器(ADC,analoguetodigitalconverter) 坊間買得到的sensors,部份是輸出類比訊號(例如linearhalleffectsensor、溫度感測...等等),而RaspberryPi無法讀取類比訊號(Arduino可以),要額外加裝一枚ADC 晶片,才能讀取。

但這是值得的投資,可以在不用買Arduino轉板的情況下,讓RPi可以玩Arduino的類比sensors。

推薦大家用MicrochipMCP3008,因為外國網站的教學幾乎都是這款,資料好找。

缺點是電子商場不常賣。

拍賣網站可取得,但推薦RScomponents網站訂購,便宜不少還免運費(缺點是一次一定要買兩顆以上,到貨要一週) MCP3008是10-bit的ADC,可以將輸入類比訊號轉成0-1024之間的數值,透過SPI界面(不是一般GPIO)讓RaspberryPi讀取 連接MCP3008到RPi有兩篇不錯的教學可以參考(請搭配下列注意事項): https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi/overview http://atceiling.blogspot.tw/2014/04/raspberry-pi-mcp3008.html#.VnWKzHYiLmU 有幾點要特別注意的 這兩篇適用舊款RaspberryPi一代,若是RPi2,照著前述教學文件接,是完全不會動的,因為GPIO腳位改了。

請照新的RPi2腳位圖連接,接法相同,但所有SPI相關的pin位置幾乎都不同。

Rasbian系統預設沒開SPI界面,需要手動開啟(可用raspi-config工具,在Advanced選項裡面開啟SPI) 若SPI無法運作,可用spi-test程式檢測。

需要注意的是,檢測時要用一條母-母跳線,把SPIOMOSI和SPIOMISO這兩個pin直接對接起來。

這個動作很容易漏掉,會造成測試失敗。

(原理是直接把SPI輸出loopback回輸入,也就是你送出去的資料會繞一圈送回來又送給自己,所以理論上只要SPI有運作,一定收得到資料,故可用來檢測) 力量感測器(forcesensingresistor) 感測的是「力量」而非「壓力」,偵測範圍約10g-10Kg,在sensor上有效區域施力都能偵測,但精度不佳,且無法判斷施力點位置。

主要的生產商是Interlink,型號從FSR400-408有多種尺寸,但一般店面少見大尺寸,款式很少,建議網拍購買較便宜。

(本文使用FSR406) 需要特別注意的,是FSR406的連接方式。

FSR尾端的接頭"理論上"直接插上麵包板即可用,但這樣使用容易折彎連接頭造成FSR損壞或訊號干擾,建議還是用連接線。

不幸的是,一般接sensor和麵包板用的杜邦2.54mm跳線母頭,無法接上這款FSR。

經實驗可使用JST(XH-style)2.5mm的母頭代替,可密合得很好。

建議購買這種線,然後在另外一端「自行壓製」杜邦2.54mm的公頭,就可以製作出能從麵包板轉接到FSR406的延長線了。

XH-style的JST2.5mm線,以及其塑膠頭 FSR406的尾端接不上一般杜邦2.54跳線母頭,我問了三間電子商場,都說沒這種接頭,建議我直接焊接。

我不死心,把每一種母頭都拿起來試接,發現JST2.5mm的正好可以密合,如圖,接得很好。

自行購買的杜邦2.54公端子和塑膠套,準備壓在JST2.5線的另外一端 把JST2.5mm的線材,另外一端自行壓上杜邦2.54端子,就成了特製的延長線了,可以順利插入到麵包板上。

理論上壓製線材,有專用的端子鉗,但是售價太過昂貴,我又很少用。

所以最後是使用尖嘴鉗和蠻力土法煉鋼。

一樣可以壓緊,也能用,但是形狀較為醜陋,而且我壓壞了一個... FSR連接方式  連接FSR可以參考這篇教學,照著接即可,只有幾點要注意 原教學是把電壓變化的類比訊號,接到Arduino的訊號輸入,而我們是要接給ADC讀取轉成數位訊號,所以是要改接到MCP3008的channel(0-8都可以,程式內可以控制要讀哪個channel) FSR只是一個電阻,本身不發出訊號,但它受到壓力電阻會變小。

所以施加電壓,通過的電流大小,就可以反映出所受到的力量(但不是線性變化)。

不過我們不能直接讀電流大小,所以需要額外串聯一個電阻Rm做voltagedividing,來讀取Rm兩端的電壓,而這個電壓就是我們給ADCchannel的訊號輸入。

(原理是:當FSR受到越大壓力,電阻變小,則通過的電流越大,此時串聯的電阻Rm兩端就會有較高的電壓V=I*Rm所以我們讀取ADC,就會讀到比較大的數值了) 施加外力大小,和FSR的電阻或可以量到的電壓都不是線性關係,請見官方文件有曲線圖 串接的電阻不同,會使得能夠測量到的數值範圍改變,雖然教學文件建議10K歐姆,不一定適合每種應用,需要實驗。

我最後連接好的結果長這樣,麵包板左下角超出畫面外的紅線和黑線,是連接到FSR406的特製XH2.5mm跳線。

麵包板中央的黑色晶片是MCP3008ADC 如果還需要FSR更完整詳細的資訊,可參考這篇IntegrationGuide 程式範例 #!/usr/bin/envpython3 importtime importspidev #ReadSPIdatafromMCP3008,Channelmustbeaninteger0-7 defReadADC(spi,ch):   if((ch>7)or(ch<0)):     return-1   adc=spi.xfer2([1,(8+ch)<<4,0])   data=((adc[1]&3)<<8)+adc[2]   returndata if__name__=="__main__": spi=spidev.SpiDev() spi.open(0,0) try: whileTrue: value=ReadADC(spi,0) print("ADC",value,float(value)*100/1024,"%") time.sleep(0.1) exceptKeyboardInterrupt: pass spi.close() 省錢小撇步 使用麵包板時,經常需要用跳線連接。

市售跳線盒很方便,有多種長度彩色的短線可用。

或也可用杜邦公-公跳線取代,但跳線盒一個通常要80-150元不等,而杜邦跳線現成的一包十條約65元,長度通常太長,很難使用。

推薦可以買單芯線替代,用剪刀就能輕易剪出所需長度,再兩端剝皮,可做麵包板跳線,三公尺才約台幣10元,非常划算又好用。

(剝皮用剪刀輕輕的就可以剝,小心一些並不需要專用鉗子) 把公-公跳線都換成單芯線,清爽很多,才花不到十元。

缺點是我只買了一種顏色。

後來我把接地的那幾條用奇異筆塗成黑色,就不會搞錯了...=.= 其實應該要買白色的,這樣需要什麼顏色的線就自己塗色就好了XDD 以上是本次實驗的經驗分享,希望對有在玩RPi+FSR的朋友有幫助。

張貼者: PCMan 於 上午9:21 以電子郵件傳送這篇文章BlogThis!分享至Twitter分享至Facebook分享到Pinterest 2則留言: 美國黑金 提到... 多謝!.... 2016年11月1日晚上7:46 Blogger 提到... 比特币的投资价值得到全球的肯定比特币正在改变资金的存储、使用和接收方式,作为世界上第一个开源的支付网络,它正在推动金融和商业应用的创新。

2018年11月30日凌晨3:37 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) 訂閱 發表文章 Atom 發表文章 留言 Atom 留言 關於我自己 PCMan 檢視我的完整簡介 個人網頁 Facebook專頁 PCMan相簿 PCMan個人網頁 標籤 心情日記 (51) 自由軟體 (29) 我的吉他 (11) 技術文件 (16) 系統開發日誌 (16) 重症醫學 (1) 敗血症 (1) 遊記 (6) 電腦資訊 (30) 演講 (3) 醫院生活 (38) 醫學知識 (8) 雜七雜八 (9) 藝術創作 (1) Linux應用 (23) 網誌存檔 ►  2017 (8) ►  09/17-09/24 (2) ►  09/10-09/17 (1) ►  08/27-09/03 (2) ►  08/20-08/27 (1) ►  06/11-06/18 (1) ►  05/14-05/21 (1) ►  2016 (15) ►  12/11-12/18 (1) ►  11/27-12/04 (1) ►  08/21-08/28 (1) ►  08/07-08/14 (1) ►  07/10-07/17 (1) ►  06/26-07/03 (1) ►  05/15-05/22 (1) ►  04/10-04/17 (1) ►  03/06-03/13 (1) ►  02/28-03/06 (1) ►  02/21-02/28 (1) ►  02/07-02/14 (3) ►  01/31-02/07 (1) ▼  2015 (7) ▼  12/13-12/20 (1) [教學]RaspberryPi搭配力量感測器(forcesensingresistor) ►  09/20-09/27 (2) ►  09/06-09/13 (1) ►  08/23-08/30 (1) ►  08/09-08/16 (1) ►  07/26-08/02 (1) ►  2014 (2) ►  05/25-06/01 (1) ►  01/12-01/19 (1) ►  2013 (6) ►  09/22-09/29 (3) ►  09/08-09/15 (2) ►  08/04-08/11 (1) ►  2012 (4) ►  11/04-11/11 (1) ►  09/23-09/30 (1) ►  08/12-08/19 (1) ►  02/19-02/26 (1) ►  2011 (14) ►  09/04-09/11 (2) ►  08/28-09/04 (1) ►  08/21-08/28 (1) ►  07/24-07/31 (1) ►  06/26-07/03 (1) ►  05/29-06/05 (1) ►  04/17-04/24 (1) ►  03/13-03/20 (1) ►  03/06-03/13 (1) ►  01/23-01/30 (2) ►  01/16-01/23 (1) ►  01/09-01/16 (1) ►  2010 (10) ►  12/26-01/02 (2) ►  10/31-11/07 (1) ►  09/26-10/03 (2) ►  09/19-09/26 (1) ►  07/04-07/11 (2) ►  05/09-05/16 (1) ►  04/25-05/02 (1) ►  2009 (26) ►  12/13-12/20 (1) ►  11/22-11/29 (2) ►  10/25-11/01 (1) ►  09/27-10/04 (1) ►  09/20-09/27 (2) ►  08/16-08/23 (2) ►  08/02-08/09 (1) ►  07/05-07/12 (1) ►  06/28-07/05 (2) ►  06/14-06/21 (2) ►  05/31-06/07 (1) ►  05/17-05/24 (1) ►  05/10-05/17 (1) ►  05/03-05/10 (1) ►  04/05-04/12 (1) ►  03/15-03/22 (2) ►  01/18-01/25 (3) ►  01/11-01/18 (1) ►  2008 (39) ►  12/28-01/04 (2) ►  12/14-12/21 (1) ►  11/30-12/07 (1) ►  11/23-11/30 (3) ►  11/16-11/23 (2) ►  11/09-11/16 (2) ►  11/02-11/09 (2) ►  10/12-10/19 (1) ►  09/21-09/28 (1) ►  08/31-09/07 (2) ►  08/17-08/24 (2) ►  08/10-08/17 (1) ►  08/03-08/10 (1) ►  07/27-08/03 (1) ►  06/15-06/22 (2) ►  06/08-06/15 (1) ►  05/18-05/25 (1) ►  05/11-05/18 (1) ►  04/27-05/04 (3) ►  03/02-03/09 (1) ►  02/03-02/10 (2) ►  01/20-01/27 (2) ►  01/06-01/13 (4) ►  2007 (22) ►  12/23-12/30 (3) ►  12/09-12/16 (1) ►  12/02-12/09 (4) ►  11/25-12/02 (3) ►  11/18-11/25 (1) ►  11/11-11/18 (8) ►  11/04-11/11 (2) ►  2006 (1) ►  04/02-04/09 (1) 相關網站 LXDEProject OpenPCManProject 追蹤者 搜尋此網誌 熱門文章 窮小孩玩吉他-自製窮人的移調夾(Capo) 我說....窮小孩也是可以玩樂器的....買不起Capo,還可以自己動手做!所有材料可以在便當店以及小吃攤取得:P橡皮筋+一支筷子=窮人的移調夾有圖有真相:我其實有一支便宜的Capo,可是放在家忘了帶到宿舍囧rz今天臨時想試用,突然靈機一... 值班醫師的夢魘-缺血性腸壞死 對於資深的醫師來說,這個名字並不陌生,但對於經驗尚不夠的住院醫師來說,急性的缺血性腸道疾病(ischemicbowel),絕對是夜間值班時的一大夢魘。

這是供應腸道的血液循環發生問題,導致腸子缺血、壞死,接著合併嚴重感染,亦會造成臟器穿孔的致命疾病,可以由血栓、腸阻塞、或原因造... [分享]學習正確醫學英文發音的好工具 國內的醫學教育以英文為主,歷年多採用美國之教材,但國內之大多數教師及臨床醫師,對於醫學英文的正確發音並不了解,加上老一輩的師長,常是以自行想像的"台語+日語"發音來教導學生,於是以訛傳訛,有樣學樣的結果,知道這些醫學英文字正確發音的人,就越來越少了。

為了解... 基本的PE真的很重要 我們內科沒什麼過人之處,就是那張嘴特別會掰XD而每個內科人都一定朗朗上口,從在學校就一直聽到的一個口訣就是:「內科,不外乎就是History(問診),PE(身體檢查:聽、觸診等),labs(實驗室檢查)」而老醫師們,最喜歡拿History和PE來做文章,用... 學校老師沒教的小醫院值班術-PGY/Intern/PASurvivalGuide 帶著剛畢業的PGY1學弟妹值班,真是很累的事,很多東西還是得親力親為。

有鑒於剛入行的學弟妹很難上手,我決定針對值班常見問題,以我自己的淺薄經驗,寫了一份PGY/Internsurvivalguide,跟學弟妹分享,作為教學用途。

今天暫時先完成基本的病人評估... 基本身體理學檢查,再次獲得勝利! 理學檢查,一般是指醫師透過視診、聽診、觸診、叩診...等方式為病人進行檢查,尋找疾病的徵象,以輔助診斷。

通常是只用五官感覺、加上觸覺...等,僅以徒手,或用簡單工具例如聽診器輔助,就能進行的基本檢查,為內科醫師的基本功。

在過去沒有先進檢查工具的年代,這些基本檢查,佔有至關重要的角... [吉他譜]田馥甄-小幸運(詳細指法+和弦) 剛開始學抓歌,第一次抓完整首,分享給需要的朋友,若有錯誤請多指教!原曲F調,轉成C調就沒封閉,且副歌會變成卡農,對初學者比較簡單但是聽得出來原曲應該沒capo,因為有兩個音太低,夾了capo:5彈不出所以找了相近的音代替,和原曲有些微不太一樣... 醫學中心的訓練一定好? 因為我本身有換過工作的關係,所以正好在署立醫院和醫學中心都有待過一段時間,最近被即將就業的學弟妹問起這部份的經驗,問我署立醫院和醫學中心的訓練會不會差很多?我先說,本文只是我個人的心得,而且只包含內科部份,其他住院醫師可能會有截然不同的看法。

話雖這麼說,恐怕我是沒有辦法提供一... [教學]RaspberryPi搭配力量感測器(forcesensingresistor) 前言RaspberryPi是像名片一樣大小的低價電腦,搭配各種外接裝置,能做許多應用。

最近對這類開發板有興趣,於是我也買了一片RaspberryPi2來學習使用。

原計畫的應用要搭配可感測壓力的sensor,偵測使用者施壓的力量大小,但過程中遇到許多困難,... PIME0.14-支援node.js,新增多種輸入法 下載:https://github.com/EasyIME/PIME/releases問題回報:https://github.com/EasyIME/PIME/issues本次為「重大改版」支援node.js,並且新增多種輸入法。

開發者Ke...



請為這篇文章評分?