型号: PXF3527
Nobby-AI 1 用户手册
本书介绍了 Nobby-AI 1 系列积木机器人及配套的 WhalesBot Scratch 软件 的使用方法,并提供一些简单的编程实例,帮助用户更好更快的学习使用积木机 器人和软件。在你拿到本产品后,请务必认真研读该手册。
Nobby-AI 1 系列积木机器人是我公司最新推出的控制器和软件,不仅可以 满足日常机器人教学,更能满足机器人竞赛等多种应用环境。WhalesBot Scratch 软件可实现当前主流 Scratch 和 Python 编程学习,支持条形图编程、标准 C 语 言编程和 Python 编程三种编程方式。流程图模块包含所有端口功能,支持子程 序功能等可视化编程。含有动作、传感器(侦测)、控制、程序、数据、高级、 巡线 7 大功能模块;基于全新跨平台技术开发,可适用于 Windows、Mac 等操作 系统,同时可以多线程编程。条形图可自动生成 C 和 Python 语言,C 语言支持 指针、数组、结构体等复杂应用,机器人库函数全部开放。
MC101 控制器是研发的最新一代控制器,具有高性能、 低功耗, 程序存储容量大,接口丰富,体积小且稳定可靠 等特点。MC101 控制器顶端为 I/O、I^2C、URART 通用接 口,底端接口为电机接口、MiniUSB 接口,正面是按键和扬 声器,背部是电池仓。
处理器:32位Cortex-M3处理器,时钟频率72MHz, 512KB FlashROM,64K RAM;
存储:采用32Mbit大容量存储芯片,内置多种音效,可随软件升级扩展更 多的功能;
端口:提供10路各类输入输出接口,其中5路数字/模拟接口(AI、DO);提 供4路闭环电机控制接口,单路最大电流1.5A;1路RS485伺服电机串行接口,最 大电流6A;USB接口可支持在线调试模式,方便程序调试;
按键:设置一个按键,简化了用户操作,通过这个按键可以开关机、运行 程序、进行蓝牙配对等功能。通过按钮内置的指示灯可以显示控制器的各种工 作状态。
⚫ 灯灭:处于关机状态
⚫ 白色:处于开机状态
⚫ 白色闪烁:正在运行程序
⚫ 黄色闪烁:正在下载程序
⚫ 红色闪烁:电池电量不足
其他:系统工作电压 6.8~10V。工作状态显示,声音播放等功能。
MC101 控制器固件升级
固件是置于WhalesBot Scratch软件。没有固件,MC101控制器将无法工 作。
有时会发布新的固件版本,添加增强功能或修复软件缺陷。 更新固件时需要用 USB 线将您的计算机连接到MC101控制器。 1. 打开MC101控制器,将其连接到您的计算机。
2. 在“”菜单中选择“固件升级”。出现以下界面:
3. 单击“开始升级”按钮,检查固件是否可升级。
4. “选择固件”在可用固件文件中选择最新固件版本。
5. 如果您想改用计算机上的某个固件版本,单击“浏览”按钮,找到并选
择正确的固件文件。
6. 单击“开始升级”按钮,下载新版固件到MC101控制器。“固件升级”对 话窗口的底部进度条将会显示固件升级进度。一旦完成,MC101控制器将会自动 重启。
如果在固件升级过程中,MC101控制器停止工作,您将需要按照以上步骤 重复升级固件(MC101控制器同样需要使用 USB 线连接到您的计算机)。
名称 |
图 |
相关模块 |
使用方法 |
智能电机 |
|
反转电机 电机 停止电机 |
新一代智能电机,拥有体积小、 转速高、扭矩大特点,具有开 环和闭环两种工作模式,可控 制旋转速度和旋转圈数精准的 驱动机器人,完成各项任务。 |
LED 点阵屏 |
|
LED 阵列-表情 LED 阵列-符号 LED 阵列-自定 义 |
采用点阵式 LED 显示技术,内 置多种机器人表情、五十多种 符号,适合多种场景使用,大 大的提升了机器人的趣味性和 表现能力。 |
红外传感器 |
|
红外测距 |
红外测距传感器是一种模拟传 感器,可以检测从固体物体反 射回来的红外光,达到检测距 离的目的。通过探测物体的距 离,实现测距、避障等高级路 径规划应用。 测距范围:10-50cm 对应数值范围:0-2300 |
触碰传感器 |
|
触碰开关 |
触碰传感器是一种数字传感 器,具有按下和松开两种状 态,通过检测机器人的碰撞状 态来实现避障等功能。 触碰开/关状态对应值:0/4000 |
集成灰度 传感器 |
|
巡线 |
集成灰度传感器具有 5 个灰度 探测器,通过高度集成的一体 化设计和内置的高性能协处理 器,简化了机器人的应用难 度,配合控制器可实现更高性 能的巡线功能。 |
WhalesBot Scratch 软件可从官方网站的对应下载区下载最新软件。运行 WhalesBot Scratch(标准版)Setup.exe,按照安装提示完成 WhalesBot Scratch 软件的安装。
WhalesBot Scratch 软件连接控制器时,请确实控制器电量充足、USB 连接 线已与电脑和控制器连接。当控制器连接电脑时,会使关闭状态下控制器自动 开机,并有开机提示音“你好!我是小鲸。”
当编程写好程序之后,点击“”下载图标,会出现以下四种提示:
当提示下载成功时,即可拔掉 USB 数据连接线进行离线运行程序。
注意:请勿在下载过程中,拔插 USB 数据线或按控制器按钮运行程序!
模块栏
软件信息
菜单栏
程序编辑界面 代码显示区
如上图所示为流程图程序编辑窗口。左侧为模块库,中间是程序编辑窗口, 右侧为 C 代码栏或 Python 代码栏(可以控制是否显示,该栏显示内容为流程图 程序自动生成的,不可更改(如需更改可切换到 C 语言界面),能方便您学习 C 语言结构以及读取各模块参数)。
WhalesBot Scratch 软件共有八大模块库,分为:动作模块库、传感器模块 库、控制模块库、函数模块库、运算模块库、变量模块库、高级模块库和巡线 模块库。
首先明确程序功能,然后找到对应模块,拖动到主程序下方,出现蓝条提 示后连接,使用鼠标左键单击该模块在弹出界面中选择参数,下载程序到控制 器,运行程序,实现功能。
示例:
功能:A 端口电机以 80 速度正转; 对应模块:电机;将“电机”模块拖动到主程序下方,单击模块
“A”,设定电机选用 A 端口,单击“功率”输入 80,设定电机的功率为 80。然
后通过 USB 线连接计算机和控制器,下载程序到控制器,运行程序,实现目 标。
显示、指示灯、电磁铁、声音共八大模块。
模块名称 |
模块图 |
控制端 口 |
解读 |
反转电机 |
|
电机口 A~D |
需放置在需要反转的电 机模块之前,将之后的 电机转向置反 |
设置电机 |
|
电机口 A~D |
控制电机转动,功率范 围为-100~100(亦可通 过变量控制)。高级模块 |
|
|
|
可控制电机转动时间或 者移动距离(1600 表示 电机转动约 360°) |
关闭电机 |
|
电机口 A~D |
勾选后对应端口的电机 将停止转动 |
指示灯 |
|
I/O 口 1~5 |
控制对应(可多选)指 示灯的亮灭 |
电磁铁 |
|
I/O 口 1~5 |
控制对应(可多选)电 磁铁的吸合与断开 |
声音 |
|
/ |
将对应声音通过扬声 器发出 |
LED 阵列- 表情 |
|
I/O 口 1~4 |
选择并显示表情,需要 同时连接两个 LED 阵列 |
关闭 LED 阵列-表情 |
|
I/O 口 1~4 |
关闭表情显示,需要同 时连接两个 LED 阵列 |
LED 阵列- 符号 |
|
I/O 口 1~4 |
选择并显示符号 |
LED 阵列- 自定义 |
|
I/O 口 1~4 |
可以显示自己绘制的符 号 |
关闭 LED 阵列 |
|
I/O 口 1~4 |
关闭 LED 阵列的显示 |
读数 |
|
I/O 口 1~5 |
讲设置值和传感器的状 态转换为数值,通过扬 声器播放出来 |
传感器模块库包含了所有能够采集外部环境数据的模块,对应传感器实体 使用,可将采集到的数据赋值给对应变量。本模块库含有亮度、温度等 11 大模 块。
模块名 称 |
模块图 |
控制端 口 |
解读 |
环境 光 |
|
I/O 口 1~5 |
将对应端口亮度传 感器的检测值赋值 到亮度变量上 |
温度 |
|
I/O 口 1~4 |
将对应端口温度传 感器的检测值赋值 到温度变量上 |
湿度 |
|
I/O 口 1~4 |
将对应端口湿度传 感器的检测值赋值 到湿度变量上 |
地面灰 度 |
|
I/O 口 1~5 |
将对应端口地面灰 度传感器的检测值 赋值到灰度变量上 |
火焰 |
|
I/O 口 1~5 |
将对应端口火焰传 感器的检测值赋值 到火焰变量上 |
红外测 距 |
|
I/O 口 1~5 |
将对应端口红外传 感器的检测值赋值 到红外测距变量上 |
触碰开 关 |
|
I/O 口 1~5 |
将对应端口触动开 关传感器的检测值 赋值到开关变量上 |
磁敏 |
|
I/O 口 1~5 |
将对应端口磁敏传 感器的检测值赋值 到磁敏变量上 |
集成 灰度 |
|
I/O 口 5 |
将对应端口集成灰 度传感器的某一个 通道检测值赋值到 灰度变量上。 |
计时器 |
|
/ |
将当前系统时间 (程序从开始到当 前运行的时间)赋 值到时间变量上 |
时钟复 位 |
|
/ |
将当前系统时间 置零 |
断,其中用于判断的情况居多。在软件中提供了 while 语句、if…else
…语句、for 语句三种判断方式的流程图模块,它们都在控制模块库中。
模块名称 |
模块图 |
解读 |
条件判断 |
|
C 语言中的 if(条件)…else…语句,用户可以 设置变量、传感器、参数来控制条件。如果条件 满足执行上部语句,否则执行下部语句 |
条件判断 |
|
C 语言中的 if(条件)…else…语句,用户可以 设置变量、传感器、参数来控制条件。如果条件 满足执行内部语句 |
条件循环 |
|
C 语言中的 while(条件)语句,用户可以设置变 量、传感器、参数来控制条件。如果条件满足执 行循环体语句,否则跳出当前循环体 |
多次执行 |
|
C 语言中的 for 语句,用户可以通过参数或者引 用变量来设置循环次数。循环次数代表当前循环 体内语句重复执行次数 |
循环直到 |
|
C 语言中的 while(条件)语句,用户可以设置变 量、传感器、参数来控制条件。如果条件不满足 执行循环体语句,否则跳出当前循环体 |
重复执行 |
|
C 语言中的 while(true)语句,表示当前循环体 内语句一直重复执行 |
循环中断 |
|
C 语言中的 break 语句,位于循环体内,当循环 体内语句执行到此模块时跳出当前循环体 |
等的直到 |
|
等待条件满足才会执行下一条程序,否则一 直处于等待状态 |
等待 |
|
用户通过设置时间将当前程序状态保持一定 时间 |
模块名称 |
模块图 |
解读 |
新建任务 |
|
在用户程序中添加一个进程,相当于控制器同一 时间在做多个任务,而且这些任务是并列执行的 |
新建函数 |
|
将多个模块的程序打包成一个模块用以缩减主程 序的长度。可以通过该模块调用其他程序的子程 序,也可以通过更改参数或者引用变量来修改子 程序内部参数 |
模块名称 |
模块图 |
解读 |
加法 |
|
将用户填写的参数或者引用的变 量进行加法运算后所得到的结果 赋值到整型变量或者其他变量 |
减法 |
|
将用户填写的参数或者引用的变 量进行减法运算后所得到的结果 赋值到整型变量或者其他变量 |
乘法 |
|
将用户填写的参数或者引用的变 量进行乘法除运算后所得到的结 果赋值到整型变量或者其他变量 |
除法 |
|
将用户填写的参数或者引用的变 量进行除法运算后所得到的结果 赋值到整型变量或者其他变量 |
比较-大 于 |
|
将用户填写的参数或者引用的变 量进行大于比较运算后所得到的 结果赋值到整型变量或者其他变 量 |
比较-小 于 |
|
将用户填写的参数或者引用的变 量进行小于比较运算后所得到的 结果赋值到整型变量或者其他变 量 |
比较-等 于 |
|
将用户填写的参数或者引用的变 量进行等于比较运算后所得到的 结果赋值到整型变量或者其他变 量 |
比较-不 等于 |
|
将用户填写的参数或者引用的变 量进行不等于比较运算后所得到 的结果赋值到整型变量或者其他 变量 |
逻辑运算 -与 |
|
将两个逻辑变量进行逻辑运算。 “&&”运算时就是两个逻辑变量 都成立时则该逻辑成立 |
逻辑运算 -或 |
|
将两个逻辑变量进行逻辑运算。 “‖”运算时就是两个逻辑变量 中至少有一个成立时则该逻辑成 立 |
逻辑运算 -非 |
|
将逻辑变量进行逻辑运算。“!” 运算时就是将反向逻辑变量赋值 |
取余数 |
|
将用户填写的参数或者引用的变 量进行除以输入的参数或引用变 量运算后取余数所得到的结果赋 值到整型变量或者其他变量 |
四舍五入 |
|
将用户填写的参数或者引用的变 量四舍五入所得到的结果赋值到 整型变量或者其他变量 |
数学运算 |
|
将用户填写的参数或者引用的变 量进行数学函数运算所得到的结 果赋值到整型变量或者其他变量 |
随机数 |
|
定义随机数变量。参数为随机数 产生区间,取值范围 0~99999。 不对应执行器实物 |
的一个存储单元。用来存放数据。如:将地面灰度传感器的检测值赋值到灰度
变量。
模块名称 |
模块图 |
解读 |
数字输入 |
|
将对应端口数字传感器的检测值赋值 到数字变量上,所有数字量传感器都 可用此模块替代 |
模块名称 |
模块图 |
解读 |
数字输入 |
|
将对应端口数字传感器的检测 值赋值到数字变量上,所有数 字量传感器都可用此模块替代 |
模拟输入 |
|
将对应端口模拟传感器的检测 值赋值到模拟变量上,所有模 拟量传感器都可用此模块替代 |
数字输出 |
|
控制对应(可多选)数字执行 器的开与关。所有开关量执行 器都可用此模块替代 |
读 EEPROM |
|
读取控制器中 EEPROM 的某一地 址(0~99)的数值并赋值给 EEPROM 变量 |
写 EEPROM |
|
将需要的参数或者引用的变量 写入控制器 EEPROM 里的某一个 地址下(0~99) |
详细介绍见第五章,巡线入门
在流程图编辑界面下按照如图所示点击代码转换界面里的“切换到 C 代码编辑”。
在流程图编辑界面下按照如图所示点击代码转换界面里的“切换到 Python 代码编辑”。
函数及变量显示
菜单栏
多功能提示窗口 程序编辑窗口
C 语言编程界面如上图所示,主要包含 4 个窗口:菜单栏、函数及变量显 示窗口、程序编辑窗口和多功能提示窗口。其中上面右侧较大为程序编辑窗 口。
菜单栏 多功能提示窗口
程序编辑窗口
Python 语言编程界面如上图所示,主要包含 3 个窗口:菜单栏、程序编辑 窗口和多功能提示窗口。其中中间部分为程序编辑窗口。
连接触碰传感器和电机到控制器,使用条件循环控制电机停转,需用到电 机、触碰传感器、重复执行、判断、运算-小于、关闭电机、循环中断模块,程 序如上图;注意:地面灰度传感器模块与外接传感器选择端口一致,循环条件 中使用的变量为触碰传感器对应变量,电机模块和电机停止模块中勾选的端口 与电机外接端口一致。
连接红外传感器和电机到控制器,使用条件循环控制电机反向 2 秒后停 转,需用到电机、红外传感器、重复执行、判断、运算-小于、反转电机、等 待、关闭电机和循环中断模块,程序如上图;注意:地面灰度传感器模块与外 接传感器选择端口一致,循环条件中使用的变量为触碰传感器对应变量,电机 模块和电机停止模块中勾选的端口与电机外接端口一致。
巡线模块库是针对巡线类机器人竞赛开 发的一个专门模块库,此模块库应用 PID 算 法使得机器人可以准确巡线、定位路口、精 确转弯,可满足大部分巡线类比赛需要。巡 线模块库包含初始化、黑白检测、巡线路 口、巡线计时、转弯、计时启动电机、计距 启动电机、灰度通道启动电机、按钮九个模 块,下面做简单介绍(小车接线如右图所 示,具体参考产品使用手册)。
1. 初始化:
设定巡线小车的电机、传感器相应接口和相关参数。
模块解读:整个巡线模块库初始设置模块,必须放置在巡线程序的起始位 置,一般放在主程序之后。
电机属性:左电机默认接电机通道 A,右电机默认接电机通道 B;功率数值 代表百分数,小车实际运行速度为巡线速度乘此百分数,可根据小车实际运行 情况调整功率,使左、右电机速度相同时小车沿直线前进;若巡线时小车原地 旋转,则将小车旋转方向一侧的电机功率设定为负(例:若小车向左转,则将 左侧电机功率设置为负)。
地面灰度通道:集成灰度传感器必须连接 5 号 I/O 接口,默认地面灰度传 感器从左至右分别对应集成灰度传感器的 1-5 通道上。
2. 黑白检测:
标定场地上的黑线和白底。
模块解读:必须和初始化模块一起组成完整程序下载到控制器中使用,更 换场地或环境光线改变需要重新进行黑白检测。
检测方法:运行程序按照提示进行检测(当提示 BLACK LINE 或 WHITE GROUND 时灰度传感器必须全部放置于黑线或者白底上)。检测完成后,控制器 屏幕会显示检测数值,黑线对应数值均大于 2000,白底对应数值均低于 400, 若检测值不在此范围内,则需要重新检测。
以一定速度巡线通过某一类型的路口,通过路口后继续前进一段时间后停 止。
路口类型:
勾选左侧
勾选右侧
勾选 T 字/十字路口
勾选左侧或右侧,不可勾选 T 字/十字路口 模块解读:巡线路口模块多用于转弯模块之前,小车运行到某一路口后停
止,为转弯做好准备;必须用在初始化模块之后。
巡线速度:实际速度=巡线速度 X 功率%(初始化模块设定)
冲过路口时间:小车灰度传感器经过对应路口(黑线)后,继续前行的时 间;冲过路口时间长短直接影响小车转弯结束时与黑线的位置关系。
以一定速度巡线一定时间后停止。
模块解读:多用于小车巡线前进时需停止在某一没有路口的位置;受摩擦 力影响较大,不能精确控制。
小车以一定的速度向某一方向旋转,直到勾选的灰度传感器检测到黑线 时,小车停止。
模块解读:用于改变小车当前方向;结束位置的三个选项代表小车前方处 于中间位置的三个灰度传感器,勾选某一个选项,转弯过程中对应位置的灰度 传感器检测到黑线时小车停止;当一侧电机速度设置为负时,则小车向该侧旋 转。
以时间来控制电机运转使小车产生位移。
模块解读:多用于没有黑线区域的小车移动; 时间控制:小车左右轮以一定速度移动一定的时间。
以距离来控制电机运转使小车产生位移。 模块解读:多用于没有黑线区域的小车移动;
距离控制:小车左右轮以一定的速度移动一定的距离(移动距离以电机速 度快的一侧为准)。
以传感器来控制电机运转使小车产生位移。 模块解读:多用于没有黑线区域的小车移动;
传感器控制:小车左右轮以一定的速度移动,直到所选传感器反馈值满足 条件,小车停止。
程序执行到此模块时进入循环,直到按下控制器按键,程序跳出循环,继 续向后执行。
按钮启动多用于初始化模块后,可让小车在运行程序后不会立即启动,给 参赛选手调整时间。