0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

足球比赛电路的制作

454398 来源:工程师吴畏 2019-08-05 10:10 次阅读

第1步 - 组装电路

我们的足球比赛电路如下:

将Servo与Netduino连接以进行测试

电源

我们将连接3.3V和5V电源轨。当我们想要移动伺服或足球运动员时,我们使用带有按钮的3.3V电源导轨向Netduino发出信号。我们可以使用5V作为输入,因为Netduino输入可以承受5V电压,但最好用3.3V触发输入。

我们将使用5V电源为电源供电伺服系统。如上所述,对于生产应用,最好使用外部电源。

下拉电阻

此项目中使用的按钮有两(2)对冗余引脚。请注意,Netduino的数字引脚通过电阻连接到GND。当按钮静止(未按下)时,输入引脚设置为接地。按下按钮时,所有四(4)个引脚都连接在一起,将3.3V电源轨连接到Netduino上的输入引脚。使用电阻器,因此当按下按钮时,我们在电源和地之间没有直接的低电阻路径。

步骤2 - 组装足球场

对于足球场,你需要一个信纸尺寸的纸板。足球线只是装饰品,所以无论如何都可以自由地绘制它们。

足球场尺寸

对于电路板的墙壁,您需要两(2)个更薄的纸板条,以下尺寸。

切割两个纸板条足球场的墙壁

将下半部分粘贴到足球场的边缘。

使用双面胶带将舵机连接到现场表面,并用棍子连接到伺服的旋转臂上;我们使用冰棍棒或一半的筷子。

你的足球场应该是这样的:

足球场完全组装

第3步 - 创建Netduino项目

在 Visual Studio 2015 for Windows 或 Visual Studio for Mac 中创建 Netduino 项目;将项目命名为 SoccerField 。

步骤4 - 添加Netduino Foundation库

Windows

右键单击 SoccerSample 项目,然后单击管理NuGet包的。在浏览标签中,搜索 Netduino.Foundation ;它应该是第一个搜索结果。单击安装按钮。

添加Netduino.Foundation NuGet包

现在搜索 Netduino.Foundation.Servo 并将其添加到您的项目中。

macOS

按住Alt键并单击解决方案资源管理器中的 SoccerField 项目,然后单击添加=》添加NuGet包以打开NuGet包窗口。搜索 Netduino.Foundation 包并单击添加包将其添加到您的项目中。

添加Netduino.Foundation NuGet包

现在搜索 Netduino.Foundation.Servo 并将其添加到您的项目中。

步骤5 - 添加代码以控制足球场

添加PlayerController

创建控制器是一个好习惯所涉及的每个外围设备的类,以使项目结构更具可扩展性和可维护性。控制器类将封装控制硬件所需的外设特定逻辑。

使用以下代码为您的伺服器添加 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 软件模式主要逻辑。

在项目中添加一个新的 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 类对象并调用运行方法。您的代码应如下所示:

步骤6 - 运行项目

单击Visual Studio中的运行按钮以查看您的足球游戏!在球场中间抛球并按下按钮使两侧的伺服踢球!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    170

    文章

    5480

    浏览量

    169511
  • Netduino
    +关注

    关注

    0

    文章

    19

    浏览量

    3420
