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

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

3天內(nèi)不再提示

足球比賽電路的制作

454398 ? 來(lái)源:工程師吳畏 ? 2019-08-05 10:10 ? 次閱讀

第1步 - 組裝電路

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

將Servo與Netduino連接以進(jìn)行測(cè)試

電源

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

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

下拉電阻

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

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

對(duì)于足球場(chǎng),你需要一個(gè)信紙尺寸的紙板。足球線只是裝飾品,所以無(wú)論如何都可以自由地繪制它們。

足球場(chǎng)尺寸

對(duì)于電路板的墻壁,您需要兩(2)個(gè)更薄的紙板條,以下尺寸。

切割兩個(gè)紙板條足球場(chǎng)的墻壁

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

使用雙面膠帶將舵機(jī)連接到現(xiàn)場(chǎng)表面,并用棍子連接到伺服的旋轉(zhuǎn)臂上;我們使用冰棍棒或一半的筷子。

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

足球場(chǎng)完全組裝

第3步 - 創(chuàng)建Netduino項(xiàng)目

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

步驟4 - 添加Netduino Foundation庫(kù)

Windows

右鍵單擊 SoccerSample 項(xiàng)目,然后單擊管理NuGet包的。在瀏覽標(biāo)簽中,搜索 Netduino.Foundation ;它應(yīng)該是第一個(gè)搜索結(jié)果。單擊安裝按鈕。

添加Netduino.Foundation NuGet包

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

macOS

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

添加Netduino.Foundation NuGet包

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

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

添加PlayerController

創(chuàng)建控制器是一個(gè)好習(xí)慣所涉及的每個(gè)外圍設(shè)備的類,以使項(xiàng)目結(jié)構(gòu)更具可擴(kuò)展性和可維護(hù)性??刂破黝悓⒎庋b控制硬件所需的外設(shè)特定邏輯。

使用以下代碼為您的伺服器添加 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è)伺服的行為,其唯一的公共方法 Kick 使伺服從0度旋轉(zhuǎn)到180度并返回。請(qǐng)注意, Kick 中的伺服旋轉(zhuǎn)邏輯包含在Thread _animationThread 中。這使伺服控制在伺服移動(dòng)時(shí)按下按鈕時(shí)異步。

添加App類

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

在項(xiàng)目中添加一個(gè)新的 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()

{

}

}

}

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

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

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

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

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

