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

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

3天内不再提示

如何使用Arduino构建激光炮塔

454398 来源:网络整理 作者:网络整理 2020-01-31 17:30 次阅读

您无聊吗?还可以建造一个激光炮塔。您知道吗?一个会 pew pew 发射,向许多不同方向发射红光的光束,甚至可能会扔进烟雾机吗?是的,其中之一。

您需要什么

Arduino

2个伺服器

激光模块,例如该传感器套件

压电蜂鸣器或其他小型输出设备

用于固定

长母-公跳线以及常规跳线的金属电缆扎带

可选地,需要一台烟雾机–激光的功率非常低,因此即使在黑暗的房间中也无法看到无烟的光束。

如何使用Arduino构建激光炮塔

构建计划

转塔的基本思想是将激光模块放在一个伺服器的顶部以提供水平旋转。然后将该封装安装到另一个呈90度角放置的伺服器上,以提供垂直移动。我们有一个压电扬声器来提供 pew pew 声音效果,我正在扔烟机以达到良好的效果。

伺服测试

视您的伺服器而定,导线的颜色可能会有所不同,但是通常:

红色是正极线,在我的两个伺服器上,它都是三芯线的中心-连接到+ 5v

棕色或黑色是负极,要连接到Arduino的GND。

白色或橙色是信号线,要连接到具有PWM功能的数字I/O针(在下面的演示中为9和10)。

连接好两个伺服器后,请上传以下示例代码。我已经命名了一个伺服“ hori”来控制水平运动,另一个命名为“ vert”。每个人都应执行全方位的运动扫描(在我的情况下约为60度)。

#include

Servo vert,hori; // create servo object to control a servo

// a maximum of eight servo objects can be created

int pos = 0; // variable to store the servo position

void setup()

{

hori.attach(9);

vert.attach(10); // attaches the servo on pin 9,10 to the servo objects

vert.write(0);

hori.write(0);

}

void loop()

{

for(pos = 0; pos 《 180; pos += 10) // goes from 0 degrees to 180 degrees

{ // in steps of 10 degrees

vert.write(pos);

hori.write(pos); // tell servo to go to position in variable ‘pos’

delay(100); // waits 100ms for the servo to reach the position

}

for(pos = 180; pos》=1; pos-=10) // goes back from 180 degrees to 0 degrees

{

vert.write(pos); // tell servo to go to position in variable ‘pos’

hori.write(pos);

delay(100); // waits 100ms for the servo to reach the position

}

}

一切都好吗?然后继续前进。

测试激光和 Pew Pew 声音

激光模块就像一个LED,但是模块中内置了一个电阻器。因此我们可以将其直接连接到数字I/O-非常简单。如果您使用的激光模块与我相同,则“ – ”将进入 GND , S 将进入引脚12。上面的示例代码使第12针成为输出:

int laser = 12;

pinMode(laser,OUTPUT);

然后使用标准的 digitalWrite()方法在每个循环中使该引脚闪烁,每次循环闪烁。

我们将仅使用PWM以舒适的声音水平驱动压电蜂鸣器-如果需要,您可以尝试使用音调库,但是我只需要一个简单的噪音即可。将黑线接地,将红线连接到引脚11。在相关引脚上定义您的蜂鸣器,设置为输出模式,然后使用 analogWrite(buzzer,100)进行激活(或您想要的最多254个数字);和 analogWrite(buzzer,0)(关闭模拟音频)。

完整的示例代码已修改为扫描两个伺服,激活激光并播放令人讨厌的声音。

您的所有组件都应该正常工作-现在我们需要将所有组件绑在一起。

创建转塔

使用电缆扎带,将一个伺服器连接到另一个;哪一个都没关系,只需确保其中一个在水平方向上移动而另一个在垂直方向上移动即可。如果角度不正确,您可以在测试期间拔下转子叶片并重新安装。

使用一些坚固的造型线来固定激光器

最后,我将整个设备连接到带有更多电缆扎带的桌腿上一点废木头。

对炮塔编程

我不认识你,但是我的想法是激光炮塔来自无数的科幻电影和《星际迷航》剧集。总是有人会飞越炮塔,而 pew-pew 的小射门会以扫掠的模式飞出,总是太慢了几毫秒,所以我们的主角实际上并没有受到打击。这就是我要复制的内容,尽管可以随意调整主例程以适合您对转塔应该做什么的想法。

这是我最终在主循环中使用的伪代码:

随机化脉冲之间的时间,以及每次射击之间的时间。

随机化每个伺服,垂直和水平方向的开始和结束位置。

随机化拍摄数量。

计算出每次拍摄后的变化程度,以开始和结束位置之间的差除以拍摄数量。

将伺服器移至开始位置,并稍等一会儿到达目的地(100毫秒)

循环,直到拍摄完所有镜头为止,每次按先前计算的方式稍微移动伺服器;

重复。

我还添加了一个单独的 fire()方法来稍微构建代码更好。调整所有 random()函数的范围,以加快或减慢每个参数;或增加镜头数量以增加舞蹈俱乐部的氛围。向下滚动以查看操作中的代码的视频

#include

Servo vert,hori; // create servo object to control a servo

int pos = 0; // variable to store the servo position

int laser = 12;

int buzzer = 11;

void setup()

{

hori.attach(9);

vert.attach(10); // attaches the servo on pin 9 to the servo object

pinMode(laser,OUTPUT);

pinMode(buzzer,OUTPUT);

}

void loop()

