資料介紹
描述
在這個(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è)備。它們作為遙控汽車(chē)、飛機(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 入門(mén)項(xiàng)目來(lái)設(shè)置您的開(kāi)發(fā)環(huán)境。
第 1 步 - 組裝電路
我們的足球比賽的電路如下所示:
電源軌
我們將連接 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è)字母大小的紙板。足球線只是裝飾品,所以你可以隨意畫(huà)它們。
對(duì)于板的墻壁,您將需要兩 (2) 條較薄的紙板條,尺寸如下。
將下半部分粘在足球場(chǎng)的邊緣。
使用雙面膠帶將舵機(jī)固定在場(chǎng)地表面,并用一根連接到舵機(jī)旋轉(zhuǎn)臂的棒;我們用冰棒或一半的筷子。
你的足球場(chǎng)應(yīng)該是這樣的:
第 3 步 - 創(chuàng)建一個(gè) Netduino 項(xiàng)目
在Visual Studio 2015 for Windows或Visual 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é)果。單擊安裝按鈕。
現(xiàn)在搜索Netduino.Foundation.Servo并將其添加到您的項(xiàng)目中。
蘋(píng)果系統(tǒng)
在解決方案資源管理器中按住 Alt 鍵單擊SoccerField項(xiàng)目,然后單擊添加 => 添加 NuGet 包以打開(kāi) NuGet 包窗口。搜索Netduino.Foundation包并單擊Add Package將其添加到您的項(xiàng)目中。
現(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ī)向兩邊踢!
查看 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)目。
參考
- 基于工程化參數(shù)優(yōu)化的遙測(cè)伺服系統(tǒng) 6次下載
- 交流永磁伺服系統(tǒng)的控制策略 9次下載
- 交流永磁伺服系統(tǒng)的控制策略 21次下載
- 交流永磁伺服系統(tǒng)的控制策略 10次下載
- 交流永磁伺服系統(tǒng)的控制策略 18次下載
- 交流永磁伺服系統(tǒng)的控制策略 10次下載
- 伺服系統(tǒng)的組成 19次下載
- 交流永磁伺服系統(tǒng)技術(shù)講座 7次下載
- 教學(xué)雷達(dá)伺服系統(tǒng)設(shè)計(jì)與制作 18次下載
- 伺服系統(tǒng)的PID控制技術(shù)下載 8次下載
- 伺服系統(tǒng)的扭矩控制(Toque Control)和速度控制(
- 伺服系統(tǒng)的PID控制
- 進(jìn)給伺服系統(tǒng) 0次下載
- 數(shù)控機(jī)床的伺服系統(tǒng)
- 數(shù)控機(jī)床的伺服系統(tǒng)
- 液壓伺服系統(tǒng)的組成_液壓伺服系統(tǒng)的優(yōu)缺點(diǎn) 1.2w次閱讀
- 一文詳解cnc電液伺服系統(tǒng)組成及控制原理 1.5w次閱讀
- 一文讀懂?dāng)?shù)控伺服系統(tǒng)的作用 1.1w次閱讀
- 基于自抗擾控制的雙環(huán)伺服系統(tǒng)詳解 8391次閱讀
- 伺服系統(tǒng)復(fù)合控制技術(shù)和非線性補(bǔ)償技術(shù) 4494次閱讀
- 主軸伺服系統(tǒng)的故障診斷方法有哪些 6528次閱讀
- PLC控制伺服系統(tǒng)步驟_西門(mén)子PLC控制的伺服控制系統(tǒng)詳解 5.3w次閱讀
- 一文詳解伺服系統(tǒng)需求重點(diǎn)在哪里 6122次閱讀
- 一文知道伺服系統(tǒng)設(shè)計(jì)步驟及方法 6595次閱讀
- 伺服系統(tǒng)應(yīng)用于哪兒_伺服系統(tǒng)應(yīng)用實(shí)例 1.6w次閱讀
- 現(xiàn)代交流伺服系統(tǒng)原理及控制方法 6709次閱讀
- 一文看懂直流伺服系統(tǒng)的優(yōu)缺點(diǎn)及控制原理 3.2w次閱讀
- 伺服系統(tǒng)什么意思_伺服系統(tǒng)的作用是什么 3.4w次閱讀
- 伺服系統(tǒng)是什么_伺服系統(tǒng)的基本要求_伺服系統(tǒng)的基本組成 1.9w次閱讀
- 伺服系統(tǒng)淺析,伺服系統(tǒng)的分類、結(jié)構(gòu)組成與技術(shù)要求 8673次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多