上个学期做的一个的小小玩意儿!初衷:自学VB做上位机和单片机通信,顺便把多年以前买的无线遥控模块给用了!
315M超再生接收模块------市场上最便宜的一种无线模块(315M超再生接收模块+315M发送模块)。
小车前不久给挂taobao上低价卖了,照片也没拍,所以这个帖子就显得很不好,所以只能展示下其他的部分了!
超再生接收(发送)模块:
就是这种模块。
发送模块SO EASY!------发送信号是ASK调制(我理解就像红外38KHz调制一样),就是要么“振荡”,要么“不振荡”。。。
接收模块,相信很多朋友用过,优点:便宜!控制简单到爆。。不像24L01呀需要SPI接口,还有各种时序才能发送接收。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下面说说缺点:由于超再生接收这种“神奇”的电路,在接收不到信号时自己本身就是个振荡器,而接收电路从接收不到信号到接收到信号有个不稳定的过程,所以数据在刚接收到那会儿基本都是错误的,需要延时一段时间,丢掉之前的多个数据,而且就算这样,在连续的传输一些数据时,随着模块间距离的拉大,误码率也随之升高!
结论1:一分钱一分货!
结论2:。。。。
VB 这个软件大家应该很熟悉,面向对象图形化编程,虽然很老的软件,但有一个优点:好上手!
上图:
百度了3天,才大体会用一些VB简单的控件,写了这个上位机程序!默认了串口号及波特率(这里波特率不能太高也不能太低,我选在1200bps,数据8位模式,1位停止位)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
整个构思是这样的,上、下位机各一块51单片机(型号不限,只要有一个串口就行!),上位单片机通过串口连接电脑,当电脑WASD这四个按键来发送前后左右四个方向的控制数据,“空格”键是控制小车停止!“方向键”是为了让文本框显示当前状况设计的。
发送模块发送的数据就是串口数据,只是增加了若干个校验码防止干扰,实践效果还不错!
这里解释下为什么会有“空格”让小车停止,是因为本人学艺不精,VB不会控制让它连续发送数据,而且还有一个就是超再生接收电路的缺点里的误码率较高问题,而且这也是为什么上位也加了一片单片机来不停地发送数据的原因,我索性让单片机检测到几个相同的数据就让小车一直运动,所以当按了前进,小车在接收到下一条不为前进的指令前就一直前进,所以增加了一个停止信号,虽然操作感有些问题,不过在我的履带小车上,由于速度不快,显得相得益彰!
上操作界面。
前进:
后退:
左转:
右转:
停止:
界面可以说是十分简单(其实是能力有限+精力有限)。
分享下代码啥的:VB遥控所有资料.zip
今天就发到这,大家感兴趣的话,我以后慢慢给大家讲。。。。