国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談IoT Power的Lua腳本開發應用

合宙LuatOS ? 來源:合宙LuatOS ? 作者:讓萬物互聯更簡單 ? 2022-09-05 14:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Lua腳本開發簡單快速,在Cat.1和MCU開發應用中已歷經驗證并廣受好評。所以LuatOS社群經常有人問:合宙推出的口袋神器——IoT Power,可以腳本開發嗎?

答案肯定是可以。今天我們就來看看,當IoT Power遇上Lua腳本開發,會擦出怎樣的火花~

淺談IoT Power的Lua腳本開發應用

合宙IoT Power專為工程師朋友量身打造,外觀近似ZIPPO打火機大小——既是一款高性能高精度的迷你型可調電源,也是兼備記錄分析功能的低功耗電流分析儀。

● 測量二極管伏安特性曲線

二極管伏安特性,初中物理課就學過的一個基本物理法則,相信大家都再熟悉不過了。可是通常測量這個曲線很麻煩,要不停的調整電壓并記錄電流然后繪圖。

調整電壓看電流,這不正是IoT Power的強項嘛!那我們只需要寫腳本慢慢升高電壓,然后讀取電流自動繪圖就行了。

說干就干,寫個腳本:

Lua


--該腳本可以測量二極管伏安特性曲線 --測試前請先關閉輸出,然后將二極管正負極分別連接至IoT Power

--最終將生成一張圖片

Lua

--該腳本可以測量二極管伏安特性曲線
--測試前請先關閉輸出,然后將二極管正負極分別連接至IoT Power
--最終將生成一張圖片

apiMessageBox("提示", "請先選擇需要保存圖表的文件位置")

local path = apiGetSavePath("png")

if not apiSetDevice(0, 0, false) then
apiMessageBox("警告", "獲取不到信息,請確保你已連接設備!")
print("腳本已退出")
return

end



--開個任務來測

sys.taskInit(
function()
sys.wait(1000)
--結果存這里
local c = {}
local v = {}
print("開始測試")
for i = 1, 19 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)", 500, 500, path))

print("測試結束!文件已保存在", path)
end
apiSetDevice(0, 0, false)
end)


運行一下看看效果:

719f61ec-2cd0-11ed-ba43-dac502259ad0.png

模擬電池放電曲線

在真實世界里電池的電壓下降不是線性的,所以經常會遇到電池前面一段很耐用,但是到了一定電壓以后,電壓開始快速下降。

這種過程原來很難模擬,但是有了腳本就不一樣了。我們可以通過腳本模擬電池放電曲線,達到和真實電池一樣的電壓變化。

Lua

--模擬電池放電腳本

--請根據實際需求修改這里的變量值

--請先連接設備,再運行腳本

--最大電流限制,單位mA

local maxCurrent = 1000

--電池電量(單位mWh),這里假定0.37Wh(3.7V 100mAh)

local power = 0.37 * 1000

--例子數據:

--瓦時和毫安時換算

--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,傳入整型數字

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

--算一下現在用了多少電

local used = math.floor(totalPower / power * 100)

--獲取當前電壓

local v = getVoltagePercent(used)

--和上次電壓不同的時候,就設置一下電壓

if v ~= lastv then

localr = apiSetDevice(maxCurrent, v, true)

if not r then

print("電壓設置失敗,請檢查數據和設備連接")

end

end

lastv = v

print("已使用電量" .. totalPower .. "mWh," .. used .. "%,輸出電壓" .. v .. "V")

sys.wait(2000)

end

end

)

● 模擬電池內阻

電池放電過程中不僅僅是電壓的下降,實際上內阻也會發生變化。特別是一些低功耗設備的鋰亞電池,電壓下降以后內阻很大導致輸出電流很小,當設備進行無線發射時會遇到電流不夠導致重啟。這種現象在研發階段很難模擬,就會導致設備實際工作時長和理論值偏差較大。

通過IoT Power腳本,我們可以設置在不同電壓下的最大電流模擬電池內阻,達到和真實世界一樣的情況,方便在研發期及時發現問題。

IoT Power使用及技術交流

在最新版本的IoT Power上位機的腳本控制頁面,即可看到模擬電池放電和測量二極管伏安曲線的兩個示例腳本。

71ce5f56-2cd0-11ed-ba43-dac502259ad0.png



