“自动感应门1”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 1000px;" |- | ==概述== 600px|center 做一个自动感应门,用两个红外反射传感器检测有人靠近...”)
 
模块清单
 
第27行: 第27行:
 
|[[Sensor-Servo Connector/zh|舵机转接板]]||1||舵机转接板
 
|[[Sensor-Servo Connector/zh|舵机转接板]]||1||舵机转接板
 
|-
 
|-
|[[Sensor-Line Finder/zh|红外反射传感器]]||2||检测物体
+
|[[Sensor-Line Finder/zh|灰度传感器]]||2||检测物体
 
|}
 
|}
  

2017年6月13日 (二) 03:48的最新版本

概述

Anywhere line door.jpg

做一个自动感应门,用两个红外反射传感器检测有人靠近,舵机控制开门。
适合套件:mCookie302


模块清单

模块

模块 数量 功能
mCookie-Core 1 核心板
电池盒 1 程序下载和供电模块
mCookie-Hub 1 传感器转接板
舵机 1 舵机
舵机转接板 1 舵机转接板
灰度传感器 2 检测物体

其他设备

  • USB数据线*1
  • 传感器连接线*3
  • 传感器外壳
  • 乐高或其它固定结构
Anywhere don't touch me-module.jpg

模块搭建

搭建

Anywhere don't touch me-step.jpg
  • 将模块和传感器组装起来:
    • 将红色的核心模块,电池底座与绿色的扩展模块吸在一起;
    • 将舵机转接板连接在Hub的6/7管脚;
    • 将舵机连接在舵机转接板的1管脚(下面三个插针);
    • 将红外反射传感器连接在Hub的A0/A1、A2/A3管脚。
    • 将USB连接线一端插入电池底座,另一端连接电脑;

编程

使用的程序块


编程思路

自动门内外两侧分别检测距离,A或B的距离小于790(任何一侧有人接近),自动开门,同时延时2秒等待行人通过。A和B的距离均大于800(门两侧都没人)则关门。

Mixly-ctrl-line door.jpg

开始编程

1、读取两个红外反射传感器距离并存储
变量A用来存储一侧红外反射传感器的值,变量B用来存储另一侧红外反射传感器的值,将A2管脚红外反射传感器的值存入变量A,将A0管脚红外反射传感器的值存入变量B。

Mixly-ctrl-line door-code.jpg

2、判断任意一侧有人接近则开门
A或B的距离小于790(任何一侧有人接近)。 舵机转到10度,速度50度/秒(慢慢开门)。 延时2秒等待行人通过。

Mixly-ctrl-line door-code1.jpg

3、判断两侧都没人则关门 A和B的距离均大于800(门两侧都没人)。 舵机转到170度,速度50度/秒(慢慢关门)。

Mixly-ctrl-line door-code2.jpg



测试结果
当没有人靠近门口时,舵机处于关门状态;有人靠近门口时,舵机转为开门状态。
将两个红外反射传感器分别安装在门的两侧,用乐高搭建自动门外型。铁丝固定在舵机摇臂上,摇臂转到170度时关门,摇臂转动到10度时开门。

Anywhere line door.jpg



Q:有个问题?如果人恰好站在门框里,传感器是探测不到的,这时关门会夹到人,能不能加个关门提醒呢?
A:可以呀,用蜂鸣器或者灯都能提醒。

声明及赋值,有人接近,舵机控制开门
彩灯准备。 door变量用来记录门的开闭状态。 door赋值为1(门开了)。

Mixly-ctrl-don't touch me-code3.jpg

门两侧没人,关门并点亮关门指示灯
如果door等于1(门是开着的)则执行内部程序。 door赋值为0(门关了)。 红灯闪烁3次(关门前提醒)。

Mixly-ctrl-don't touch me-code4.jpg

技术规范

相关案例

Q&A