一、概述
TY流程图编程软件系统为通用依耐特公司教学/竞赛机器人专用程序设计系统,本软件是在Windos操作系统下的图形化操作界面的软件。适用于普通高中通用技术简易机器人制作课程的教学需要,也适用于竞赛机器人的设计和研究。为满足高中通用技术教学需要,本系统采用可视化技术体现机器人软件设计的流程和方法(总体设计à电气单元部件选用和连接à控制软件设计à单独部件功能测试à修改设计调整参数à整体功能测试à总结提高),具有可视化的电气单元连接与装配的设计界面、标准流程图编程方式、USB下载功能。立足学生学习和竞赛的实际需求,提供标准化、单元化的基本模块并提供用户自建扩展模块的程序设计。
本软件的全新设想和设计提供了高智能的可视化的程序设计。可视化的电气单元连接与装配的设计界面,采用真实的主板插座图。当用户选择一个传感器或执行部件时,图上会出现允许使用的插座和优先推荐使用的插座的提示,即使用户对单片机端口不完全了解,也能保证用户实现正确的连接,并自动将硬件与CPU端口的连接信息传递到编程界面。用户在编程时无须翻看图纸或图表等说明资料设置端口信息,使操作更简便,也使操作的对象更清晰、明确,效率更高。
本软件体现任务驱动的教学和学习模式。用户要实现的每个任务,作为一个项目对待。比如,用户要参加机器人灭火竞赛,需要设计制作一个灭火机器人。首先建立一个项目,这个项目名称可以叫:灭火机器人。在这个项目中,用户至少要进行两项工作或称两个过程,第一个过程,用户首先要按照竞赛要求对灭火机器人进行总体设计,确定采用的传感器模块和执行模块,并配置安装,连接到主板插座。即第一个过程是进行硬件设计和制作;第二个过程进行软件编程。本软件的可视化的硬件信息的设计界面要求用户在这个项目中首先将连接到主板插座上的传感器和执行模块等在仿真图形硬件信息界面中实现,在此基础上,软件自动将端口的连接信息传递到程序设计界面。程序设计中也只能对已连接的硬件资源进行编程,这也体现了正确的设计流程,保证软硬件的一致和同步。
本软件允许在一个项目中,可以反复进行硬件连接和软件编程的修改。支持用户进行单元部件和局部功能的独立测试试验,便于学生在设计实践过程中经历实践、认识、再实践、再认识的互动反馈过程,实现学生的体验性、反思性学习。
二、建立及打开项目
TY流程图软件以项目管理用户的任务。用户设计建立的每一个具有特定功能的机器人为一个项目。这个项目中包含硬件信息和软件程序。软件程序至少有一个主程序,还可包含若干函数(子程序)。每个项目中的主程序没有个性化的名称,统一名为“主程序”。因此,每个项目需要单独建立目录,存放本项目的文件。下图为新建或打开项目的窗口,左侧排列本系统提供的资源模块。

三、硬件信息编辑
填入项目名称,确定项目文件存放目录后,进入硬件信息编辑窗口,见下图:

中部“硬件信息”编辑窗口中为主板插座排列图。当选中左侧的某个模块后,插座图上显示红点的插座为推荐优先使用的插座,其余显示黑点的插座,为允许使用的插座。例如,当我们选中寻迹传感器时,插座图如下:

图中显示的带点的插座,全部为可用于一位数字信息输入/输出的插座。每个插座为三线:电源、地及信号线,共计26个。带红点的插座为锁紧插座,适宜单信号线的输入/输出模块连接使用,因此优先推荐。未带点的插座为不允许使用或已被使用的插座,用户将无法连接。选中模块后,鼠标置于某个插座的位置时,将显示这个插座的编号。下图为插座编号图。

点击你选定的插座,该插座中显示模块名称,表示此插座与选中的模块已连接。若想取消连接,双击该插座。在该插座上,点击右键,将弹出一个小窗口,可以按照个人意愿修改已连接的模块名称。此名称将出现在随后的编程信息中。见下图:

如:可根据传感器安装位置和功能命名为“左寻迹”。结果如下图:

电机模块占用两个端口,为防止混乱,最好从推荐使用的最低编号的端口(K0)连续选择使用。如果我们需要三个电机,可选择K0、K2、K4三个端口。每个电机模块实际占用两个端口,电机1占用K0、K1,电机2占用K2、K3,电机3占用K4、K5,见下图:

