本文概述
通常, 无线控制机器人使用RF电路, 其缺点是频率范围有限, 工作范围有限和控制受限。
在机器人控制中使用手机可以克服这些限制。它具有工作范围与服务提供商的覆盖范围一样大, 控制可靠, 不会与其他控制器发生干扰的优点。
工作中
在基于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
Loop
End
下图显示了使用BASCOM-AVR集成开发环境(IDE)的手势控制机器人中使用的源代码的屏幕截图:
评论前必须登录!
注册