[原创] 【行空板 Python编程学习主控板评测二】Mind+图形化编程——数字时钟

宜城龙山   2022-11-18 23:44 楼主

【行空板 Python编程学习主控板评测二】Mind+图形化编程——数字时钟

 

一、Mind+简介

Mind+是一款拥有自主知识产权的国产青少年编程软件,集成各种主流主控板及上百种开源硬件,支持人工智能(AI)与物联网(IoT)功能,既可以拖动图形化积木编程,还可以使用Python/C/C++等高级编程语言,让大家轻松体验创造的乐趣。

Mind+中的Python模式具有如下特点:

二、Mind+准备

从Mind+官网下载最新版本(不低于V1.7.0) http://mindplus.cc

安装教程及如果出现问题可以参考Mind+官方文档: 安装教程

安装完成后即可打开Mind+。点击切换到Python模式,即可进入Python模式界面。

主界面如下:

图1 Mind+下的Python模式主界面图

①菜单栏:

项目:对整个项目文件sb3的操作(包括其他模式),包括新建、打开、另存、最近编辑、缓存列表。

教程:包含官方文档、官方论坛、视频教程、示例程序。

②编辑模式切换:

模块:Python的图形化编程界面。

代码:Python的代码编程界面。

③积木选择区:所有图形化积木或已加载的扩展库中的图形化积木均出现在此处,可拖动到积木编辑区,从积木编辑区拖动积木到此区域则为删除。

④扩展库:非常用的功能,例如海龟绘图等图形化积木功能可以从扩展库中加载,扩展库中有官方库及用户库(开发中,后续版本开放),官方库为Mind+官方内置于软件中的扩展库,用户库为第三方用户开发的图形化扩展库。

⑤积木编辑区:此处进行图形化编程,积木需要连接到Python主程序开始或其他帽子型积木后方才会被执行,此处的积木拖动到③积木选择区则为删除积木。

⑥快捷工具区:

运行按钮:当打开的文件为py文件时,点击可以运行py文件,运行时点击可以停止运行。

代码区开关:可以隐藏或显示代码区和终端区,以获取更大的编程区域。

⑦自动生成代码区:此处会自动根据积木区的积木程序自动 生成对应的Python代码,程序实际上运行的是这里的Python代码,如果需要编辑可以复制到代码模式编辑。

⑧终端信息输出区:Python运行的输出信息、错误信息、REPL交互等操作。

三、Mind+对行空板编程

Mind+从V1.7.2 RC3.0版本开始加入对行空板的支持,使用Mind+对行空板编程的优点:

1、使用指南

2、行空板Python库安装。

行空板出厂系统内置了Python及很多常见库,也可以安装更多其他Python库,本文讲述使用Mind+安装库的操作方法。

连接WiFi

常规通过网络安装第三方库时需要行空板连接网络,因此首先需要保证行空板连接了具有网络功能的WiFi。

图2 行空板无线连接界面图

安装库

打开Mind+,连接行空板,切换到代码标签页,点击库管理,此时库管理页面左上角显示行空板logo,说明此处显示的是行空板的库管理。

图3 行空板安装库操作示意图

更新库

行空板联网后,打开库管理,切换到PIP模式,输入pip install -U 要更新的库名字回车等待运行完成即可更新指定库到最新版本,见图4。例如:

图4 行空板python库更新操作界面示意图

加载行空板库

在图1中选择,出现如下界面,选择行空板即可加载库,如图5所示。便可使用行空板专用功能模块,如图6所示。至此,我们就可以在MInd+环境下进行图形化编程与开发。

图5 mind+环境加载行空板库操作界面示意图

图6 mind+环境下行空板积木模块示意图

四、亲手做个数字时钟

1、预备知识

利用行空板显示一个模拟时钟和一个数字时钟,要用到行空板图像化编程中的时钟显示、仿数码管显示、文字显示、控制等积木,同时还要使用python时间函数、分别是获取本地时间函数time localtime()、获取当前时间戳函数time.time()和时间戳格式转换函数time.strftime(),time.strftime()中时间格式字符如下:

为了能够显示时间段名称,如上午、下午等,需采用24小时制,为了凝固显示中文星期名称,我们建立了一个字典,通过关键字进行转换,如下图

2、图形化编程

各积木名称及参数设置说明如下。

模拟时钟、数字时钟、日期显示部分如下图:

时间段计算如下图所示:

时间更新如下图:

完整的程序代码如下:

#  -*- coding: UTF-8 -*-



# MindPlus

# Python

from unihiker import GUI

import time



u_gui=GUI()

time.sleep(0.1)

week_c = {"Mon": "星期一","Tues":"星期二","Wed":"星期三","Thur":"星期四","Fri":"星期五","Sat":"星期六","Sun":"星期日"}

label=u_gui.draw_text(text="数字时钟",x=70,y=10,font_size=20, color="#FF0000")

clock=u_gui.fill_clock(x=120,y=130,r=60,color="#000000",fill="#99FFFF")

date1=u_gui.draw_text(text="日期:",x=10,y=200,font_size=16, color="#CC33CC")

date_l = time.strftime("%Y年%m月%d日",time.localtime(time.time()))

week_k = time.strftime("%a",time.localtime(time.time()))

week_n = (week_c[week_k])

date2=u_gui.draw_text(text=date_l,x=70,y=200,font_size=16, color="#FF9966")

wekk_1=u_gui.draw_text(text=week_n,x=80,y=230,font_size=16, color="#0000FF")

label1=u_gui.draw_text(text="上午:",x=5,y=260,font_size=16, color="#FF0000")

alarm_h=u_gui.draw_digit(text="00",x=55,y=270,font_size=16, color="#0000FF")

label=u_gui.draw_text(text="点",x=85,y=260,font_size=16, color="#0000FF")

alarm_m=u_gui.draw_digit(text="00",x=110,y=270,font_size=16, color="#FF6600")

label=u_gui.draw_text(text="分",x=140,y=260,font_size=16, color="#0000FF")

alarm_s=u_gui.draw_digit(text="00",x=165,y=270,font_size=16, color="#660000")

label=u_gui.draw_text(text="秒",x=200,y=260,font_size=16, color="#0000FF")



while True:

    hour = int(time.strftime("%H",time.localtime(time.time())))

    min1 = int(time.strftime("%M",time.localtime(time.time())))

    sec = int(time.strftime("%S",time.localtime(time.time())))

    if (hour > 11):

        if (hour < 7):

            label1.config(text="下午")

        else:

            label1.config(text="晚上")

        hour = (hour - 12)

    else:

        if (hour < 6):

            label1.config(text="凌晨")

        else:

            label1.config(text="上午")

    clock.config(h=hour,m=min1,s=sec)

    alarm_h.config(text=hour)

    alarm_m.config(text=min1)

    alarm_s.config(text=sec)

3、在行空板上的运行结果

通过四、总结

总体上来说,使用mind+对行空开发板进行编程,操作简便,功能强大。特别适合python初学者使用。

回复评论 (1)

看起来很方便

 

点赞  2022-11-20 11:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复