别摸我!摇摆机器人

来自Microduino Wikipedia
跳转至: 导航搜索

概述

Anywhere don't touch me.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连接线一端插入电池底座,另一端连接电脑;

编程

使用的程序块


编程思路

通过比较两侧传感器的距离值,两者进行比较,左侧障碍物距离更近,则舵机向右转,右侧障碍物距离更近,则舵机向左转。其他情况舵机保持中间位置。

Mixly-ctrl-don't touch me.jpg

开始编程

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

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

2、判断哪个方向有物体靠近并控制舵机躲避
如果R减去L的结果大于100(左侧障碍物距离更近)。 舵机转到60度(向右扭头躲避)。
如果L减去R的结果大于100(右侧障碍物距离更近)。 舵机转到120度(向左扭头躲避)。
否则舵机转到90度(头部竖直)。

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



测试结果
上传成功后,没有物体靠近时舵机在90度(中间)位置,物体靠近A0管脚的红外反射传感器,舵机转到60度(向右)位置,物体靠近A2管脚的红外反射传感器,舵机转到120度(向左)位置。

Anywhere don't touch me.jpg



Q:我感觉机器人躲闪速度很慢,如何能加快机器人的闪避速度呢?
A:我们可以将舵机的转速改为100,这样机器人的闪避速度就加快啦。

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

技术规范

相关案例

Q&A