玩转智能模块(串口屏)之圆周率计算

智能模块加上LUA脚本即可轻松实现圆周率计算功能。LUA实现简单的运算,智能模块实现显示和触摸功能,从而达到环形滑动输入动态显示圆周率计算功能。下面是我用深圳拓普微公司的智能模块实现的圆周率计算功能。步骤如下:

第一步 建立工程

第二步 建立页面并导入背景图

第三步 关联页面与背景图

第四步 建立字符串元素和设置属性值

菜单工具栏点击字符串元素

在页面PG0000工作区拖出矩形区,创建字符串元素于页面中

重复①-②建立字符串,共需建立三个字符串(rdC

④ 设置三个字符串属性,三个字符串属性设置如下表所示:

 

 

ID

0

1

2

图中标志

r

d

C

透明

对齐方式

左对齐

左对齐

左对齐

小数位数

0

0

7

VP类型

VP_N32

VP_N32

VP_N32

地址

0x020000

0x020004

0x020008

数据类型

有符号整型

有符号整型

浮点型

第五步 建立环形调节元素和设置属性值

菜单工具栏点击环形调节元素

在页面PG0000工作区拖出矩形区,创建环形调节元素于页面中

③ 设置环形调节属性,属性设置如下表所示:

 

 

 

ID

0

图中标志

马蹄形圆环

外环半径

173

内环半径

105

起始角度

227

扫描角度

266

VP类型

VP_N32

VP地址

0x020000

最小值

1

最大值

100

第六步 添加Lua文件

① 编写Lua脚本luamain.lua

右击工程资源栏的Lua

点击添加文件luamain.lua

 

 

 

luamain.lua如下所示:


--主循环--

luamain = function (void)

--do nothing

end


--触摸回调函数--

tpkhook = function (page,id,state)


--debug--

--print("luaTPKhandleHook")

--print("page=",page,"id=",id,"state",state)


--check TP state--

if (state==1 or state ==2 or state == 3)then


--check Touch element--

if(id==0) then

local w

local h

local r

if(id==0)then

h = hmt.readvp32(0x20000)

end

w = 2*h

r = 2*3.1415926*h

hmt.writevp32(0x20000,h)

hmt.writevp32(0x20004,w)

hmt.writevp32(0x20008,r)

end

end

return 0

end

 

 

第七步 下载与编译

第八步上电显示

断开USB与模块连接

向模块提供12V电源

上电显示

触摸蹄形圆环,输入半径r,可自动计算直径d和周长C

 

 

 备注:触摸蹄形圆环最左边时输入半径r=1

 

 

 

 备注:触摸蹄形圆环中间部分时输入半径r=49

 

 

 

 备注:触摸蹄形圆环最右边时输入半径r=100

 

 

 

完成

posted @ 2020-02-28 13:51  SmartLCD  阅读(469)  评论(0编辑  收藏  举报