研究筆記 - 試玩 ARM mbed
緣起
試玩
- 使用 online 開發環境
- 跟著 Application board 範例基本走一些 samples
- https://developer.mbed.org/components/mbed-Application-Board/
- app-board-LCD
- Christmas-LCD
- app-board-Joystick - main.cpp
- app-board-Speaker - main.cpp
- app-board-Bubble-Level
- app-board-RGB - main.cpp
- app-board-LM75B - main.cpp
- 範例的 NTP 似乎不會動,改使用這個就正常
- https://developer.mbed.org/users/4180_1/code/app_board-NTPclock/
- 玩一下 Grove LED Bar v2.0 ( HOH 套件 )
- 接線 LED Bar - ARM mbed ( GND/VCC/DCK1/D1 - GND/VOUT/p5/p6 )
- Import https://developer.mbed.org/components/Grove-Seeed-LED-Bar/
- 修改這行 LED_Bar bar(p5, p6);
- LED 燈號顯示會一格一格變多,每 0.1 s 加一格
- 玩一下 Grove Barameter Sensor ( BMP180 )
- 接線 Barameter - ARM mbed ( GND/VCC/TP3/TP4 - GND/VOUT/p9/p10 )
- import https://developer.mbed.org/components/Grove-Barometer-Sensor/
- 修改這行 BMP085 barometer(p9, p10);
- Sample output(9600N81):
- Pressure: 1004.76 Temperature(c): 32.90 Temperature(F): 91.22
- Pressure: 1004.81 Temperature(c): 32.90 Temperature(F): 91.22
- Pressure: 1004.78 Temperature(c): 32.90 Temperature(F): 91.22
- 觀察颱風氣壓實驗
- Log 須能附上時間,後面才好分析
- cat /dev/cu.usbmodem1412 | ts
- 7 08 06:38:28 Pressure: 989.45 Temperature(c): 31.70 Temperature(F): 89.06
- 7 08 06:38:29 Pressure: 989.42 Temperature(c): 31.70 Temperature(F): 89.06
- import re
- p = re.compile(ur’(\d\d) (\d\d:\d\d:\d\d) Pressure: (\d*.\d*)’)
- with open(’test.txt’) as f:
- content = f.readlines()
- str_all = ’\n’.join(content)
- result=re.findall(p, str_all)
- for i in range(0,len(result)):
- if i % 60 == 0:
- print("2016/07/%s %s,%s" % (result[i][0], result[i][1],result[i][2]))
- 轉出的格式
- 2016/07/08 07:25:22,989.81
- 2016/07/08 07:26:28,989.59
- 觀察颱風氣壓曲線,直接 Numbers 畫圖(類似 Excel 的都可以)
![](https://hackpad-attachments.s3.amazonaws.com/lass.hackpad.com_V4041fKL0DU_p.438706_1467977869795_undefined)
- 附上原始資料檔,萬一有人有興趣
- 觀察電風扇能否影響氣壓感測值
- 實驗設計1:
- 讓感測器用最快的方式持續量測,約一分鐘 1000 次,17 次/s
- 做一分鐘有風(風扇擺頭),一分鐘沒電風扇,一分鐘有風(風扇擺頭),一分鐘沒電風扇,共四分鐘
- 看是否可以看到變化,其中電風扇約一分鐘可擺頭四次
- 如果變化可觀察,應可看到0-1/4, 1/2-3/4 的時候震盪的比較厲害
- 結果:觀察不出這樣的現象,覺得電風扇影響,無法用這樣的方法測量出
- 詳細資料:wind1.csv, 收集到 4181 筆資料,資料範圍在 991.82-991.92
- 圖表資料為 170 筆 moving average 的結果輸出
![](https://hackpad-attachments.s3.amazonaws.com/lass.hackpad.com_V4041fKL0DU_p.438706_1468022055695_Rplot01.png)
- 實驗設計2:
- 讓感測器用最快的方式持續量測,約一分鐘 1000 次,17 次/s
- 做一分鐘有風,一分鐘沒電風扇,一分鐘有風,一分鐘沒電風扇,共四分鐘
- 看是否可以看到變化
- 如果變化可觀察,應可看到0-1/4, 1/2-3/4 的時候應可看出數值高或是低
- 結果:觀察不出這樣的現象,覺得電風扇影響,無法用這樣的方法測量出
- 詳細資料:wind2.csv, 收集到 4240 筆資料,資料範圍在 991.52-991.64
- 圖表資料為 170 筆 moving average 的結果輸出
![](https://hackpad-attachments.s3.amazonaws.com/lass.hackpad.com_V4041fKL0DU_p.438706_1468022066588_Rplot02.png)
- dat = read.csv("/tmp/wind.csv", header = FALSE)
- #CSV 範例值
- #991.50
- #991.56
- #991.53
- y <- apply( embed( dat[[1]], 170 ), 1, mean ) #用 170個 sample 做動平均,約 10 秒
- yy <- y < 1000 #濾掉一兩個怪異值
- plot(y[yy]) #將濾過的值畫出來