電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Meadow Rover第1部分:帶定向LED的電機(jī)控制

Meadow Rover第1部分:帶定向LED的電機(jī)控制

2023-02-01 | zip | 0.24 MB | 次下載 | 免費(fèi)

資料介紹

描述

項(xiàng)目更新為 V1.0 Release Candidate 1(2022 年 10 月 23 日)

在這個(gè)項(xiàng)目中,我們將了解使用幾個(gè) LED、幾個(gè)電機(jī)和一個(gè) SN754410N 芯片來控制它們來構(gòu)建您的第一個(gè)流動(dòng)站是多么容易。構(gòu)建此項(xiàng)目所需的一切都包含在Wilderness Labs Meadow F7 w/Hack Kit Pro 中。我們將看到使用 Meadow.Foundation 對(duì)這些外圍設(shè)備進(jìn)行編程是多么容易。

Meadow.Foundation是一個(gè)平臺(tái),用于在 Meadow 上使用 .NET 快速輕松地構(gòu)建連接的事物。它由Wilderness Labs 創(chuàng)建,完全開源,由 Wilderness Labs 社區(qū)維護(hù)。

如果您是 Meadow 的新手,我建議您通過控制板載 RGB LED 項(xiàng)目轉(zhuǎn)到 Meadow 入門,以正確設(shè)置您的開發(fā)環(huán)境。

第 1 步 - 組裝電路

如下面的 Fritzing 圖中所示連接所有組件:

pYYBAGPXO8SABHfgAALLMrxXBb8248.jpg
?

請(qǐng)注意,我們有 4 節(jié) AA 電池連接到面包板上的電源和接地軌。對(duì)于 Meadow 來說,電機(jī)會(huì)消耗過多的功率來處理它,這對(duì)于擁有外部電源很重要。

要從外部為 Meadow 供電,您可以使用其電池充電板載電路。連接任何標(biāo)準(zhǔn)的 3.7V LiPo/LiIon 電池,您可以在通過 USB 連接器連接電路板時(shí)為其充電。您可以查看為 Meadow F7 供電以了解更多信息。

第 2 步 - 創(chuàng)建 Meadow 應(yīng)用程序項(xiàng)目

在 Visual Studio 2022 for WindowsmacOS中創(chuàng)建一個(gè)新的Meadow Application項(xiàng)目并將其命名為MeadowLedRover 。

第 3 步 - 為 MeadowLedRover 編寫代碼

為每個(gè)涉及的外圍設(shè)備創(chuàng)建一個(gè)Controller類是一個(gè)很好的做法,以使項(xiàng)目可擴(kuò)展和可維護(hù)。這些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;
    }
}

這個(gè)控制器是一個(gè)簡(jiǎn)單的汽車驅(qū)動(dòng)程序,封裝了控制電機(jī)的邏輯。不是每次我們想讓汽車向任何方向行駛時(shí)都改變單個(gè)電機(jī)的速度,我們可以簡(jiǎn)單地創(chuàng)建四種方法 ( MoveForward, MoveBackwards, TurnLeft, TurnRight) 和一種停止方法 ( Stop)。

MeadowApp 類

對(duì)于主要的MeadowApp類,復(fù)制以下代碼:

// 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ù)中,請(qǐng)注意兩個(gè)方法:InitializeRun。

在該Initialize方法中,您可以看到所有四個(gè) LED 是如何初始化為 Led(我們將使用它來根據(jù)汽車行駛的方向打開和關(guān)閉它們)、兩個(gè) HBridgeMotor 對(duì)象(每個(gè)電機(jī)一個(gè)),以及傳遞給一個(gè)新的CarController對(duì)象。

在該Run方法中,App進(jìn)入了一個(gè)無限while循環(huán),它會(huì)調(diào)用CarController的方法在每個(gè)方向上移動(dòng)一秒,中間停半秒。

第 4 步 - 運(yùn)行項(xiàng)目

單擊Visual Studio中的“運(yùn)行”按鈕。它應(yīng)該類似于以下 GIF:

RoverLed 項(xiàng)目運(yùn)行...
?

查看 Meadow.Foundation!

就您可以使用 Meadow.Foundation 做的大量令人興奮的事情而言,這個(gè)項(xiàng)目只是冰山一角。

  • 它帶有一個(gè)龐大的外設(shè)驅(qū)動(dòng)程序庫,其中包含適用于最常見傳感器和外設(shè)的驅(qū)動(dòng)程序。
  • 外設(shè)驅(qū)動(dòng)程序封裝了核心邏輯并公開了一個(gè)簡(jiǎn)單、干凈、現(xiàn)代的 API。
  • 該項(xiàng)目得到了不斷發(fā)展的社區(qū)的支持,該社區(qū)不斷致力于構(gòu)建酷炫的互聯(lián)事物,并且總是樂于幫助新來者和討論新項(xiàng)目。

參考


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)