精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用伺服系統和按鈕與Netduino一起踢足球

使用伺服系統和按鈕與Netduino一起踢足球

2022-11-08 | zip | 0.35 MB | 次下載 | 免費

資料介紹

描述

在這個項目中,您將學習如何使用由標準按鈕激活的伺服系統制作有趣的迷你足球游戲。為了控制伺服系統,我們將使用ServoCore,這是一個簡化伺服編程的框架,它是Netduino.Foundation的一部分。

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

伺服系統會消耗大量電流,尤其是在負載下。此外,最常見的愛好伺服器需要6V. 因此,在實際應用中應使用外接電源。

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

Netduino.Foundation是一個使用 Netduino 上的.NET MicroFramework快速構建連接事物的平臺Wilderness Labs創建,它是開源的,由 Netduino 社區維護。

如果您是 Netduino 開發新手,我建議您前往Netduino 入門項目來設置您的開發環境。

第 1 步 - 組裝電路

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

?
pYYBAGNomRSAU-uBAANxP0s7qHg939.png
將伺服器與 Netduino 連接以進行測試
?

電源

我們將連接 3.3V 和 5V 電源軌。當我們想要移動伺服器或足球運動員時,我們使用帶有按鈕信號的 3.3V 電源軌到 Netduino。我們可以使用 5V 作為輸入,因為 Netduino 輸入可以承受 5V,但是,最好使用 3.3V 觸發輸入。

我們將使用 5V 導軌為伺服系統供電如上所述,對于生產應用,最佳做法是使用外部電源。

下拉電阻

此項目中使用的按鈕有兩 (2) 對冗余引腳。請注意,Netduino 的數字引腳通過電阻連接到 GND。當按鈕處于靜止狀態(未按下)時,輸入引腳設置為接地。按下按鈕時,所有四 (4) 個引腳都已連接,將 3.3V 電源軌連接到 Netduino 上的輸入引腳。使用了電阻器,因此當按下按鈕時,我們在電源和地之間沒有直接的低電阻路徑。

第 2 步 - 組裝足球場

對于足球場,您將需要一個字母大小的紙板。足球線只是裝飾品,所以你可以隨意畫它們。

?
pYYBAGNomReAS5bjAADz2-wUEkI003.png
足球場尺寸
?

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

?
pYYBAGNomRmAM0EyAABcIdxex2E283.png
為足球場的墻壁剪兩條硬紙板
?

將下半部分粘在足球場的邊緣。

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

你的足球場應該是這樣的:

?
pYYBAGNomR-AMnWhAAtlhHFDHrc814.jpg
足球場完全組裝
?

第 3 步 - 創建一個 Netduino 項目

在Visual Studio 2015 for WindowsVisual Studio for Mac中創建Netduino項目將項目命名為SoccerField

第 4 步 - 添加 Netduino 基礎庫

視窗

右鍵單擊SoccerSample項目,然后單擊Manage NuGet Packages 瀏覽選項卡中,搜索Netduino.Foundation;它應該是第一個搜索結果。單擊安裝按鈕。

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

現在搜索Netduino.Foundation.Servo并將其添加到您的項目中。

蘋果系統

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

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

現在搜索Netduino.Foundation.Servo并將其添加到您的項目中。

第 5 步 - 添加代碼以控制足球場

添加播放器控制器

為所涉及的每個外圍設備創建一個Controller類是一種很好的做法,以使項目結構更具可擴展性和可維護性。控制器類將封裝控制硬件所需的特定于外設的邏輯。

使用以下代碼為您的伺服系統添加一個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();
       }
   }
}

該控制器管理單個舵機的行為,其唯一的公共方法Kick使舵機從 0 度旋轉到 180 度并返回。請注意, Kick中的伺服旋轉邏輯包含在 Thread _animationThread中。如果在伺服移動時按下按鈕,這會使伺服控制異步。

添加應用類

對于這個項目,我們實現了一個通用的App軟件模式來管理所有的外圍設備和主要邏輯。

將一個新的App類添加到您的項目中,然后粘貼以下代碼:

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()
       {
       }
   }
}

請注意,我們的App類聲明了四個類屬性:兩個InterruptPorts和兩個PlayerController類對象。

在構造函數中,我們調用InitializePeripherals方法,在該方法中實例化所有四個類對象。_playerTeamA_playerTeamB用于控制舵機,InterruptPorts用于按鈕。_buttonTeamA_buttonTeamB注冊OnInterrupt事件,并調用對應PlayerController團隊的Kick方法。

在 Program 類中實現 Main 方法

最后,創建一個新的App類對象并調用Run方法。您的代碼應如下所示:

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

第 6 步 - 運行項目

單擊 Visual Studio 中的運行按鈕以查看您的足球比賽!在場地中間扔一個球,然后按下按鈕,讓舵機向兩邊踢!

?
足球場項目運行
?

查看 Netduino.Foundation

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

  • 它帶有一個龐大的外圍驅動程序庫,其中包含最常見的傳感器和外圍設備的驅動程序。
  • 外圍驅動程序封裝了核心邏輯并公開了一個簡單、干凈、現代的 API。
  • 這個項目得到了一個不斷發展的社區的支持,該社區不斷致力于構建很酷的互聯事物,并且總是很高興能幫助新人并討論新項目。

參考


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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