用AVR单片机创造机器生命

发布者:声慢慢最新更新时间:2015-07-16 来源: 51hei关键字:AVR单片机  机器生命 手机看文章 扫描二维码
随时随地手机看文章
1 什么是机器生命
       机器生命就是一个能自主生存的机器,一个自动为生存下去而奋斗的机器。对于机器生命来说,生存的含义就是不断电,继续运行。机器生命具有完全自主决策、自主行动、活动于未知世界、不需人类参与就能持续运行并且自我维护等特征。影片《终结者》中的天网就是超级机器生命。《霹雳5号》描述了一个机器人从无生命到有生命的过程。
       N.维纳(Norbert Wiener,1894~1964)写《控制论》时创造出第一个机器生命Wiener龟,这个机器龟仅有2个电子管组成的模拟计算机,但它却能实现真正的乌龟觅食、睡觉、探索、逃避等行为,其表现如同一个有生命的生物一样。机器龟上面有太阳能电池,当自身电池快用完前,机器龟乐于寻找一个光线充足的地方充电,充满电后可能找个地方睡懒觉,或者探索未知世界,它有避免碰撞和避免到倾斜地方的趋向,我们无法预知它的行踪,因为它不是按照程序运行的,就如同我们自己一样。后来维纳在他的机器龟上又加了一个电子管,三个电子管连接成简单的神经网络,通过对机器龟训练,维纳通过摇铃可控制机器龟的行为。正如有生物学家训练狗使得狗听到摇铃声后就流口水。



2 我们可以自己动手做一个机器宠物
       我们今天有先进的单片机,制作一个更好的机器生命其实不难。机器生命远比按固定程序运行的机器人好玩,就如同宠物狗比玩具狗好玩一样。我们设想的机器生命可以是一个小型履带式机器人,带有太阳能板,能感受光线强弱,障碍物距离和碰撞,为了实现人机互动,该机器生命具有语音识别功能。试想你学习一天,回到寝室,叫一声TONY,你的机器宠物转身飞快跑向你,那种感觉只有宠物的创造者才能体会……


3 如何实现?如何设计电路?如何设计结构?
       这个机器生命方案采用ATmega16单片机做控制器,单片机的8路AD通道和其余24个IO接口都被使用。AVR单片机AD转换频率高于音频,可以用来进行简单的语音采集。机器生命的程序较复杂,而AVR单片机适合进行快速复杂运算。本设计的电路板上除了ATmega16单片机外,还有2个LG9110电机驱动芯片、2个LM386音频功放芯片,和LM393电压比较器芯片,再加上少量电阻电容和三极管,电路简洁,适合初学者和中级爱好者动手制作。
       LCD采用通用1602模块,支持3位控制线4位数据线,如果你采用IO口复用技术,可用6条线控制LCD模块。
       此方案涉及光电检测、自动充电、语音识别、超声波测距、键盘(4个碰撞开关)、LCD液晶显示、电机驱动等技术,这些都是动手做简单机器人的基本技术,如果爱好者能把这个机器生命做好,那么你的电路设计、调试经验和编程能力都会有很大的提高。
       这个机器生命的技术含量相当于20世纪70年代国际机器人领域的先进水平。当时已经有很多非常精密和复杂的工业机器人被应用,但这种简单的机器人怎么能称作先进呢?因为技术的复杂和技术的先进不是一个概念,复杂+精密不一定等于先进。先进的东西不一定复杂和精密。



A 寻光 
       我们可以用光电二极管来检测光线强弱。当然也可以用光敏电阻。将光敏电阻和一个固定电阻串联接在电源正负极之间,光敏电阻*近正极一侧。从光敏电阻和固定电阻连接点引出导线接到ATmega16的AD转换输入口。当强光照在光敏电阻时,光敏电阻阻值变小,因此其压降变小,而固定电阻分压增多,引出的AD检测电位升高,被单片机转化为数字量后判断光线增强。机器生命有5个光电传感器,其中4个面向机器人前后左右四个方向,另一个指向太阳能板所面对的方向。通过编程可以让机器人自主移动到光线最强的地方。
B 充电 
       本设计采用4.8V镍氢充电电池为系统供电。太阳能电池板正负极通过一个三极管与电池正负极相连。有一个电压比较器比较电池电压与太阳能板的压差,如果压差高于某值,比较器控制三极管导通,太阳能电池板对充电电池充电。充电电池电压上升,当高于某值时控制三极管关断,结束充电。为使太阳能板能对电池组充电,要求太阳能板在阳光直射下输出电压高于8V。



