挨踢狗和智能狗的日常
序:
众测平台改版以来,申请者的限制放宽了,申请人数大大增多,随之申请成功的几率也大大降低,多次申请失败后,相信大部分值友也跟笔者一样,申请众测的动力大大降低。而此次众测,笔者则是抱着必中的信念申请的,先贴上申请计划供值友们参考:
“自从众测改版以来,一直没中过,作为一个码农,此次的众测产品让笔者眼前一亮,这次不得不出手申请了,不成功便成仁。 在众测详情页红字标明了"如家中有小孩,请在众测计划中注明儿童的年龄大小",小编,一个苦逼码农单身狗连女朋友都没有,哪来的小孩。。。其实俺就是家中的小孩,今 年 28 碎 啦(请脑补害羞状)。 好啦,言归正传,此次测评,笔者应该有优势的,笔者从事的行业是工业控制领域,写得了代码、调得了电路板,可谓软硬通杀,因此对这个产品上手较其他申请者会更快,以下是笔者的评测计划: 1. 组装mBot机器人小车,拍一些外观照片什么的,对了,找我的小侄子,来个组图秀; 2. 基本功能测试,通过手机蓝牙连接小车,APP端控制小车; 3. 进阶功能测试,C语言编程对笔者来说是小菜了,绝对要编个酷炫吊炸天的功能装个逼啥的; 4. 笔者手头上有个树莓派,到时候试试看它跟小车能不能愉快地玩耍; 5. 最后做个总结,吐槽一下,这产品是想把未来祖国的花朵早早推进码农这个大坑啊,但是我想说,干得漂亮。 最后,小编呀,重要的事情说三遍:求过、求过、求过。。。”
从以上众测计划中,相信值友看出来了,笔者是个码农,“挨踢狗”一枚,而需要评测的这个智能产品,从外观上也极似狗,因此笔者亲切地称之为“智能狗”。这次申请者总数2714人,只选10个,为什么会是我,因为都是“狗”,哪有不中之理
。
开箱:
按照惯例,先上图:
▼ 久违的朕值到了
▼ 拆开包装
▼ 开箱,里面主板和配件有缓冲海绵保护着
▼ 把所有零件都拿出来:
1) 心脏大脑:核心主板一块
2) 骨架:铝合金机身一个
3) 脚部:轮子轮胎两套,电机组两套
4) 血液供应:电池盒一个(没送电池
)
5) 眼部:超声波模组一个
6) 耳鼻喉部:巡线传感器模块一个,蓝牙通信模块一个
7) 韧带:RJ25连接线两个
8) 无线狗链:遥控器一个(依旧没电池
)
8) 关节:螺丝、螺母若干
核心板
▼ 结构:官方的这张结构图能清晰点,包含1个RESET按键、1个USB接口(用于ardunio调试)、4个RJ25接口(与其它模块通信)、2个LED彩灯、1个蜂鸣器、红外接收和发射器、1个自定义按键、1个光线传感器、2个电机驱动接口(分别驱动左右轮电机)、2个电池接口和电源开关。
▼ 主控制器:另外上图中没有列出主控芯片,用的ATMEL公司的AVR单片机MEGA328P,这是一款8位微控制器,内置32KB FLASH(可擦写1万次)、1KB EEPROM(可擦写10万次)和2KB RAM,只要不是太复杂的算法,资源够用;6个PWM通道,可用于电机控制,蜂鸣器控制;SPI接口,RJ25接口实际采用的就是SPI协议;6通道10位ADC,用于接收多个传感器信号;单片机最高可工作在20MHz时钟频率下,mCore上用了一个16MHz的晶振。
▼ 板上传感器:核心板上就带有很多传感器:光线传感器、红外接收器和红外发射器。
蓝牙:
▼ 无线通信模块:mBot的无线通信模块有两种:蓝牙和2.4G通信,此次评测的产品是蓝牙版本。此模块采用新唐(nuvoTon)控制器NUC100S + 博通(BROADCOM)蓝牙芯片BCM20730的组合,模块和mCore连接有7个引脚,主要数据引脚RX、TX(第二张图),显然通信的是通过UART异步串口协议。博通的这款蓝牙芯片支持蓝牙4.0技术,数据吞吐率可达3Mbps,但是**,受到UART串口吞吐率影响,实际速率应该会降低;蓝牙信号覆盖范围可达100米;因为4.0技术,功耗自然比较低。
供电系统:
▼ mBot核心板适配的电压范围为:3.7V - 6V,供电有两种选择:1)四节5号电池,原装带电池盒;2)标准2.0接口的3.7V锂电池。
▼ 电池盒里塞了四节爱老婆进去,量了下电压,大约 5.1V
电机组:
▼ 配套两个电机组,直流驱动的电机,电流越大转速就越大;可通过PWM等效控制直流的大小来控制电机的速度
▼ 内部传动齿轮,拆开沾了一手润滑油
▼ 电机组通过两套螺丝螺母可以固定在机身两侧
▼ 轴可以固定在轮毂的凹槽内
巡线传感模块:
▼ 巡线传感器其实是由红外发送和接收模块组成,利用红外线在不同颜色的物体表面具有不同的反射强度的特点。在小车行驶过程中红外发送器不断地向地面发射红外光,当红外光遇到白色纸质时发生漫反射,反射光被红外接收器接收;如果遇到黑线则红外光被吸收,小车上的红外接收器接收不到红外光。主控制器以是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
▼ 传感器模块被安装在底部,红外发送和接收器面向地面
超声波测距模块:
▼ 超声波测距的原理,通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了,这与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2,通常测距范围在10米以内。有值友可能会问,为什么需要两个测距眼?一个不是也能测出距离,其实道理很简单,人为什么需要两只眼呢。。。
组装:
▼按照说明书,很容易组装,10分钟搞定,这个得益于各个部件尽量做到了模块化,模块之间只通过一根线进行连接,如以后需要添加装备也很方便,只需一个模块和一根连接线
▼ 组装后像模像样的,还是比较呆萌的
▼ 这么呆萌,不上影楼拍些卖萌照就太对不起它了
第一次上电:
一切就绪,先上电跑跑。mBot自带了出厂程序,三个模式可选择:1)手动模式;2)自动避障模式;3)疯狂巡线模式。
问题来了,该怎么控制呢?mBot提供了两种控制模式:1)遥控器(红外);2)手机或者PC(蓝牙)
遥控器:
▼ 最**事来了,这个套件一块电池也没送,这个遥控器需要一块纽扣电池,标配要CR2025,结果笔者买了块CR2032,貌似厚了点,但是也能塞进去
手机蓝牙:
▼ 先在手机端应用市场下载APP:mBot,然后打开APP,初始状态为OFF-LINE离线
▼ 开启手机蓝牙,然后在APP中搜索mBot的蓝牙信号,图中搜索到距离一米有个名为MAKEBLOCK的蓝牙设备,点击它直接连接
▼ 连接成功后,在顶端标题栏会显示ONLINE,在APP端同样可以设定三个模式,界面比遥控器更加酷炫,又添加了第四个模式:重力模式,就是通过手机的重力感应来控制小车;另外还有些附加功能,比如喇叭、灯光、冲刺。
▼ 手动模式
▼ 自动避障模式
▼ 巡线模式
进阶准备:
mBot是makeblock公司的技术团队基于Arduino开源平台组建起来的,采用Arduino的硬件,当然也可使用Arduino的软件Arduino IDE,因其便捷灵活、方便上手,可玩性相当高。
另外软件方面,mBot也可使用mBlock图形化编程环境进行程序的调试和开发,mBlock是一款基于Scratch2.0(由麻省理工学院研发)开发的图形化编程软件,它不仅继承了scratch的全部特性,还新增许多和硬件交互的脚本块,使得用户可以快速的读取传感器的值,控制电机、彩灯等的输出,实现对一个机器人的快速编程。相比于Arduino IDE,mBlock的界面更加CUTE,而Arduino IDE专业性更强些,初学者还是推荐使用mBlock,毕竟mBot是一款面向小学生的编程启蒙套件。
▼ 在PC端安装mBlock软件
mBlock与mBot通信有两种方式:1)USB连接;2)蓝牙连接。
1)USB连接:
▼使用USB线连接 PC 与 mBot
▼ 在PC端,被识别为串口设备,因为核心板上有块USB To UART串口的芯片CH340G
▼ 在mBlock菜单栏点击" 连接 --> 串口",然后选择对用的COM口
▼ 串口连接成功后,在mBlock顶端标题栏上显示 “-串口 已连接-”
▼ 在蓝牙未连接的情况下,mBot蓝牙模块上的蓝色LED灯成闪烁状态
▼ 点击mBlock菜单栏 “连接 --> 蓝牙 --> 发现”,搜索可用的蓝牙设备;然后在搜索到的蓝牙设备中选择mBot
▼ 蓝牙连接成功后,在mBlock顶端标题栏上显示 “-蓝牙 已连接-”,并且mBot上的蓝色LED灯常亮
两种连接方式区别:USB连接和蓝牙连接的情况下,调试功能还是有所区别的,在蓝牙连接情况下,可进行程序的在线调试,但是不能安装固件和恢复出厂程序,下图中可发现这两个功能按钮是灰色;而USB连接情况下,支持所有的调试功能
进阶编程:
在mBlock软件中采用的是scratch2.0进行程序开发,它是面向儿童的一套编程语言,因此完全采用图形化,每一条指令不是键盘敲打出来的,而是通过鼠标在界面上拖拽、堆叠起来的;而且集成度更高,程序是以脚本的形式封装起来。一条脚本,可能对应高级编程语言C的一个函数,更可能对应物理底层的一大堆驱动程序,如下图程序,就一个简单功能:当红外遥控器按下A键时,亮红灯;否则,亮路灯。
▼而对应C程序如下图:一层层剥开分析
-- 最外层脚本 重复执行 对应 loop 这个函数
-- 脚本 如果 ... 否则 ... ,对应loop中的if ... else ...
-- 脚本 红外遥控器按下A键,对应 ir.keyPressed(69) 这个函数调用
-- 脚本 设置LED颜色,对应 rgbled_7.setColor() 和 rgbled_7.show() 这两个函数调用
if ... else ...只是简单的C语言语法,而ir.keyPressed(69)、rgbled_7.setColor()和rgbled_7.show()这几个函数涉及底层的硬件驱动,只不过被封装起来了,但是这些是设计开发者需要考虑的
,真正的用户小孩子们
只需要拖一拖这些脚本就行了
下面通过几个实例具体讲解下这个scratch2.0到底是怎么回事儿
实例一:睡你XX,起来嗨
▼此例是让mBot跳个舞,嗨翻夜场。。。
▼ scratch程序如下:如果按下遥控器↑按键,小车向左偏,LED1亮红灯,LED2亮蓝灯,等待0.1秒,小车向左偏,LED1亮绿灯,LED2亮红灯;否则,停止小车,LED1和LED2熄灭。
实例二:倒车入库
▼ scratch程序如下:按下遥控按键,开始停车步骤;小车以速度100后退1.8秒 --> 右轮停止,左轮以速度80反转1.5秒,相当于以右轮为轴向左拐弯 --> 以速度80后退3秒,停止,倒车入库完毕。
实例三:侧方停车
▼ scratch程序如下:按下按键,开始停车步骤;小车以速度80后退2秒 --> 右轮停止,左轮以速度80反转1秒,相当于以右轮为轴向左拐弯 --> 以速度80后退2秒 --> 左轮停止,右轮以速度80正转0.8秒,相当于以左轮为轴向右拐弯 --> 以速度80前进0.5秒,侧方停车结束。
总结:
由于评测时间有限,再深入需要花点时间,所以就到这儿吧。还是总结一下这个mBot的优缺点吧
优点:
1)造型呆萌,组装方便,采用了模块化设计,有利于用户添加其它功能模块
2)面向的用户是儿童,编程工具图形化,上手容易
缺点:
1)几个模块过于高级,不利于知识的传授,如超声波测距模块,应该添加几个小孩子能理解原理,家长又能解释的模块;比如可以添加机械手这样的模块,小孩子也更愿意折腾,那个小石块什么的
2)例程较少,研发团队需要多开发些有意思的例程供教学
总之,mBot是一款不错的产品,对儿童的智力开发和编程知识的启蒙都大有好处,想象下未来的一天,人人都懂得编程


































































校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案