首先感谢合宙&发烧友,给了一次近距离体验LuatOS AIR105的机会。
一、开箱
第一次关注AIR105是因为其Cortex-M4F的内核,价格便宜,芯片貌似8元左右,官方板子带一个又不是不能用的摄像头,才19.9,其他的一些配件也很有意思,譬如LCD扩展板之类,具体规格如下,且不说自带LDO,光是看看RAM和Flash的规格就震惊了:
合宙Air105是一款QFN88 封装,10mm x 10mm 大小的MCU, 不仅提供UART/GPIO/I2C/ADC/SPI等基础外设,更提供DAC/USB/DCMI/HSPI/LCDI/KCU等高级外设接口,内置充电功能,支持5V/3.3V供电,同时自带5v转3.3V的LDO,4M字节Flash,640K字节RAM。具体信息见URL https://wiki.luatos.com/chips/air105/mcu.html。
入选试用后,本人斥9.9元巨资顺便买了块LCD屏幕,准备搭配用,拿到板子后果断把针脚全部焊接起来,花了不少时间,焊点还不错,颗粒饱满。
然后找了根type-C的USB线,插上计算机,串口能认出来,却发现默认的流水灯跑不起来,Luatools也连不上。
心中忐忑不已,按理来说这种板子没有坏的可能性啊,莫不是手贱焊的时候把板子焊坏了吧,于是参考
PCB把所有供电量了一遍,发现没啥问题啊,换了台电脑去连Luatools还是不行,看来要翻车,心中一丝慌乱。
干脆一不做二不休,强行刷,于是点击Luatools的“下载固件”按钮,选择最新的V007版本底层固件,强行来,结果居然刷进去了,我的理解是只要串口认出来Luatools就可以刷固件了,果然熟悉的流水灯欢快的跑起来鸟~看来之前板子的固件没刷上。
二、LuatOS之浅见
申请AIR105核心板试用的时候到LuatOS官网了解了下,我的理解LuatOS是一个跑在MCU上的提供Lua语言环境的轻量级虚拟机(VM),屏蔽了底层MCU等硬件的差异,让开发者直面LuatOS编程API即可,有利于更方便快捷的推出应用。很多年前,跟一个在腾讯工作的朋友聊天获知,Lua是一个脚本语言,印象中是一个巴西人发明的,在游戏中用的比较多,有较多优点,譬如跟C语音库或者程序对接方便。
所以,要基于LuatOS编程,首先选择Lua虚拟机,Luatools中称之为“底层CORE",这个由合宙官方在不断迭代升级更新,扩充功能,譬如本次测试我用的是“LuatOS-SoC_V0007_AIR105.soc”,用户需要做的就是编写Lua脚本,然后通过Luatools上传到硬件系统,再重启即可。
三、一个图片显示demo
都选了LCD,当然显示个内容来看看。demo中选了个lcddemo的project。
直接把脚本烧进去,图片显示歪了,感觉不对劲,于是打开脚本,我的LCD是0.96寸,驱动IC是ST7735,脚本默认选择了2.4寸的GC9306屏幕,当然不对了。
于是将0.96的LCD注释取消,就用下面的这段init()。
引用: lcd.init("st7735s",{port = "device",pin_dc = pin.PE08 ,pin_rst = pin.PC12,pin_pwr = pin.PE09,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd)
下载,再重启,log如下:
引用: [2022-05-24 23:28:15.388] main 659:bootloader build release May 7 2022 19:23:19!
[2022-05-24 23:28:15.388] Jump_AppRun 76:jump to 0x01010400 !
[2022-05-24 23:28:15.388] main 176:APP Build release May 7 2022 19:22:45!
[2022-05-24 23:28:15.388] I/main LuatOS@air105 core V0007 bsp V0007
[2022-05-24 23:28:15.388] I/main ROM Build: May 7 2022 19:22:58
[2022-05-24 23:28:15.415] D/main loadlibs luavm 204792 14656 14912
[2022-05-24 23:28:15.415] D/main loadlibs sys 361544 18552 19176
[2022-05-24 23:28:15.415] I/user.main lcddemo 1.0.0
[2022-05-24 23:28:15.415] D/lcd ic support: st7735s
最后,图片出场。
感谢阅读!