C 语音识别
       用AVR单片机的高速AD检测功能能实现简单的语音识别。声音信号被驻极体电容话筒接收后送至LM386音频功放芯片放大和过滤后送至单片机AD转换口,单片机对音频信号幅值采样转化为一组数字,然后对这组进行取方差运算,得出一个特征值,该特征值可以用于简单的语音识别。比如你发一个“e”,方差应该比较小,如果你发“p”爆破音,方差应该较大。当然,如果你用更复杂的数据处理,会得到更好的识别效果。本设计使用了2路声音信号,目的是让单片机判断出声源的大体方位。
D 超声波测距 
       用AVR的1个IO口输出40KHz信号送至超声波发射电路,当超声波遇到障碍物返回后,被超声波接收头接收,信号经CX20106A解码芯片处理,得到一个低电平脉冲,用该脉冲引发AVR单片机中断,AVR通过检查发波和收到回波之间的时间差即可算出障碍物距离。
E 电机驱动
       本设计采用2片LG9110电机驱动芯片驱动两台直流减速电机。LG9110输出最大电流为800mA,仅需要2条控制线与单片机IO口直接相连即可控制一台电机正反转或者停止。LG9110仅有8个引脚,使用非常方便。
F 让机器生命更聪明
       我的这个机器生命设计方案能实现最酷的效果是:白天,阳光明媚,机器生命跑到阳光底下晒太阳,太阳光会随着时间变化,机器生命能自动跑到最合适的位置享受日光浴。到了晚上,机器生命会找个安静的地方闭目养神,等待明天太阳升起。你可以训练机器生命,让它知道自己的名字叫什么。比如你叫着它的名字,同时站在它面前用强光照射它的太阳能电池板,如此反复训练,会使机器生命听到自己名字后向声源方向跑去,在距离声源一定远处停止,因为以往这样做它都能享受强光照射并充电。这就如同真正的宠物狗,你叫它名字它就跑到你跟前希望能获得食物。这一切都是完全能够实现的,关键就在于编程序实现它。
G 想象无极限,你的机器宠物将无所不能
       以上方案中,ATmega16的功能被发挥到极致,以至于没有空闲的IO口,系统不能再扩展了。如果你用ATmega128单片机做,那么它拥有53个IO口,30多个中断,128Kb的程序存储器,4Kb的RAM,使得你能编写更复杂的程序、储存更多的动态数据、连接更多的外设,你的机器生命将变得非常有生命力。比如加入三轴加速度传感器、地磁传感器、GPS定位、雨水传感器甚至摄像头、无线通信模块等,重新设计一个坚固和强劲的底盘,你的机器生命就可以在室外自由探索了。
        以上芯片外设来源说明:在淘宝上购买很容易
        底盘:340元的高级履带式1:16电动坦克模型
        加速度传感器、地磁传感器:美国AD公司的40元ADXL330加速度传感器
        GPS定位:几十元的车载外置GPS天线
最后,我想说,机器人是非常好玩的,只要你有想象力,有毅力,努力研究实践就能创造奇迹。
关键字:AVR单片机  机器生命 引用地址:用AVR单片机创造机器生命

上一篇:嵌入式电网分析仪中双CPU间的通信
下一篇:AVR单片机4位数码管计数C程序

推荐阅读最新更新时间:2024-03-16 14:25

