亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

自动乐高射击游戏

组件和用品

Arduino UNO
这是我用于这个项目的板。但是,Arduino Uno 也可以工作。
× 1
SG90 微伺服电机
这些是项目所需的电机。
× 4
跳线(通用)
× 1
乐高星球大战可射击大炮
× 4
面包板(通用)
× 1

必要的工具和机器

胶带,电气
任何胶带都很好。它当然不必是电工胶带。

应用和在线服务

Arduino IDE
在 Mac、Windows 和 Linux 设备上运行 Arduino 代码的程序。

关于这个项目

这个项目是关于让乐高大炮自动射击。我喜欢玩乐高积木,也喜欢使用 Arduinos,所以我决定在空闲时间做这个项目。带有喇叭的伺服电机旋转,击中杠杆并发射大炮。适合初学者的第一个、第二个或第三个项目!

这是有关如何制作的分步指南。

第 1 步:硬件

步骤 1 部分 1: 硬件 基础知识

从 5V 到带正电的行和 GRND 到带负电的行开始。它看起来像这样 -

第 1 步第 2 部分:连接伺服 #1

伺服有三根线 - 橙色/黄色(信号)一根将占用 DIGITAL(PWM~)中的一个插槽,红色(电源)将连接到 VIN(正排中的任何引脚),以及黑/棕线 (GRND) 将连接到连接到 Uno 上 GRND 引脚的带负电的行。我用于第一个舵机的数字引脚是 7。这是连接第一个舵机时的原理图 -

第 1 步第 3 部分:连接其余舵机

一旦你掌握了伺服系统的窍门,剩下的就轻而易举了。但是,需要注意一件事 - 您必须与代码中随伺服器连接的数字引脚保持一致。

例如,代码(可以在页面底部找到),状态-

secondCannon.attach(8); 

因此,第二个伺服必须连接到数字引脚 8。

同理,第三个Servo必须连接到数字引脚6,第四个应该连接到第九个数字引脚。

但是,这些可以更改,以便它们按您希望的任何顺序排列。请确保您正在更改硬件和软件以保持一致性,否则代码将无法运行。

要使用底部提供的代码运行,原理图应该是这样的-

恭喜!您已正式完成此项目的硬件部分。

第 2 步:软件

现在,将页面底部的代码复制并粘贴到 Arduino 草图上,然后上传。上传代码之前确保你有Servo库,否则无法运行!以下是解释代码及其在运行程序时的含义的分步指南。

#include  //包括ServosServo firstCannon的库; //定义First Cannon为ServoServo secondCannon; //定义第二炮为伺服伺服第三炮; //定义第三炮为伺服伺服第四炮; //定义第四炮为舵机 

此代码设置 Servo.h 库,它将在代码中发挥基础作用。这可以通过以下几行来表示,使用库将四个大炮定义为舵机,或者可以旋转 180 度的电机。

