电子说
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是直接以低阶硬件动作来实现,如此可以省去引用一堆函式库与额外的指令。总之,希望此一新推展能获得够多够好的回馈意见,从而尽快发展成熟,使创客在控制程序的开发上有更多的选择。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !