做一个“挥手机器人”

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:xie_e
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  “挥手机器人”的想法源自于大脑突然闪过的一个灵感,即当用户举手挥动手臂的时候,机器人也会跟着一起挥手,且挥手的方向保持一致,就像跟机器人一起参加演唱会一样。
  工作原理
  每一款手机都会自带一个加速度传感器,即陀螺仪。加速度传感器可以感知手机当前所处状态的X、Y、Z轴的3个分量的加速度,图1为手机平放时X、Y、Z轴加速度分量的方向。
  当手机摇晃的时候,X、Y、Z轴上的3个加速度分量会发生相应的变化,如下页表1所示。当然,表中的这些数据是根据我们的手机测试出来的,不同的手机,测出来的数据未必一样。
  其实我们只需要手机在垂直状态下左右摇晃的传感器数据,从中我们可以发现,手机向左或向右摇晃,与X轴加速度分量的变化是一一对应的,因此可以根据X轴加速度分量的变化判断手机摇晃的方向,如表2所示。
  怎么知道手机的运动方向呢?很简单,只要隔一定的时间,获取传感器数值,然后相减,根据结果进行判断。具体如下:
  定义:Xq为前一位置X轴加速度分量,Xh为当前位置X轴加速度分量。
  若Xh-Xq>0,则手机向左摇晃;反之Xh-Xq<0,则手机向右摇晃。
  材料选择
  根据需求,“挥手机器人”若要根据手机的挥动控制机器人执行“挥手”动作,则手机与机器人间需要通讯模块;而机器人执行“挥手”动作,则需要一个控制器及舵机等执行模块。
  手机与机器人之间的通讯方式有很多,我们选择了最常见的一种通讯方式——蓝牙。手机在挥动时,通过手机的蓝牙通讯模块将相应的指令(如“L”,即向左挥手)发送给“挥手机器人”的控制器;控制器根据接收到的指令对“挥手机器人”的执行模块舵机做出相应的动作。
  制作本作品所需要的材料及其说明,如表3所示。
  结构搭建
  “挥手机器人”的结构一定要稳固,不然在执行“挥手”动作时,会影响“挥手机器人”的平衡。
  搭建机器人“骨架”结构时,我们采用轻巧且又便宜的亚克力板,用激光切割机进行切割。利用这些板子和螺丝螺母,我们很快完成了“挥手机器人”的“骨架”,并将Arduino Uno控制板、蓝牙通讯模块、舵机安装在机器人“骨架”上,效果如图2所示。
  代码编程
  1.安卓手机App编程
  手机若要与Arduino Uno控制板相互通信,则需要借助蓝牙通讯等方式进行。App Inventor支持传感器编程和蓝牙通讯,利用这一图形化编程平台,就能制作一个专用的App应用程序。下页图3所示为App的界面设计与组件使用情况。
  根据表2所示,根据手机当前摇晃位置与前一位置的X轴加速度分量的值可以判断手机摇晃的方向,因此手机App应用程序只需向Arduino Uno控制板发送“L”或“R”字符,分别表示“向左”或“向右”的舵机控制指令,具体编程代码如下页图4所示。
  调用App中的蓝牙客户端给Arduino Uno控制板发送“L”或“R”字符指令时,蓝牙通讯模块须处于连接状态,否则提示错误;具体编程代码如图5所示。
  2.“挥手机器人”控制端编程
  当Arduino Uno控制板通过蓝牙通讯模块接收到字符“L”时,则执行舵机转向45度,即机器人手臂向左摆动;若蓝牙通讯模块接收到的字符为“R”,则执行舵机转向135度,即机器人手臂向右摆动。具体代码如下:
  #include
  Servo serpin;
  unsigned char resaveChar;
  void setup() {
  Serial.begin(9600);
  serpin.attach(9);
  serpin.write(90);
  }
  void loop() {
  if(Serial.available()){
  resaveChar=Serial.read();
  if(resaveChar==’R’){
  serpin.write(135);
  delay(100);
  }
  if(resaveChar==’L’){
  serpin.write(45);
  delay(100);
  }
  }
  }
  造型制作
  “挥手机器人”的外观有些单一,为了赋予“挥手机器人”以人的形象。我们利用卡纸为“挥手机器人”做了一件外衣,同时为它用超轻粘土捏了一个头像和两只手。
  运行效果
  手机App的运行与“挥手机器人”的工作效果如图6所示。需要说明的是,我们还在这个机器人上安装了3个红外测障传感器,在没有手机的情况下,也能感测到我们的手势,实现同步挥手。
  借助“挥手机器人”的案例制作,我们初步实现了用手机App控制Arduino硬件设备中的舵机模块。除此之外,还可以尝试用手机App控制更多的Arduino执行模块,如蜂鸣器、LED灯、继电器、电机等,那将会更加有趣。
其他文献
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊
期刊
电子政务的实施使得政府事务变得公开、高效、透明、廉洁和信息共享,与此同时,也使得政务信息系统安全问题更加突出和严重,影响电子政务信息系统功能的发挥,甚至对政府部门和社会公众产生危害,严重的还将对国家信息安全乃至国家安全产生威胁。保证电子政务安全运行是电子政务构建与运作过程中的首要问题和核心问题。
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊
期刊
选育工作--被忽视的养殖技术,适用于任何规模养殖场提高经济效益。   大约1975年水产养殖领域方才开始进行商业育种,较畜牧稍落后。经相关研究机构估计,当前仅不到15%水产养
随着我国建筑行业的不断发展,建筑技术尤其是深基坑支护技术有了明显提高,让整个建筑工程的质量有了更大的保障,在给人们带来安全感的同时也提升了建筑企业的经济效益,并且反
BIM的全称是Building Information Modeling,意思是建筑信息模型,这一模型是利用建筑物的全部信息,在电脑中所建立起来的模型.BIM技术中所包含的各个数据都将在建设的整个过
本科毕业设计是普通高等学校本科教育的最后关键一环,是检查本科教学质量、衡量人才培养目标的评价指标之一。本文分析了当前计算机毕业设计过程存在的关键问题,针对性地提出
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