7.2.4 主控板与传感器
采用Raspberry Pi 3B作为主控板,它使用一个1.2GHz的64位Cortex-A53芯片作为处理器,用1G最高频率400MHz的SDRAM 作为内存,同时它配备有无线网卡、USB接口、以太网接口以及蓝牙设备接口等,更为重要的是它拥有40个GPIO接口供用户操作使用,这从根本上为硬件的开发提供了极大的便利[19]。传统的开发涉及驱动程序的设计和调试,使得硬件开发过程中永远不能集中精力,因为在调试过程中出现问题的时候,往往还要进行驱动程序相关问题的排查。我们使用树莓派的GPIO 进行开发的话,只需要把注意力集中在对设备的操作上,也很容易就能测出来信号有没有问题,而且为定制硬件提供了便利,传统的USB接口必须要有一个硕大的接线口才能接入,而且只能接入两条信号线,并且需要驱动程序的支持。使用GPIO 的话就只需要在自己设计的PCB上留40个接线柱就可以把所有的信号接进去,然后就可以在自己的PCB上放置自己的传感器以及像电容电阻之类的其他设备,也可以预留测试接口,这是非常方便的。
由图7.1可见,Raspberry Pi拥有40个引脚,同时有三种编码方式,这对于不同领域、不同范围有着极大的便利。①物理引脚编号(Physical):这是按照引脚在板子上的相对物理位置进行的编号,在接线的时候经常用到;②BCM2835编号(BCM):在使用Python语言开发的过程中使用得比较多;③wiringPi编号(wPi):在C语言的使用过程中使用较多。虽然三者的编码各自不同,但是它们都是同一IO 接口的不同编码,需要注意的是,在使用的过程中一定要声明使用的是哪种编码,不然容易出现软件的输出和硬件的输入不对应的情况。本课题使用C/C++进行开发,使用wiringPi编码最为方便,故下面的编码方式如若不做说明都默认为wPi编码。

图7.1 GPIO接口图
同时也可以从图中发现此款树莓派有两个硬件IIC接口,但是此项目中使用IIC协议的硬件超过了两个,同时考虑到移植性问题,最后决定使用软件模拟的方式来使用IIC协议,这样能够极大地提升系统软硬件的灵活度。硬件连接方式如下(请注意是wPi编号):
1)连接各元器件的电源和接地引脚,其中电源一律接3.3V;
2)将DHT11的中间DATA引脚接到25脚;
3)将MLX90614的SDA接到27脚,SCL接到28脚;(https://www.daowen.com)
4)将MAX30102的SDA接到0脚,SCL接到7脚;
5)将1脚接到马达驱动板的PWM 输入端;
6)剩下的PWM 输入端接地。

图7.2 原理图
看得出来这样手工接线过于繁杂并且容易出错,为了优化系统著者又进行了简单的电路设计和PCB板雕刻,原理图和PCB版图分别见图7.2和图7.3。

图7.3 PCB版图