Lua腳本開發(fā)簡單快速,在Cat.1和MCU開發(fā)應(yīng)用中已歷經(jīng)驗(yàn)證并廣受好評。所以LuatOS社群經(jīng)常有人問:合宙推出的口袋神器——IoT Power,可以腳本開發(fā)嗎?
答案肯定是可以。今天我們就來看看,當(dāng)IoT Power遇上Lua腳本開發(fā),會擦出怎樣的火花~
淺談IoT Power的Lua腳本開發(fā)應(yīng)用
合宙IoT Power專為工程師朋友量身打造,外觀近似ZIPPO打火機(jī)大小——既是一款高性能高精度的迷你型可調(diào)電源,也是兼?zhèn)溆涗浄治龉δ艿牡凸?a href="http://www.3532n.com/tags/電流/" target="_blank">電流分析儀。
● 測量二極管伏安特性曲線
二極管伏安特性,初中物理課就學(xué)過的一個基本物理法則,相信大家都再熟悉不過了。可是通常測量這個曲線很麻煩,要不停的調(diào)整電壓并記錄電流然后繪圖。
調(diào)整電壓看電流,這不正是IoT Power的強(qiáng)項(xiàng)嘛!那我們只需要寫腳本慢慢升高電壓,然后讀取電流自動繪圖就行了。
說干就干,寫個腳本:
▼ 上下滾動,查看全部 ▼
手機(jī)橫屏查看更方便
Lua
--該腳本可以測量二極管伏安特性曲線 --測試前請先關(guān)閉輸出,然后將二極管正負(fù)極分別連接至IoT Power
--最終將生成一張圖片
apiMessageBox("提示", "請先選擇需要保存圖表的文件位置")
local path = apiGetSavePath("png")
if not apiSetDevice(0, 0, false) then apiMessageBox("警告", "獲取不到信息,請確保你已連接設(shè)備!") print("腳本已退出") return
end
--開個任務(wù)來測
sys.taskInit( function() sys.wait(1000) --結(jié)果存這里 local c = {} local v = {} print("開始測試") for i = 1, do --mA檔位時 apiSetDevice(i / 10, 1, true) sys.wait(500) local tc, tv = apiGetCV() if tc and tv then if not (#v > 0 and tv < v[#v]) then table.insert(c, tc) table.insert(v, tv) print("got", tc, tv) end end end for i = 4, 50 do --A檔位時 apiSetDevice(i, 1, true) sys.wait(500) local tc, tv = apiGetCV() if tc and tv and tv > v[#v] then table.insert(c, tc) table.insert(v, tv) print("got", tc, tv) end end if path then print(apiPlot(v, c, "二極管伏安曲線", "電壓(V)", "電流(mA)",19 500, , 500path))
print("測試結(jié)束!文件已保存在", path) end apiSetDevice(0, 0, false) end)
運(yùn)行一下看看效果:

● 模擬電池放電曲線
在真實(shí)世界里電池的電壓下降不是線性的,所以經(jīng)常會遇到電池前面一段很耐用,但是到了一定電壓以后,電壓開始快速下降。
這種過程原來很難模擬,但是有了腳本就不一樣了。我們可以通過腳本模擬電池放電曲線,達(dá)到和真實(shí)電池一樣的電壓變化。
▼ 上下滾動,查看全部 ▼ 手機(jī)橫屏查看更方便
Lua
--模擬電池放電腳本
--請根據(jù)實(shí)際需求修改這里的變量值
--請先連接設(shè)備,再運(yùn)行腳本
--最大電流限制,單位mA
local maxCurrent = 1000
--電池電量(單位mWh),這里假定0.37Wh(3.7V 100mAh)
local power = 0.37 * 1000
--例子數(shù)據(jù):
--瓦時和毫安時換算
--Wh=V×mAh÷1000
--mAh=Wh÷V×1000
--電量從100%到0%,每10%的電壓(除了最后四個為15%、10%、5%、0%)
local vt = {
4.2,
4.08,
4,
3.93,
3.87,
3.82,
3.79,
3.77,
3.73,
3.7,
3.68,
3.5,
2.5
}
--獲取使用過多少電量后的電池電壓
--傳入值0-100,傳入整型數(shù)字
function getVoltagePercent(used)
if used >= 100 then
return vt[#vt]
end
if used < 80 then --剩余電量大于20%
local now = math.floor(used / 10)
local offset = (used % 10) / 10
return vt[now + 1] - (vt[now + 1] - vt[now + 2]) * offset
else--剩余電量小于20%
local now = math.floor((used - 80) / 5)
local offset = (used % 5) / 5
return vt[now + 9] - (vt[now + 9] - vt[now + 10]) * offset
end
end
sys.taskInit(
function()
print("開始測試!")
local totalPower = 0
local lastPower = apiGetPower()
local lastv = 0
while true do
local pNow = apiGetPower()
local p = pNow - lastPower
--防止比上次小
if p > 0 then
totalPower = totalPower + p
end
lastPower = pNow
--算一下現(xiàn)在用了多少電
local used = math.floor(totalPower / power * 100)
--獲取當(dāng)前電壓
local v = getVoltagePercent(used)
--和上次電壓不同的時候,就設(shè)置一下電壓
if v ~= lastv then
localr = apiSetDevice(maxCurrent, v, true)
if not r then
print("電壓設(shè)置失敗,請檢查數(shù)據(jù)和設(shè)備連接")
end
end
lastv = v
print("已使用電量" .. totalPower .. "mWh," .. used .. "%,輸出電壓" .. v .. "V")
sys.wait(2000)
end
end
)
● 模擬電池內(nèi)阻
電池放電過程中不僅僅是電壓的下降,實(shí)際上內(nèi)阻也會發(fā)生變化。特別是一些低功耗設(shè)備的鋰亞電池,電壓下降以后內(nèi)阻很大導(dǎo)致輸出電流很小,當(dāng)設(shè)備進(jìn)行無線發(fā)射時會遇到電流不夠?qū)е轮貑ⅰ?/span>這種現(xiàn)象在研發(fā)階段很難模擬,就會導(dǎo)致設(shè)備實(shí)際工作時長和理論值偏差較大。
通過IoT Power腳本,我們可以設(shè)置在不同電壓下的最大電流模擬電池內(nèi)阻,達(dá)到和真實(shí)世界一樣的情況,方便在研發(fā)期及時發(fā)現(xiàn)問題。
IoT Power使用及技術(shù)交流
在最新版本的IoT Power上位機(jī)的腳本控制頁面,即可看到模擬電池放電和測量二極管伏安曲線的兩個示例腳本。
最新客戶端/使用說明: https://iotpower.luatos.com/

可根據(jù)實(shí)際需求,新建自己的腳本自由發(fā)揮;相關(guān)Lua接口在幫助文檔頁面查找。
審核編輯 :李倩
-
Power
+關(guān)注
關(guān)注
1文章
504瀏覽量
69757 -
腳本
+關(guān)注
關(guān)注
1文章
409瀏覽量
29192 -
lua腳本
+關(guān)注
關(guān)注
0文章
24瀏覽量
7825
原文標(biāo)題:可編程!合宙IoT Power與Lua腳本的奇妙碰撞
文章出處:【微信號:HelloLuatOS,微信公眾號:合宙LuatOS】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Lua基礎(chǔ)語法更新篇(上)
LuatOS-Air腳本移植到LuatOS版本注意事項(xiàng)
警惕兼容性陷阱:LuatOS-Air腳本在LuatOS中的運(yùn)行異常分析
當(dāng)RFID遇見AI:物聯(lián)網(wǎng)資產(chǎn)管理的新想象
探索BTH50015 - 1LUA:高效智能高側(cè)功率開關(guān)的技術(shù)剖析
LUA例程-常用的回調(diào)函數(shù)使用說明
如何在香橙派5 Plus上移植deepin 25操作系統(tǒng)
LuatOS腳本開發(fā)入門:嵌入式運(yùn)行框架全解析!
嵌入式開發(fā)新選擇:LuatOS腳本框架入門教程
當(dāng)EtherCAT高速I/O模塊遇上藍(lán)牙耳機(jī)生產(chǎn)線,會擦出怎樣的火花?
聲智科技與螞蟻集團(tuán)共探聲學(xué)AI前沿技術(shù)
大彩講堂:VisualHMI-LUA教程-on_press回調(diào)函數(shù)使用指南
揭秘:硬件圈的光通信密碼——Lua+LED!
當(dāng)IoT Power遇上Lua腳本開發(fā),會擦出怎樣的火花
評論