基于FPGA的家居智能遥控
所处的状态并提示用户进行正确的操作。 3.2 教练器 教练器的作用是产生种类足够多的编码信号供学习器来学习,进而控制不同的接收器。 SC2262是一种CMOS工艺制造的低功耗低价位通用编码电路,最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码, SC2262最多可有6位(D0-D5)数据端管脚,其编码方式如图4所示。 图4.SC2262的编码脉冲 3.3 接收器 SC2272 是与SC2262 配对使用的一块遥控解码专用集成电路。它可支持多达531441个地址的编码,极大的减少了码的冲突。SC2272 对从Din(14脚)端子送入的信号进行解码。解码出来的地址码与所设置地址输入端进行比较。如果所设置的地址与连续2个字码匹配,则SC2272 做以下动作: a)当解码得到有“1”数据时,驱动相应的数据输出端为高电平; b)驱动VT (17脚)输出为高电平。 将SC2272与继电器结合就可以控制电灯、电扇等用电器的电源开关,再加上小型直流电动机就可控制窗帘等机械装置。 为了能使此遥控器控制电脑就须将红外信号送入主机内,有两种可行的接口,分别为电视卡的红外接收头和串口。 3.4.1电视卡的红外接收头 现在的电视卡很多都带有红外遥控器,这样的遥控器除了可以控制电视的播放外,通过适当的软件,它还可以控制音频、视频播放、图片浏览程序及电脑的关机等,实现真正的电脑遥控功能。这种方法的缺点是需要购买电视卡,成本较高,不予采用。 3.4.2 串口 现在流行的有半软半硬和全软两种方案,半软半硬方案在红外接收头与串口间加入了数据预处理电路,使数据符合串口规范,降低了编程难度,减少了 CPU占用率;而全软方案则是直接把红外接收头收到的数据送入串口,完全由软件处理,其编程难度和CPU占用率偏大,但硬件电路非常简单。图5是“软”方案的硬件电路。 图5.串行红外接口电路 由于目前应用串口的技术比较成熟,网上有很多现成的插件可以借鉴,因此我们决定采用串口的方式实现。 4 软件设计 4.1 液晶(LCD)驱动程序 我们采用89S51单片机来控制液晶屏,通过不断循环读取FPGA的状态编码来控制液晶显示器实时地刷新其显示内容,其中包括遥控系统当前所处的状态(是处于学习状态还是遥控状态)以及当前处理的对象类别和编号,防止用户由于不清楚当前遥控的对象而产生误操作,同时在每一个状态液晶屏都要提示用户下一步该如何操作,为用户提供一个十分人性化的使用界面,软件使用Keil C编写。其程序流程如图6所示。 图6.LCD显示软件流程 4.2 Girder程序 Girder是一款完全免费的软件,从本质上说它可接收来自任何输入设备的指令,识别后做事先定义好的动作,如启动某个程序或鼠标双击等。首先要设置好硬件,从网上下载串口驱动文件IgorPlug.dll拷贝到Girder目录下的子目录Plugins中。Girder软件的界面如图7。 进入“filesettings”,点击选项卡上的“Plugins”,找到滚动窗口中的“Igor SFH-56 device”,在它前面的小框中打上勾,再点击左边的“Setting”, 选择你所使用的串口,点击OK就可以通过串口来控制电脑了。 图7.Girder的主界面 对于像关机,关闭显示器等动作,Girder已经有设置好的现成的命令可用,对于一些较复杂的播放软件的控制可以通过简单的设置来完成。 5 关键技术--对编码信号的学习方法 红外遥控信号的编码方式多种多样,例如图8所示的是一种电视卡自带的遥控器的编码波形,它采用的是Space编码,前面9ms的脉冲加4ms低电平是引导码,中间是8位地址码00H、8位地址反码FFH、8位数据码E8H、8位数据反码17H,从引导码开始计时发送108ms后若按键仍没有松开则以后每隔108ms发送一个9ms高+2ms底+0.5ms高的重复简码,直到按键松开为止。 图8. 一种电视卡的遥控器编码波形 如果每一种遥控器都通过解码后存储“0”“1”的数字信号,那么解码的工作将是非常繁重而且不经济的,一个简单的方法是记录下波形中每个高低电平的宽度,使用时再按照原始形式将波形发射出去。 6 结语 智能家居各类产品的智能化加速必将推动家居产业发展,让我们共同期待,相信智能时代还会创造更多的智能奇迹,智能家居生活终会飞入寻常百姓家,普通百姓也能享受高科技时代下的智慧生活。
3.4 与主机接口
- 基于MSP430F149的无线遥控教鞭设计方案(07-05)
- DIY智能家居之多功能一体化触屏遥控器的设计实现(04-14)
- 七个经典的Arduino创意制作实例,有图有真相(软硬件资料齐全)(06-03)
- 全新物联网解决方案,可手机控制的健康饮水机智能控制系统完整方案(08-27)
- Nordic Semiconductor新智能遥控参考设计 结合无与伦比的语音输入性能和超低功耗特性(07-30)
- 十个中文例程教会你轻松上手制作Arduino智能小车(06-04)