最新消息:

基于APP Inventor 的NOVA编程(HD版)

App Inventor 少儿编程 2524浏览 0评论

玩腻了简单的数字量和模拟量接口模块?

 

今天介绍Arduino上的串口使用方法,配合用App Inventor编写的手机APP,通过蓝牙通讯模块实现手机APP和NOVA的通讯。

玩法将更加多样、炫酷哦!

 

在介绍App Inventor编程和蓝牙通讯模块使用之前,有必要简单介绍一下“串口通讯”的概念。

1

串口通讯

 

 

基于APP Inventor 的NOVA编程(HD版)

上图是MCU(微控制单元)驱动单个LED的电路,那么驱动多个LED的电路呢?玩过Arduino朋友都不会陌生。如下图:

 

基于APP Inventor 的NOVA编程(HD版)

像上图这样由多个IO口同时传输数据的通讯方式,称为“并口通讯”

 

基于APP Inventor 的NOVA编程(HD版)

形如上图的通讯方式均为“并口通讯”。不难想到并口通讯方式的优点是传输是速度快,而缺点是线路复杂,一次要传输多少位的数据,就得连接多少根导线。

 

而“串口通讯”,

通常只有“TXD(发送)”和RXD(接收)两根信号线”,不论有多少数据需要传输,都通过这两根线实现,接线简单。

基于APP Inventor 的NOVA编程(HD版)

其中CLK不是一根导线,它是“波特率”,指通过串口发送数据的速度,即单位时间内发送数据的个数。

 

互相传输数据的两端的波特率设置必须完全相同,才能保证通讯的正常。

 

一汽车倒车,一路人很热心——“倒……倒……倒……倒不得了!”

 

可车子一只轮胎已滑进路边水沟。车夫怒气冲冲下来,旁观者说,“那人是一结巴。”

 

通讯两端波特率不同就会闹出想上面笑话里那样的误会。

 

NOVA HD主控板上的串口有两个,分别为“串口”和“串口1”,对应USB接口和C0接口。USB串口负责下载程序和串口打印;C0串口1则用来连接蓝牙模块。

 

基于APP Inventor 的NOVA编程(HD版)

这里有的同学可能会问,为什么不叫“串口1”和“串口2”?是因为其命名规则沿用Arduino体系下的“Serial”和“Serial1”。

 

串口通讯方面的知识告一段落,更详细的串口知识介绍,可以点击“串行外设接口”(以前连载的电路知识系列中为一篇文章)

 

手机APP、蓝牙模块、NOVA HD主控板三者的连接和数据流向是怎样的呢?

 

基于APP Inventor 的NOVA编程(HD版)手机APP向NOVA HD主控板发送数据

 

基于APP Inventor 的NOVA编程(HD版)

NOVA HD主控板向手机APP发送数据

2

APP Inventor

 

App Inventor是一款谷歌公司开发的手机APP编程软件,与是类似于Scratch、Mixly的图形化积木式编程软件。

基于APP Inventor 的NOVA编程(HD版)

APP Inventor也有在线编程平台,这里笔者推荐广州电教网的:http://app.gzjkw.net

APP Inventor的相关资料网站推荐:http://www.17coding.net/。

 

APP Inventor因为没有官方中文版,所以各家中文版平台的翻译略有不同,查阅资料时发现命名上的冲突,最好是查找对应的英文说明。

登录APP Inventor编程平台

基于APP Inventor 的NOVA编程(HD版)

 

可以直接用QQ账号登录。

新建项目:

基于APP Inventor 的NOVA编程(HD版)

APP Inventor的项目分为“组件设计”“逻辑设计”两部分,上图是组件设计界面。

其中,“组件面板”是组件库,里面有按键、文本框、滑动条、画布、蓝牙客户端等一系列组件,可以通过鼠标拖拽的方式添加到APP中。

“工作面板”的内容和最后生成的APP是完全一致的,即可以通过工作面板看到你最后做出APP是什么样子的。

基于APP Inventor 的NOVA编程(HD版)

 

“组件列表”是APP中所有组件的关系树,即屏幕1中有几个组件、屏幕2中有几个组件,名称各是什么。

“组件属性”是各个组件的具体参数设置,大部分参数可以在逻辑程序运行过程中修改。

逻辑设计是用于设计APP各组件对应的程序,即设计当用户操作各组件时,APP做出什么样的反应。

基于APP Inventor 的NOVA编程(HD版)

 