void setup() { //设置代码,或者只运行一次的代码 Serial.begin(9600); //开始串行通信 Serial.println("Defend the Clones! Set up the Defenses!") //在串行监视器中打印一些东西 firstCannon.attach(7); //将数字引脚 7 附加到 First Cannon secondCannon.attach(8); //将数字引脚 8 附加到第二个 Cannon thirdCannon.attach(6); //将数字引脚 6 附加到第三大炮第四炮.attach(9); //将数字引脚 9 附加到第四大炮} 

void setup() 代码几乎用于任何 Arduino 项目,并且它是只运行一次的代码。在这种情况下,我们以 9600 波特开始换行串行通信。然后,我们在串行监视器中打印内容。为了对伺服器进行编程,我们必须将它们的名称连接到它们各自的数字引脚。这就是 .attach() 的目的 一段代码。

void loop() { //循环代码,或无限次运行的代码 Serial.println("Beginning fire sequence") //在串行监视器中打印一些内容 firstCannon.write(180); //将第一个舵机转向180度,设置第一炮延迟(100); //等待第二个的 1/10 firstCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒秒Cannon.write(180); //将第二个舵机转向180度,设置第二个大炮延迟(100); //等待 1/10 秒 secondCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒thirdCannon.write(180); //将第三个舵机转向180度,设置第三个炮延迟(100); //等待1/10的第二个thirdCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒fourthCannon.write(180); //将第一个第四个转弯180度,触发第四个炮延迟(100); //等待第二个的 1/10 第四Cannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待 1 秒 Serial.println("All cannons fires"); Serial.println("准备重新加载");延迟(10000); Serial.println("重新加载完成。准备再次开火")} 

这是最后一段代码,使用 void loop() 允许以下代码无限次运行的函数。然后,我们在串行监视器中打印大炮即将开火。每门大炮的舵机应该旋转 180 度,然后旋转回原始位置,一次一个。之后,应该有 10 秒(重新加载时间),直到该过程再次重复。

如果您在上传代码时有任何其他问题,可以在评论部分评论,我会尽快回复。如果有效,则继续下一步。

第三步:安装

最后一步需要乐高大炮和一些老式的普通胶带。乐高大炮长这个样子 -

运行代码。看看伺服转向哪个方向。将伺服器贴在乐高大炮上,使其轨迹与上图中大炮顶部的杠杆发生碰撞。

做得好!你已经正式完成了这个项目。就像我说的,如果您有任何问题,请在下面的部分发表评论。

如果您喜欢这个项目,请查看这些链接 -

https://create.arduino.cc/projecthub/342600/basketball-hoop-with-buzzer-using-an-arduino-693bad?ref=user&ref_id=1536504&offset=1

https://create.arduino.cc/projecthub/ShreyanR/soundbox-826a56

代码

  • 乐高枪射击游戏代码
Lego Gun Shooter 代码C/C++
将其粘贴到 Arduino IDE
#include  //包括 ServosServo firstCannon 的库; //定义First Cannon为ServoServo secondCannon; //定义第二炮为伺服伺服第三炮; //定义第三炮为伺服伺服第四炮; //将第四炮定义为Servovoid setup() { //设置代码,或只运行一次的代码 Serial.begin(9600); //开始串行通信 Serial.println("Defend the Clones! Set up the Defenses!") //在串行监视器中打印一些东西 firstCannon.attach(7); //将数字引脚 7 附加到 First Cannon secondCannon.attach(8); //将数字引脚 8 附加到第二个 Cannon thirdCannon.attach(6); //将数字引脚 6 附加到第三大炮第四炮.attach(9); //将数字引脚 9 附加到第四炮}void loop() { //循环代码,或无限次运行的代码 Serial.println("Beginning fire sequence") // 在串行监视器中打印一些内容 firstCannon。写(180); //将第一个舵机转向180度,设置第一炮延迟(100); //等待第二个的 1/10 firstCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒秒Cannon.write(180); //将第二个舵机转向180度,设置第二个大炮延迟(100); //等待 1/10 秒 secondCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒thirdCannon.write(180); //将第三个舵机转向180度,设置第三个炮延迟(100); //等待1/10的第二个thirdCannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待1秒fourthCannon.write(180); //将第一个第四个转弯180度,触发第四个炮延迟(100); //等待第二个的 1/10 第四Cannon.write(0); //将舵机转回原位,准备重新加载延迟(1000); //等待 1 秒 Serial.println("All cannons fires"); Serial.println("准备重新加载");延迟(10000); Serial.println("重新加载完成。准备再次开火")}

示意图


制造工艺

  1. 胶带
  2. 玻璃纸胶带
  3. Arduino Spybot
  4. FlickMote
  5. 自制电视 B-Gone
  6. 主时钟
  7. Giant Animatronics Lego Minfig 操作游戏
  8. 找到我
  9. SunGlass-BOT [一副自动太阳镜]
  10. Arduino Power
  11. Tech-TicTacToe
  12. Arduino Quadruped