行空板Mind+图形化编程
1 - 连接行空板
- 打开Mind+,切换到Python模式,点击模块即可切换到图形化模式,然后点击扩展,加载行空板后返回即可。
- 行空板加载完成后,菜单中会出现一个连接远程终端的选项,使用USB线连接电脑USB口,等待行空板开机完成后点击10.1.2.3(无线连接时也可输入板子的IP地址连接),连接成功后,Mind+的终端即相当于行空板的终端,点击运行,Mind+会将Python代码发送到行空板上运行。
注:如果连接超时,可以尝试点击取消然后重新连接,如果情况依然请查看常见问题中的解决办法:点击跳转
- 连接成功后会弹出提示,终端会显示**(行空板)**即表示连接成功。
- Mind+连接成功后会自动检测行空板上的依赖库版本(图形化积木需要的python库),如果版本低了会提示需要更新,请点击更新,会自动弹出库管理页面并进行更新,等待直到命令运行完成后关闭库管理页面。
2 - 行空板编程流程
在Mind+使用图形化编程,只需要将指令区的积木拖动到脚本区组合到程序中即可,Mind+会自动生成对应的Python代码。
开始操作:
行空板正面为一个240x320像素的显示屏,因此我们先从操作屏幕开始,此处我们先实现在行空板上显示文字行空板
-
在指令区选择行空板,将其中第一个积木拖动到Python主程序开始下方,积木将自动吸合。
-
然后点击运行按钮,可以看到Mind+将项目上传到行空板并自动启动运行,此时行空板上会根据程序执行显示行空板三个字。如果没有连接行空板则点击运行会直接调用电脑上的python运行此程序。
- 注:此处使用VNC屏幕共享可以在电脑上实时观看行空板屏幕显示的内容,方便演示,同时鼠标键盘也可以使用。
- 注:此处使用VNC屏幕共享可以在电脑上实时观看行空板屏幕显示的内容,方便演示,同时鼠标键盘也可以使用。
接下来我们修改一下程序,实现按下A键和B键切换不同的文字。
- 切换文字我们需要使用到更新对象参数功能,在行空板中每个显示的内容都可以给他取个名字,然后后面更新他的参数即可实现修改内容而无需经常清屏。
- 拖动积木,给文字取一个名字为txt,然后当按下A键的时候将文字更新为你好,按下B键的时候更新为hello
注: 可以使用搜索功能快捷搜到对应积木:
- 再次运行程序,屏幕显示行空板,然后按下行空板上的A键和B键,实现了我们需要更新文字的效果。
Python程序中会用到一些图片或文件资源,因此需要将图片拖入到文件系统中,接下来我们演示一下显示一张图片到行空板上。
-
准备一张图片,例如mind+.png,点击文件系统,将图片文件拖动到项目中的文件目录下。
-
拖动显示图片的积木,文件名改为拖入的图片的名字,点击运行,即可看到屏幕上显示了图片。
至此我们基本了解了在Mind+上如何对行空板进行基本的图形化编程,你还可以试试编写程序实现按下A键和B键的时候更新文字的坐标,让文字动起来。
===========
3- 行空板主板积木说明
行空板主板中的积木根据功能分为7大部分,分别为:屏幕显示、鼠标键盘事件、多线程、板载传感器、板载蜂鸣器、引脚操作、音频录放,下面逐一展开介绍。
|-3-1 屏幕显示积木说明
屏幕显示相关积木主要使用到了unihiker库,可以先查看unihiker库基础说明【点击跳转】,其中前半部分为各种控件的显示功能,后半部分为更新控件的各种参数功能。
积木说明
积木 | ![]() |
说明 | 生成一个文字显示的对象,对象名xxx,初始状态为:文字“行空板”,位置(0,0),字号20,颜色蓝色 |
积木 | ![]() |
说明 | 生成一个仿数码管显示的对象,对象名xxx,初始状态为:字体“1234”,位置(0,0),字号20,颜色蓝色 |
积木 | ![]() |
说明 | 生成一个图片显示的对象,对象名xxx,图片路径为图片img.png,需要将图片拖入文件系统对应目录,位置(0,0) |
积木 | ![]() |
说明 | 生成一个内置动态表情显示的对象,对象名xxx,初始状态为:表情睡觉,位置(0,0),动态表情切换间隔0.2秒。表情包括:愤怒、紧张、平静、惊讶、睡觉、微笑、冒汗、思考、眨眼 |
积木 | ![]() |
说明 | 生成一个按钮的对象,对象名xxx,初始状态为:文字“按钮”,位置(0,0),宽40,高30,回调函数名:button_click1,注意按钮始终显示在最顶层。 |
积木 | ![]() |
说明 | 生成一个时钟显示的对象,对象名xxx,初始状态为:位置(120,100),半径50,填充颜色蓝色 |
积木 | ![]() |
说明 | 生成一个填充时钟显示的对象,对象名xxx,初始状态为:位置(120,100),半径50,边框颜色蓝色,填充颜色蓝色 |
积木 | ![]() |
说明 | 生成一个二维码显示的对象,对象名xxx,初始状态为:内容(https://unihiker.com ),位置(70,100),边长70 |
积木 | ![]() |
说明 | 生成一个线段显示的对象,对象名xxx,初始状态为:起点位置(0,0),终点位置(240,320),线宽1,颜色蓝色 |
积木 | ![]() |
说明 | 生成一个矩形显示的对象,对象名xxx,初始状态为:位置(0,0),宽100,高200,线宽1,边框颜色蓝色 |
积木 | ![]() |
说明 | 生成一个填充矩形显示的对象,对象名xxx,初始状态为:位置(0,0),宽100,高200,填充颜色蓝色 |
积木 | ![]() |
说明 | 生成一个圆角矩形显示的对象,对象名xxx,初始状态为:位置(0,0),宽100,高200,圆角半径5,线宽1,边框颜色蓝色 |
积木 | ![]() |
说明 | 生成一个圆角填充矩形显示的对象,对象名xxx,初始状态为:位置(0,0),宽100,高200,圆角半径5,填充颜色蓝色 |
积木 | ![]() |
说明 | 生成一个圆形显示的对象,对象名xxx,初始状态为:位置(120,100),半径50,线宽1,边框颜色蓝色 |
积木 | ![]() |
说明 | 生成一个填充圆形显示的对象,对象名xxx,初始状态为:位置(120,100),半径50,填充颜色蓝色 |
积木 | ![]() |
说明 | 更新对象名为:xx的数字参数为1.数字参数包括:x、y、宽、高、半径、线宽、起始点x、起始点y、终止点x、终止点y、字体大小 |
积木 | ![]() |
说明 | 更新对象名为:xx的文本内容参数为你好 |
积木 | ![]() |
说明 | 更新对象名为:xx的颜色,以取色板形式 |
积木 | ![]() |
说明 | 更新对象名为:xx的颜色,以数值方式输入红绿蓝范围为0~255 |
积木 | ![]() |
说明 | 更新对象名为:xx的颜色为blue,颜色包括:red、orange、 yellow、 green、 indigo、 blue、 purple |
积木 | ![]() |
说明 | 更新对象名为:xx基准点为中心.基准点包括:中心、上、下、左、右、左上角、右上角、左下角、右下角,查看unihiker库基础说明【点击跳转】 |
积木 | ![]() |
说明 | 更新时钟对象为:xx的时间为10时0分0秒,时范围:0~11, 分范围:0~59, 秒范围:0~59 |
积木 | ![]() |
说明 | 更新对象名为:xx的回调函数为button_click1 |
积木 | ![]() |
说明 | 当点击回调函数button_click1,执行下面程序,注意不要执行需要长耗时的程序,如果需要则可以开启单独线程运行。 |
积木 | ![]() |
说明 | 更新图片对象为:xx图片源路径为img2.png |
积木 | ![]() |
说明 | 更新表情对象为:xx标情源为睡觉。表情源包括:愤怒、紧张、平静、惊讶、睡觉、微笑、冒汗、思考、眨眼 |
积木 | ![]() |
说明 | 更新按钮对象为:xx为启用。包括:启用、禁止,禁止后按钮为灰色不可点击状态。 |
积木 | ![]() |
说明 | 更新任意对象的某个参数的值 |
积木 | ![]() |
说明 | 删除某个对象 |
积木 | ![]() |
说明 | 删除所有对象。注意如果删除后则无法更新控件了,如果需要清屏,可以采用覆盖填充矩形或移动位置的形式实现。 |
|-3-1 项目展示(几何图形绘制、进度条绘制、表情绘制秒表绘制)
-
项目一: 几何图形绘制
-
功能描述:矩形、圆形绘制。
- 效果展示
-
项目二: 绘制进度条
-
功能描述:显示当前加载进度,提醒加载完成。
-
效果展示
-
项目三: 表情绘制
-
功能描述:显示文字、图片与内置表情。
- 效果展示
- 项目四: 绘制秒表
- 功能描述:绘制一款秒表。
- 效果展示
---------
|-3-2 鼠标键盘事件
行空板上的A键和B键相当于键盘的A键和B键,触摸屏则相当于鼠标移动。
积木说明
积木 | ![]() |
说明 | 当接收到鼠标移动事件,返回x,y坐标 |
积木 | ![]() |
说明 | 当行空板A键按下,执行程序,下拉参数包括A和B |
积木 | ![]() |
说明 | 当任意键盘按键被按下,执行程序。注意可以将后面两个积木组合使用。 |
积木 | ![]() |
说明 | 获取键盘上数字和字母键 |
积木 | ![]() |
说明 | 获取其他键盘 |
积木 | ![]() |
说明 | 等待直到按键A被按下,程序才继续运行 |
|-3-2 项目展示(滑动解锁、词汇量测试)
- 项目一: 滑动解锁
- 功能描述:通过远程桌面连接使用PC端的鼠标或通过行空板USB接口接入鼠标,使用鼠标将屏幕上方图片滑至框内,拼图成功即解锁。
- 效果展示
- 项目二: 词汇量测试
- 功能描述:通过远程桌面连接使用PC端的键盘或通过行空板USB接口接入键盘,输入字母,补全单词,输入正确则显示对勾。
- 效果展示
---------
|-3-3 多线程
行空板是一台运行linux操作系统的电脑,因此你可以使用多线程来操作多个事件实现更直观的程序逻辑。
积木说明
积木 | ![]() |
说明 | 生成一个线程的对象,对象名thread1,启动此线程 |
积木 | ![]() |
说明 | 停止对象名thread1的线程 |
积木 | ![]() |
说明 | 当线程对象名thread1启动后,执行下面程序 |
|-3-3 项目展示(鱼管家、推箱子)
- 项目一: 鱼管家
- 功能描述:通过多线程,实现两条鱼的分别控制:按下按钮,控制相应鱼的游速。
进阶版: [项目分享]鱼管家(来回游动版)
-
效果展示
-
项目二: 推箱子 V1.0
-
功能描述:推箱子小游戏,测试你的手速,请在3秒内,快速按下A按钮,将左边箱子推到右边的方框内。
进阶版: [项目分享]推箱子手速小游戏
- 效果展示
---------
|-3-4 板载传感器
行空板板载传感器由协处理器连接控制,因此主要调用pinpong库来实现硬件控制。
积木说明
积木 | ![]() |
说明 | 判断按钮A是否被按下,按下状态值返回1,否则返回0 |
积木 | ![]() |
说明 | 读取环境光强度 |
积木 | ![]() |
说明 | 读取麦克风声音强度 |
积木 | ![]() |
说明 | 读取加速度x的值,包括:x,y,z,强度 |
积木 | ![]() |
说明 | 读取陀螺仪x的值,包括:x,y,z |
|-3-4 项目展示(光控灯、肺活量测试仪)
-
**项目一:**光控灯
-
功能描述:当感应到环境光线较亮,灭灯;当感应到环境光线较暗,亮灯。
-
效果展示
-
**项目二:**肺活量测试仪
-
功能描述:按下A按钮,对准“声音传感器”吹气15秒,比比谁的肺活量更大。
-
效果展示
---------
|-3-5 板载蜂鸣器
积木说明
积木 | ![]() |
说明 | 播放DADADADUM音乐,初始状态为:重复播放一次 |
积木 | ![]() |
说明 | 播放音符4,60拍 |
积木 | ![]() |
说明 | 播放音符1低C/C3为1拍 |
积木 | ![]() |
说明 | 后台播放音符1低C/C3 |
积木 | ![]() |
说明 | 停止后台播放 |
积木 | ![]() |
说明 | 蜂鸣器重定向到引脚P0 |
|-3-5 项目展示(推箱子)
-
项目一: 推箱子 V2.0
-
功能描述:在2-3项目二“推箱子”游戏的基础上,增加游戏开始音效、按键音效与游戏胜利音效。
-
效果展示
---------
|-3-6 引脚操作
积木说明
积木 | ![]() |
说明 | 选择行空板上的引脚对象,主要配合扩展中的pinpong库来使用 |
积木 | ![]() |
说明 | 读取数字引脚P21的值 |
积木 | ![]() |
说明 | 读取模拟引脚(ADC)P21的值 |
积木 | ![]() |
说明 | 设置数字引脚P25为低电平 |
积木 | ![]() |
说明 | 设置模拟引脚P21输出(PWM)512,范围:0~1023 |
|-3-6 项目展示(多功能灯)
-
**项目一:**多功能灯
-
功能描述:按下按钮开灯,旋转旋钮可调节灯的亮度,再次按下按钮,关灯。
-
效果展示
---------
|-3-7 音频录放
行空板具有USB口,因此可以使用USB喇叭或USB转3.5mm声卡或蓝牙音箱等实现音频播放,此处调用的是unihiker库中的Audio类。
积木说明
积木 | ![]() |
说明 | 录音10秒直到录制完成才执行下一条程序,保存文件名:record.wav, |
积木 | ![]() |
说明 | 开始后台录音,不阻塞程序运行,保存文件名:record.wav |
积木 | ![]() |
说明 | 结束后台录音 |
积木 | ![]() |
说明 | 播放record.wav的音频文件直到播放完成才执行下一条程序 |
积木 | ![]() |
说明 | 开始后台播放record.wav的音频文件,不阻塞程序运行 |
积木 | ![]() |
说明 | 获取后台播放音频的剩余时长(秒) |
积木 | ![]() |
说明 | 暂停后台播放 |
积木 | ![]() |
说明 | 重新开始后台播放 |
积木 | ![]() |
说明 | 结束后台播放 |
|-3-7 项目展示(迷你唱吧)
-
项目一: 迷你唱吧
-
功能描述:本功能类似《唱吧》,可以同时播放伴奏、录制人声。点击伴奏名选择伴奏,开始唱歌,录制时间结束后,自动播放录制好的歌,注意需要在行空板上连接一个USB喇叭。
-
效果展示
------------------
4 - 基础积木说明
除专用图形化扩展库,作为Python基础知识点的通用基础积木也进行了说明。
基础积木说明:[点击跳转]
------------------
5 - 扩展库积木说明
Mind+已经将Python初学者最常用的库制作了图形库,还将逐步将更多Python库制作为图形化库。
扩展库积木说明:[点击跳转]
------------------
6 - 扩展用户库
除内置图形化库以外,Mind+允许用户自行制作扩展库。