部分模块如:指南针、外接液晶、伺服电机、主板内置LCD、直流驱动/步进驱动等模块只能使用特定端口。其中直流驱动/步进驱动两个模块在一个项目中只能使用其中一个模块,可选择连接到M0或连接到M1。使用主板内置的直流电机驱动模块时连接到M0,使用外接电机驱动模块时(步进电机驱动或外接大功率直流电机驱动)连接到M1。复合寻迹、复眼等I2C通讯连接的模块可以同时连接到I0插座。实际两个或多个I2C模块从I0插座串联连接。
主板内置的声控传感器、蜂鸣器模块及其它内置软件模块不需要用户连接即可使用,因此未出现在硬件信息窗口中。
连接完成的同时,窗口右侧将显示硬件连接信息,包括模块名称和此模块连接的插座编号。
四、流程图编程
1、实例及说明
我们制作一个寻线运行的机器人。安装了两个寻迹传感器,采用主板内置直流电机驱动,使用主板内置显示器显示信息。当完成一个项目的硬件连接后,硬件信息编辑窗口如下图:

点击右侧栏目内的“主程序”,将出现流程图编程界面,见下图:

注意左侧的模块栏。左侧的模块栏中仅有已连接的硬件模块和内置的软件模块。如需要修改配置安装的硬件,需要返回硬件信息编辑窗口先进行硬件连接的修改。本软件的如此安排,是强调实现机器人项目需要遵循的正确流程,是保证软硬件的一致,高效、智能的程序设计。用户无须详细理解单片机的端口功能,就能完成硬件的连接,并且保证程序设计中不会出现端口设置错误的问题。当流程图窗口处于最大化状态时,返回硬件信息编辑窗口会有困难,可按下图操作:点击左上角的图标,在打开的菜单中点击“还原”。

其次,安装的模块名称可完全由用户定义,使其符合用户的习惯和具备提示作用,方便用户在编程中正确使用。例如:左寻迹、右寻迹。
作为机器人行走运行动力的直流驱动。在硬件信息编辑窗口被选择后,为方便编程,此处衍生出一系列动作模块(前进、后退、左转、右转、停止等)。在使用各动作模块之前,必须先放置“直流驱动模块”并进行参数设置,然后可按需要执行各种动作。“直流驱动模块”中隐含“前进”动作。如果在后续的动作中需要修改参数,必须再次放置“直流驱动模块”并重新按需要设置参数。
步进驱动与直流驱动模块均为解决机器人行走动力驱动的模块。考虑一个机器人一般只需要一组行走动力驱动,因此步进驱动与直流驱动模块使用CPU的同一组端口,因此不能同时使用。即M0和M1插座只能使用其中一个。
“LCD初始化”模块为主板可选配的内置16*2液晶显示器,使用固定的专用L0插座。用户选择后,同样衍生出若干显示功能。用户也必须在放置了“LCD初始化”模块后,才能再放置其它显示功能模块(LCD清屏、数据显示、单字符显示、字符串显示等)。
内置软件模块中提供了两个ms延时的模块。其中“ms延时”模块采用定时器中断方式,“TY-
ms延时”模块采用程序循环方式。可按编程需要选择使用。
“声控传感器”模块中已内置等待声音发生的循环判别语句,使用时可直接拖放到需要的位置,无须再进行逻辑判别程序的编写。
流程图编程之后,可点击右侧栏目中的“查看C语言源代码”。将显示程序的C语言代码文件清单。此功能可表现流程图和程序语句的对应关系,帮助用户学习掌握C语言编程。
2、图标的放置
将鼠标指针放到需要的模块图标上,点击一下,图标将随鼠标指针移动。将图标拖动到已存在的流程图附近,流程图上最近的可用连接点将出现“o”标志。如此处即是需要的放置位置,再次点击鼠标,完成放置。否则继续移动鼠标寻找放置位置。如果需要取消本次选择的图标,按“Esc”键,取消选择的图标。
图标放置后,在图标上点右键,选择“编辑”可进行参数设置。不需要进行参数设置的模块,无法进入“编辑”。
使用“赋值语句”模块,可以编辑选择返回变量的语句也可编辑不选择返回变量的语句。选择返回变量时,表达式栏中仅编辑变量及等号后的表达式。;例如:需要编辑的语句:i++;
不选择返回变量:

选择返回变量:

任何情况下,表达式栏中语句的最后不需要‘;’。
3、变量编辑
进入“变量编辑”窗口,点击右键可以添加变量,“添加变量”窗口如下:

变量定义位置中的“函数参数”是用户建立的子程序使用的输入参数。一般需要在子程序编辑窗口中添加。
目前本软件尚不支持数组变量。字符串可用指针变量的形式实现,见下图:

4、子程序模块
对于反复使用的代码段或用户自定义的功能函数,用户可以编辑子程序模块。允许子程序模块使用形参和带返回值。形参使用变量编辑中的“函数参数”建立,上文已提到。
5、编译下载
本系统编译后,通过PC机的USB接口将程序下载到机器人主板。