Grove-Starter Kit Plus(GEN2)入门(来源于seed WIKI)
Grove Base Shield 简介
Grove Base Shield是Arduino到Grove系统的接口板。它将所有Arduino的管脚扩展成16个Grove接口,包括:digital(8),analog(4)以及I2C(4)。不同的Grove模块是通过不同的协议与Arduino交互数据的。只要知道单个Grove产品使用哪种方式和Arduino沟通,你就可以轻易地使用该模块了。
Digital接口
中间被红线标出的是8个digital Grove接口。它们与Arduino上的0 - 9管脚是对等的。大多数情况下,它们被用来读取一个输出0或者1的传感器的值,或者控制一个接受开关命令的执行部件。
它们当中的一些可以被复用为PWM(pulse width modulation)输出,包括D3,D5以及D6这三个接口。在驱动舵机或者制造呼吸灯效果时,你会用到这些功能。
串口也是会用到digital的接口的。Arduino的硬串口,也就是UART口,被引出到D1这个Grove接口处。Arduino与PC之间的通信就是通过硬串口实现的。在Grove系统使用的过程中,如果需要至少两个使用串口的设备(例如一个与PC通信以便调试的硬串口,以及另一个串口设备),Grove Base Shield上的digital Grove接口是可以作为软串口被复用的。在往后的Grove系统探索中,会有这种情况。
左边区域是4个用于读取analog输入的Grove接口。analog的传感器工作时会返回一个0 - 1024的值。相比只会返回0或者1的digital传感器而言,analog的传感器返回值更精确和包含更多细节。
I2C接口
下方区域是4个I2C Grove接口。I2C是一种只使用两根信号线,SCL和SDA,来传输数据的低速总线。SCL是控制总线上节奏的时钟信号,SDA是数据信号。
I2C总线上可以挂任意数目的设备,但是同一时间点只能有一个工作在主机模式,其他必须是从机模式。对于Grove中用到I2C这种协议的模块而言,主机就是Arduino主板。作为主机,Arduino为整个系统提供时钟信号,向从机分发命令,以及接收从机返回的数据。如何识别每一个从机呢?挂在I2C上的设备是需要一个唯一的I2C地址的。
当需要传送的数据量超过了digital或者analog这两种模式可以承受的范围时,I2C就会被提上日程了。例如,当我们想要收集到一些较复杂的传感器信息,如角速度,或者现实时间时,我们就会首选I2C作为模块与Arduino之间的通信方式。