学Linux,选它就对了———PocketBeagle开发板评测
PocketBeagle是《Methods》评选出的2018最值得关注的开发工具之一,特色是搭载了OCTAVO将AM3358和PMIC等大量外围电路集成到一起的SIP。体积变小,不过络连接功能及BLE的缺失。通过CAPS来进行添加则会增加了成本,低价开发板也变成了一句空话!不过话说回来,灵活性确实增强了,喜欢蓝牙的可以添加蓝牙模块,喜欢用WIFI的用户可以自己选择WIFI模块,各取所需! 继续使用功能更完善的BBB,还是选择体积与价格更有优势的PocketBeagle,你会怎么选?
先扯点闲话,不久前看到MOUSER的电子杂志《Methods》上推荐2018年最值得关注的几个产品,如下
三星的Artik据说是全家桶,该有的都有;Intel的神经计算棒乘着人工智能的东风,自然也值得关注;Bluetooth 5也是个好东西;只是最后一个产品居然是来自beagleboard.org的一款开发板,有点意外。
提到beaglebone.org,大家第一想到的大概是BBB,BBB的全称是BeagleBone Black,国内俗称狗板,正是来自beaglebone.org的产品,现在PocketBeagle又来了,能否超越曾经的经典BBB,让我们一起来看看这个被Mouser标注为2018必玩的开发板,到底有何过人
之处。
PocketBeagle给人的第一印象就是小巧,到底有多小,官方给出的尺寸是56mm x 35mm,重量仅10g。产品包装使用的的透明的卡套式包装。
内附一张快速用户指南,标明了产品的主要特性及快速开始的URL地址。从快速指南上可以看到,官方将PocketBeagle的角色定位在3D打印机、机器人及游戏机开发领域。PocketBeagle确实够紧凑,只是仔细看,忍不住有点疑惑,外围电路竞如此简单!秘密都藏在中间的封装器件里,这里说的是封装,而不是CPU。单从外观看,值得仔细描述的地方真不多,除了MicroSD卡接口,一个USB接口,其余的就是引出的GPIO焊盘了。和前辈BBB放在一起合个影,显然,PocketBeagle少了很多东西,DRAM在哪里, PMIC哪去了?在解决这个问题之前,仔细看看PocketBeagle上能看到哪些组件。
秘密都藏在OSD3358-SM这个SIP里面。SIP(System In a Package系统级封装)是将多种功能芯片,包括处理器、存储器等功能芯片集成在一个封装内,从而实现一个基本完整的功能。与SoC(System On a Chip系统级芯片)相对应。不同的是系统级封装是采用不同芯片进行并排或叠加的封装方式,而SOC则是高度集成的芯片产品。
这款来自OCTAVO System的OSD3358-SM模块,在有限的尺寸里集成了TI的AM3358处理器、DDR3存储器、TPS65217C PMIC管理及TL5209 LDO,另外还有4KB的EEPROM。
这也就是为什么我们在PocketBeagle找不到DDR等器件的原因了,都集成到模块里了。这样的好处,一是在进行产品设计时,硬件设计电路更简单,进一步提高了可靠性;其次,可以大幅度减少PCB的尺寸,有利于减少产品的体积。另外与BBB相比,PocketBeagle没有包含EMMC存储器,操作系统等软件资源都存储在SD卡上,所以要体验PocketBeagle,最好还得准备一个4GB以上的SD存储卡。
从beaglebone.org下载最新的DEBIAN操作系统,下载的系统映像是.XZ压缩格式,先用7ZIP将其解压
解压后得到的.IMG格式,需要写入到SD卡上,官方推荐使用ETCHER工具来将其写入到SD卡如果想获得更好的存储性能,建议使用CLASS 10规格以上的SD卡。
PocketBeagle板载的USB接口还可以兼任供电器的角色,也可以使用P1/P2提供的5V/VIN等接口来给开发板供电,但更多情况下我们使用的还是USB接口来供电。
PocketBeagle没有提供HDMI/VGA接口,所以暂时只能用HEADLESS模式来访问开发板了。另外PocketBeagle也没有提供以太网和无线接口,也没有蓝牙通信模块,看上去似乎有点头疼。不过和BBB一样,可以通过USB存储系统及USB虚拟网络来和PocketBeagle进行通信。
PocketBeagle通过USB接口与PC连接并上电后,PC端会看到一个存储磁盘可以通过WEB方式来进行软件开发,双击该磁盘里的START.HTML文件,浏览器里就可以看到如何使用PocketBeagle的详细教程,如下这里的步骤介绍得相当详细,让咱们化繁为简,简单点说,就是直接在浏览器里打开192.168.7.2这个地址,然后就能通过WEB方式来对PocketBeagle进行编程及控制。
PocketBeagle提供几个开发IDE,如上图所示,他们分别是Node-RED及Cloud9 IDE,这些都是有名的基于WEB方式开发的IDE,其中Node-RED使用的是图形开发模式,类似Scratch的开发模式,开发者只需要简单的拖放组件到开发窗口,按特定的逻辑进行组织这些组件,就可以完成开发过程。Cloud9则是一个完整的IDE,适合更喜欢直接码代码的开发者。
beaglebone.org为Beagle系列开发板提供了BoneScript支持,使用Node.js做为开发语言,开发者只需要调用BoneScript提供的API接口就可以直接操作GPIO/I2C等外部接口,API接口命名方式与Arduino基本一致,例如pinMode(), digitalWrite()等函数,熟悉Arduino的用户可以立即上手。
联机文档提供了非常的API参考,另外也提供了大量DEMO代码,这些代码包括.JS及.INO格式的代码,供用户参考
点击上方绿色的Run按钮,即可将代码编译并部署到开发板。
这样来看,完全是将PocketBeagle当成一个Arduino来用了,只不过系统的底层是基于Linux的,有更完善的软件支持,对于一般的电子爱好者也降低了入门的门槛。
喜欢嵌入式Linux的读者也许不乐意了,说好的Linux了,怎么体验?
Linux爱好者都有一个逃不开的坎,那就是命令行!PocketBeagle在启动后,会通过USB虚拟的网络接口将PocketBeagle与PC组成一个简单的局域网,PocketBeagle本身的IP地址固定为192.168.7.2,而PC端的IP地址则为192.168.7.1,二者可以直接进行通信。
图中以太网2就是虚拟的USB网络接口
使用putty等SSH软件就可以来连接到PocketBeagle,过一过命令行的瘾!这是使用putty连接到PocketBeagle的初始加密信息,点击“是”进入下一步
默认的用户名及口令分别为debian/temppwd,登录成功后看到熟悉的命令行了,先看看网络配置情况,如下
usb0接口的IP地址为192.168.7.2,只是仔细看,会发现这个IP地址有点怪,其中子网掩码值为255.255.255.252,而广播地址则为192.168.7.3。
要简释这个问题,需要懂一点子网划分的基础知识。根据子网掩码值255.255.255.252,我们得知这是一个包括64个子网的划分方案,每个子网最多包括2台主机,在192.168.7.0/30这个子网段内,有效的IP地址为192.168.7.1及192.168.7.2,而192.168.7.0及192.168.7.3则分别代表网络地址及广播地址。
接下来准备更新一下系统,按官方的说法,是直接下载最新的系统镜像,然后写入到SD卡中完成系统更新,现在既然有了网络,当然就不需要如此麻烦了。
不过还得配置一下网络,默认的网络有俩个问题,一是没有配置默认网关,二是没有指定DNS解析。所以先要在PocketBeagle修改并配置这俩选项,如图
这是默认的路由,没有默认网关,需要添加默认网关及DNS解析后就可以了。
下面是添加相关配置后更新系统的画面
接下来就可以把PocketBeagle当作一般的Linux嵌入式开发板用了。
这样子虽然也可以用,但是PocketBeagle的配置文件resolv.conf的真实位置位于/run目录下,每次开机都会重新生成,所以每次都需要重新配置一下,否则会找不到DNS解析相关的信息,解决的办法是写一个简单的脚本文件,每次需要联网之前先运行该脚本文件重新配置一下即可。
总结来说,PocketBeagle的特色在于保持了TI AM3358高性能的同时,得益于SIP封装技术,极大的减少了模块体积,同时SIP封装集成了大量外围电路如PMIC等,也极大的简化了产品的设计,降低了技术门槛。
不过由于尺寸的减少,开发板集成的网络连接功能及BLE的缺失,这些功能固然可以通过CAPS来进行添加,但是也增加了成本,低价开发板也变成了一句空话!不过话说回来,灵活性确实增强了,喜欢蓝牙的可以添加蓝牙模块,喜欢用WIFI的用户可以自己选择WIFI模块,各取所需!
继续使用功能更完善的BBB,还是选择体积与价格更有优势的PocketBeagle,你会怎么选?