查看: 869|回复: 5

麦昆之旅

[复制链接]
本帖最后由 李斌 于 2018-8-23 10:39 编辑

       从在网上看到麦昆上线了,心里一直痒痒的想搞台测试一下;对于我们这样极简主义者来说,用最简洁的方式实现尽可能多的功能是永恒追求的目标(比起囊中羞涩来,这样的说法是不是会显得格调高雅些?)。从介绍上看,这个小车上除了MICRO BIT板以外,信号输入有超声波、红外和两个巡线传感器了,输出除了板上自带的点阵外也就只有两个电机、两个转向灯,4个RGB灯,一个喇叭了。但这样的结合却能实现红外遥控、巡线、追光、避障、测距、测温等诸多功能,应该说在小车上能实现的大部分功能它都有了。当然由于身材的限制,据我目测扩展口只剩下车身上两个了,而且好像车上也没多余的地方可以安装其他设备了,请那些喜欢装一堆传感器的不差钱们绕道。

       在对版主极尽献媚之能事以后,终于获得许可到货后先给台测试车;盼星星盼月亮,我等到几乎花儿也要谢了的时候,在这个周一明媚的早上我收到一个肥皂盒大小的快件;正当我以为网上又抽奖中肥皂的时候,包装上的DF网址让我觉得格外亲切,欧耶,总算等到你,还好没放弃,麦昆到了!让我们来看看里面有些啥,
         截图201808230951542977.png        截图201808230952217336.png    

         连双面胶在内1,2,3,4,5,6样东西,亲,你没有看错,就只有这6样东西;红外遥控器?没有!遥控手柄?更没有!一直强调的MICROBIT板总要给一块吧,不然怎么用啊?这个真没有!我当时的心情就好像点了肉包却吃到嘴里才发现是馒头,心没了!虽然我对版主的抠门早有耳闻,实在不敢奢求手柄之类的奢侈品,不过连MICRO BIT板都省略了确实超出了我的想象底限(没有板不能用啊),贫穷限制了想象力,估计就这么来的!

         不过像我们这样骨灰级屌丝最大的能力就是打不死、压不烂、拖不垮,生存极限直逼小强。不是没MICRO BIT板吗,BOSON for MICRO BIT套件里有!不是没红外遥控吗,Beginner KIT for Arduino套件里有!不是没遥控手柄吗,我翻遍了库存箱底也没找到,我不用了还不行吗?做人就是这么有骨气!就这样,凑齐了8样东西开始我的麦昆之旅。

         先做个设计,这个小车上一共有的传感器有:巡线、超声波、光线、磁场、加速度、温度、红外,另外板上还自带两个A/B按钮;输出有电机、喇叭、4颗RGB灯(车底盘)、2个转向灯。由于板是竖直插在小车底盘上,估计磁场很难用上了;只有一片MICRO BIT板,本来可以遥控手柄来利用的加速度感应也废了;剩下这些能实现的功能是红外遥控前进、后退、左转、右转、暂停,再加上巡线(2个巡线感应),追光(光线感应)、避障(超声波)、测距(超声波)、测温(温度感应),一共10个功能,配上灯光和声音(虽然这个喇叭不会说人话,但总比哑巴好),应该能玩玩了;为了方便,把所有的功能都集成在红外遥控器上,看看按键,足够!

正准备动手,版主大人发来友情提示,MIND+1.1.3内测版发布,对麦昆有优化!按照国际惯例内测时一定是BUG堆成山的时候,当白老鼠的从来都不是先进是先烈,但本着我不入地狱谁入地狱的精神以及对麦昆优化有那么一点小期待,我还是义无反顾的演绎了飞蛾扑火的故事,这是后话。(版主友情提示主要内容,麦昆的电机是IIC的,只有MIND+ 1.1.3版本才有库文件,之前的版本都不能编辑,当然用MAKECODE也可以)

打开MIND+ 1.1.3,默认是实时模式,点击它切换到上传模式,再点击左下角扩展
截图201808230932461903.png