本次教程通过APP Inventor编写一个控制NOVA端LED灯亮灭的程序。

在编写完整的APP之前,先实现按钮的一个小程序,即按一下按钮,按钮的文本由“ON”变为“OFF”;再按一下按钮,按钮的文本由“OFF”变为“ON”;

基于APP Inventor 的NOVA编程(HD版)

 

这些模块的颜色与Scratch相似,按照不同的功能种类,有不同的颜色,大家可以根据示例程序中各模块的颜色去模块库中寻找,这里不多做赘述。

在做完上述小程序APP后,可以让它在手机上运行。可以用AI伴侣快速的在手机上运行写好的APP。

基于APP Inventor 的NOVA编程(HD版)

点击“帮助”菜单下的“AI同伴信息”:

基于APP Inventor 的NOVA编程(HD版)

点击链接下载:

基于APP Inventor 的NOVA编程(HD版)

浏览器可能会弹出“不安全”提醒,选择继续访问。该网站是安全可靠的,由广州市电教馆开发维护。

手机上打开AI伴侣APP,扫描网页上AI伴侣生成的二维码,即可快速的运行编写好的APP,具体操作流程如下:

基于APP Inventor 的NOVA编程(HD版)

 

 

3

蓝牙程序的编写

 

 

蓝牙相关程序的编写,需要添加一个“蓝牙客户端”组件,它是非可视组件,即在APP中看不见它。

基于APP Inventor 的NOVA编程(HD版)

蓝牙模块需要选择之后才能连接,所以这里需要添加一个“列表选择框”组件。

基于APP Inventor 的NOVA编程(HD版)

将“列表选择框”组件名和文本名都改为“蓝牙列表”,提升程序可读性。

 

在逻辑设计界面里编写蓝牙模块选择程序。

基于APP Inventor 的NOVA编程(HD版)

基于APP Inventor 的NOVA编程(HD版)

程序运行效果:点击“蓝牙列表”组件,弹出蓝牙地址的选择框;再点击选择要连接的蓝牙地址,之后蓝牙连接成功。

 

接下来配合NOVA HD主控板和蓝牙模块,来实现手机APP和蓝牙模块的连接。

4

NOVA HD主控板与蓝牙模块的连接

 

NOVA的蓝牙模块上有一个8针的接口

基于APP Inventor 的NOVA编程(HD版)

这里的设计是为了实现防反接,两列的4个接口是轴对称的,只要做到与C0 4对4的接插,就一定不会有问题。

基于APP Inventor 的NOVA编程(HD版)

因为接的C0是红色接口,所以需外部供电,可以接上电池或适配器。

供电之后,蓝牙模块上的LED灯会闪烁,表示未连接,一旦连接成功,LED将变为长亮。

 

5

手机与蓝牙模块的配对

 

 

这里用的蓝牙模块为蓝牙2.0模块,在连接之前,需要在系统设置中完成配对。

配对示例:(示例系统版本为Android 5.0)

基于APP Inventor 的NOVA编程(HD版)

用AI伴侣,将写好的APP在手机上运行。按照下图的操作顺序,实现蓝牙模块的连接。

基于APP Inventor 的NOVA编程(HD版)

LED长亮之后,代表蓝牙连接成功。接下去继续编写蓝牙程序,让按钮处于“ON”和“OFF”时发送不同的数值。

基于APP Inventor 的NOVA编程(HD版)

在按钮文本切换的程序中添加蓝牙客户端发送数字的程序模块。

这时运行APP,如果未连接蓝牙,

就电机“ON/OFF”按钮,

会弹出一个错误提示,是因为蓝牙无连接情况下发送数字的报错。

基于APP Inventor 的NOVA编程(HD版)

所以这里应该添加一个判断条件。即新建一个全局变量“蓝牙连接成功”,它是一个布尔量,只有“true(真)”和“false(假)”两个值可取。

 

初始化时,变量“蓝牙连接成功”为“false(假)”,当蓝牙地址选择完成之后,将其变为“true(真)”。

基于APP Inventor 的NOVA编程(HD版)

手机APP端的程序编写完成,接下来编写NOVA HD端的程序。

基于APP Inventor 的NOVA编程(HD版)

全部的编程工作完成,可以用手机控制LED的亮灭了,同学们试试看吧。

接下来的文章中将继续介绍手机APP蓝牙控制NOVA小车、Yeelight小夜灯的应用,敬请期待!

 

您必须 登录 才能发表评论!