可播放语音的红外遥控小车(OUR ROBOT 1试验车型)-6楼公布原理图和程序
由于这段时间工作很忙,OUR ROBOT 1号的研发工作一直搁浅。最近利用指导本科毕业生毕业设计的机会,和漂亮的毕业生陈MM一起制作了一辆可播放语音的红外遥控小车,也算是把OUR ROBOT 1号的一些核心部件进行了实际组装测试,收获颇多,先看看照片吧。1、洞洞板子的最后检查。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118091.jpg
2、小车正面。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118092.jpg
3、后侧面。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118093.jpg
4、正后方。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118094.jpg
5、前侧面。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118095.jpg
6、再来一张。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118096.jpg
7、俯视。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118097.jpg
8、板子。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118098.jpg
9、大脑:MEGA8L。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118099.jpg
10、主力:L298N。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118100.jpg
11、嗓子:PM5020。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118101.jpg
12、眼睛:红外一体化接受头。
http://cache.amobbs.com/bbs_upload782111/files_6/armok01118102.jpg
小车运行中的视频:(因为摄像时声音较小,观看时将音量调大些才能听到小车的语音)
小车视频下载(RAR格式)
原理图、程序(BASCOM-AVR)以及车架、电路测试结果待续……一天没吃东西,肚子饿了,回家吃饭先再来继续。 期待中。。。 好久不见彩虹身影,最近还好吗
不错。L298的连接方式好有创意。。。。没想到彩虹居然用9V电来驱动履带。期待中。。。 叠层电池容量不大吧,2小时行吗? 最近老是挨下乡支教,都没得搞这些冬冬。其实电机电源在车子里面,是一节笔记本的锂电芯,3.6V的,层叠电池只是给数字部分供电而已。不然的话能用10分钟就不错了。 什么都加散热片
不嫌沉啊
9V才提供多少电流阿 征得陈MM的同意,在此公布原理图和BASCOM的源程序。
源程序(BASCOM-AVR 1.11.8.1编译通过):
鄙人的作品,自我感觉程序风格还是比较清晰流畅易懂的……(在此省略N个赞美之词)看不懂请跟帖提问,哈哈!
'********************************** 编译器设置 *********************************
$regfile = "M8def.dat"
$crystal = 7372800
$hwstack = 32
$swstack = 32
$framesize = 32
'*********************************** 定义常量 **********************************
Const Car_forward = &B00000110
Const Car_back = &B00001001
Const Car_left = &B00000101
Const Car_right = &B00001010
Const Car_stop = &B00001111
'********************************* 指定端口别名 ********************************
Voc_sck Alias Portc.4
Voc_dat Alias Portc.5
'******************************** 声明自定义过程 *******************************
Declare Sub Chip_init()
Declare Sub Voc_play(byval Command As Byte)
Declare Sub Car_go(byval Type As Byte , Byval Speed As Byte)
'******************************** 声明自定义函数 *******************************
Declare Function Get_speed() As Byte
Declare Function Get_command() As Byte
'********************************* 声明全局变量 ********************************
Dim Main_speed As Byte , Car_state As Byte
'************************************ 主程序 ***********************************
Call Chip_init()
Wait 1
Call Voc_play(&H08)
Do
Main_speed = Get_speed()
Select Case Get_command()
Case &H00:
Call Voc_play(&H00)
Case &H01:
Call Car_go(1 , Main_speed)
Call Voc_play(&H01)
Car_state = 1
Case &H02:
Call Car_go(2 , Main_speed)
Call Voc_play(&H02)
Car_state = 1
Case &H03:
Main_speed = Main_speed / 2
Call Car_go(3 , Main_speed )
Call Voc_play(&H03)
Car_state = 0
Case &H04:
Main_speed = Main_speed / 2
Call Car_go(4 , Main_speed )
Call Voc_play(&H04)
Car_state = 0
Case &H05:
Call Car_go(0 , 0)
If Car_state = 1 Then
Call Voc_play(&H09)
Waitms 800
End If
Car_state = 0
Call Voc_play(&H05)
Case &H08:
Call Voc_play(&H08)
Waitms 200
Case &H09:
Call Voc_play(&H07)
Waitms 200
Case &HFF:
$asm
Nop;
$end Asm
Case Else :
Call Car_go(0 , 0)
Call Voc_play(&H06)
End Select
Loop
'********************************** 自定义过程 *********************************
Sub Voc_play(byval Command As Byte)
Local I As Byte , Temp As Byte
Command = Command + &H80
Waitms 50
For I = 1 To 8
Reset Voc_sck
Temp = Command And 1
If Temp = 1 Then
Set Voc_dat
Else
Reset Voc_dat
End If
Rotate Command , Right
Waitus 10
Set Voc_sck
Waitus 10
Next I
End Sub
Sub Chip_init()
Portb = &B11111001
Portc = &B11111111
Portd = &B11111111
Ddrb = &B00000110
Ddrc = &B00111111
Ddrd = &B00000000
Config Rc5 = Pinb.0
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256
Start Timer1
Enable Interrupts
End Sub
Sub Car_go(byval Type As Byte , Byval Speed As Byte)
Select Case Type
Case 0:
Portc = &B00001111 And Car_stop
Case 1:
Portc = &B00001111 And Car_forward
Case 2:
Portc = &B00001111 And Car_back
Case 3:
Portc = &B00001111 And Car_left
Case 4:
Portc = &B00001111 And Car_right
End Select
Pwm1a = Speed
Pwm1b = Speed
End Sub
'********************************** 自定义函数 *********************************
Function Get_speed() As Byte
Local Speed As Byte
Speed = Pind
Rotate Speed , Right , 4
Speed = Speed And &B00001111
Get_speed = Speed * 17
End Function
Function Get_command() As Byte
Local Address As Byte , Command As Byte
Getrc5(address , Command)
If Address = 0 Then Command = Command And &B01111111
Get_command = Command
End Function
原理图:
http://cache.amobbs.com/bbs_upload782111/files_6/armok01122917.gif 迟到的制作感受:
1、L298是一块性能很优秀的IC,耐用不容易坏,发热量低,使用起来也很容易,基本上就是不接错线就能用的,实为制作小功率机器人小车的首选,但愿该IC不要停产为好……
2、这次采用的履带车架用料很好,原来是挖掘机和钩机的玩具,下部都是一样的,拆掉上面的部分就是一个很好的机械平台,电池仓和电路板平台都一应俱全。但是电机菜了点,有条件的可以更换功率大些的电机,以免速度和动力不够。
3、履带相比轮子来说更能适应复杂地面,虽然不能装上编码盘,但是野外使用效果很好,采用左右轮逆向驱动的方式来转弯,并没有想象中的履带比轮子笨拙的问题,也可以实现原地转圈,不会产生最小转弯半径过大的问题。
4、对于制作机器人,锂离子电池是最好的电源,其他的可充电电池都是太重,极大消耗机器小车的动力,工包的笔记本电池芯比较好用,价格也比较低,当然,二手的手机电池也是不错的选择。
5、要制作一个可以跑起来的小车并不困难,但是要达到最高效率,以及配合各种传感器做自主行动,就不是很简单的事情。车身自重和电机功率、电能消耗以及电池的重量,感觉总是有一定的关系在里边,但是鄙人数学比较差,没法建立相关的数学模型,只能靠使用最大能量密度的电池以及多次试验才能解决这些问题,以前总觉得高数是垃圾,现在才觉得,做理工科的还真是少不了高数~~~~~老师原谅我吧,毕业N年后才觉得你的知识多么有用./emotion/em010.gif 真牛..有空偶也做一个 车子好漂亮 车子好漂亮 想不到彩虹老师这么年轻。 大家好 我是刚注册的
楼主的小车挺精致的,我想问一下各位用的L298都多少钱啊?今天我顺便问了一家,要50元啊!我最近要做一个小车,经济条件有限啊。 50元可以买三片以上./emotion/em012.gif
真黑 买到了 5元一片 还没用呢 不知质量如何 5元是拆机货。正常应该在12元左右 拆机2元,别向我要,我只买了10块。 我买的看上去很新,拆机货应该不会翻新吧!
我最近发现了一个卖旧电机的地方,有好几种,很多,大部分是十元一个,以后不用为电机发愁了,就是老板态度差点。 彩虹老师你的车子确实很漂亮啊 我马上也做一个机器人,想借鉴你程序看看 ,你们能不能写一些C程序啊.谢谢!!! 彩虹老师你的车子确实很漂亮啊 我马上也做一个机器人,想借鉴你程序看看 ,你们能不能写一些C程序啊.谢谢!!! 呵呵,C的只能等一等了,目前陈MM已经找到工作了,我也没有时间再进一步搞这个项目,所以现在只能提供BASCOM-AVR的了。 呵呵~做的蛮好的!但是语音+小车的设计方案有点怪! 彩虹:能够提供PM5020的规格书,网上好像找不到! 正规的DATASHEET没有,一些应用资料请到这里下载:
http://www.atvoc.com/software/ZQziliao.rar 那么帅!我们初学者要学多久才能做出这种东西!要加倍努力才行!!! 呵呵,那履带车是商店里买的玩具???还是另外的途径拿的? hao 但是L298我们这边要18元一个 好贵哟 我一般用的是桥式电路来做的哈 请问彩虹老师:关于电机控制 我只是理论了解,没做过 我想知道:做一个性能比较好的遥控小车,用普通的直流电机可以吗?
我觉得控制效果好点的话,需要涉及到闭环控制,加上简单的PID(或部分)控制,可以让小车行走比较平稳
但是闭环控制需要用到速度传感,买的话很贵,做的话又增加了手工制作的难度
不知道你和无敌兄做的机器人用甚么电机?是用伺服电机吗?关于伺服电机我不大了解 是否很贵 具体那种型号比较合适做机器小车之类的呢?
还有,关于遥控:是否考虑过用无线遥控替换红外呢?这样实现起来不是很难吧
我现在大四 快毕业了 也准备找工作了 自学的avr 感觉还是初级 用C
如果彩虹老师是打算公开这个小车项目,我可以将程序转为C 供各位网友参考(语音没做过 不干保证啊) 呵呵,这是完全公开的项目,大家可以自由使用这个项目的资源。
业余制作,上闭环控制比较困难,机械部分精度不够,谈PID算法是徒劳的。 俺当年做sony杯的时候就是用51搞得闭环控制,当时在车轮上装了一个类似鼠标遮光盘的东西 请问彩虹老师您用的红外发射芯片是什么?
还有强烈建议能出一份c的版本,毕业设计要做红外遥控机器人,想参考参考 请问彩虹,OUR ROBOT 1号的红外控制部分是如何做的,最好show张照片,给你添麻烦了 发射芯片是SAA3010T,电视机遥控器很多是这种的。车子已经不在我手上了,所以没照片了可发了。 彩虹兄,电机工作电流多大?这个散热片够用么?我也买了点TO220的散热片,但是怕不够 试过让电机在7V的电压下堵转10分钟,L298较烫手,没有坏。 致“虹老师”:
恕我直言,“虹老师”,你遗失了作为一个大学老师的一些基本品质,无论你才华多横溢,但是请注意你的言词,指导学生毕业设计,还故意说成指导漂亮MM毕业设计,有你怎么称呼自己的女学生的老师吗?MM这个词是老师该用的吗?
我觉得无论是长江学者还是两院院士作为老师我们做学生的首要的是向他学习做人,老师德行欠缺的话,无论知识多么渊博我们也不懈!厚德载物,生命中再美好的东西,德行欠缺的话,是承载不了你自己所拥有的东西的 !
请以后别那么称呼自己的女学生!那样的称呼不是你该用的 !
顺便说一句你们的设计很好! 晕,教师也是人啊,也有七情六欲啊,说声MM没什么不好的啊,
不过不要大量抢学生的MM啊,嘿嘿 晕,这样也引发【zhouguowen325 无为而治】一大堆感慨,郑重声明:陈MM不是我的学生,她是我一个有10多年交情的好朋友的表妹,称其为“漂亮的毕业生陈MM”不为过吧?再者我不是大学老师,还没这个资格。能指导陈MM的毕业设计,实在是朋友信任的产物。
这几年,教师队伍确实出现了不少可以称之为败类的人物,但是35楼不要以偏概全当奋青,相信全国绝大多数的教师还是严于律己、以超出常人的道德规范要求自己的,大可不必捕风捉影,呵呵…… 伴随着人类的发展出现了各种各样的道德,
随着时代的变化,道德也在人们痛苦的震颤的改变着,
曾经的道德逐渐被视为愚昧,无知.
今天看似反道德的事,未必不是将来的最有觉悟的事.
多少当世唾骂的事,却被今人传诵,视为楷模.
道德有时候是XX的,自己没法做到或不敢做的,
看到别人做了又心有不甘,于是就想出了条条框框来了,
----------从此道德产生了,流毒万年啊. 彩虹老师
我也是南宁的学生,很想有能有机会可以和你交流一下
可以留点联系地址或其他什么联系方法吗? 请看我的资料,里面有我的联系方式。 谢谢老师了
QQ已经加你了...通过我呀... 好危险!30块买个玩具车。电机上了12V 。。。疯狂! 请教红外遥控啊 彩虹老师您好:
我是大一的学生是学单片机专业的,看了你的作品感觉很好,我能做这个作品吗? 没问题,资料100%公开,按着做就得了。 彩虹兄,换头像了?发现你发型好像变了。
怎么只有车的照片,而没有传说中的MM的照片?
期待中~~~~
哈哈................ 称呼个漂亮MM就挨35楼批了一顿,再贴上来还不被口水淹死啊?哈哈哈哈…… 彩虹老师,制作很漂亮。这种履带的玩具车模市场上有买吗?多少大洋一个呀! 车子不错,创意不错,值得学习,谢谢彩虹老师! 真不错啊!但怎么没人用51来做的?我想用51做一个哦,呵呵 请问四位拨码开关的用途是? 继续呀,,,都是没后续的,,,,,不爽 我们现在电子都是学51,而且是8位,出去找工都是32位了,所以很多芯片都还不懂,所以以后有类似作品,多发点上来看下!感谢 老大,能否加注释啊。这是我所见过的连一行注释都没有的程序,好象根本不想让别人看懂 我想问下 彩虹老师(貌似打家都这么叫),有关于L298N的使用问题,
1芯片上的VSS是接逻辑电源5V,电机需要多大的电压,VS就接多大的是吗
2 我在网上找L298N的应用电路 发现对它的PWM控制是通过加一个 74LS08(2输入 4与门)实现,有什么区别吗
1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_232975.jpg +VS是电机供电脚(可以大于5V),+VSS是数字部分的供电脚(5V),PWM信号建议从ENA/ENB送入,4个INPUT脚控制方向,用2个三极管实现方向控制线的翻转即可,没必要用集成门电路。 谢谢 楼上的彩虹 受益匪浅~~~~~:) 车子很好看 彩虹,行啊!! 继续下去!! 呵呵,陈MM?呵呵,蛮不错的啊。
专用的音乐芯片,还以为彩虹的I2S的音频用上了呢。呵呵。 用SO的L298P是不是有特殊注意的地方?我用和L298N同样电路会出问题
p.s.这个作为本科毕业设计是不是太简单了点? 小坦克牛 mark mark 学习了,谢谢 mark 改装的不错! 说实话,很无聊... 我以前也是用过18650电芯做过遥控小车,可是充电保护板用得手机锂离子上的,结果充电给充爆了,怀疑是18650饱和电压不是4.2左右? 请问彩虹老师怎么充的电。 很牛....不过没这样的坦克给我改 厉害 mark 18650不错,我是直接用手机电池充电器冲的,没爆呵呵。
298拆机的便宜,关键是找对卖家,有的卖家要价太离谱,好像就他那有似的。 哇cool 恩,我毕设也做的,mark 很好 顶一下 正在做一个类似的循迹小车~~ 只有小车没有陈MM:) mark 知道怎样辨别芯片的新旧吗?? 帅气! 车子做得不错,好漂亮,布局也很讲究。 彩虹老师:请问一下,我用VS838和I838 2种一体接收头,结果都没法用GETRC5解码,但是可以看到红外接收头上VOUT有波形出来的,是不是一定要用SFH506-38啊
$regfile = "m48def.dat"
$crystal = 8000000
$baud = 19200
Config Rc5 = Pind.2
Enable Interrupts
Dim Address As Byte , Command As Byte
Do
Getrc5(address , Command)
If Address <> 255 Then
'Command = Command And &B01111111
Print Address ; "," ; Command
End If
Loop 陈MM mark 回复【34楼】gxlujd 彩虹
-----------------------------------------------------------------------
有人嫉妒了 mark dddddddddddddddd 请教彩虹老师:
我买了两个小电机准备做机器人小车
电机规格:额定工作电压:1v--5.0v,额定最大工作电流时:750毫安。
用你上面的电路能驱动吗?
l298n工作电压是5伏,驱动电机部分电压是7伏--12伏,是不是用在上面所述电机上会烧电机?
谢谢 mark 学习一下,谢谢 mark 貌似没有发送?为什么不用两脚的红外接收管? 电机用3.6V的电池就可以驱动? mark 可以加上无线遥控 mark
页:
[1]
2