本文概述
- 工作中
- 所需硬件
- 所需软件
- 电路图
- 施工
在机器人控制中使用手机可以克服这些限制。它具有工作范围与服务提供商的覆盖范围一样大, 控制可靠, 不会与其他控制器发生干扰的优点。
工作中 在基于DTMF的移动/手机控制机器人中, AVR ATmega16微控制器与键盘一起用作输入设备, 以在各个方向上驱动机器人。
在该项目中, 使用了两个手机, 一个将与DTMF电路连接, 另一个将用于呼叫与DTMF电路相连的手机。
ATmega16微控制器读取DTMF解码器的4位输出信号, 并将处理该信号以确定移动键盘的哪个键被按下, ATmega16微控制器将控制信号发送到机器人的直流电动机驱动器(L293D)以驱动机器人机器人朝所需方向移动。
下表显示了不同的控制键及其等效的机器人方向:
Robot Direction | 控制键 |
---|---|
Forward | 2 |
Left | 4 |
Right | 6 |
Backward | 8 |
Stop | 5 |
文章图片
考虑显示键盘不同键的双音多频(DTMF)表格如下:
文章图片
所需硬件
- 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驱动程序
文章图片
施工
文章图片
源代码:
$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
LoopEnd
【基于DTMF的移动控制机器人设计实例】下图显示了使用BASCOM-AVR集成开发环境(IDE)的手势控制机器人中使用的源代码的屏幕截图:
文章图片
推荐阅读
- 直线跟随机器人设计实例
- 机器人的组成介绍
- 人工智能研究领域介绍
- 机器人和人工智能概念介绍
- 'Specifying a namespace in include() without providing an app_name '
- App 上架遇到的坑
- AppBoxFuture: 集成第三方Sql数据库
- How to handle Appsettings for .net core 3.1 self contained single file publish
- Android 开发技术周报 Issue#278