资料介绍
描述
让我们使用 TEA5767 FM 收音机模块构建功能齐全的 FM 收音机播放器,并使用按钮更改电台的直观 UI 和 OLED 显示屏来查看您正在收听的电台。构建此项目所需的大部分组件都包含在Wilderness Labs Meadow F7 w/Hack Kit Pro 中。
无线电模块和显示器都使用 I2C 总线协议,可帮助您通过 Meadow 板上的 2 个引脚连接这些外围设备。您可以在此处阅读有关 I2C的更多信息。我们将创建一个运行 full.NET 的 Meadow Application 项目,我们将使用Meadow.Foundation来简化控制所有外围设备的逻辑。
Meadow.Foundation我是一个在 Meadow 上使用 .NET 快速轻松地构建连接事物的平台。它由Wilderness Labs 创建,完全开源并由 Wilderness Labs 社区维护。
如果您是使用 Meadow 的新手,我建议您通过控制板载 RGB LED 项目来使用 Meadow 入门,以正确设置您的开发环境。
第 1 步 - 组装电路
连接您的收音机播放器,如下图所示。由于显示器和无线电模块都使用 I2C,请确保在 CLK (D08) 和 SDA (D07) 引脚中正确连接它们:
第 2 步 - 创建 Meadow 应用程序项目
在适用于Windows或macOS的 Visual Studio 2019 中创建一个新的Meadow Application项目,并将其命名为RadioPlayer 。
第 3 步 - 添加所需的 NuGet 包
对于此项目,搜索并安装以下 NuGet 包:
第 4 步 - 编写 RadioPlayer 的代码
在MeadowApp主类中,复制以下代码:
// public class MeadowApp : App <- If you have a Meadow F7v1.*
public class MeadowApp : App
{
List<float> stations;
int currentStation = 0;
Tea5767 radio;
MicroGraphics graphics;
PushButton btnNext;
PushButton btnPrevious;
public MeadowApp()
{
Initialize();
stations = new List<float>();
stations.Add(94.5f);
stations.Add(95.3f);
stations.Add(96.9f);
stations.Add(102.7f);
stations.Add(103.5f);
stations.Add(104.3f);
stations.Add(105.7f);
DisplayText("Radio Player");
Thread.Sleep(1000);
radio.SelectFrequency(stations[currentStation]);
DisplayText($"<- FM {stations[currentStation]} ->");
}
void Initialize()
{
var onboardLed = new RgbPwmLed(
device: Device,
redPwmPin: Device.Pins.OnboardLedRed,
greenPwmPin: Device.Pins.OnboardLedGreen,
bluePwmPin: Device.Pins.OnboardLedBlue);
onboardLed.SetColor(Color.Red);
var i2CBus = Device.CreateI2cBus();
radio = new Tea5767(i2CBus);
var display = new Ssd1306(i2CBus, 60, Ssd1306.DisplayType.OLED128x32);
graphics = new MicroGraphics(display);
graphics.Rotation = RotationType._180Degrees;
btnNext = new PushButton(Device, Device.Pins.D03);
btnNext.Clicked += BtnNextClicked;
btnPrevious = new PushButton(Device, Device.Pins.D04);
btnPrevious.Clicked += BtnPreviousClicked;
onboardLed.SetColor(Color.Green);
}
void BtnNextClicked(object sender, EventArgs e)
{
if (currentStation < stations.Count-1)
{
DisplayText(" >>>> ", 0);
currentStation++;
radio.SelectFrequency(stations[currentStation]);
DisplayText($"<- FM {stations[currentStation]} ->");
}
}
void BtnPreviousClicked(object sender, EventArgs e)
{
if (currentStation > 0)
{
DisplayText(" <<<< ", 0);
currentStation--;
radio.SelectFrequency(stations[currentStation]);
DisplayText($"<- FM {stations[currentStation]} ->");
}
}
void DisplayText(string text, int x = 12)
{
graphics.Clear();
graphics.CurrentFont = new Font8x12();
graphics.DrawRectangle(0, 0, 128, 32);
graphics.DrawText(x, 12, text);
graphics.Show();
}
}
在MeadowApp的构造函数中,我们首先调用InitializePeripherals()
,其中显示、FM 收音机模块和按钮都被初始化和配置。之后,我们填充已知本地广播电台的列表,我们将能够使用按钮来回循环。
在按钮事件处理程序BtnNextClicked
和BtnPreviousClicked
中,注意一个用于转到列表中的下一个站点,另一个用于转到上一个站点,两者都调用DisplayText()
具有在 I2C 显示器上绘制 UI 的所有逻辑的方法。
第 5 步 - 运行项目
单击Visual Studio中的“运行”按钮。它应该类似于以下 GIF:
查看 Meadow.Foundation!
就您可以使用Meadow.Foundation做的大量令人兴奋的事情而言,这个项目只是冰山一角。
它带有一个庞大的外围驱动程序库,其中包含最常见的传感器和外围设备的驱动程序。
- 它带有一个庞大的外围驱动程序库,其中包含最常见的传感器和外围设备的驱动程序。
- 外围驱动程序封装了核心逻辑并公开了一个简单、干净、现代的 API。
- 这个项目得到了一个不断发展的社区的支持,该社区不断致力于构建很酷的互联事物,并且总是很高兴能帮助新人并讨论新项目。
参考
- 在面包板上构建一个简单的FM收音机接收器
- RaspiPlayer-网络收音机和MP3文件夹播放器
- 基于RDA5807M的FM收音机 25次下载
- 具有静噪功能的FM收音机模块文件下载 12次下载
- AM和FM收音机原理电子书免费下载 0次下载
- FM收音机原理图 31次下载
- FM收音机的解码及控制器VHDL语言实现 11次下载
- FM收音机的制作与设计--课程设计 228次下载
- 收音机调频(FM)发射机的小制作 0次下载
- 基于Linux的internet收音机的实现 81次下载
- FM收音机工作原理及修理
- AM/FM收音机电路SA2003
- CS1191中文资料pdf(FM/AM 单片收音机电路)
- fm收音机电路图
- CSF文件播放器
- 收音机全波段的还是调频的好 318次阅读
- 卫星收音机与普通收音机区别 8381次阅读
- FM/AM收音机电路图 3.3w次阅读
- 矿石收音机工作原理及制作 4.9w次阅读
- 多功能收音机制作方法 7072次阅读
- 如何用FM调频头制作一个调频收音机? 1.6w次阅读
- 全波段收音机是什么?全波段数字调谐收音机原理分析 2.3w次阅读
- 矿石收音机用配置电源吗 1.4w次阅读
- 世界最简单矿石收音机制作方法介绍 10w次阅读
- 矿石收音机电路图大全(七款矿石收音机电路图) 23.8w次阅读
- 一文看懂矿石收音机工作原理 6.7w次阅读
- 收音机定时器设计制作 5703次阅读
- FM收音机接收机解决方案介绍 7953次阅读
- 基于内置天线实现手机FM无线电接收 6693次阅读
- 收音机定时控制器电路 2135次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多