[掌控板2.0]Mind+图形化编程实验2

[掌控板2.0]Mind+图形化编程实验2

实验软硬件环境

  1. 硬件:掌控版、数据线
  2. 软件:Mind+ (V1.6.5 RC1.0)

实验目的及要求

【实验一】篮球计分器
【实验二】实现SIOT上mqtt消息的通讯。利用APP INVENTOR 写一个APP,在APP上控制分数的增加。

实验过程

连接掌控版
通过以下3步完成掌控板在Mind+中的连接设置。
将掌控板通过数据线连接到电脑;
打开Mind+软件,选择“上传模式
单击“扩展” ,弹出如下窗口,选择“主控板”后,单击“掌控板”。
在这里插入图片描述
【实验一】图形化编程代码

在这里插入图片描述
在这里插入图片描述
【实验一】C语言代码

#include <MPython.h>
#include <DFRobot_Iot.h>
// 静态常量
const String topics[5] = {"1/1","2/2","3/3","",""};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
	mPython.begin();
	display.setCursorLine(1);
	display.printLine("开始连接WiFi");
	myIot.wifiConnect("Huang", "88888888");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine("WiFi连接成功");
	myIot.init("192.168.137.1","602","","iot", topics, 1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("MQTT连接成功");
	delay(1000);
	display.fillScreen(0);
	display.setCursorLine(4);
	display.printLine("2018A14133黄仙龙");
	while (!myIot.connected()) {yield();}
}
void loop() {
	if ((touchPadP.isTouched())) {
		myIot.publish(topic_0, "1分");
		display.setCursorLine(1);
		display.printLine("1分");
		rgb.write(0, 0x00FF00);
		rgb.write(1, 0x000000);
		rgb.write(2, 0x000000);
		display.fillInLine(2, 0);
		display.fillInLine(3, 0);
	}
	else if ((touchPadY.isTouched())) {
		myIot.publish(topic_1, "2");
		display.setCursorLine(2);
		display.printLine("2分");
		rgb.write(1, 0xFFFFFF);
		rgb.write(0, 0x000000);
		rgb.write(2, 0x000000);
		display.fillInLine(1, 0);
		display.fillInLine(3, 0);
	}
	else if ((touchPadT.isTouched())) {
		myIot.publish(topic_2, "3");
		display.setCursorLine(3);
		display.printLine("3分");
		rgb.write(2, 0x0000FF);
		rgb.write(0, 0x000000);
		rgb.write(1, 0x000000);
		display.fillInLine(1, 0);
		display.fillInLine(2, 0);
	}
}

【实验二】图形化编程代码

在这里插入图片描述
【实验二】C语言代码

#include <MPython.h>
#include <DFRobot_Iot.h>

// 动态变量
volatile float mind_n_DeFen;
// 函数声明
void whenTopic0Received0();
void whenTopic0Received1();
void whenTopic0Received2();
// 静态常量
const String topics[5] = {"1/1","2/2","3/3","",""};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
	mPython.begin();
	myIot.setMqttCallback(topic_0, "1", whenTopic0Received0);
	myIot.setMqttCallback(topic_0, "2", whenTopic0Received1);
	myIot.setMqttCallback(topic_0, "3", whenTopic0Received2);
	display.setCursorLine(1);
	display.printLine("开始连接WiFi");
	myIot.wifiConnect("Huang", "88888888");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine("WiFi连接成功");
	myIot.init("192.168.137.1","602","","iot", topics, 1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("MQTT连接成功");
	display.fillScreen(0);
	display.setCursorLine(4);
	display.printLine("2018A14133黄仙龙");
	mind_n_DeFen = 0;
}
void loop() {

}

// 事件回调函数
void whenTopic0Received0() {
	mind_n_DeFen += 1;
	display.setCursorLine(1);
	display.printLine("加1分");
	rgb.write(0, 0x00FF00);
	display.setCursorLine(2);
	display.printLine((String("总得分:") + String(mind_n_DeFen)));
	delay(1000);
	rgb.write(-1, 0x000000);
}
void whenTopic0Received1() {
	mind_n_DeFen += 2;
	display.setCursorLine(1);
	display.printLine("加2分");
	rgb.write(1, 0x00FF00);
	display.setCursorLine(2);
	display.printLine((String("总得分:") + String(mind_n_DeFen)));
	delay(1000);
	rgb.write(-1, 0x000000);
}
void whenTopic0Received2() {
	mind_n_DeFen += 3;
	display.setCursorLine(1);
	display.printLine("加3分");
	rgb.write(2, 0x00FF00);
	display.setCursorLine(2);
	display.printLine((String("总得分:") + String(mind_n_DeFen)));
	delay(1000);
	rgb.write(-1, 0x000000);
}

实验结果

【实验一】

掌控版篮球计分器


【实验二】

SIOT篮球计分器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Huang_xianlong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值