unPhone 正如其名,它不是一部手机。确实并不是手机也许是件好事:虽然它外形像手机,拿在手里也很舒适,但它既没有扬声器也没有麦克风,无法用来打电话。
它所拥有的是开放源码设计和固件,运行在一个隐藏在全彩触摸屏后面的Espressif ESP32-S3微控制器上——同时配备了一个功耗低、距离远的LoRa无线电模块,即使只依赖一个简单的隐蔽铜线圈作为天线,通讯范围也可达60英里甚至更远。
unPhone显然并非手机。它既超越了手机的限制,也未能达到手机的标准——它更像是一个实践教育项目的核心,这个项目旨在教授物联网(IoT)知识,由英国谢菲尔德大学的Hamish Cunningham开发。现在,这款产品可以直接从货架上购买 —— 但它是否物有所值呢?
硬件
- 微控制器:乐鑫ESP32-S3-WROOM-1,8MB PSRAM
- 存储:8MB闪存,microSD卡(包括16GB)
- 显示屏:3.5英寸320×480彩色LCD电阻式触摸屏(光泽)
- 无线电:ESP32-S3(Wi-Fi、蓝牙)、HopeRF RFM950(LoRa 868MHz、915MHz可调)
- 传感器:加速度计、磁力计
- IO:3×按钮开关,RGB LED,IR LED,振动电机
- 扩展:4×GPIO、I2C、SPI、扩展板扩展接头(6×ADC、UART、1×GPIO、2×FeatherWing)
- 软件:ESP-IDF、Arduino IDE、带有PlatformIO Core的Visual Studio、CircuitPython
- 许可证:硬件知识共享署名-非商业性使用-相同方式共享4.0国际,软件GNU Affero通用公共许可证3
不出所料,unPhone的外观和手感都像手机——尽管是大约十年前的手机。它的机身主要由塑料构成,前面板由PCB制成,通过四颗螺栓固定;拆下这些螺栓,就能看到使设备运作的单板。
正在评测的unPhone版本,技术上是unPhone9——这个编号是对之前每一个原型进行递增得到的。这个项目始于一个面包板,后来被称为unPhone0,并且由谢菲尔德大学的Cunningham及其同事与BitFIXit的Gareth Coleman和Pimoroni的Gee Bartlett与Paul Beech共同开发——他们负责生产和销售这款设备的零售版本。
正如手机一样,前面主要是一个3.5英寸的320×480彩色LCD显示屏,带有电阻式触控层和非常光滑的表面处理,这使得这个小工具在明亮的阳光下难以使用。当以横向持握时,屏幕右侧有一组带有方形、圆形和三角形符号的触感按键,就在提供软件驱动的开关、复位按钮、RGB和红外LED灯,以及一个用于数据和电源的USB Type-C连接口的侧面板上方。内部还隐藏着一个振动马达,尽管没有扬声器或麦克风。
电力供应给一个装在塑料后壳一个相对紧凑区域的1,200mAh锂电池——与unPhone网站提供的文档中提到的1,400mAh相比有所降级,但由于决定使用低功耗的Espressif ESP32-S3-WROOM-1模块,而不是像在手机中找到的高性能应用级系统芯片,所以仍然可以支持大约六小时的活跃使用。这块电路板上还有一个HopeRF RFM950 LoRa收发器——这让设备在ESP32-S3提供的Wi-Fi和蓝牙低功耗(BLE)的基础上,还具备了远距离低功耗的无线电连接能力。
除了微控制器模块中的8MB闪存之外,它预先编程了一个简单的演示固件,用于测试显示屏并展示一些基本功能,还有一个microSD卡槽用于存储——只是在切口中留有足够的间隙,使得卡片有可能意外地滑入金属槽上方并丢失在机壳内,因此如果你要更换卡片,一定要小心。
unPhone拥有厚重的塑料壳、相对较小的屏幕和硬件按钮,你不会长时间将其视为手机——但它构建坚固,手感沉重而稳健,并且如果需要,例如需要取回丢失的microSD卡,很容易就可以拆开并重新组装。
教育平台
unPhone不仅仅是其零件的总和:这个项目源于希望提供一个平台,用于教授物联网背后的核心概念。因此,Cunningham和同事们一直在编写课程材料以配合之——将unPhone构建成一个课程大纲,其中包括一个自由访问的“物联网书籍”,大约有300页。
这本书的每一页都不是关于unPhone。的确,这本物联网书——正式标题为“Mi Casa su Botnet?”——是对物联网设备经常被忽视的安全问题的一种诙谐提法,书中广泛涉及了从数字PDP-10小型计算机到使用面包板ESP32闪烁LED,再到机器学习、实时操作系统,以及一个名为WaterElf的自动水产养殖教育平台的各种主题。
对于那些有经验的人,可以跳过背景介绍,直接跳到第11章“unPhone Yourself”,这一章介绍了硬件并演示如何使用Arduino IDE以及ESP32核心和unPhone库用C++编程。附录提供了其他方法的探讨,包括使用Espressif的ESP-IDF在命令行进行编程,无论是本机还是通过Docker容器,通过Microsoft Visual Studio Code的PlatformIO以及ESP-IDF或Arduino插件进行编程,以及用CircuitPython编程unPhone——在撰写本文时,这个端口处于非常早期的状态。
对于从零开始的人来说,从一开始就受益,他们将被引导了解从建立GitLab帐户——尽管你需要跳过确保使用谢菲尔德大学邮箱账户的部分,除非你真的是那里的学生——到设置构建环境的所有内容。你还将需要额外的硬件:亲自参加课程的学生会收到一个硬件套件,包括一个Feather格式的ESP32-S3板、无焊接面包板和各种组件,这些都不包括在unPhone里。
为unPhone制作的课件不仅可以自由获取,而且是开放的:Cunningham根据Creative Commons Attribution Share-Alike Non-Commercial 4许可证发布这本书。这也扩展到项目的所有其他方面:书中的一个章节详细讲解了unPhone的电路图,尽管基于早期的unPhone6v2,而所有源代码都发布在GitLab上,采用GNU Affero General Public License 3许可证。
实验空间
然而,这些课件并不能带你走得太远。虽然它涵盖了大约100小时的课程,但只有一小部分关注于unPhone本身——并且很快就略过了设备编程的部分,演示了如何使用库来初始化硬件、使用RGB和IR LED灯、检查电源开关的状态、访问触摸屏显示、读取加速度计、处理电源管理以及如何通过LoRa无线电向The Things Network发送短消息。
除此之外,读者只能通过查看示例代码来了解如何使用设备——包括一个使用LVGL编写的光滑用户界面演示,遗憾的是这并没有真正利用unPhone的特性,除了触摸屏之外——这比任何其他事情都更突出了这个小工具的双重受众:那些将其作为大学课程一部分使用的人,其中物联网书籍得到了面对面辅导的支持,以及那些在零售市场上购买它进行一些自我引导实验的人。
正是这些后者的受众最有可能对unPhone感到失望,因为他们努力克服从一个仅有四行代码的片段(这个片段展示了向The Things Network盲目传输单条信息)到实际使用无线电进行有用的双向通信之间的鸿沟。因此,对于初学者来说,unPhone或许并不是最佳设备;但对于那些有先前经验或有坚持下去的韧性的人来说,其中有很多值得喜欢的地方。
彩色触摸屏意味着unPhone可以被改造成各种项目的控制器,它拥有一个光滑的自包含手持形态。Wi-Fi和蓝牙可以用于本地通信,而LoRa无线电在你需要更远距离时就派上用场——Cunningham亲自测试过,有效距离可达60英里。
也许最好的特性是,没有任何专有技术。unPhone由现成的组件巧妙连接而成,虽然提供了unPhone库,但它不是使用设备的唯一方式:如果你宁愿只引入想要使用的部件的基础库而忽略其他部分,这样做也是受欢迎的。
如果你需要的不仅仅是基础硬件,还有扩展空间。电路板的一侧有未填充的0.1英寸通用输入/输出针脚头,可以焊接并通过机壳的一个突出部分将线露出外界。在另一侧,紧挨着电池连接器的位置,有一个零插入力(ZIF)插座,用于连接扁平灵活电缆(FFC)——设计用于配合一个捆绑的扩展板使用,适合托管两个FeatherWing格式的扩展板和你选择的组件,用于小型原型区。
结论
unPhone显然不是手机,这从名称上就很明确。然而,它确实是一个很好的平台,用于尝试类似手机的物联网接口——只要你不需要音频功能——并且可以胜任任何ESP32-S3能够做的事情。如果你想将它用作机器人的手持蓝牙控制器,你可以这么做。如果你想在上面运行一个复古计算机模拟器,没有什么能阻止你。如果你想跟随Cunningham的课程,不管你是否在谢菲尔德大学注册,你也可以这么做。
然而,它也不是没有缺点。屏幕上的塑料电阻层是光滑的,比玻璃覆盖的电容屏容易划伤,这使得unPhone在户外使用变得困难——这很遗憾,考虑到它内置的电池。对于欧洲以外地区的人来说,一个更大的问题是无线电:虽然固件可以在868MHz和915MHz模式之间切换,但线圈天线特别调整为868MHz——这使得它不太适合北美的部署。
尽管如此,unPhone还是有很多可圈可点之处。里面没有令人眼花缭乱的突破性硬件,它所做的一切以前都有人做过——但是把这一切集成在一个紧凑的手持设备中还是非常吸引人。捆绑的扩展板也为增长提供了空间,而且Coleman目前正在努力将 Meshtastic 固件移植到unPhone上,以实现基于LoRa的离网网格网络。
更多关于unPhone的信息可以在官方网站上找到,而相关的课程材料可在专门的子网站上获取。