可根據實際需求,新建自己的腳本自由發揮;相關Lua接口在幫助文檔頁面查找。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二極管
    +關注

    關注

    149

    文章

    10406

    瀏覽量

    178397
  • 可調電源
    +關注

    關注

    12

    文章

    105

    瀏覽量

    24661
  • lua腳本
    +關注

    關注

    0

    文章

    24

    瀏覽量

    7825
  • IOT
    IOT
    +關注

    關注

    190

    文章

    4395

    瀏覽量

    208512
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Lua基礎語法更新篇(上)

    。而整個Lua虛擬機編譯后僅僅一百余K,經過適當的裁剪還能做到更小,十分適合嵌入式的開發。 同時,在目前腳本引擎中,Lua的運行速度占有絕對優勢。這些都決定了
    的頭像 發表于 01-23 19:56 ?81次閱讀
    <b class='flag-5'>Lua</b>基礎語法更新篇(上)

    LuatOS-Air腳本移植到LuatOS版本注意事項

    的跨文件調用。 二、api不同 首先說明,core和腳本有所不同,用戶可以理解為,core是安卓/ios系統,腳本為一個又一個的app,只有core+腳本,才能支撐起完整的一個二次開發
    的頭像 發表于 01-17 14:48 ?1135次閱讀
    LuatOS-Air<b class='flag-5'>腳本</b>移植到LuatOS版本注意事項

    警惕兼容性陷阱:LuatOS-Air腳本在LuatOS中的運行異常分析

    案例,深入分析運行異常的根本原因并提出預防措施。 一、lua版本不一樣 LuatOS-Air使用的是lua5.1版本,本身不支持位移運算符。 LuatOS使用的是lua5.3版本,取消了module(..., package.s
    的頭像 發表于 01-13 19:20 ?151次閱讀
    警惕兼容性陷阱:LuatOS-Air<b class='flag-5'>腳本</b>在LuatOS中的運行異常分析

    BTS50007-1LUA:高性能12V智能高端功率開關的深度解析

    )推出的一款高性能功率開關——BTS50007 - 1LUA,它屬于Power PROFET? + 12V系列,專為滿足各種復雜應用場景而設計。 文件下載: Infineon Technologies
    的頭像 發表于 12-20 09:30 ?686次閱讀

    探索BTH50015 - 1LUA:高效智能高側功率開關的技術剖析

    探索BTH50015 - 1LUA:高效智能高側功率開關的技術剖析 在電子工程師的日常設計工作中,選擇合適的功率開關至關重要。今天,我們就來深入剖析一款名為BTH50015 - 1LUAPower
    的頭像 發表于 12-18 17:30 ?583次閱讀

    LUA例程-常用的回調函數使用說明

    詳細說明LUA腳本函數功能和對應的應用實例。對于LUA腳本編程有很大的幫助和提高技能。
    發表于 11-24 16:43 ?0次下載

    大彩講堂:VisualHMI-LUA教程-獲取設置單精度浮點數函數的應用

    一、適合范圍本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內部邏輯處理。二、概述get_float/set_float函數主要用于VisualHMI
    的頭像 發表于 10-16 00:00 ?1497次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-獲取設置單精度浮點數函數的應用

    大彩講堂:VisualHMI-LUA教程-獲取與設置32位數據函數的應用

    一、適合范圍本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內部邏輯處理。二、概述2.1.get_uint32(vtype,addr)讀取無符號整形寄存器
    的頭像 發表于 10-15 17:46 ?1257次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-獲取與設置32位數據函數的應用

    大彩講堂:VisualHMI-LUA教程-獲取和設置16位數據函數

    一、適合范圍本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內部邏輯處理。二、概述2.1get_uint16(vtype,addr)讀取無符號短整型寄存器
    的頭像 發表于 10-13 16:40 ?1363次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-獲取和設置16位數據函數

    LuatOS腳本開發入門:嵌入式運行框架全解析!

    想搞懂LuatOS如何運行Lua腳本?本文深入剖析其嵌入式運行框架,涵蓋虛擬機加載、任務協程、系統初始化等關鍵環節,適合初學者。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS
    的頭像 發表于 09-26 17:45 ?477次閱讀
    LuatOS<b class='flag-5'>腳本</b><b class='flag-5'>開發</b>入門:嵌入式運行框架全解析!

    嵌入式開發新選擇:LuatOS腳本框架入門教程

    LuatOS正成為嵌入式開發的新趨勢!本教程帶你從基礎入手,全面了解其基于Lua腳本開發模式與輕量級運行框架。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS
    的頭像 發表于 09-26 17:34 ?581次閱讀
    嵌入式<b class='flag-5'>開發</b>新選擇:LuatOS<b class='flag-5'>腳本</b>框架入門教程

    請問如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態?

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態?
    發表于 08-28 07:57

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態?

    如何通過 PinView 和 lua 腳本檢查和修改寄存器狀態?
    發表于 08-25 06:59

    大彩講堂:VisualHMI-LUA教程-on_run回調函數使用指南

    一、適合范圍本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內部邏輯處理。二、概述on_run(screen)周期回調函數,用該回調函數,會根據設定的時間
    的頭像 發表于 07-23 15:25 ?1136次閱讀
    大彩講堂:VisualHMI-<b class='flag-5'>LUA</b>教程-on_run回調函數使用指南

    揭秘:硬件圈的光通信密碼——Lua+LED!

    Lua的輕快語法遇上LED的物理脈沖,竟能生成物聯網設備的社交指紋!通過定義不同的閃爍協議(如Morse光碼、RGB情緒譜),開發者們正在用光信號構建硬件間的非語言社交網絡——這是智能設備獨有
    的頭像 發表于 05-15 14:29 ?533次閱讀
    揭秘:硬件圈的光通信密碼——<b class='flag-5'>Lua</b>+LED!