使用Arduino Nano 33 BLE/Sensor创作Phyphox实验研究
有些过于技术性,只简略记录大概。
1、概念
Arduino Nano 33BLE/Sensor是不同于传统Arduino开发板的新型板子,去年才发行,它们使用3.3V电源,微安级低功耗,高度集成了9种传感器(BLE只有3种),若不使用蓝牙BLE,其他一切与传统Nano可以通用sketch。
Phyphox,一款专门为使用手机传感器进行物理实验的APP,免费,Android/ios。
Arduino IDE,Arduino开发板专用集成开发环境,免费,分PC和Web两种。当开发板得到支持,IDE可以把作者创作的功能性固件烧录到Arduino。
Arduino Nano 33 BLE/Sensor使用了Nordic nRF52480 ArmCortex-M4F 64MHz芯片,而不是传统的Atmel,使用Nordic专门的开发工具需要专业且高深的技能,但是Arduino IDE通过扩展的支持,使创作和烧写变得简单。
Phyphox-BLE,Phyphox程序的官方扩展,通过Phyphox-BLE扩展使在Arduino IDE里针对Arduino Nano 33 BLE/Sensor编写用于Phyphox的实验创作成为可能。
2、问题
Phyphox-BLE简易且方便地、鲁棒地支持ESP32开发板进行Phyphox实验创作,但以Arduino Nano 33 BLE/Sensor进行的实验开发,却极难成功。Phyphox能够发现蓝牙设备,一方面表现是信号弱,nRF Connect显示大约在70dB左右,而同样的ESP32实验创作则为100dB。
3、解决
在Github上能够得到Phyphox-BLE的Pre版本,根据文本比对能看出后期版本条件编译在ArduinoBLE/Mbed以及Arduino::Func()上的改动。猜测是某一个条件混乱了,错误调用了不该调用的其他头文件里面的同名函数。
因此,解决办法是,就去使用Phyphox-BLE的Pre版本,删除里面一切与Arduino Nano 33 BLE/Sensor无关的条件编译,只留下针对Nano 33一种板子的代码。试验之下,成功。
4、定制
5、尾声
这样的Phyphox-BLE扩展库,只能专门针对Arduino Nano 33 BLE/Sensor编写代码,如果再使用ESP32等开发板,只能暂时把这个特殊的Phyphox-BLE库移出libraries目录,做完别的事,再把它移回来。估计官方不会发现不了这个缺陷,以后肯定会修正的。
再有,就是发现了Arduino Nano 33 BLE板的轻便,又购置了一个Sensor板。这两块板子太新了,只看到了Italy原版,淘宝上BLE 240元,BLE Sensor 320元,好贵!