如何制作一个可以为您的游戏中时光倒流添加动作的设备

电子说

1.3w人已加入

描述

第1步:计划

电位计

我希望相机在两个方向上移动,即在水平(X)和垂直(Y)轴。为此,我需要两台电机。

我们应该可以选择两个轴的起始位置和停止位置。

电机的运动将使每个照片后的轴旋转1度。

为了获得如此精确的控制,我将使用伺服电机。

此外,我们应该能够设置时间间隔。

我希望它是便携式的,所以我决定在LiPo电池上运行它,这意味着需要充电和升压电路。

最后,大脑控制所有这一切将是Arduino。 ATMega328p将作为一个独立的微控制器使用。

我使用的是GoPro相机,因为它很小,并且很容易使用时间。您可以使用任何其他小型相机或手机。

第2步:组件列表

电位计

电位计

电位计

1x ATmega328p(带Arduino引导程序)

2x MG995伺服电机

1x MT3608升压转换器

1x TP4056 LiPo电池充电模块

1x SPDT开关

1x 16 MHz晶振

2x 22pF电容

2x 10k电阻

1x电位计(任何值)

1x按钮(常开)

可选:

3D打印机

第3步:设计PCB

电位计

电位计

电位计

电位计

电位计

为了使电路尽可能小,我选择了印刷电路板。你可以在家里自己蚀刻电路板,或让专业人士为你努力工作,这就是我所做的。

当一切正常在面包板上工作时,我们可以从PCB设计过程开始。我选择EasyEDA进行设计,因为它让像我这样的初学者很容易。

检查,检查并检查! 确保您没有遗漏任何内容。一旦你完全确定,点击Generate Fabrication File下载Gerber文件,或者你可以使用下面给出的选项直接从JLCPCB订购它只需2美元。

一旦你收到/制作你的PCB,它就是时间来填充它。准备好电路图并按照丝网标记开始焊接组件。

用异丙醇焊接后清洁PCB以去除焊剂残留物。

步骤4:把事情放在一起

电位计

电位计

电位计

电位计

电位计

电位计

电位计

您不需要花哨的3D打印机。使用适当的工具可以非常轻松地构建零件。我最近买了一台3D打印机,并且急于在我的项目中使用它。我找到了Thingiverse的部分零件。

GoPro Mount:https://www.thingiverse.com/thing:53680

Servo Horn:https://www.thingiverse。 com/thing:2794688

焊接到电源开关的电线,带有母头的电位器和按钮,并将它们连接到PCB上的公头。

在Arduino IDE中下载并打开附件,并将代码上传到Arduino。上传代码后,从Arduino板上取下IC并将其插入PCB上。

/*

Author : IndoorGeek

YouTube : www.youtube.com/IndoorGeek

Thank you for downloading. Hope you like the project.

*/

#include

Servo xServo;

Servo yServo;

int potPin = A0;

int val,xStart,xStop,yStart,yStop;

int button = 2;

unsigned long timeInterval;

void setup() {

pinMode(button, INPUT);

xServo.attach(3);

yServo.attach(4);

}

void loop() {

xAxis();

delay(1000);

xStart = val;

yAxis();

delay(1000);

yStart = val;

xAxis();

delay(1000);

xStop = val;

yAxis();

delay(1000);

yStop = val;

setTimeInterval();

delay(1000);

timelapseStart();

}

void xAxis(){

while(digitalRead(button) != HIGH){

val = analogRead(A0);

val = map(val, 0, 1023, 0, 180);

xServo.write(val);

}

}

void yAxis(){

while(digitalRead(button) != HIGH){

val = analogRead(A0);

val = map(val, 0, 1023, 0, 180);

yServo.write(val);

}

}

void setTimeInterval(){ //Change the time intervals according to your camera‘s timelapse settings

while(digitalRead(button) != HIGH){

val = analogRead(A0);

if(val》=0 && val《170){

timeInterval = 1000L;

}

if(val》=171 && val《341){

timeInterval = 2000L;

}

if(val》=342 && val《512){

timeInterval = 5000L;

}

if(val》=513 && val《683){

timeInterval = 10000L;

}

if(val》=684 && val《854){

timeInterval = 30000L;

}

if(val》=855 && val《1023){

timeInterval = 60000L;

}

}

}

void timelapseStart(){

unsigned long lastMillis = 0;

xServo.write(xStart);

yServo.write(yStart);

while(xStart != xStop || yStart != yStop ){

if(millis() - lastMillis 》 timeInterval ){

if(xStart 《 xStop){

xServo.write(xStart);

lastMillis = millis();

xStart++;

}

if(xStart 》 xStop){

xServo.write(xStart);

lastMillis = millis();

xStart--;

}

if(yStart 《 yStop){

yServo.write(yStart);

lastMillis = millis();

yStart++;

}

if(xStart 》 xStop){

yServo.write(yStart);

lastMillis = millis();

yStart--;

}

}

}

}

步骤5:工作

电位计

电位计

打开主开关。

X轴有效。将锅转到您想要开始游戏中时光倒流的位置。按“选择”按钮确认起始位置。之后,Y轴将处于活动状态。选择Y轴起始位置。

对X轴和Y轴停止位置重复上述步骤。

现在,使用底池,选择之间的时间间隔。每一枪。锅的旋转分为6个部分,间隔为1秒,2秒,5秒,10秒,30秒和60秒。您可以更改 setTimeInterval()功能中的间隔,如图所示。按下“选择”按钮进行确认。

舵机将到达其起始位置,并在时间间隔后移动1度。

顺序:

设置X轴起始位置

设置Y轴起始位置

设置X轴停止位置

设置Y轴停止位置

设置时间间隔

步骤6:未来升级

电位计

1 )目前,由于1次拍摄/度数,我们可以获得的最多照片是180,因为伺服器可以从0度旋转到180度。添加齿轮将提高分辨率。因此,我们将有更多的镜头,因此,平滑的时间间隔。我对电子产品很满意,但对机械方面却不太满意。期待改进它。

2)电位器可以用旋转编码器代替。

3)无线控制,也许?!

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分