Arduino开始将MicroPython纳入生态系

arduino lab for micropython程序画面
一直以来,谈到arduino大家立刻想到的程序语言是c/c++,但现在arduino官方开始尝试支持micropython。所谓支持即是arduino官方开发出一套新的整合开发环境(ide)称为arduino lab for micropython,软件接口风格与原有的arduinoide相仿,也同样有windows、mac、linux等跨平台版本。
之所以称为「尝试」是因为目前这套开发工具软件还在内部测试阶段,意即alpha阶段,连外部测试的beta阶段都还没到,版本也在0.5左右,尚未到正式的1.0版,源代码已放在github上。
更严格来说,这比较像是一套编辑器(editor)软件,因为python是直译执行的程序语言,不像c/c++是编译执行的语言,编译是先在计算机上把程序编译完成后,才把可执行的程序代码传送到开发板上,而后执行;直译是把程序代码放到开发板上后,等到要执行前才立即将其转译成可执行的程序代码,而后执行。
直译方式过去并不兴盛,主要是执行速度太慢、且占储存空间,但随着计算机运算力、硬件资源愈来愈强大宽裕,加上软件技术的改进(例如转译完成的程序代码可以保留一份,需要再次执行时即可加速),直译可行性因而提高。
发展源起与现况
在arduino官方还没撰写开发arduino lab for micropython前,其实arduino自家的产品就已经有使用到micropython,例如niclavision开发板是专门用于计算机视觉应用的,搭配的韧软件为openmv,而openmv的操控即需要撰写micropython程序。
为了开发arduino lab for micropython,arduino官方找上micropython的创建者damiengeorge,把他撰写的micropython官方版虚拟机(virtual machine, vm)改写出一套可以在arduino现有产品上执行的版本。
也为了让现有arduino产品可以执行micropython,arduino官方也开始改写几片现行开发板的韧体,目前已经释出三片开发板的韧体,分别是nano ble sense、nano rp2040 connect,以及portenta h7等。新韧体的网址为https://docs.arduino.cc/micropython/,同时也有顺便放openmv的韧体。
三片开发板把原有的韧体清除掉,改写入新版韧体,搭配计算机上安装的arduino lab for micropython,就可以进行micropython的程序开发,并最终在板子上执行micropython。为了推广micropython,arduino官方也另立一个网站来推广,网址为labs.arduino.cc
arduino labs官网画面
值得注意的是,释出开发板的新韧体并不表示后续也同样只有arduino官方的开发板会支持micropython,arduino官方希望有更多的非官方板卡也能支持响应arduino lab for micropython,自己只是起个头示范。
因为一切的发展都还在很前期,所以arduino官方称arduino lab for micropython是一套轻量(lightweight)编辑器,也尚不能称是正式产品,而是一个体验工具(experimental tool),之所以现阶段就释出就是希望多听听各方的意见,看看能否逐渐改进成熟,但也不保证最终可以成为完整产品。
arduino labs官网上也开始有arduino labfor micropython相关的创客项目,一是include robot,是一个用3d打印做成的自走车,可以使用arduino nano 33 ble、ble sense、33 iot,以及arduino rp2040 connect等电路板来驱动;二是ble dashboard,是一个仪表板项目,可用来显示传感器数据,使用的板子是arduino nano 33 ble sense或nicla sense me。
micropython vs. circuitpython
最后,或许有些人仍不太了解micropython、circuitpython的区别。micropython的渊源来自前述的damien george(澳洲程序员、物理学家)曾于群众募资网站kickstarter上发起一个募资,希望能生产销售一片名为pyboard(有时写成pyboard)的开发板,并让购买该板的用户,能使用修改版的python来撰写该开发板的控制程序,该修改版的python即为micro python(当时发起时两个字之间有空格,之后连写)。
本来只想募15,000英镑(发起者可以自行决定募资的币别),募资天数30天,但最终由1,931名支持者共筹募了97,803英镑,pyboard项目成立并顺利生产交货。自此之后有更多的芯片、板卡支持micropython,如esp8266芯片、esp32芯片、bbc micro:bit、raspberry pi pico,以及stmicro公司的stm32系列等。
至于circuitpython则是由adafruit以micropython为基础的衍生发展,既然由adafruit所提出,自然adafruit所推出的板卡最支持circuitpython,但由于一样是开放源代码的项目,也是有其他板卡支持circuitpython,例如sparkfun、seeed studio、arduino等均有推出支援circuitpython的板卡。
至于两者使用上有何差异,其实circuitpython只是更方便入门者学习与除错,而不是比micropython强大。circuitpython无法共享状态所以同时间只能执行一个工作,如果正在用计算机与板卡进行repl(read–eval–print loop)模式互动,这时就无法执行板子上的 .py档案程序。
其他差异还有circuitpython的api比较精简,有些circuitpython的api是直接以低阶硬件动作来实现,如此可以省去引用一堆函式库与额外的指令。总之,希望此一新推展能获得够多够好的回馈意见,从而尽快发展成熟,使创客在控制程序的开发上有更多的选择。


陀螺仪的工作原理 陀螺仪和重力传感器有何区别
自动大灯远近光原理 自动大灯正确使用方法
荣耀前天发布V9,小米3~4月发布小米6,谁更强?
金立通信与高通达成新的3G/4G中国专利许可协议
千元最强拍照手机竟是魅族,去年1999次旗舰如今白菜价
Arduino开始将MicroPython纳入生态系
SIMATIC S7-1500 PLC与ET200MP的PROFIBUS-DP通信
智能手环推荐,小米手环2等四款是你想要的
分立式ARM+FPGA工业核心板,490元起,不香吗?
智慧能源21700型锂电池进入试生产阶段
国内首个工程生物产业数据分析平台亮相
为什么说海尔智家是行业穿越寒冬的“模范生”?
氢燃料电池前景
禾大科技田小二如何建设高标准数字农田节水灌溉基地
上位机与pLC如何用光纤远距离通讯?
用于高压氧舱体 ( HBOT ) -治疗环境控制中的温湿度传感器
高通宣布支持Chrome OS系统
国微集团计划到2030年基本建成国产EDA的健康创新环境
五分钟看完本田涡轮/混动技术
电动拖把什么牌子好?轻松惬意搞定拖地