|
線超級亂..... |
把玩極低功耗的LCD之後,覺得該拿去做個什麼東西,腦袋一轉,想起來我幾個月前有買過一組BLE UART的模組,於是打算做一個低功耗的無線Serial螢幕
除了上次的Arduino+Sharp Memory LCD以外,另外加入BLE模組
不過這個模組不像仿間的那種只有TX-RX的,而是帶有待機模式的模組,我可以利用他的Pin喚醒Arduino,這樣我就可以在等待下一個資料前保持待機的狀態,而BLE也可以在極低功耗下維持連線.
Arduino端基本上是把UART收到的東西原封不動地丟到LCD上,好處就是我想改畫面的時候動主機端就好,但是缺點就是沒辦法搞圖出來像是天氣圖的符號,而受限於ASCII
最後是我寫了一個Python程式每五秒鐘讓它顯示PC的CPU使用率以及記憶體使用率
|
心血來潮加個LTC匯率試試 |
Code:
Python (主機端):
import serial
import time
import psutil
import json
import requests
s = serial.Serial('COM4', 115200)
while 1:
try:
r = requests.get('https://btc-e.com/api/2/ltc_usd/ticker')
c = json.loads(r.text)
except:
print("error")
pass
CPU = psutil.cpu_percent(interval=1)
print(CPU)
m = psutil.virtual_memory()
price = c['ticker']['buy']
String = "CPU :\n" + str(CPU)+"%" +"\nRam :\n"+str(m.percent) +"%\n"+"LTC:\n"+str("%.2f" % price)+"USD"
print(String)
s.write(String)
time.sleep(5)
s.close()
UPDATE:
我跑了一整晚之後,發現他竟然有殘影惹.....回頭去翻Datasheet,上面有說到這麼一段話:
Sharp recommends keeping maximum time between
VCOM toggles to no more than one second, and
refreshing data every two hours, to prevent stuck pixels.
沒仔細看Datasheet哭哭喔
結果靠著黑白黑白這樣閃,總算是救回來了...(吧
趕快補上每秒reflash的code,希望不會再發生了
最後就是我需要想個辦法量測耗電量....BLE脈衝性的我用電表量不准阿...囧
阿還有就是我需要把SS換個腳位,不然一直閃LED會耗電
UPDATE:測試耗電量
由於脈衝性的耗電量,理論上是要用示波器去看波形啦....
但是我沒有示波器可以用,所以只好拿Arduino佔當我的示波器,
首先測試Arduino的UART+ADC的速度,測試傳送一千次後,總共花了265ms
所以最快間隔就是0.265ms
再來就是讀資料的部分,我在BLE裝置上串了一個10歐姆的電阻,再用OPA放大11倍讀取電壓
,利用Python的程式把資料抓到.txt檔案裡,最後丟到excel分析
分析結果就是
- 接收一個Frame 平均電流 6.381mA 耗時85.065ms
- Reflesh畫面 平均電流 9.053mA 耗時1.855ms
- BLE一個連線週期 平均電流 6.772mA 耗時2.12ms
- 待機 平均電流0.0325mA
用以上結果當中的BLE連週期,和原廠的資料(0.41mA(電表),0.0243mA(積分))落差有點大阿...
雖然時間上差不多(2.25ms)
總結的耗電量是0.487mA,但是感覺各種問題啊....