个性化阅读
专注于IT技术分析

手势控制机器人设计实例

本文概述

在控制机器人的许多应用中, 当涉及到具有远程或许多不同开关的控制机器人的一部分时, 这是相当困难和复杂的。在该领域中的工业机器人, 外科手术的医学应用, 军事应用中, 用开关或遥控器控制机器人或机器非常复杂。因此, 引入了一种新概念来通过手的运动来控制机器, 这将同时控制机器人的位置和运动。


工作中

为了设计基于加速度计的手势控制机器人, 使用了AVR ATmega16微控制器。在此, 我们将手势用作输入信号, 以在各种方向上驱动机器人, 并且机器人的运动方向显示在16X2字母数字LCD上。

根据手势, ATmega16微控制器将向机器人的直流电动机驱动器(L293D)发送所需的信号, 以沿所需方向驱动机器人。

机器人的控制手势为向右倾斜, 向左倾斜, 向前倾斜, 向后倾斜和无倾斜, 以分别沿向右, 向左, 向前, 向后方向驱动机器人并使其停止。现在, 向各个方向倾斜你的手, 并根据需要驱动机器人。

机器人方向 控制手势
Forward 前倾
Left Left Tilt
Right Right Tilt
Backward 向后倾斜
Stop no Tilt

所需硬件

  • 12V, 1A DC适配器1件
  • 三轴加速度传感器1个
  • AVR微控制器板1件
  • 直流电动机驱动器1件
  • AVR USB Programmer-1件
  • 16X2字母数字LCD-1件
  • 1对1连接器-15件
  • 10至10 FRC母连接器3件
  • 机器人1件

所需软件

  • BASCOM-AVR集成开发环境(IDE)
  • AVRDUDE-GUI
  • WinAVR-2010
  • USBasp驱动程序

加速度传感器

加速度传感器用于测量加速度和倾斜度。加速度计是用于测量加速度的设备。

影响加速度计的两种力是:

  • 静力-这是任何两个对象之间的摩擦力。通过测量该重力, 我们可以确定机器人倾斜了多少。此测量对于平衡机器人或确定机器人是在平坦表面还是在上坡行驶非常有用。
  • 动态力-它是移动物体所需的加速度。使用加速度计测量动态力可以说明机器人移动的速度/速度。

加速度计具有不同的配置。请始终使用最适合你的机器人的机器人。选择加速度计之前需要考虑以下因素:-

  1. 灵敏度
  2. 带宽
  3. 输出类型:模拟或数字
  4. 轴数:1, 2或3

考虑基本加速度计的示意图:

手势控制机器人

在加速度传感器中, 集成电路(IC)有6针可用:

  • X:在此引脚上, 我们将接收用于x方向移动的模拟数据。
  • Y:在此引脚上, 我们将接收用于y方向运动的模拟数据。
  • Z:在此引脚上, 我们将接收z方向运动的模拟数据。
  • VDD:在该引脚上施加+ 5V。
  • GND:在该引脚上接地。
  • ST:使用此引脚将加速度计的灵敏度设置为1.5g / 2g / 3g / 4g。
手势控制机器人2

变送器框图

考虑发射机电路的框图:

手势控制机器人3

接收器框图

考虑接收器电路的框图:

手势控制机器人4

施工

手势控制机器人5

源代码:

$regfile = "m16def.dat".
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Start Timer1
Dim X As Integer , Y As Integer
Do
Cls
X = Getadc(0)
Y = Getadc(1)
Lcd X
Lowerline
Lcd Y
Wait 1
Cls
If Y > 350 Then
Lcd "fwd"
Pwm1a = 200
Portd.6 = 0
Pwm1b = 200
Portd.3 = 0
Elseif Y < 300 Then
Lcd "backward"
Pwm1a = 55
Portd.6 = 1
Pwm1b = 55
Portd.3 = 1
End If
If X > 350 Then
Lcd "right"
Pwm1a = 0
Portd.6 = 0
Pwm1b = 200
Portd.3 = 0
Elseif X < 300 Then
Lcd "left"
Pwm1a = 100
Portd.6 = 0
Pwm1b = 0
Portd.3 = 0
End If
  Loop
End

下图显示了使用BASCOM-AVR集成开发环境(IDE)的手势控制机器人中使用的源代码的屏幕截图:

手势控制机器人6
赞(0) 打赏
未经允许不得转载:srcmini » 手势控制机器人设计实例
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