資料介紹
描述
項目更新為 V1.0 Release Candidate 1(2022 年 10 月 23 日)
在這個項目中,我們將了解使用幾個 LED、幾個電機和一個 SN754410N 芯片來控制它們來構(gòu)建您的第一個流動站是多么容易。構(gòu)建此項目所需的一切都包含在Wilderness Labs Meadow F7 w/Hack Kit Pro 中。我們將看到使用 Meadow.Foundation 對這些外圍設(shè)備進行編程是多么容易。
Meadow.Foundation是一個平臺,用于在 Meadow 上使用 .NET 快速輕松地構(gòu)建連接的事物。它由Wilderness Labs 創(chuàng)建,完全開源,由 Wilderness Labs 社區(qū)維護。
如果您是 Meadow 的新手,我建議您通過控制板載 RGB LED 項目轉(zhuǎn)到 Meadow 入門,以正確設(shè)置您的開發(fā)環(huán)境。
第 1 步 - 組裝電路
如下面的 Fritzing 圖中所示連接所有組件:
請注意,我們有 4 節(jié) AA 電池連接到面包板上的電源和接地軌。對于 Meadow 來說,電機會消耗過多的功率來處理它,這對于擁有外部電源很重要。
要從外部為 Meadow 供電,您可以使用其電池充電板載電路。連接任何標準的 3.7V LiPo/LiIon 電池,您可以在通過 USB 連接器連接電路板時為其充電。您可以查看為 Meadow F7 供電以了解更多信息。
第 2 步 - 創(chuàng)建 Meadow 應(yīng)用程序項目
在 Visual Studio 2022 for Windows或macOS中創(chuàng)建一個新的Meadow Application項目并將其命名為MeadowLedRover 。
第 3 步 - 為 MeadowLedRover 編寫代碼
為每個涉及的外圍設(shè)備創(chuàng)建一個Controller類是一個很好的做法,以使項目可擴展和可維護。這些Controller類抽象了所有外圍設(shè)備的邏輯,因此主要程序邏輯將保持更清晰和更容易理解。
添加 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;
}
}
這個控制器是一個簡單的汽車驅(qū)動程序,封裝了控制電機的邏輯。不是每次我們想讓汽車向任何方向行駛時都改變單個電機的速度,我們可以簡單地創(chuàng)建四種方法 ( 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 的構(gòu)造函數(shù)中,請注意兩個方法:Initialize
和Run
。
在該Initialize
方法中,您可以看到所有四個 LED 是如何初始化為 Led(我們將使用它來根據(jù)汽車行駛的方向打開和關(guān)閉它們)、兩個 HBridgeMotor 對象(每個電機一個),以及傳遞給一個新的CarController
對象。
在該Run
方法中,App進入了一個無限while
循環(huán),它會調(diào)用CarController的方法在每個方向上移動一秒,中間停半秒。
第 4 步 - 運行項目
單擊Visual Studio中的“運行”按鈕。它應(yīng)該類似于以下 GIF:
查看 Meadow.Foundation!
就您可以使用 Meadow.Foundation 做的大量令人興奮的事情而言,這個項目只是冰山一角。
- 它帶有一個龐大的外設(shè)驅(qū)動程序庫,其中包含適用于最常見傳感器和外設(shè)的驅(qū)動程序。
- 外設(shè)驅(qū)動程序封裝了核心邏輯并公開了一個簡單、干凈、現(xiàn)代的 API。
- 該項目得到了不斷發(fā)展的社區(qū)的支持,該社區(qū)不斷致力于構(gòu)建酷炫的互聯(lián)事物,并且總是樂于幫助新來者和討論新項目。
參考
- 電源設(shè)計方法-第1部分
- GB19510標準之燈的控制裝置第14部分 1次下載
- 使用Zio控制機械臂(第1部分)
- 帶NTC的恒溫器-第2部分
- 電氣過應(yīng)力簡介-第1部分
- 了解你的電池組:第1部分
- 用Hercules? LaunchPad? 開發(fā)套件控制GaN功率級—第1部分
- 如何進行電源設(shè)計 - 第1部分
- LDO基礎(chǔ)知識:噪聲 - 第1部分
- 實時控制技術(shù)滿足實時工業(yè)通信發(fā)展的需求 —— 第1部分
- 集成智能第1部分:EMI管理
- 電動汽車用驅(qū)動電機系統(tǒng) 第1部分:技術(shù)條件 3次下載
- 用電信息采集系統(tǒng)型式規(guī)范第1部分 1次下載
- 用電信息采集系統(tǒng)技術(shù)規(guī)范第1部分 3次下載
- 用電信息采集系統(tǒng)檢驗規(guī)范第1部分 2次下載
- 雙極踏腳車(第二部分):微步和衰減模式 656次閱讀
- ADC數(shù)字下變頻器:抽取濾波器和ADC混疊,第2部分 2051次閱讀
- ADC眼中的虛擬評估,第2部分 822次閱讀
- 邊緣智能第1部分:邊緣節(jié)點 1251次閱讀
- 用于電機控制的sinc濾波器和控制算法同步的不同方法 4457次閱讀
- 實時控制技術(shù)滿足實時工業(yè)通信發(fā)展的需求 —— 第1部分 1480次閱讀
- 實時控制技術(shù)滿足實時工業(yè)通信發(fā)展的需求 —— 第2部分 1074次閱讀
- JESD204C入門第2部分:新特性及其內(nèi)容 6517次閱讀
- 電壓檢測器、監(jiān)控器和高級監(jiān)控各種功能介紹:第1部分 5094次閱讀
- led燈帶基礎(chǔ)知識及安裝 3.2w次閱讀
- 關(guān)于如何「訓練」神經(jīng)網(wǎng)絡(luò)的一部分經(jīng)驗與見解 7633次閱讀
- 采用8位微控制器實現(xiàn)無傳感器磁場定向控制 1972次閱讀
- 無源元件并非真的“無源”:第1部分——電容 2519次閱讀
- 驅(qū)動LED串的DCM升壓轉(zhuǎn)換器簡化分析(2):實際考慮 1518次閱讀
- 混合信號系統(tǒng)接地揭秘之第二部分 1712次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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次下載 | 免費
評論
查看更多