收藏 人收藏

    评论

    相关推荐

    体育与TDK:使足球运动越来越狂热的VAR系统和传感器技术

    足球是一项受欢迎的运动,在世界范围内拥有着非常多的运动员和观众。由FIFA (国际足球联合会) 主办的世界杯每4年举办一次,是全球32支球队 (2026年48支球队) 聚集在一起,角逐足球冠军的大赛。
    的头像 发表于 03-27 14:19 216次阅读
    体育与TDK:使<b class='flag-5'>足球</b>运动越来越狂热的VAR系统和传感器技术

    电路板pcb制作过程

    电路板pcb制作过程
    的头像 发表于 03-05 10:26 307次阅读

    NBA比赛收视率的背后是什么?

    在夏季季后赛之前,还有82场常规赛,那么赛程安排就是NBA的一个重要任务。30支球队要进行82场比赛,每支球队市值都超过10亿美元。仅电视转播收入每年就超过20亿美元,球迷和广告商都希望他们的球队
    的头像 发表于 02-24 08:04 128次阅读
    NBA<b class='flag-5'>比赛</b>收视率的背后是什么?

    差分晶振电路图如何制作 影响差分晶振价格的原因

    差分晶振电路图如何制作 影响差分晶振价格的原因  差分晶振电路制作步骤: 差分晶振电路图可以用于电子设备的时钟
    的头像 发表于 01-23 16:43 240次阅读

    基于51单片机的比赛计分系统

    电子发烧友网站提供《基于51单片机的比赛计分系统.rar》资料免费下载
    发表于 01-12 10:26 3次下载

    基于51单片机的比赛计分设计

    电子发烧友网站提供《基于51单片机的比赛计分设计.rar》资料免费下载
    发表于 01-07 09:35 0次下载

    一文详解pcb电路板是怎么制作

    一文详解pcb电路板是怎么制作
    的头像 发表于 12-05 11:18 742次阅读

    为什么足球赛事会选择LED显示屏?

    随着全球疫情的放开,人们对线下体育赛事的热情也随之高涨!在体育赛事中,LED显示屏已被广泛应用。以足球比赛为例,无论是现场观看还是在电视直播中观看,观众都会注意到围绕在各大球场四周的LED显示屏。这些屏幕不仅活跃了现场气氛,呈现了赛事的细节,而且也为主办方带来了巨大的广告收益。
    的头像 发表于 11-14 14:18 337次阅读

    基于FPGA乒乓球比赛游戏机的设计

    电子发烧友网站提供《基于FPGA乒乓球比赛游戏机的设计.pdf》资料免费下载
    发表于 10-20 10:31 1次下载
    基于FPGA乒乓球<b class='flag-5'>比赛</b>游戏机的设计

    华为高品质万兆园区网络助力园区实现数据互通

    上海体育场位于徐汇区,是上海标志性建筑之一,是2008年奥运会的足球比赛场地,也是中超联赛球队上海申花足球俱乐部主场。为了满足国际国内顶级赛事办赛要求,从2020年开始,久事体育中心公司携手华为
    的头像 发表于 09-27 09:55 1197次阅读

    机器人足球世界杯你见过吗

    ,成为学生涉足这些领域的途径。 女性在这项运动中发挥了巨大作用。为了致敬女子世界杯,我们列出了更多关于机器人足球的相关信息。 1. 首届国际RoboCup机器人足球比赛于1997年举行,虽然存在其他类似比赛,但它仍是规模最大的,
    的头像 发表于 09-08 16:30 978次阅读

    NVIDIA Jetson 月度项目:能瞄准、射门和得分的自主足球机器人

    足球被认为是全世界最受欢迎的运动之一,这主要是因为足球比赛往往十分激烈,能够展现球员们出色的体能与技术,让观众看得惊心动魄。因此,自然会有人致力于向机器人传授足球比赛的精髓,包括如何抢球、瞄准球门
    的头像 发表于 08-18 17:55 308次阅读
    NVIDIA Jetson 月度项目:能瞄准、射门和得分的自主<b class='flag-5'>足球</b>机器人

    5款电子diy制作电路

    电路1:简易声控闪光灯的制作 电路2:音乐门铃的制作 电路3:多功能报警器的制作
    的头像 发表于 07-27 16:19 2645次阅读
    5款电子diy<b class='flag-5'>制作</b><b class='flag-5'>电路</b>图

    DFRobot Maqueen足球赛开源分享

    电子发烧友网站提供《DFRobot Maqueen足球赛开源分享.zip》资料免费下载
    发表于 06-09 10:34 0次下载
    DFRobot Maqueen<b class='flag-5'>足球</b>赛开源分享

    用555制作的声控延时电路

    在电工日常工作中,经常会碰到555时基电路,也会尝试用555设计一些小电路,这里分享一个基于555制作的声控延时电路,实现用声音控制延时通断,一起来了解下。
    的头像 发表于 04-27 16:39 1671次阅读
    用555<b class='flag-5'>制作</b>的声控延时<b class='flag-5'>电路</b>