一般来说,无线控制机器人采用电路,其缺点是工作范围、频率范围和控制范围有限。使用移动电话进行机器人控制可以克服这些限制。它提供了鲁棒控制,工作范围大如服务提供商的覆盖范围,不干扰其他控制器和多达12个控制。
尽管机器人的外观和能力千差万别,但所有的机器人都有一个共同的特点,即在某种形式的控制下具有机械的、可移动的结构。机器人的控制包括三个遥远的阶段:感知、加工和动作。一般来说,传感器是安装在机器人上的传感器,处理由机器人上的传感器完成单片机任务是使用汽车或者一些其他的执行器。假设读者已经完成了这个项目如何开始使用AVR做了里面讨论的所有事情。
在项目中取放机扑是由一部手机控制的,它可以给连接在机器人上的手机打电话。在通话过程中,若按下任何一个按钮,另一端就会听到与该按钮相对应的“双音多频”(DTMF)基调。机器人通过堆叠在机器人体内的手机来接收这些声音。在DTMF译码芯片MT8870的帮助下,单片机对接收到的音频进行处理。这些集成电路向电机驱动电路发送信号l293d它驱动电机在前进,后退,左,右,拾取,释放,上,下,左旋转,右旋转方向。
图1:移动操作拣放机器人样机
这个机器人的重要组成部分是一个DTMF解码、单片机和电机驱动。本文采用了CM8870系列DTMF解码器。所有类型的CM8870系列使用数字计数技术检测和解码所有16 DTMF音对成4位代码输出。内置的拨号音抑制电路消除了预滤波的需要。
在线路图atmega1616微控制器引脚9连接按钮重置。引脚10、30连接vcc +5v,引脚11、31连接GND。从DTMF解码器IC m8870输出引脚连接到非门IC74年ls04.从NOT门输出直接连接到atmega16引脚40,39,38,37。
输入信号在PORTA引脚40,39,38,37处被识别为有效的差分输入配置,正确的DTMF音的4位解码信号被传送到单片机。DTMF解码器的引脚11到引脚14连接到单片机的引脚(引脚40、39、38、37)。
图2:移动操作的拾取和放置机器人在行动的图像
的atmega16是一个8位微控制器,有64kb Flash微控制器和1kB RAM。它提供以下功能:64kb的片上Flash程序内存与ISP (In-System Programming)。
微控制器的输出通过电机驱动IC L293D给到电机。在这个项目中,有5个电机来控制取放机器人。两个电机用于移动机器人的前、后、左、右。这两个电机连接到微控制器引脚14到引脚17。如果二进制码0010,01000,0110,1000从DTMF解码IC接收到,并使用NOT GATES将这些码反转,这些码应用于微控制器引脚37到40。
当从DTMF接收到的代码为' 0010 '时,单片机按时钟方向驱动电机。两个马达,机器人向前移动。
如果从DTMF接收到的代码是“1000”,机器人将向后移动。如果从DTMF收到的代码是' 0100 ',电机1将是逆时针方向,电机2将是时钟方向,那么机器人将左转。
如果从DTMF收到的代码是' 0110 ',电机1将在时钟方向,电机2将在反时钟方向,那么机器人将右转。
其余3个电机用于机器人手臂控制。取放电机为1台,取放电机为2台nd电机用于机器人手臂上下方向的运动理查德·道金斯电机用于机械臂的顺时针和逆时针旋转。
为了拾取物体,电机驱动器连接在微控制器的引脚22、23处。机械臂为向上和向下方向,电机连接在引脚5,6处。所述手臂顺时针和逆时针方向旋转所述电机驱动器连接在引脚20、21处。
图3:安装在拾取和放置机器人上的机械臂的图像
细节
下表显示了操作机器人的代码。
关键 |
操作 |
1 |
选择的对象 |
2 |
机器人向前移动 |
3. |
释放对象 |
4 |
机器人左转 |
5 |
机械臂向上移动 |
6 |
机器人右转 |
7 |
机械臂顺时针方向旋转 |
8 |
机器人向后退 |
9 |
机械臂逆时针旋转 |
0 |
机械臂向下移动 |
# |
停止机器人的所有马达。 |
图4移动式拾取放置机器人框图
项目的主要部分是利用3个电机对机器人手臂进行机械布置。根据我们的设计,我们可以用4个或5个电机来开发机器人手臂。在这个项目中,我们只用了3个电机来控制机器人手臂。下图显示了机器人手臂的排列。
软件使用:
AVR STUDIO4软件生成十六进制文件.
普罗透斯用软件对电路进行仿真。
双音多频- DTMF
DTMF表示双音多频。DTMF是电话工业中使用的一个术语。当电话或移动电话上的任何键按下一个音调产生,它是可听到的,这是什么,但一个DTMF音。要从手机解码DTMF音,我们需要MT8870 DTMF解码IC, 3.5mm公母连接器。
图5:DTMF的表示图像
什么是DTMF代码?
当任意像“1”,“2”,“*”,“#”等键被按下时,就会传输特定的代码。该代码由两个频率组成,一个频率较高,另一个频率较低。下表显示了被尊重的键的频率组合。
图6:分别显示DTMF频率的键映射表
根据上表,“8”为低频852 Hz与高频1336 Hz的组合,“#”为低频941 Hz与高频1447 Hz的组合。这是关于DTMF代码的,现在让我们看看DTMF代码是如何在移动电话系统中生成,传输和解码的。这里我只是说说而已GSM系统.
DTMF解码代码:
当任何DTMF代码已收到的移动电话,它可以听到通过扬声器。解码DTMF代码演讲者输出它本身可以使用。扬声器的输出端连接到芯片MT8870上,该芯片是DTMF解码芯片,广泛用于DTMF解码。它给4比特数字输出Q1, q2, q3, q4,根据接收到的密钥。下表显示了每个键的等效数字输出。
图7:DTMF键对应的数字输出表
图8:基于AVR ATMega16的移动拣放机器人控制器电路PCB布局
项目源代码
####定义F_CPU 1000000 ul#include#include void main(void) {unsigned int k,h;DDRA = 0 x00;DDRB = 0 xff;DDRD = 0 xff;DDRC = 0 xff;而(1){k =~PINA;h = k & 0 x0f;switch (h) {case 0x01: {PORTC=0x01;//选择对象PORTB=0x00;PORTD = 0 x00;打破; } case 0x02: { PORTB=0x00; // moves forward direction PORTC=0x00; PORTD=0x09; break; } case 0x03: { PORTC=0x02; // releases the object PORTB=0x00; PORTD=0x00; break; } case 0x04: { PORTC=0x00; PORTB=0x00; PORTD=0x0A; // left turn break; } case 0x05: { PORTC=0x00; // arm rotation in left direction PORTB=0x00; PORTD=0x80; break; } case 0x06: { PORTC=0x00; PORTB=0x00; PORTD=0x05; // right turn break; } case 0x07: { PORTC=0x00; // arm moves up direction PORTD=0x00; PORTB=0x20; break; } case 0x08: { PORTC=0x00; // robot moves backward direction PORTB=0x00; PORTD=0x06; break; } case 0x09: { PORTD=0x00; // arm moves down direction PORTC=0x00; PORTB=0x10; break; } case 0x0A: { PORTC=0x00; // arm rotation in right direction PORTB=0x00; PORTD=0x40; break; } case 0x0B: { PORTB=0x00; // to stop the pick & place robot for all operations PORTD=0x00; PORTC=0X00; break; } default: { PORTD=0x00; PORTC=0x00; PORTB=0x00; } } } } ###
与本文相关的问题?询问并讨论EDAboard.com和Electro-Tech-Online.com论坛。
告诉我们你的想法!
你必须登录发表评论。