電子發(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通過按鈕滾動(dòng)LED骰子

使用Meadow通過按鈕滾動(dòng)LED骰子

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

資料介紹

描述

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

在這個(gè)項(xiàng)目中,我們將學(xué)習(xí)如何用 LED 制作一個(gè)簡(jiǎn)單的骰子,我們通過按下按鈕來“擲骰子”。構(gòu)建此項(xiàng)目所需的一切都包含在Wilderness Labs Meadow F7 w/Hack Kit Pro 中。我們將創(chuàng)建一個(gè) Meadow Application 項(xiàng)目并使用Meadow.Foundation輕松編寫邏輯。

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 步 - 組裝電路

像這樣連接您的項(xiàng)目:

pYYBAGPXMY2ANw5qAAIMQCzX-AU353.png
LEDDice電路圖
?

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

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

第 3 步 - 為 LedDice 編寫代碼

在您的MeadowApp類中,復(fù)制以下代碼:

// public class MeadowApp : App <- If you have a Meadow F7v1.*
public class MeadowApp : App
{
    Led[] leds;
    PushButton button;

    public override Task Initialize() 
    {
        var onboardLed = new RgbPwmLed(
            device: Device,
            redPwmPin: Device.Pins.OnboardLedRed,
            greenPwmPin: Device.Pins.OnboardLedGreen,
            bluePwmPin: Device.Pins.OnboardLedBlue);
        onboardLed.SetColor(Color.Red);

        leds = new Led[7];
        leds[0] = new Led(Device, Device.Pins.D06);  // 
        leds[1] = new Led(Device, Device.Pins.D07);  // [6]       [5]
        leds[2] = new Led(Device, Device.Pins.D08);  // 
        leds[3] = new Led(Device, Device.Pins.D09);  // [4]  [3]  [2]
        leds[4] = new Led(Device, Device.Pins.D10);  // 
        leds[5] = new Led(Device, Device.Pins.D11);  // [1]       [0]
        leds[6] = new Led(Device, Device.Pins.D12);  // 

        button = new PushButton(Device, Device.Pins.D04);
        button.Clicked += ButtonClicked;

        onboardLed.SetColor(Color.Green);

        return base.Initialize();
    }

    void ButtonClicked(object sender, EventArgs e)
    {
        Random random = new Random();

        ShuffleAnimation();
        ShowNumber(random.Next(1,7));
    }

    void ShuffleAnimation() 
    {
        foreach (var led in leds)
        {
            led.StartBlink(TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(100));
        }
        Thread.Sleep(1000);

        foreach (var led in leds)
        {
            led.Stop();
        }
        Thread.Sleep(100);
    }

    void ShowNumber(int number)
    {
        leds[0].IsOn = (number == 6 || number == 5 || number == 4);
        leds[1].IsOn = (number == 6 || number == 5 || number == 4 || number == 3 || number == 2);
        leds[2].IsOn = (number == 6);
        leds[3].IsOn = (number == 4 || number == 5 || number == 3 || number == 1);
        leds[4].IsOn = (number == 6);
        leds[5].IsOn = (number == 6 || number == 5 || number == 4 || number == 3 || number == 2);
        leds[6].IsOn = (number == 6 || number == 5 || number == 4);
    }
}

該項(xiàng)目使用一組七個(gè)PwmLed對(duì)象聲明為leds和一個(gè)PushButton對(duì)象命名button,它們都在 MeadowApp 的構(gòu)造函數(shù)中初始化。一旦它們被初始化,我們就會(huì)調(diào)用該ShuffleAnimation()方法(如下所述)來反饋項(xiàng)目已完全加載并正在運(yùn)行,最后我們會(huì)Thread.Sleep(Timeout.Infinite);保持應(yīng)用程序運(yùn)行,直到 Meadow 板斷電。

該項(xiàng)目由兩種方法和一個(gè)事件處理程序組成:

  • ShuffleAnimation();方法遍歷每個(gè) LED 并啟動(dòng)閃爍動(dòng)畫一秒鐘,然后立即停止每個(gè) LED 上的動(dòng)畫。
  • ShowNumber(int number);方法根據(jù)作為參數(shù)傳入的數(shù)字打開相應(yīng)的 LED。
  • ButtonClicked(object sender, EventArgs e)是每當(dāng)按下時(shí)觸發(fā)的事件處理程序方法button,它所做的是實(shí)例化一個(gè)本地Random對(duì)象,調(diào)用ShuffleAnimation(),一旦動(dòng)畫完成,它就會(huì)調(diào)用該ShowNumber(int number)方法,將 1 到 6 之間的隨機(jī)值作為參數(shù)傳遞。

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

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

LedDice Meadow 應(yīng)用程序正在運(yùn)行...
?

查看 Meadow.Foundation!

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

  • 它帶有一個(gè)龐大的外設(shè)驅(qū)動(dòng)程序庫(kù),其中包含適用于最常見傳感器和外設(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語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)