單擊Visual Studio中的運(yùn)行按鈕以查看您的足球游戲!在球場(chǎng)中間拋球并按下按鈕使兩側(cè)的伺服踢球!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電路
    +關(guān)注

    關(guān)注

    172

    文章

    5828

    瀏覽量

    171803
  • Netduino
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    3432
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    多數(shù)表決器電路設(shè)計(jì)與制作

    電子發(fā)燒友網(wǎng)站提供《多數(shù)表決器電路設(shè)計(jì)與制作.pptx》資料免費(fèi)下載
    發(fā)表于 09-02 14:42 ?0次下載

    PCB電路板設(shè)計(jì)與制作的步驟和要點(diǎn)

    一站式PCBA智造廠家今天為大家講講pcb設(shè)計(jì)制作流程和要點(diǎn)是什么?PCB設(shè)計(jì)制作流程和要點(diǎn)。PCB設(shè)計(jì)是電子產(chǎn)品開(kāi)發(fā)過(guò)程中的關(guān)鍵步驟之一。 PCB設(shè)計(jì)制作流程和要點(diǎn) PCB設(shè)計(jì)制作
    的頭像 發(fā)表于 08-02 09:24 ?544次閱讀

    智能傳感器改變歐洲杯,讓現(xiàn)代足球更智能

    最近什么最火,話題最熱 那肯定是歐洲杯??! 歐洲杯如火如荼的進(jìn)行著,這段時(shí)間各位小主們是不是都開(kāi)始作息顛倒,為自己支持的球隊(duì)吶喊助威呢! 小編我也是一個(gè)十足的足球愛(ài)好者,心中也有著一個(gè)足球夢(mèng), 黑馬
    的頭像 發(fā)表于 07-12 09:45 ?1689次閱讀
    智能傳感器改變歐洲杯,讓現(xiàn)代<b class='flag-5'>足球</b>更智能

    晶科能源與曼城足球俱樂(lè)部達(dá)成全球合作伙伴關(guān)系

    ? ? ? 全球領(lǐng)先的光伏及儲(chǔ)能系統(tǒng)供應(yīng)商——晶科能源宣布與曼城足球俱樂(lè)部達(dá)成為期數(shù)年的全球合作伙伴關(guān)系。 晶科能源將通過(guò)此次合作進(jìn)一步擴(kuò)大其品牌在全球范圍的影響力。同時(shí),曼城足球俱樂(lè)部也將在
    的頭像 發(fā)表于 06-12 16:35 ?558次閱讀

    蘋(píng)果運(yùn)用8臺(tái)攝像機(jī)拍攝沉浸式足球比賽

    Reddit 用戶 Joe-notabot 近期分享了一組照片,揭示了蘋(píng)果在 MLS 西雅圖海灣人隊(duì)對(duì)陣波特蘭木材隊(duì)比賽中的攝像機(jī)系統(tǒng)。這是蘋(píng)果 VR 攝像機(jī)系統(tǒng)首次得到清晰展示,同時(shí)也揭示了攝像機(jī)的具體布置情況。
    的頭像 發(fā)表于 05-30 14:16 ?643次閱讀

    大學(xué)生學(xué)單片機(jī)不能錯(cuò)過(guò)的比賽

    單片機(jī)比賽是電子和計(jì)算機(jī)領(lǐng)域的一項(xiàng)重要賽事,旨在提升參賽者的專業(yè)技能、團(tuán)隊(duì)協(xié)作能力和創(chuàng)新思維。以下是一些常見(jiàn)的單片機(jī)比賽
    的頭像 發(fā)表于 05-15 09:50 ?1688次閱讀
    大學(xué)生學(xué)單片機(jī)不能錯(cuò)過(guò)的<b class='flag-5'>比賽</b>

    體育與TDK:使足球運(yùn)動(dòng)越來(lái)越狂熱的VAR系統(tǒng)和傳感器技術(shù)

    足球是一項(xiàng)受歡迎的運(yùn)動(dòng),在世界范圍內(nèi)擁有著非常多的運(yùn)動(dòng)員和觀眾。由FIFA (國(guó)際足球聯(lián)合會(huì)) 主辦的世界杯每4年舉辦一次,是全球32支球隊(duì) (2026年48支球隊(duì)) 聚集在一起,角逐足球冠軍的大賽。
    的頭像 發(fā)表于 03-27 14:19 ?700次閱讀
    體育與TDK:使<b class='flag-5'>足球</b>運(yùn)動(dòng)越來(lái)越狂熱的VAR系統(tǒng)和傳感器技術(shù)

    基于51單片機(jī)的多路搶答器的設(shè)計(jì)與制作,電路,程序,原理圖,論文

    設(shè)計(jì)要求 1)搶答器同時(shí)供8名選手或2個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0-S7表示; 2)設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)S,該開(kāi)關(guān)由主持人控制; 3)搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)
    發(fā)表于 03-20 15:20

    電路板pcb制作過(guò)程

    電路板pcb制作過(guò)程
    的頭像 發(fā)表于 03-05 10:26 ?1129次閱讀

    NBA比賽收視率的背后是什么?

    在夏季季后賽之前,還有82場(chǎng)常規(guī)賽,那么賽程安排就是NBA的一個(gè)重要任務(wù)。30支球隊(duì)要進(jìn)行82場(chǎng)比賽,每支球隊(duì)市值都超過(guò)10億美元。僅電視轉(zhuǎn)播收入每年就超過(guò)20億美元,球迷和廣告商都希望他們的球隊(duì)
    的頭像 發(fā)表于 02-24 08:04 ?328次閱讀
    NBA<b class='flag-5'>比賽</b>收視率的背后是什么?

    差分晶振電路圖如何制作 影響差分晶振價(jià)格的原因

    差分晶振電路圖如何制作 影響差分晶振價(jià)格的原因? 差分晶振電路制作步驟: 差分晶振電路圖可以用于電子設(shè)備的時(shí)鐘
    的頭像 發(fā)表于 01-23 16:43 ?579次閱讀

    基于51單片機(jī)的比賽計(jì)分系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的比賽計(jì)分系統(tǒng).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:26 ?6次下載

    基于51單片機(jī)的比賽計(jì)分設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的比賽計(jì)分設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:35 ?2次下載

    一文詳解pcb電路板是怎么制作

    一文詳解pcb電路板是怎么制作
    的頭像 發(fā)表于 12-05 11:18 ?1380次閱讀

    為什么足球賽事會(huì)選擇LED顯示屏?

    隨著全球疫情的放開(kāi),人們對(duì)線下體育賽事的熱情也隨之高漲!在體育賽事中,LED顯示屏已被廣泛應(yīng)用。以足球比賽為例,無(wú)論是現(xiàn)場(chǎng)觀看還是在電視直播中觀看,觀眾都會(huì)注意到圍繞在各大球場(chǎng)四周的LED顯示屏。這些屏幕不僅活躍了現(xiàn)場(chǎng)氣氛,呈現(xiàn)了賽事的細(xì)節(jié),而且也為主辦方帶來(lái)了巨大的廣告收益。
    的頭像 發(fā)表于 11-14 14:18 ?736次閱讀