Mixly第三方库开发的两种方法——U8g2库二次开发

本文介绍了如何为Mixly图形化编程软件开发自定义库,特别是针对U8g2库的二次开发。通过创建库文件夹、编写XML、JS文件并实现图形块与C语言的转化,详细阐述了方法一的步骤。同时,也提到了使用make库进行自定义库的方法。最后,展示了如何在Mixly中导入和使用这些自定义库。
摘要由CSDN通过智能技术生成

前言

Mixly自从2015年问世以来,就深受国内创客、中小学教师喜爱,如今已经成为国内最好用的Arduino图形化软件。Mixly最大的优点就是其开放性,Mixly建立了一个生态圈,这个生态圈欢迎所有人的加入,不限制厂家,不限制硬件。因此,任何一个掌握规则的人都可以为Mixly开发第三方库,来丰富Mixly的功能。

Mixly基本原理:Mixly的基本原理是将图形化程序转化成C语言,即设计好对应的图形模块样式,再将模块与C代码进行对应。
Mixly作用:让使用者通过拖拉拽的积木方式实现C程序的编写,使一些不懂C语言语法但是想进行Arduino等MCU开发的初学者也能玩转单片机,比如应用于少儿编程。

本博客使用Arduino UNO开发板+OLED显示模块+U8g2库实现一个可显示中文的自定义Mixly第三方库。我使用的Mixly版本为1.2.2。Mixly官网

方法一:自定义库

1、创建库文件夹

1)理论
Mixly第三方库的基本文件结构如下:

│— XXX  // 项目名称,以下文件或文件夹的XXX都需修改为项目名称
    │— block
      │— XXX.js
    │— companypin
      │— XXX
        │— pin.js
    │— generator
      │— XXX.js
    │— language
      │— XXX
        │— zh-hans.js  //简体中文
        │— zh-hant.js  //繁体中文
        │— en.js       //英语
        │— spa.js      //西班牙语
    │— media
      │— XXX
    │— XXX   //文件夹,放置一些库文件(.h和.cpp)
    │— XXX.xml

XXX.xml文件:处于根目录下。此文件定义了图形块的基本信息,比如类别、名称,ID等。
block/XXX.js文件:此文件定义了每个图形块的外观样式,比如颜色、文字、图标等。
generator/XXX.js文件:此文件是将图形块程序转化成C语言的关键部分,定义了每一个图形化模块对应的 Arduino C语言代码。
其他文件language/xxx/en.js(zh-hans.js)等文件是语言文件(en.js是英文语言文件,zh-hans.js是简体中文语言文件,zh-hant.js是繁体中文语言文件),该类文件定义了图形块程序中每一个字段显示的文字内容;companypin文件夹中的文件一般不需要,除非硬件引脚不同;media文件夹中主要放置程序块包含的音效、图片等;XXX文件夹放置库文件。
注:①②③点的文件是必须的;其他文件是非必须的。

2)实现
构建库文件结构如下图所示:
在这里插入图片描述

2、开始编程

共分为3个部分,也是必须要编写的3个必要的脚本,分别为XXX.xml文件、block/XXX.js文件、generator/XXX.js文件。

注意:方法和变量的名称在以下三个脚本中必须严格保持一致,且大小写敏感。

2.1、定义图形块的基本信息

1)理论
此文件定义了图形块的基本信息,比如类别、名称,ID等(此脚本为全局路径配置,注意方法和变量的名称)。打开根文件夹下的XXX.xml 脚本,模板如下:

<!--
type="company" 
block="block/XXX.js"
generator="generator/XXX.js" 
media="media/XXX/" 
language="language/XXX/"
companypin="companypin/XXX/pin.js"
-->
//标出各个文件/文件夹的所在位置。XXX为项目名称,需修改。

<script type="text/javascript" src="../../blocks/company/XXX.js"></script>
<script type="text/javascript" src="../../generators/arduino/company/XXX.js"></script>
<category id="ID?" name="名字?" colour="#1296DB">
	<block type = "xxxxx"> //与block/XXX.js文件沟通的桥梁
		<value name="名称?">
			<shadow type="类型?"></shadow>
<!--type = 类型,具体含义如下:
             Type(类型)               含义              对应端口(UNO为例,具体硬件具体分析)
            pins_digital            数字管脚                0 ~ 13,A0 ~ A7
            pins_analog             模拟输入管脚             A0 ~ A7
            pins_pwm            	模拟输出管脚             3,6,9,10,11,13
            pins_interrupt          中断管脚                0,1,2,3,7
-->
		</value>
	</block>
</category>
  • block 节点:用于定义一个新的图形块,type的值为图形块的名称。
  • value节点:用于容纳选择框。
  • shadow节点:表示下拉框,是专门用于下拉选择的节点。type类型表示该下拉框可以选择的类型。

2)实现
可使用代码编辑工具编写,也可以使用记事本打开再编写。具体代码如下:

<!--
type="company" 
block="block/Mixly_u8g2.js"
generator="generator/Mixly_u8g2.js" 
-->

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念芯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值