2.1.2-图形化编程(积木说明)

1 - 连接行空板

  • 打开Mind+,切换到Python模式,点击模块即可切换到图形化模式,然后点击扩展,加载行空板后返回即可。

  • 行空板加载完成后,菜单中会出现一个连接远程终端的选项,使用USB线连接电脑USB口,等待行空板开机完成后点击10.1.2.3(无线连接时也可输入板子的IP地址连接),连接成功后,Mind+的终端即相当于行空板的终端,点击运行,Mind+会将Python代码发送到行空板上运行。

注:如果连接超时,可以尝试点击取消然后重新连接,如果情况依然请查看常见问题中的解决办法:点击跳转

  • 连接成功后会弹出提示,终端会显示**(行空板)**即表示连接成功。

  • Mind+连接成功后会自动检测行空板上的依赖库版本(图形化积木需要的python库),如果版本低了会提示需要更新,请点击更新,会自动弹出库管理页面并进行更新,等待直到命令运行完成后关闭库管理页面。

2 - 行空板编程流程

在Mind+使用图形化编程,只需要将指令区的积木拖动到脚本区组合到程序中即可,Mind+会自动生成对应的Python代码。

开始操作:

行空板正面为一个240x320像素的显示屏,因此我们先从操作屏幕开始,此处我们先实现在行空板上显示文字行空板

  • 在指令区选择行空板,将其中第一个积木拖动到Python主程序开始下方,积木将自动吸合。

  • 然后点击运行按钮,可以看到Mind+将项目上传到行空板并自动启动运行,此时行空板上会根据程序执行显示行空板三个字。如果没有连接行空板则点击运行会直接调用电脑上的python运行此程序。

    • 注:此处使用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的值,包括:xyz强度

积木

说明

读取陀螺仪x的值,包括:xyz

|-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 - 扩展库积木说明

Mind+已经将Python初学者最常用的库制作了图形库,还将逐步将更多Python库制作为图形化库。

扩展库积木说明:[点击跳转]

——————

5 - 基础积木说明

除专用图形化扩展库,作为Python基础知识点的通用基础积木也进行了说明。

基础积木说明:[点击跳转]

——————