上次,我们分享了双层车库的搭建步骤【没车不要紧,先拼个智能车库吧】,但只有外观仍然不能实现车库实现自动化运行,为了让小小停车库变得更智能,我们采用了米兔积木机器人拓展包颜色传感器,并通过米兔积木机器人主控的编程来实现双层车库的自动运行。
我们使用传感器作为输入设备,负责给主控发送需要几号车位(红色为1号,白色为2号,黑色为3号,这里只考虑上层1、2、3号车位取车的情况,因为下层车可以直接开走),为了让主控每次开机时知道自己是什么状态,每次完成动作后都恢复0号位(开机后初始状态默认0号位:1、2、3号全部在上层,下层中间为空位的状态,开机后初始状态),传感器识别红色时,执行左下车位向右移动,而后1号车位下降的动作,延迟5秒后执行相反的动作恢复至0号位,传感器识别白色时,执行2号车位下降动作,完成后延时5秒,执行相反的动作恢复至0号位,传感器识别黑色时,执行右下车位向左移动,而后1号车位下降的动作,完成后延时5秒,执行相反的动作恢复至0号位。我们还可以加上点音乐来声情并茂,开机后播放“门铃”,接收到动作命令播放“警报”,车位移动时播放机器人“加速”、“变形”,动作完成后播放“激光”,等待时间播放“唱歌”。最终,我们将编程的代码制作成如下版本:
程序调试:连接打开颜色传感器(参照说明书连接),完成编程后安下开始,车库不停的播放门铃,我们用红、白、黑卡片靠近颜色传感器去“刷卡”试一试吧(颜色卡片自行制作,做好以后用传感器先模拟识别测试好,可以在APP传感器注册界面测试)。
每次恢复0号位是不是很麻烦?如果你有3个传感器,那么你就能解决这个问题,让主控知道现在几号车位在下面,省去了复位的操作,只需要定义一个位置变量A,开机后通过传感器的灰度模式综合判断当前状态,使变量A=对应1、2、3号位置,达到初始化的目的,而后再循环判断执行1号位到2、3号位,2号位到1、3号位,3号位到1、2号的动作,动作完成后使变量A=完成后的位置号,这样就不需要每次都复位了(或者将判断位置的程序放入循环里面,主控自动判断变量A)。
三个传感器自动识别外形样式
原理说明:
使用一个传感器模拟刷卡,两个传感器使用灰度值判断下层车位的位置,左侧灰度大于90为3号,右侧灰度大于90为1号,两侧都大于为2号(灰度受环境影响,存在误差,依据实测取值)。
执行命令部分先判断刷卡请求,再判断不同位置的动作,双层条件判断模式,可以重复的动作统一执行,节省代码行。
如果你有传感器开发板,可以用开发板当做主控来执行判断程序,采用C语言编程,不用担心代码行数不够了,使用开发板的通讯功能可以与主控实时通讯,实现控制电机动作、播放音乐、接收传感器输入数值(可以接6个,一个读卡,5个检测位置,可实现限位停止、初始化自动复位等功能),还可以增加状态灯光指示(如流水灯、位置提示灯、警报灯等各种变换),(代码省略,有开发板的可以参考开发板示例水果琴、跑马灯等实例。)
如果你还不满足,可以通过开发板加装无线模块实现和小爱音响的互动,通过小爱的语音自定义控制功能来控制车库。具体参照西红柿炖番茄大神的教程,奉上友情链接搭建一个可以使用小爱控制的车库。
开发板安装的流水灯
传感器开发板及外壳