最近重新折腾我的树莓派,发现这货还能做语音识别,于是想做个什么东西出来,最后还是对宿舍那个一直让我有点不爽的台灯动手了。因为台灯夹在比较高的地方,每次都要站起来才能够得到开头,这让我有点不爽,要是可以语音控制它开关那多好,于是我就拿它开刀了。
主要的流程是这样子的:改造台灯,用双向可控硅做个电子开头来代替机械开关;在树莓派安装gpio的驱动,以控制io口输出高电平或者低电平;在树莓派安装voice command进行语音识别;把voice command改造成支持中文语音识别。
首先是改造台灯,我直接把以前的存货BTA20和MOC3081搭个电子开关,电路图如下:
用一块小小的万用板把这个电路焊好发现刚好能塞进台灯里面,不影响台灯的外观,然后把两根控制线引出来接到树莓派的gnd和一个io口上(我接的是gpio1)。
硬件弄好之后开始搞软件了。树莓派的gpio驱动网上好像有三个,一个支持python的和两个支持c语言的,各位官人可以根据自己的喜好自行安装,我装的是BCM2835 C Library,教程在这里:http://blog.csdn.net/xukai871105/article/details/12684617
装好驱动之后我就把那个blink.c改装成开关灯的程序,代码如下:
#include <bcm2835.h>
// Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17)
//#define PIN RPI_GPIO_P1_11
#define PIN RPI_GPIO_P1_12
int main(int argc, char **argv)
{
// If you call this, it wi