详解avr单片机的io原理及作用
为搞清IO结构,首先看看上拉和下拉电阻的作用。 一、上拉电阻 上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!下拉同理! 上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流。 1、在用TTL电路驱动CMOS电路时,若TTL的高电平低于CMOS要求的高电平的门限值(1,TTL电平: 输出高电平 2.4V,输出低电平 0.4V。在室温下,一般输出高电平是3.5V,输出低电平 是0.2V。最小输入高电平和低电平:输入高电平 =2.0V,输入低电平 =0.8V,噪声容限是 0.4V。 2,CMOS电平: 1逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很
[单片机]
详解<font color='red'>avr单片机</font>的io原理及作用
实现AVR单片机芯片程序自刷 USB_Flash_BootLoader HID制作过程
前期制作USBASP过程中,学习了AVR单片机芯片的BootLoader原理,查找了很多关于USB-HID和BootLoader的资料制作了可以自刷程序的atmega8(16)简易板,现将所学的分享给大家。 一、关于BootLoader BootLoader是芯片上电后,程序不从flash地址的0x00执行,而是跳转到boot区执行bootloader程序。 atmega8的boot区的大小及起始位置是由其熔丝位来设置(BOOTSZ0、BOOTSZ1)的。 其是否执行bootloader程序也是由熔丝位(BOOTRST)设置的。 二、关于USB-HID HID是人体学输入设备的英文简称,由于
[单片机]
实现<font color='red'>AVR单片机</font>芯片程序自刷 USB_Flash_BootLoader HID制作过程
AVR单片机(学习ing)—(四)、ATMEGA16的定时/计数器—03
四、ATMEGA16的定时/计数器 四—(03)、PWM测试实验 手控PWM测试实验 定时器T2通过比较寄存器OCR2后从OC2脚(PD7)输出PWM信号,从000~255共分256级,对应的输出电压为0.00~5.00V 下面是图片~原理以前早就说过了~~不再赘述~~ 然后就是程序: 不过从现在开始使用模块化变成了~~你懂得,为的就是用起来方便~~ 这里是主函数: //------------------------------------------------------------------------------ //手控PWM测试实验 //定时器T2通过比较寄存器OCR2后从OC2脚(PD7)输出PWM
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(四)、ATMEGA16的定时/计数器—03
AVR单片机的复位操作方法解析
采用了在ATmega16引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回路,并配合片内的OSC(Oscillator)振荡电路构成的振荡源作为系统时钟源的。更简单的电路是直接使用片内的4M的RC振荡源,这样就可以将C1、C2、R2和4M晶体省掉,引脚XTAL1和XTAL2悬空,当然此时系统时钟频率精准度不如采用外部晶体的方式,而且也易受到温度变化的影响。 AVR的复位源和复位方式: 复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其它内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。 AVR单片机的复位操作,其主要功能是把程序计数器PC初始化为$0000(指
[单片机]
<font color='red'>AVR单片机</font>的复位操作方法解析
基于AVR单片机的直线开关磁阻电机高精度位置控制
一、项目概述 1.1 引言 电机是工业生产不可缺少的动力设备,电机的品种很多,作用也相当广泛。直线开关磁阻电机时一种新型的牵引电机。其主要有以下优点:结构简单,制作成本不高。工作稳定且能够在恶劣的环境下长时间正常工作,比如高温环境,开关磁阻电机有较好的散热性能,可以在高温下正常工作。随着电力电子技术的发展,开关磁阻电机控制将会变得更加容易并且控制效果更好。这种电机启动转矩大,过载能力强,调速范围广。直线开关磁阻电机除了具有以上优点以外,在一些需要做直线运动的场合,它显示出了强大的优越性:再也不需要像传统的做直线运动的装置那样,通过丝杆等传动装置将旋转的运动转化为直线运动。这样再一次的将中间环节给节省下来了,不仅降低了设备的成本
[单片机]
基于<font color='red'>AVR单片机</font>的直线开关磁阻电机高精度位置控制
AVR单片机1602液晶程序
端口定义在程序里面采用8位数据模式,程序测试通过. #include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #pragma data:code uchar shu; const uchar table ={ yinqing@163.com }; const uchar table1 ={ www.51hei.com }; /**********************************/ /************延时子程序************/ /*****************
[单片机]
基于AVR单片机的语音识别系统设计方案
引言 传统的人机交互依靠复杂的键盘或按钮来实现,随着科技的发展,一些新型的人机交互方式也随之诞生,带给人们全新的体验。基于语音识别的人机交互方式是目前热门的技术之一。但是语音识别功能算法复杂、计算量大,一般在计算机上实现,即使是嵌入式方面,多数方案也需要运算能力强的ARM或 DSP ,并且外扩RAM、FLASH等资源,增加了硬件成本,这些特点无疑限制了语音识别技术的应用,尤其是嵌入式领域。 本系统采用的主控MCU为Atmel公司的ATMEGA128,语音识别功能则采用ICRoute公司的单芯片LD3320。LD3320内部集成优化过的语音识别算法,无需外部FLASH,RAM资源,可以很好地完成非特定人的语音识别任务。
[单片机]
基于<font color='red'>AVR单片机</font>的语音识别系统设计方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved