色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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打火機大小——既是一款高性能高精度的迷你型可調電源,也是兼備記錄分析功能的低功耗電流分析儀。

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

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

調整電壓看電流,這不正是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接口在幫助文檔頁面查找。




審核編輯:劉清

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

    關注

    147

    文章

    9700

    瀏覽量

    167249
  • 可調電源
    +關注

    關注

    12

    文章

    83

    瀏覽量

    23506
  • lua腳本
    +關注

    關注

    0

    文章

    21

    瀏覽量

    7601
  • IOT
    IOT
    +關注

    關注

    187

    文章

    4230

    瀏覽量

    197363
收藏 人收藏

    評論

    相關推薦

    【正點原子STM32H7R3開發套件試用體驗】移植lua解釋器

    Lua簡介 Lua 是一種輕量小巧的腳本語言,用標準C語言編寫并以源代碼形式開放, 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。 Lua 是巴西里約熱內盧天
    發表于 12-29 13:30

    nginx+lua+redis實現灰度發布

    了這種能力,隨時可以基于這種能力和思想調整實現方案:比如nginx+lua+(其他數據源)、nginx+(其他腳本語言) 一、灰度方案: 常見的灰度實現方案: 1.請求路由:通過請求中的標識(如用戶ID、設備ID、請求頭等)來決定是否將請求路由到灰度環境??梢允褂梅聪虼?/div>
    的頭像 發表于 12-17 10:01 ?122次閱讀

    Open開發新方法!Lua語言快速學習

    很多朋友都問我不會Lua又想open開發,怎么辦?我的答復是Lua先學起來,再看LuatOS具體應用示例,上手極快,感興趣的朋友們,可以參照本文一起學。
    的頭像 發表于 12-11 09:31 ?161次閱讀
    Open<b class='flag-5'>開發</b>新方法!<b class='flag-5'>Lua</b>語言快速學習

    不會Lua又想Open開發,怎么辦?

    本次我把收藏已久的LuatOS具體應用示例特分享個大家,希望不會Lua又想Open開發的朋友有收獲。
    的頭像 發表于 12-09 14:43 ?179次閱讀
    不會<b class='flag-5'>Lua</b>又想Open<b class='flag-5'>開發</b>,怎么辦?

    Linux從零到精通:最簡單的Shell腳本入門教程

    在數字化時代的浪潮中,Linux操作系統憑借其高效、穩定、開源的特性,成為了無數開發者和系統管理員的首選。 而在Linux的龐大生態系統中,Shell編程無疑是連接用戶與系統內核的橋梁,它讓我們能夠
    的頭像 發表于 12-05 09:56 ?641次閱讀
    Linux從零到精通:最簡單的Shell<b class='flag-5'>腳本</b>入門教程

    @視覺工程師丨15分鐘上手《AIDI3.2腳本開發教程》視頻,請查收!

    AIDI有什么系統性地進階開發教程?AIDI調用Python腳本的基本原理是什么?常見的Python異常如何處理?區域計算工具有哪些常用案例?……為幫助廣大視覺工程師及開發者更好地掌握AI視覺算法
    的頭像 發表于 11-09 01:06 ?322次閱讀
    @視覺工程師丨15分鐘上手《AIDI3.2<b class='flag-5'>腳本</b><b class='flag-5'>開發</b>教程》視頻,請查收!

    Lua語法基礎教程(中篇)

    今天我們繼續學習Lua語法基礎教程,中篇。 五、變量 5.1 number變量 變量,可以看作是一個桶,在里面裝你想要裝的內容。這些內容可以是Lua包含的所有合法類型。 例如:我想要新建一個桶,名叫
    的頭像 發表于 10-26 11:39 ?298次閱讀
    <b class='flag-5'>Lua</b>語法基礎教程(中篇)

    Lua語法基礎教程(上篇)

    意味著Lua虛擬機可以很方便的嵌入別的程序里,從而為應用程序提供靈活的擴展和定制功能。而整個Lua虛擬機編譯后僅僅一百余K,經過適當的裁剪還能做到更小,十分適合嵌入式的開發。 同時,在目前腳本
    的頭像 發表于 10-24 07:17 ?273次閱讀

    執行shell腳本的方式包括什么

    執行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運行腳本。例如: ./script. sh 這種方式需要確保
    的頭像 發表于 08-30 15:17 ?377次閱讀

    shell腳本編寫之本地腳本的編寫和執行

    的使用可以參考下一節)將變量值輸出進行查看,如下圖,可以看到沒有輸出var的值;然后再使用source或. 進行腳本執行,再次查看var變量的值,可以看到成功輸出235,該方式執行腳本后的變量,沒有釋放,所以我們經常使用source來配置shell環境變量,后邊講
    發表于 08-28 09:36

    【龍芯2K0300蜂鳥板試用】+3.移植lua到loongarch

    ,輸入$CC就可以編譯了,輸入loongarch64-linux-gnu-gcc *.c -o lua -lm -O3。生成可執行文件lua 將可執行文件拖到開發板中,并添加可執行權限,并執行
    發表于 08-18 03:31

    合宙Air780EP模塊Lua開發阿里云應用指南

    合宙Air780EP模塊Lua開發阿里云超詳細教學!看完包學會!
    的頭像 發表于 08-08 09:00 ?1046次閱讀
    合宙Air780EP模塊<b class='flag-5'>Lua</b><b class='flag-5'>開發</b>阿里云應用指南

    涂鴉推出完全開源的open sdk開發框架!大大降低IoT開發門檻

    開發者來說,IoT開發的難點是什么?首先,IoT涉及到多個領域和多種開發技術,每一層的技術接口、協議都需要跨平臺、跨領域、跨系統的合作協同
    的頭像 發表于 04-12 08:14 ?1281次閱讀
    涂鴉推出完全開源的open sdk<b class='flag-5'>開發</b>框架!大大降低<b class='flag-5'>IoT</b><b class='flag-5'>開發</b>門檻

    RISC-V Linux開發環境腳本

    比較多的RISC-V SOC Linux開發環境使用CMake/Makefile,雖然也知道些怎么用,但有沒完整系統的這方面學習資料?如語法、腳本鏈接結構等,可以分享下深入學習
    發表于 03-31 12:48

    淺談城市泵站遠程監控系統的開發

    淺談城市泵站遠程監控系統的開發 張穎姣 安科瑞電氣股份有限公司?上海嘉定 201801 摘要:針對我國城市泵站設備普遍偏舊,自動化、信息化管理水平不高,有待實現泵站遠程集中監控等問題,提出城市系站
    的頭像 發表于 02-27 15:14 ?476次閱讀
    <b class='flag-5'>淺談</b>城市泵站遠程監控系統的<b class='flag-5'>開發</b>
    主站蜘蛛池模板: 乌克兰女人与动ZOZO | 乳巨揉みま痴汉电车中文字幕动漫 | 女人会操出水图 | 九九热这里只有国产精品 | 阿v天堂2017在无码 | 18禁无遮挡羞羞污污污污免费 | xxxxhdvideos动漫| 寂寞护士中文字幕 mp4 | 亚洲免费精品 | 国产福利一区二区精品 | 成人毛片100部免费看 | 女人高潮久久久叫人喷水 | 男人插女人动态图 | 无码国产欧美日韩精品 | 午夜福利理论片在线播放 | 思思久久99热只有频精品66 | 麻豆AV蜜桃AV久久 | 精品欧美小视频在线观看 | 久久精品国产亚洲AV未满十八 | 动漫AV纯肉无码AV电影网 | 黑人 尺寸 强行害怕 痛哭 | 男人舔女人的阴部黄色骚虎视频 | 国产精品久久人妻无码网站一区L | 成人永久免费视频 | 成人公开免费视频 | A国产一区二区免费入口 | 伊在香蕉国产在线视频 | 丰满人妻无码AV系列 | 51vv视频社区 | 精品欧美一区二区三区四区 | 亚洲成在人线视频 | 暖暖 日本 视频 在线观看免费 | 久久精品电影网 | 精品夜夜澡人妻无码AV蜜桃 | 97成人精品视频在线播放 | 精品久久久久久久99热 | xxx88中国| 精品国产原创在线观看视频 | 亚欧成人毛片一区二区三区四区 | 国产色综合色产在线视频 | AV72啪啪网站 |