99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(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)>電子資料下載>電子資料>使用伺服系統(tǒng)和按鈕與Netduino一起踢足球

使用伺服系統(tǒng)和按鈕與Netduino一起踢足球

2022-11-08 | zip | 0.35 MB | 次下載 | 免費(fèi)

資料介紹

描述

在這個(gè)項(xiàng)目中,您將學(xué)習(xí)如何使用由標(biāo)準(zhǔn)按鈕激活的伺服系統(tǒng)制作有趣的迷你足球游戲。為了控制伺服系統(tǒng),我們將使用ServoCore,這是一個(gè)簡(jiǎn)化伺服編程的框架,它是Netduino.Foundation的一部分。

伺服系統(tǒng)是集成套件,通常包括直流電動(dòng)機(jī)、增加扭矩的齒輪裝置和控制電機(jī)的電子設(shè)備。它們作為遙控汽車、飛機(jī)等的部件而廣受歡迎,但現(xiàn)在也非常普遍地用于機(jī)器人技術(shù)。

伺服系統(tǒng)會(huì)消耗大量電流,尤其是在負(fù)載下。此外,最常見(jiàn)的愛(ài)好伺服器需要6V. 因此,在實(shí)際應(yīng)用中應(yīng)使用外接電源。

按鈕(或瞬時(shí)觸覺(jué)按鈕)是用于在按下時(shí)完成電路并在釋放時(shí)斷開(kāi)電路的物理按鈕。按鈕的尺寸和配置范圍很廣,我們將使用帶有四 (4) 條引線的通用類型,這些引線旨在適合標(biāo)準(zhǔn)原型板。按下按鈕時(shí),所有四根導(dǎo)線都已連接。您可以在此處閱讀有關(guān)按鈕的更多信息。

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

如果您是 Netduino 開(kāi)發(fā)新手,我建議您前往Netduino 入門項(xiàng)目來(lái)設(shè)置您的開(kāi)發(fā)環(huán)境。

第 1 步 - 組裝電路

我們的足球比賽的電路如下所示:

?
pYYBAGNomRSAU-uBAANxP0s7qHg939.png
將伺服器與 Netduino 連接以進(jìn)行測(cè)試
?

電源

我們將連接 3.3V 和 5V 電源軌。當(dāng)我們想要移動(dòng)伺服器或足球運(yùn)動(dòng)員時(shí),我們使用帶有按鈕信號(hào)的 3.3V 電源軌到 Netduino。我們可以使用 5V 作為輸入,因?yàn)?Netduino 輸入可以承受 5V,但是,最好使用 3.3V 觸發(fā)輸入。

我們將使用 5V 導(dǎo)軌為伺服系統(tǒng)供電如上所述,對(duì)于生產(chǎn)應(yīng)用,最佳做法是使用外部電源。

下拉電阻

此項(xiàng)目中使用的按鈕有兩 (2) 對(duì)冗余引腳。請(qǐng)注意,Netduino 的數(shù)字引腳通過(guò)電阻連接到 GND。當(dāng)按鈕處于靜止?fàn)顟B(tài)(未按下)時(shí),輸入引腳設(shè)置為接地。按下按鈕時(shí),所有四 (4) 個(gè)引腳都已連接,將 3.3V 電源軌連接到 Netduino 上的輸入引腳。使用了電阻器,因此當(dāng)按下按鈕時(shí),我們?cè)陔娫春偷刂g沒(méi)有直接的低電阻路徑。

第 2 步 - 組裝足球場(chǎng)

對(duì)于足球場(chǎng),您將需要一個(gè)字母大小的紙板。足球線只是裝飾品,所以你可以隨意畫它們。

?
pYYBAGNomReAS5bjAADz2-wUEkI003.png
足球場(chǎng)尺寸
?

對(duì)于板的墻壁,您將需要兩 (2) 條較薄的紙板條,尺寸如下。

?
pYYBAGNomRmAM0EyAABcIdxex2E283.png
為足球場(chǎng)的墻壁剪兩條硬紙板
?

將下半部分粘在足球場(chǎng)的邊緣。

使用雙面膠帶將舵機(jī)固定在場(chǎng)地表面,并用一根連接到舵機(jī)旋轉(zhuǎn)臂的棒;我們用冰棒或一半的筷子。

你的足球場(chǎng)應(yīng)該是這樣的:

?
pYYBAGNomR-AMnWhAAtlhHFDHrc814.jpg
足球場(chǎng)完全組裝
?

第 3 步 - 創(chuàng)建一個(gè) Netduino 項(xiàng)目

在Visual Studio 2015 for WindowsVisual Studio for Mac中創(chuàng)建Netduino項(xiàng)目;將項(xiàng)目命名為SoccerField 。

第 4 步 - 添加 Netduino 基礎(chǔ)庫(kù)

視窗

右鍵單擊SoccerSample項(xiàng)目,然后單擊Manage NuGet Packages 。瀏覽選項(xiàng)卡中,搜索Netduino.Foundation;它應(yīng)該是第一個(gè)搜索結(jié)果。單擊安裝按鈕。

?
pYYBAGNomSKANzvIAAHe-hSiyps66.jpeg
添加 Netduino.Foundation NuGet 包
?

現(xiàn)在搜索Netduino.Foundation.Servo并將其添加到您的項(xiàng)目中。

蘋果系統(tǒng)

