树莓派,是一款基于 Linux 的单板机,配上一些可交互的硬件设备(扩展屏、鼠标、键盘等),也就成了一款配置略低的电脑。

目的

电脑能做什么事情不必多说,倘若买一块树莓派的板子就是为了玩软件、学习 Linux 系统,那就有点太无趣了;我的目标是通过树莓派深入了解它的 IO 引脚控制(包括几个总线通讯协议)及各类硬件传感器的使用,尝试写写 Linux 内核驱动,再顺便回顾下大学里学的电路原理课程,最终目的是通过各种软硬件的组合实现一些小创意,帮助改善生活质量。

当然,我可以去直接网上购买智能家具家电,不过其中的趣味想必就少了许多,而且脑海中的一些创意还没有被小米这样的厂商产品化,只能自己动手实现啦~

趣味和挑战

从正式接触编程到如今,也有 7 个年头了,Linux 系统,包括系统上的各种环境配置、软件使用,可以说熟悉的不能再熟悉了,我对系统底层的东西(系统、内核)兴趣度不高,所以把应用层尤其是软件摸索的差不多了,Linux 也就用的少了,毕竟它不适合平时办公和娱乐。

树莓派提供的 IO 引脚可以直接控制底层硬件,通过硬件的配套驱动,可以在操作系统层做很多非常有意思的软硬件联动开发,相比单纯把玩应用层和协议层的东西,能够控制实物硬件,还是很有趣味性的。不过有趣的同时,也会有很多挑战,比如电路设计、驱动开发、硬件通讯协议的研究等等。

上货

没做太多的调研,问了下身边搞 IoT 开发的同事,让他直接推了几个淘宝链接。

一个 Raspberry Pi 3 Model B+ Linux 开发板

image

一盒子感应器,三四十个

image

上面的硬件,淘宝上随随便便就可以搜到,没什么太大的差异,就不贴链接了,如果一定要推荐,可以在 官方授权的淘宝店 上购买。我们来看看这块板子的配置

image

这块最新的树莓派板载蓝牙和 WiFi 模块,而且各方面的性能都还不错,提供了 4 个 USB 接口和一个全尺寸的 HDMI 接口,基本上可以满足我们的日常开发需求。

期望

在小米商城买了四五十件智能产品,说实话,小米的产品确实不错,提供的米家 APP 操作起来也十分方便,但是小米的智能家电无法对外提供服务,只能在小米的体系内运转,因此就显得过于薄弱了些。

把玩树莓派,我大致给自己定下这么几个目标:

  • 熟练使用 GPIO 和各类总线协议进行硬件和设备的连接、控制
  • 了解常见的标准数据传输协议,如蓝牙传输、红外遥控、AirPlay 等
  • 掌握基本的 Linux 内核驱动开发的过程,并尝试为硬件编写驱动程序
  • 了解边缘计算的整体架构,将家里的所有设备集结在一个端上控制,争取上云

下一节来说说,如何进入到自己熟悉的远程开发模式。