资料介绍
描述
项目更新为 V1.0 Release Candidate 1(2022 年 10 月 23 日)
在这个项目中,我们将了解使用几个 LED、几个电机和一个 SN754410N 芯片来控制它们来构建您的第一个流动站是多么容易。构建此项目所需的一切都包含在Wilderness Labs Meadow F7 w/Hack Kit Pro 中。我们将看到使用 Meadow.Foundation 对这些外围设备进行编程是多么容易。
Meadow.Foundation是一个平台,用于在 Meadow 上使用 .NET 快速轻松地构建连接的事物。它由Wilderness Labs 创建,完全开源,由 Wilderness Labs 社区维护。
如果您是 Meadow 的新手,我建议您通过控制板载 RGB LED 项目转到 Meadow 入门,以正确设置您的开发环境。
第 1 步 - 组装电路
如下面的 Fritzing 图中所示连接所有组件:
请注意,我们有 4 节 AA 电池连接到面包板上的电源和接地轨。对于 Meadow 来说,电机会消耗过多的功率来处理它,这对于拥有外部电源很重要。
要从外部为 Meadow 供电,您可以使用其电池充电板载电路。连接任何标准的 3.7V LiPo/LiIon 电池,您可以在通过 USB 连接器连接电路板时为其充电。您可以查看为 Meadow F7 供电以了解更多信息。
第 2 步 - 创建 Meadow 应用程序项目
在 Visual Studio 2022 for Windows或macOS中创建一个新的Meadow Application项目并将其命名为MeadowLedRover 。
第 3 步 - 为 MeadowLedRover 编写代码
为每个涉及的外围设备创建一个Controller类是一个很好的做法,以使项目可扩展和可维护。这些Controller类抽象了所有外围设备的逻辑,因此主要程序逻辑将保持更清晰和更容易理解。
添加 CarController 类
使用以下代码添加CarController类:
public class CarController
{
float SPEED = 0.75f;
HBridgeMotor motorLeft;
HBridgeMotor motorRight;
public CarController(HBridgeMotor motorLeft, HBridgeMotor motorRight)
{
this.motorLeft = motorLeft;
this.motorRight = motorRight;
}
public void Stop()
{
motorLeft.Power = 0f;
motorRight.Power = 0f;
}
public void TurnLeft()
{
motorLeft.Power = SPEED;
motorRight.Power = -SPEED;
}
public void TurnRight()
{
motorLeft.Power = -SPEED;
motorRight.Power = SPEED;
}
public void MoveForward()
{
motorLeft.Power = -SPEED;
motorRight.Power = -SPEED;
}
public void MoveBackward()
{
motorLeft.Power = SPEED;
motorRight.Power = SPEED;
}
}
这个控制器是一个简单的汽车驱动程序,封装了控制电机的逻辑。不是每次我们想让汽车向任何方向行驶时都改变单个电机的速度,我们可以简单地创建四种方法 ( MoveForward
, MoveBackwards
, TurnLeft
, TurnRight
) 和一种停止方法 ( Stop
)。
MeadowApp 类
对于主要的MeadowApp类,复制以下代码:
// public class MeadowApp : App <- If you have a Meadow F7v1.*
public class MeadowApp : App
{
Led up, down, left, right;
CarController carController;
public override Task Initialize()
{
var led = new RgbLed(
Device,
Device.Pins.OnboardLedRed,
Device.Pins.OnboardLedGreen,
Device.Pins.OnboardLedBlue);
led.SetColor(RgbLedColors.Red);
up = new Led(Device, Device.Pins.D13);
down = new Led(Device, Device.Pins.D10);
left = new Led(Device, Device.Pins.D11);
right = new Led(Device, Device.Pins.D12);
up.IsOn = down.IsOn = left.IsOn = right.IsOn = false;
var motorLeft = new HBridgeMotor
(
device: Device,
a1Pin: Device.Pins.D07,
a2Pin: Device.Pins.D08,
enablePin: Device.Pins.D09
);
var motorRight = new HBridgeMotor
(
device: Device,
a1Pin: Device.Pins.D02,
a2Pin: Device.Pins.D03,
enablePin: Device.Pins.D04
);
carController = new CarController(motorLeft, motorRight);
led.SetColor(RgbLedColors.Green);
return base.Initialize();
}
public override async Task Run()
{
while (true)
{
up.IsOn = true;
carController.MoveForward();
await Task.Delay(1000);
up.IsOn = false;
carController.Stop();
await Task.Delay(500);
down.IsOn = true;
carController.MoveBackward();
await Task.Delay(1000);
down.IsOn = false;
carController.Stop();
await Task.Delay(500);
left.IsOn = true;
carController.TurnLeft();
await Task.Delay(1000);
left.IsOn = false;
carController.Stop();
await Task.Delay(500);
right.IsOn = true;
carController.TurnRight();
await Task.Delay(1000);
right.IsOn = false;
carController.Stop();
await Task.Delay(500);
}
}
}
在 MeadowApp 的构造函数中,请注意两个方法:Initialize
和Run
。
在该Initialize
方法中,您可以看到所有四个 LED 是如何初始化为 Led(我们将使用它来根据汽车行驶的方向打开和关闭它们)、两个 HBridgeMotor 对象(每个电机一个),以及传递给一个新的CarController
对象。
在该Run
方法中,App进入了一个无限while
循环,它会调用CarController的方法在每个方向上移动一秒,中间停半秒。
第 4 步 - 运行项目
单击Visual Studio中的“运行”按钮。它应该类似于以下 GIF:
查看 Meadow.Foundation!
就您可以使用 Meadow.Foundation 做的大量令人兴奋的事情而言,这个项目只是冰山一角。
- 它带有一个庞大的外设驱动程序库,其中包含适用于最常见传感器和外设的驱动程序。
- 外设驱动程序封装了核心逻辑并公开了一个简单、干净、现代的 API。
- 该项目得到了不断发展的社区的支持,该社区不断致力于构建酷炫的互联事物,并且总是乐于帮助新来者和讨论新项目。
参考
- 电源设计方法-第1部分
- GB19510标准之灯的控制装置第14部分 1次下载
- 使用Zio控制机械臂(第1部分)
- 带NTC的恒温器-第2部分
- 电气过应力简介-第1部分
- 了解你的电池组:第1部分
- 用Hercules™ LaunchPad™ 开发套件控制GaN功率级—第1部分
- 如何进行电源设计 - 第1部分
- LDO基础知识:噪声 - 第1部分
- 实时控制技术满足实时工业通信发展的需求 —— 第1部分
- 集成智能第1部分:EMI管理
- 电动汽车用驱动电机系统 第1部分:技术条件 3次下载
- 用电信息采集系统型式规范第1部分 1次下载
- 用电信息采集系统技术规范第1部分 3次下载
- 用电信息采集系统检验规范第1部分 2次下载
- 双极踏脚车(第二部分):微步和衰减模式 461次阅读
- ADC数字下变频器:抽取滤波器和ADC混叠,第2部分 1455次阅读
- ADC眼中的虚拟评估,第2部分 624次阅读
- 边缘智能第1部分:边缘节点 1046次阅读
- 用于电机控制的sinc滤波器和控制算法同步的不同方法 3372次阅读
- 实时控制技术满足实时工业通信发展的需求 —— 第1部分 1417次阅读
- 实时控制技术满足实时工业通信发展的需求 —— 第2部分 993次阅读
- JESD204C入门第2部分:新特性及其内容 6242次阅读
- DC/DC转换器传导EMI - 第2部分,噪声传播和滤波 3150次阅读
- 电压检测器、监控器和高级监控各种功能介绍:第1部分 4859次阅读
- 关于如何「训练」神经网络的一部分经验与见解 7450次阅读
- 采用8位微控制器实现无传感器磁场定向控制 1852次阅读
- 无源元件并非真的“无源”:第1部分——电容 2433次阅读
- 驱动LED串的DCM升压转换器简化分析(2):实际考虑 1471次阅读
- 混合信号系统接地揭秘之第二部分 1663次阅读
下载排行
本周
- 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次下载 | 免费
评论
查看更多