看到麦昆了吗,毫不犹豫点击(加载)它;
截图201808230933225699.png    截图201808230933404684.png


        非常熟悉的界面,左边是麦昆库文件,中间是编程区,右边上面是自动翻译C++语言区,好像还多了个手动编辑,应该是可以直接向IDE一样打码编辑了,有兴趣的可以试试;右边下面是串口输出区域,找故障的神器啊!

       麦昆的各个口都被清楚的标识在各个功能模块里了,用起来就是爽;相信大家拿到第一个想法就是让麦昆动起来吧,赶紧的!这几个零件几乎不用看网上的安装说明就能装起来了,真的只要1分钟,想装错都难啊! 截图201808230934151307.png

      通过MICRO BIT板上的MICRO USB口连接电脑,安装驱动,连接设备(我这里是COM3),OK,一切顺利,先让小车动起来,编个简单的程序 ,然后上传
截图201808230935109935.png     截图201808230935285181.png

点击 上传到设备, 截图201808230935483039.png

根据我的经验,23%之前是程序编译的时候,23%之后程序上传的时候,这时MICRO BIT 板上的黄灯闪烁,如果你没看到闪烁,估计就是没上传,重新传吧。
传完后打开板上的开关,小车会前进了!EASY!
下面就是要用遥控控制小车;如果你收到是新的红外遥控板,直接拔掉底部的塑料片就可以用了 截图201808230936228534.png ;要测试遥控板上各个按键代码,这样才能让小车知道你发的是哪条命令,先来做个简单的程序测试; 截图201808230936462765.png
上传后不要拔掉USB线,直接点解屏幕右边下方 打开串口 标识,然后再拿遥控对着小车按按钮,后边黑框里就会出现这个按钮的代码;
截图201808230937231639.png 我这张截图是按VOL+得到的代码127,也就是说,你按VOL+,遥控器发送给小车的是127这个数字;反过来说,如果小车收到127这个数字,就知道你按了VOL+这个按钮,它会执行这个按钮对应的程序。用这样的办法我得到了下面这些按钮的数据:VOL+-127,VOL—111,1-247,2-119等,我打算把遥控板做成下面这样的功能键,图上的中文字都是我自己加上去的,原本是没有的啊,只是为了说明功能。 截图201808230938283147.png
有了这些代码后就可以很多事情了,我们先来做个遥控小车,前后左右停,5个功能。 截图201808230938561725.png


       这段简单的命令,就可以遥控小车,太棒了!
      再接下来要做巡线、追光、避障、测距、测温了程序了,从巡线先来。麦昆集成了2个巡线传感器,加载麦昆库文件后可以看到分别用左、右侧传感器来区别, 截图201808230939282675.png 。我个人比较喜欢用3个巡线传感器来控制小车,毕竟逻辑简单啊,中间传感器感应到黑线就直行,否则左边感应到就左转,右边感应到就右转。官网上有用MAKECODE编的巡线程序,效果是非常令人满意,只是窃以为逻辑太复杂,我想自己搞个更简单的:以右边的巡线传感器为主,当右边感应到黑线时,直行;如果右传感器没有感应到黑线,当左边感应到黑线时,左转;当左右两边都感应不到黑线时,右转。为了方便后续调用,把巡线做成子函数,下面是程序内容:
1.点击左边栏函数-自定义模块,在定义框中写入 巡线

截图201808230939589104.png
2、程序主体部分 截图201808230940153305.png

注意,巡线传感器是以感受到白色为高电平,所以为了让程序在找到黑线时提示,必须要加“非”模块;如果在巡线过程中总是出现小车跑到黑线外面的状况,可以调整速度;速度慢点给程序的反应时间就多点;另外可以根据画线的实际情况分别调用两个电机命令来使小车能更灵活, 截图201808230940524063.png 类似这样的命令可以使小车原地转圈,适合小角度转弯;程序中命令只能控制一个轮子转速,另一个轮子静止;我这里用用已经够了,就维持极简原则。

       下面再来说说追光。这个程序的功能是让小车找到光源;当光源大于设定值时小车就能随着光源跑,光源值越高跑的越快。光线感应在MICRO BIT板上,只有一个,那就设定找到超过设定值的光源直行即可;如果是有好几个光线感应器,可以设定成沿着最强光源前进,当光源方向改变时可以跟着改变小车行进方向。
        首先还是设定一个 追光函数;然后需要测试当前光线环境,又要用到串口打印了,先搞段小程序看看环境光源;
截图201808230942273633.png

