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

基于DTMF的移动控制机器人设计实例

本文概述

通常, 无线控制机器人使用RF电路, 其缺点是频率范围有限, 工作范围有限和控制受限。

在机器人控制中使用手机可以克服这些限制。它具有工作范围与服务提供商的覆盖范围一样大, 控制可靠, 不会与其他控制器发生干扰的优点。


工作中

在基于DTMF的移动/手机控制机器人中, AVR ATmega16微控制器与键盘一起用作输入设备, 以在各个方向上驱动机器人。

在该项目中, 使用了两个手机, 一个将与DTMF电路连接, 另一个将用于呼叫与DTMF电路相连的手机。

ATmega16微控制器读取DTMF解码器的4位输出信号, 并将处理该信号以确定移动键盘的哪个键被按下, ATmega16微控制器将控制信号发送到机器人的直流电动机驱动器(L293D)以驱动机器人机器人朝所需方向移动。

下表显示了不同的控制键及其等效的机器人方向:

Robot Direction 控制键
Forward 2
Left 4
Right 6
Backward 8
Stop 5

框图:

方框图1

考虑显示键盘不同键的双音多频(DTMF)表格如下:

方框图2

所需硬件

  • 12V, 1A DC适配器1件
  • DTMF解码器1件
  • AVR微控制器板1件
  • 直流电动机驱动器1件
  • AVR USB Programmer-1件
  • 带连接器的入耳式电话-1件
  • 1对1连接器-15件
  • 10至10 FRC母连接器3件
  • 机器人1件

所需软件

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

电路图

方框图3

施工

方框图4

源代码:

$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 A As Bit , B As Bit , C As Bit , D As Bit
Do
Cls
A = Pinc.0
B = Pinc.1
C = Pinc.2
D = Pinc.3
Lcd A ; B ; C ; D
Lowerline
If A = 0 And B = 0 And C = 1 And D = 0 Then
Pwm1a = 100
Portd.6 = 0
Pwm1b = 100
Portd.3 = 0
Elseif A = 0 And B = 1 And C = 0 And D = 0 Then
Pwm1a = 100
Portd.6 = 0
Pwm1b = 0
Portd.3 = 0
Elseif A = 0 And B = 1 And C = 1 And D = 0 Then
Pwm1a = 0
Portd.6 = 0
Pwm1b = 100
Portd.3 = 0
Elseif A = 1 And B = 0 And C = 0 And D = 0 Then
Pwm1a = 55
Portd.6 = 1
Pwm1b = 55
Portd.3 = 1
End If
Wait 1
  Loop

End

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

方框图5
赞(0) 打赏
未经允许不得转载:srcmini » 基于DTMF的移动控制机器人设计实例
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

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

微信扫一扫打赏