在解決方案資源管理器中按住 Alt 鍵單擊SoccerField項(xiàng)目,然后單擊添加 => 添加 NuGet 包以打開(kāi) NuGet 包窗口。搜索Netduino.Foundation包并單擊Add Package將其添加到您的項(xiàng)目中。

?
poYBAGNomSSAVt1MAAC1JkUadv058.jpeg
添加 Netduino.Foundation NuGet 包
?

現(xiàn)在搜索Netduino.Foundation.Servo并將其添加到您的項(xiàng)目中。

第 5 步 - 添加代碼以控制足球場(chǎng)

添加播放器控制器

為所涉及的每個(gè)外圍設(shè)備創(chuàng)建一個(gè)Controller類是一種很好的做法,以使項(xiàng)目結(jié)構(gòu)更具可擴(kuò)展性和可維護(hù)性。控制器類將封裝控制硬件所需的特定于外設(shè)的邏輯。

使用以下代碼為您的伺服系統(tǒng)添加一個(gè)PlayerController類:

using System.Threading;
using Netduino.Foundation.Servos;
namespace Soccer
{
   public class PlayerController
   {
       protected bool _kickRight;
       protected Servo _servo;
       public PlayerController(Servo servo)
       {
           _servo = servo;
           _servo.RotateTo(0);
       }
       public void Kick()
       {
           Thread _animationThread = new Thread(() =>
           {
               _kickRight = !_kickRight;
               if (_kickRight)
               {
                   _servo.RotateTo(180);
               }
               else
               {
                   _servo.RotateTo(0);
               }
           });
           _animationThread.Start();
       }
   }
}

該控制器管理單個(gè)舵機(jī)的行為,其唯一的公共方法Kick使舵機(jī)從 0 度旋轉(zhuǎn)到 180 度并返回。請(qǐng)注意, Kick中的伺服旋轉(zhuǎn)邏輯包含在 Thread _animationThread中。如果在伺服移動(dòng)時(shí)按下按鈕,這會(huì)使伺服控制異步。

添加應(yīng)用類

對(duì)于這個(gè)項(xiàng)目,我們實(shí)現(xiàn)了一個(gè)通用的App軟件模式來(lái)管理所有的外圍設(shè)備和主要邏輯。

將一個(gè)新的App類添加到您的項(xiàng)目中,然后粘貼以下代碼:

using System;
using Netduino.Foundation.Servos;
using N = SecretLabs.NETMF.Hardware.Netduino;
using Microsoft.SPOT.Hardware;
namespace Soccer
{
   public class App
   {
       protected InterruptPort _buttonTeamA;
       protected PlayerController _playerTeamA;
       protected InterruptPort _buttonTeamB;
       protected PlayerController _playerTeamB;
       public App()
       {
           InitializePeripherals();
       }
       protected void InitializePeripherals()
       {
           _buttonTeamA = new InterruptPort(N.Pins.GPIO_PIN_D4, 
                true, Port.ResistorMode.PullDown, 
                Port.InterruptMode.InterruptEdgeHigh);
           _buttonTeamA.OnInterrupt += OnButtonTeamA;
           var servoA = new Servo(N.PWMChannels.PWM_PIN_D3, 
                NamedServoConfigs.Ideal180Servo);
           _playerTeamA = new PlayerController(servoA);
           _buttonTeamB = new InterruptPort(N.Pins.GPIO_PIN_D10, 
                true, Port.ResistorMode.PullDown, 
                Port.InterruptMode.InterruptEdgeHigh);
           _buttonTeamB.OnInterrupt += OnButtonTeamB;
           var servoB = new Servo(N.PWMChannels.PWM_PIN_D11, 
                NamedServoConfigs.Ideal180Servo);
           _playerTeamB = new PlayerController(servoB);
       }
       private void OnButtonTeamA(uint data1, uint data2, DateTime time)
       {
           _playerTeamA.Kick();
       }
       private void OnButtonTeamB(uint data1, uint data2, DateTime time)
       {
           _playerTeamB.Kick();
       }
       public void Run()
       {
       }
   }
}

請(qǐng)注意,我們的App類聲明了四個(gè)類屬性:兩個(gè)InterruptPorts和兩個(gè)PlayerController類對(duì)象。

在構(gòu)造函數(shù)中,我們調(diào)用InitializePeripherals方法,在該方法中實(shí)例化所有四個(gè)類對(duì)象。_playerTeamA_playerTeamB用于控制舵機(jī),InterruptPorts用于按鈕。_buttonTeamA_buttonTeamB注冊(cè)OnInterrupt事件,并調(diào)用對(duì)應(yīng)PlayerController團(tuán)隊(duì)的Kick方法。

在 Program 類中實(shí)現(xiàn) Main 方法

最后,創(chuàng)建一個(gè)新的App類對(duì)象并調(diào)用Run方法。您的代碼應(yīng)如下所示:

using System.Threading;
namespace Soccer
{
   public class Program
   {
       public static void Main()
       {
           App app = new App();
           app.Run();
           Thread.Sleep(Timeout.Infinite);
       }
   }
}

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

單擊 Visual Studio 中的運(yùn)行按鈕以查看您的足球比賽!在場(chǎng)地中間扔一個(gè)球,然后按下按鈕,讓舵機(jī)向兩邊踢!

?
足球場(chǎng)項(xiàng)目運(yùn)行
?

查看 Netduino.Foundation

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

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

參考


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

評(píng)論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫(kù)封裝庫(kù)安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級(jí)說(shuō)明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開(kāi)發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分