我这里的环境光线值大概在50上下;我就把程序里的光线值设定在70,超过70小车就直行,否则还是转圈找光线;主体程序如下:
截图201808230942585236.png


           再后面是避障。这个功能也简单,就是读超声波探测前方障碍物距离;当距离小于设定值时小车转弯,否则一直直行;老规矩,先定义 避障函数,然后写主体程序; 截图201808230943408595.png
由于担心小车撞上障碍物,我还特意加了倒退程序,并在倒退和右转后面分别加了0.2秒的延时,确保能绕开障碍物;另外由于这个超声波探测器探测前方35CM半径的扇形区域,角度未知;如果被探测物的反射波不能被小车上的超声波接到,比如被探测物是斜面,或者小车以斜角度接近墙体,小车都不能发现障碍物从而撞上;如果能在小车前方两个角上装上碰撞传感器,效果会好很多;可惜没地方装了。
最后还有两个类似功能,测距和测温。测距是读超声波的数据,测温是读MICRO BIT板上温度传感器的值;读到后分别显示在点阵上。不知道为什么这两个值不能直接用点阵显示出来,只好设置两个变量来帮忙。
1.     老规矩,定义测距和 测温 两个函数
2.     左边栏点击 变量-新建数字型变量,分别建立两个变量 温度 距离
截图201808230944298124.png     截图201808230944438301.png
3.     主体程序:
截图201808230945062265.png     截图201808230945236270.png


这里程序里分别加了熄灭所有点阵和机器人停止,主要是为了防止其他程序有点阵显示部分对这部分程序的干扰,或者其他程序让小车一直动,影响测试效果。

        至此,计划中小车所有功能都编辑完毕,做个主程序把这些子函数调用在一起就好了。为了增加趣味性,我增加了部分光线效果;直接调用了麦昆的RGB灯光命令,比较简单。大家如果觉得不够炫,可以加载RGB灯带模块,路径是左下角 扩展-显示器-WS2812RGB灯;
                  截图201808230945498894.png


以下是完整的主程序,为了在一个屏幕里能全部截图,我把图片缩小了,看不清楚的可以放大;另外为了能更加清楚的看懂程序,我又设置了一个 截图201808230946268802.png 开替代前页中系统自设的 截图201808230946442924.png ;此外再考虑到测距和测温时小车是静止的,所以在遥控控制以外又加了MICRO BIT板上A/B键来选择控制,更加方便了。 截图201808230947029155.png


通过测试,小车能完美实现所有功能;

编后感:
1.             新版本刚上线确实有跟多BUG,不过经过我们这么多的测试,基本上都排除了,至少我现在没有发现BUG,大家放心使用;
2.             不知道有没有人发现整个程序里没有用到喇叭,不知道会不会有人觉得是我们懒得编了?阿弥陀佛,上帝保佑,我敢把手按在圣经上向毛主席保证真不是偷懒,阿门!事实上是在编的过程中不仅是开机时加了系统自带的音乐了,而且还自己编了一段曲子;在小车各个动作环节都加过音效,甚至想去装RGB连续变光的炫彩;可是,可是,可是,重要的事情说三遍!后来这些都被我自己删掉了!都是辛辛苦苦一条一条写上去的,每删一条比割我一刀还疼啊!为什么啊?因为MICRO BIT板内存太小了,内存太小了,内存太小了!所以大家不要太勤奋,差不多就可以了,自己去删减真的很痛苦!
3.             巡线程序不要随便加别的内容,对时间要求太高了;随便加点灯光、音乐、点阵等内容,都有可能影响巡线效果。

gada888  版主

发表于 2018-8-23 17:03:56

好帖呀。我刚买了麦昆
回复 支持 反对

使用道具 举报

李斌  学徒
 楼主|

发表于 2018-8-24 21:31:58

可以考虑怎么把麦昆扩展板上剩余的端口用起来,不过内存容量太小要注意。
回复 支持 反对

使用道具 举报

sunkf  初级技师

发表于 2018-9-1 22:35:00

到手了,看来得赶快开封
回复 支持 反对

使用道具 举报

昊子  学徒

发表于 2018-9-10 23:21:10

好贴,正想学习呢。
回复 支持 反对

使用道具 举报

gray6666  高级技匠

发表于 2018-9-26 10:17:17

啥时候我也能中一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

exit; ?>
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail