Photon Kit是Particle推出的一款Wi-Fi开发板入门套件,可用于物联网或云端应用。开发板内置Broadcom Wi-Fi芯片及STM32 F205微处理器,硬件使用非常灵活。Particle公司还提供了完整的生态系统及完善的开发环境让产品接入网络,不仅提供了类似Arduino的IDE、配套控制APP、网页端编译软件、应用开发SDK、JS开发库等支持。云端服务则为Particle硬件接入云端提供服务,同时还能够实现在线更新固件、网络访问、数据安全等功能。最重要的是,这是一块完全基于云端开发的评估板,除了最初的基本网络配置,其它的操作从代码的编辑、编译及下载都是通过云端进行!
官方提供的Photon评估套件有两种包装形式:Photon match box及Photon Kit Box。Photon match box只提供了最基本的Photon开发板,没有提供额外的附件;Photon Kit Box则除了开发板之外,还提供了一块面包板、USB连接线及LED灯、光敏电阻等基本的实验器件。今天评测的版本是Photon Kit Box版本。下面先来看看开发板本身。
下面先来看看开发板本身
图1:包装盒正面
Photon Kit包装使用普通牛皮纸盒,包装盒没有使用过多的修饰元素。简简单单的盒子,上面印有产品型号及基本功能介绍。
图2:包装盒背面
开发板背面印有产品的一些其它附属信息,如设计及制作信息,哈哈,看到了Made in China没有,看来中国真要成为全球制造中心了!不过如果上面的Designed by a global team亦能变成Designed by Chinese team那就更好啦。除此之外,还有一些产品的条码信息等。
图3:开箱
打开包装盒,看到的就是Photon开发板了。开发板上面还印有USB FOR POWER等字样,在这个小小的折叠式空间里就是随机提供的一些附件了。
图4:Photon Kit全家福
随机提供的一些附件,如USB供电线,LED灯和光敏电阻等。还有一块面包板,位于开发板和纸质卡片下面,等下我们取下开发板就能看到了。
不过这个价格方面似乎有点不厚道啊,Mouser上Photon的报价是151RMB,但是Photon Kit的报价达到了223RMB,也就是是说,这块面包板加USB线及几个小东西,就要70RMB,略贵啊略贵!
图5:隐藏在卡片下面的面包板
将开发板和纸质介绍说明取下来,终于看到面包板了。不过还别说,花了这么多钱买的面包板就是好用,接插阻尼系数适中,不松也不紧。嗯,是心理作用么!
图6:卡片背面的引脚图
小小的卡片背面也列出了开发板上引出的引脚标注,还有一些基本的参数说明,比如每个I/O引脚最大电流值为20mA,外接电源的电压范围等,这一点还是比较贴心的。
图7:开发板正面
仔细来看下开发板,尺寸非常小。中间比较大的金属覆盖的就是Wi-Fi模块了,里面集成了博通和STM32的芯,下部位置还引出了天线接口。开发板最上面是Micro USB接口,用来给开发板供电。USB接口下面提供了两个按键,一个是SETUP,另一个是RESET。开发板两边排列的是引出的GPIO接口,用来连接外设。
图8:开发板背面
开发板背面很简洁,除了焊接的排针外,几乎没有使用其它元器件。
图9:开发板与面包板的合体图
将Photon插入到面包板上,感觉一个字,有点美。
为了更好的了解硬件特性,先来熟悉Photon的硬件组成。
Particle PØ Wi-Fi 模块内主要包含两个主要部分:Broadcom的BCM43362芯片,支持802.11b/g/n Wi-Fi通信模式;另一部分就是STM32F205RGY6芯片,这是一款ARM Cortex-M3芯片,最高主频120Mhz,芯片内置1MB flash, 128KB RAM存储器。硬件搭配还算不错!其它一些特性还包括“RGB三色LED指示灯18个混合信号GPIO引脚FREERTOS支持软件AP设置开源特性
图10:内部硬件逻辑图
开发板内部主要模块连接示意图,可以看到Wi-Fi芯片通过SDIO与STM32 MCU通信,STM32 MCU通过这一接口接收各种来自外部终端的指令。
图11:开发板上主要元器件位置及名称
上图列出了开发板上一些主要的元器件位置及名称。
单从上面的硬件来分析,用户也许会担心进行软件开发时,要考虑的编程要素会不会太多,不用担心!Photon出厂时已固化了固件,将这些底层细节尽数封装,用户只需要像使用Arduino一样来使用开发板就可以了,后面的上电及软件开发部分会详细介绍如何来使用开发板。
下面开始体验Photon开发板。使用Micro USB线将开发板与PC连接,如下图是将开发板连接到USB HUB上面的效果
图12:开发板连接到PC
此时开发板上的RGB LED灯开始闪烁,表明开发板开始上电工作。
由于Photon开发板内置固件,此时开发板处于等待用户配置的状态,RGB LED灯为蓝色并快速闪烁。实际上此时开发板处于独立AP工作模式下,等待用户使用带有Wi-Fi连接功能的设备来登录至Photon开发板,然后再进行功能配置。不过现在还不必着急,先来升级下开发板上的固件。确保PC上设备管理器能看到如下的设备驱动信息
图13:设备驱动信息
因为接下来的固件升级需要使用到串口来实现。如果你的设备管理器中没有类似的驱动信息,需要到官方去下载Photon开发板的USB驱动,然后安装。接下来仍然是到官网下载固件升级程序,双击启动固件升级程序后,出现如下的固件升级界面
图14:固件升级
上图表明当前最新的固件版本为0.5.2,此处如果能列出设备当前使用的固件版本就更完美了!点击升级按钮,就会将开发板的固件升级到最新版本,这个过程可能需要几分钟的时间,视网络状况而定。
使用手机作为客户端可以连接到Photon开发板。不过需要注意的是,手机客户端配置需要从官方下载一个APP程序Tinker,不能直接通过浏览器来进行网络配置。
在使用设备之前,还需要到官网上注册一个用户账号,用来保存用户及设备信息,如下图
图15:注册用户
注册好账户信息并登录之后,接下来就是配置Photon开发板,将开发板连接到工作路由器,从而从云端接收并反馈相关的信息。如图是使用Android手机连接WLAN的情况
图16:连接路由器
设定好路由器的连接密码后,点击CONNECT开始连接并配置设备,由于这个过程需要检测云端配置,所以配置过程视网络状况会需要一定的时间,等配置完成后的界面如下
图17:网络配置成功
配置完成后,Photon开发板就可以使用APP来操作了,不需要编程就可以实现简单的远程操作。
下图是控制开发板上板载LED(D7)的一个截图
图18:Tinker控制设备
在D7按钮上长按,会弹出功能选择设置,是读操作还是写操作,这里选择写操作,然后点击D7按钮,会在高、低电平之间切换,板载的D7旁边的LED灯开点亮或熄灭。
这个APP看起来很炫,除了配置网络连接及最基本的演示功能之外,还可以作为一个基本的远程控制软件,远程操控及读取相关的信息。略为遗憾的是APP只提供了板级I/O操作,读取和控制的都是原始的基础信息,如电平的高低及模拟数据等原始信息,如果能输出更为人性化的显示效果会更好。另外一点如果能加上设备的检测功能,能够检测设备是否在线的话,那就更完美啦!
除了上面的使用APP来配置Photon开发板之外,还可以使用Node.js命令行接口来配置网络,这是为高级极客们准备的另一种选择,详情请考官方文档。
另外一点值得指出来的是板载的三色LED指示灯,该灯具有非常丰富的指示功能,如等待网络配置时的蓝色指示灯,网络连接正常后的青色呼吸指示灯都非常有特色,具体的颜色含义请参考官方文档。
不过这个APP似乎在ANDROID 6.0以上的系统上似乎不能正常运行,官方的说明是系统版本要大于ANDROID 4.0.3,对版本上限似乎没有要求。另外官方还提供了APP的原始代码,可以使用GIT来克隆到本地,自己修改并添加功能,供愿意折腾的你使用。
接下来看程序设计部分。前面指出,这是一款完全基于云端开发的开发板,从代码的编辑、编译及下载都在云端完成。
在浏览器中打开https://build.particle.io/build/,使用前面注册的信息登录,进入WEB IDE界面,如下图
图19: WEB IDE
默认创建了一个空白文档,并已帮我们写好基本的程序框架,风格与Arduino的编程风格非常类似。
整个开发环境的左边是一些控制按钮,主要的按钮包括程序烧写、代码窗口、库、帮助文档及设备管理,最下面是系统设置。在设备管理器里可以查看当前已添加的设备类型及名称,设置里面包含用户密码设置等管理信息。
接下来写一段简单的代码,实现两个简单的功能,一是读取光敏传感器的值,另一个则是使用配套的LED灯来验证输出控制功能。硬件连接如下
图20:硬件连接
LED灯连接到D0,光敏传感器连接到A5和A2,A5提供5V电压,A2读取数据。代码如下,仍然是满满的Arduino编程风格,看来Arduino的影响真是无处不在!
图21:测试代码
点击IDE中的编译图标,开始编译代码,如果没有错误,会提示正确的信息,一个典型的输出如下
图22:编译输出
接下要将编译好的代码下载到开发板,点击左侧的下载按钮,开始通过OTA给开发板下载代码,下载画面如下
图23:BIN代码下载
同时注意到RGB指示灯应该变为洋红色,表明正在下载代码到开发板上。
稍等片刻后,刚刷入到开发板的程序就会开始运行,这时可以通过查看LED灯的情况来检测代码运行的效果。
至此我们已经完成了一个代码的编辑、编译及烧写的过程,而这一切,都是在云端进行的!OTA,嗯,这也是OTA!
总结来说,这是一块真正的站在云端的开发板。如果你用过ARM的mbed,一定会有似曾相识的感觉!一样的云端编辑器,云端编译;和mbed略有不同的是,mbed需要将生成的BIN文件下载到本地,然后再复制到mbed设备映射到PC端的磁盘,从而实现代码写入到设备。Photon则更进一步,将整个过程完全通过网络实现!实际上这个过程淡化了MCU编程的复杂性,将简单和快捷直接呈现给用户,而底层的MCU编程的复杂性则被固件完成了。所以虽然开发板上集成的Broadcom Wi-Fi芯片及STM32 F205微处理器,性能固然强劲,但是在整个开发过程中,我们已没有太多与之直面的机会,Arduino式的编程风格,让我们似乎已不知硬件为何物!
另外在整个使用过程中,可能是由于国外服务器的原因,与服务器的连接似乎并不是很稳定,可能通过板载的RGB LED灯看出来。也有可能是固件优化的问题,希望在后续的固件中能进一步得到改善!参考资源:Particle官网:https://www.particle.io/Photon资料:https://docs.particle.io/guide/getting-started/intro/photon/
,