所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

【ReMake】microbit 物联网收音机

Hockel Hockel 2021-03-07 17:25:35
3
2
简单
projectImage
步骤1 步骤1
作品背景

对于60年代70年代的人来说:收音机应该再熟悉不过了吧。它陪伴了那一代人度过了一段美好的时光,承载着温馨的回忆。但是随着科技的发展,我们开始有了电视、DVD、MP3、智能手机,我们获取音乐的方式不在只有收音机了。收音机也就淡出了我们的视线。这次ReMake活动真好是一个契机,那就让我们来一起ReMake一个microbit物联网收音机吧!

projectImage
材料清单 材料清单
1x
microbit
1x
micro:bit 电机驱动扩展板
1x
FM收音机模块
1x
数字功放板
2x
扬声器
1x
ws2812B灯带
1x
公对公耳机连接线
1x
3D打印件
1x
obloq物联网模块
步骤2 步骤2
制作步骤

1、用fusion360设计出收音机外形。

projectImage

2.用3D打印机打印出模型

projectImage
projectImage

3、准备好收音机所需的材料

projectImage

4、硬件连接

projectImage

5、开始组装

projectImage
projectImage
projectImage
步骤3 步骤3
手机app界面设计

①先打开App Inventor WxBit 汉化增强版,对我们的手机界面进行设计

projectImage

对页面上的组件进行逻辑设计,主要用到了组件面板中通信连接下MQTT客户端组件来实现连接到EasyIOT物联网平台。进而实现消息的发送。

projectImage
projectImage
步骤4 步骤4
程序设计

加载我写的FM收音机,具体使用方法参考我写的另一篇文章【mind+ 用户库】FM收音机模块

具体程序如下:

 

projectImage
代码 代码
	                    					#include "RDA5807M.h"
#include <Microbit_Obloq.h>
#include <SoftwareSerial.h>
#include <Microbit_Matrix.h>
#include <DFRobot_NeoPixel.h>

// 动态变量
String mind_s_msg;
// 函数声明
void obloqMqttEventT0(String& message);
void buttonACallback();
void buttonBCallback();
// 静态常量
const String topics[5] = {"Dyn-AiKMg","","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
Microbit_Obloq   olq;
SoftwareSerial   softSerial(0, 1);
DFRobot_NeoPixel neoPixel_2;
RDA5807M         radio;


// 主程序开始
void setup() {
	olq.registerMqttHandle(msgHandles);
	dfrobotRandomSeed();
	radio.begin(RDA5807M_BAND_WEST);
	onEvent(ID_BUTTON_A, PRESS, buttonACallback);
	onEvent(ID_BUTTON_B, PRESS, buttonBCallback);
	softSerial.begin(9600);
  olq.startConnect(&softSerial, "Erised", "yiruosi88", "uqtPhtNGg", "XqtE2tNMRz", topics, "iot.dfrobot.com.cn", 1883);
	neoPixel_2.begin(2, 8);
	neoPixel_2.setBrightness(255);
	neoPixel_2.showRainbow(0, 7, 1, 360);
}
void loop() {

}

// 事件回调函数
void obloqMqttEventT0(String& message) {
	mind_s_msg = message;
	if ((mind_s_msg=="1")) {
		neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
		radio.seekUp(1);
		MMatrix.print(radio.getFrequency());
	}
	else if ((mind_s_msg=="2")) {
		neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
		radio.seekDown(1);
		MMatrix.print(radio.getFrequency());
	}
	else if ((mind_s_msg=="3")) {
		radio.volumeUp();
	}
	else if ((mind_s_msg=="4")) {
		radio.volumeDown();
	}
	else {
		radio.setFrequency((String(message).toInt()) );
		MMatrix.print(radio.getFrequency());
	}
}
void buttonACallback() {
	neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
	radio.seekUp(1);
	MMatrix.print(radio.getFrequency());
}
void buttonBCallback() {
	neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
	radio.seekDown(1);
	MMatrix.print(radio.getFrequency());
}

	                    				
步骤5 步骤5
视频演示
Makelog作者原创文章,未经授权禁止转载。
3
2
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]