{

int timeBetweenBursts = random(200,1000);

int timeBetweenShots = random(50,200);

int vertStart = random(1,180);

int vertEnd = random(1,180);

int horiStart = random(1,180);

int horiEnd = random(1,180);

int numShots = random(5,20);

int vertChange = (vertEnd - vertStart) / numShots; //how much to move vertical axis by each shot

int horiChange = (horiEnd - horiStart) / numShots;

vert.write(vertStart);//let it get to start position first, wait a little

hori.write(horiStart);

delay(100);

for(int shot = 0; shot vert.write(vertStart);

hori.write(horiStart);

vertStart += vertChange;//increment the vert value for next time

horiStart += horiChange;

fire();

delay(timeBetweenShots); //add a bit of variety to the speed of shots

}

delay(timeBetweenBursts);

}

void fire(){

digitalWrite(laser,HIGH);

analogWrite(buzzer,100);

delay(20);//adjust this to change length of turret shot

digitalWrite(laser,LOW);

analogWrite(buzzer, 0);

}

操作中

我认为这个小玩具没有实际用途,但这确实很有趣,而且您可以调整很多变量以获得理想的效果。也许对于自制乐高电影会派上用场吗?
责任编辑:wv

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

    关注

    19

    文章

    2752

    浏览量

    63485
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184828
收藏 人收藏

    评论

    相关推荐

    构建一个带Arduino代码的颜色检测器电路

    在这篇文章中,我们将构建一个可以检测颜色并触发相应分配继电器的电路。该项目是使用 TCS3200 颜色传感器和 Arduino 板完成的。
    的头像 发表于 07-27 11:23 676次阅读
    <b class='flag-5'>构建</b>一个带<b class='flag-5'>Arduino</b>代码的颜色检测器电路

    自动火焰炮塔开源分享

    电子发烧友网站提供《自动火焰炮塔开源分享.zip》资料免费下载
    发表于 07-11 10:43 0次下载
    自动火焰<b class='flag-5'>炮塔</b>开源分享

    Nerf Alexa家庭防御炮塔开源构建

    电子发烧友网站提供《Nerf Alexa家庭防御炮塔开源构建.zip》资料免费下载
    发表于 07-10 14:38 0次下载
    Nerf Alexa家庭防御<b class='flag-5'>炮塔</b>开源<b class='flag-5'>构建</b>

    基于Arduino的无人机构建

    电子发烧友网站提供《基于Arduino的无人机构建.zip》资料免费下载
    发表于 07-10 14:32 1次下载
    基于<b class='flag-5'>Arduino</b>的无人机<b class='flag-5'>构建</b>

    Arduino魔法南瓜构建

    电子发烧友网站提供《Arduino魔法南瓜构建.zip》资料免费下载
    发表于 07-10 11:05 0次下载
    <b class='flag-5'>Arduino</b>魔法南瓜<b class='flag-5'>构建</b>

    Arduino构建乐高时钟

    电子发烧友网站提供《Arduino构建乐高时钟.zip》资料免费下载
    发表于 07-06 15:02 0次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>构建</b>乐高时钟

    小型Arduino独立构建

    电子发烧友网站提供《小型Arduino独立构建.zip》资料免费下载
    发表于 07-05 14:49 0次下载
    小型<b class='flag-5'>Arduino</b>独立<b class='flag-5'>构建</b>

    Arduino戒指的构建

    电子发烧友网站提供《Arduino戒指的构建.zip》资料免费下载
    发表于 07-04 09:39 2次下载
    <b class='flag-5'>Arduino</b>戒指的<b class='flag-5'>构建</b>

    树莓派运动跟踪枪炮塔

    电子发烧友网站提供《树莓派运动跟踪枪炮塔.zip》资料免费下载
    发表于 07-03 09:49 0次下载
    树莓派运动跟踪枪<b class='flag-5'>炮塔</b>

    Visuino使用Arduino构建入侵检测系统

    电子发烧友网站提供《Visuino使用Arduino构建入侵检测系统.zip》资料免费下载
    发表于 06-29 14:49 1次下载
    Visuino使用<b class='flag-5'>Arduino</b><b class='flag-5'>构建</b>入侵检测系统

    使用Arduino构建植物浇水系统

    电子发烧友网站提供《使用Arduino构建植物浇水系统.zip》资料免费下载
    发表于 06-28 16:06 0次下载
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>构建</b>植物浇水系统

    如何使用Arduino构建植物监视器

    电子发烧友网站提供《如何使用Arduino构建植物监视器.zip》资料免费下载
    发表于 06-28 15:34 0次下载
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>构建</b>植物监视器

    Arduino激光雷达扫描和Java渲染

    电子发烧友网站提供《Arduino激光雷达扫描和Java渲染.zip》资料免费下载
    发表于 06-25 15:14 1次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>激光</b>雷达扫描和Java渲染

    Arduino Nano控制的激光测量

    电子发烧友网站提供《Arduino Nano控制的激光测量.zip》资料免费下载
    发表于 06-19 16:33 0次下载
    <b class='flag-5'>Arduino</b> Nano控制的<b class='flag-5'>激光</b>测量

    如何在Arduino和ESP上构建按钮输入的提示?

    好的,伙计们,这只是关于我如何在 Arduino 和 ESP 上构建按钮输入的提示。 如果你看一下大多数键盘,它们就像矩阵一样构建: keypad_pin_diagram.png 12 个键需要
    发表于 05-25 08:15