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

第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)无线控制,也许?!

电子芯闻早报:欧盟对苹果开出天价罚单 华米手表发布
由串联电感器和并联电容器组成的结构介绍
2020年11月中国液化天然气产量同比增长20.6%
白天透明晚上发光 飞利浦研发神奇OLED光源材料
2021UDE展启幕 佳能携手海信展示消费级8K影像解决方案
如何制作一个可以为您的游戏中时光倒流添加动作的设备
用于激光光束整形的二元光学元件设计
从华为P10看黑科技,这才是华为真正的水平
稳定币的问题怎样来解决
QQ3208919269 揭秘嵌入式C语言main函数的写法原因
磁环电感选型注意哪些事项
路灯光控开关电路图
华为回应11个业界关切问题
ICN6202是MIPI转单路LVDS视频转换芯片
物联网时代,我们需要怎样的存储
国产骨传导耳机哪个好,性价比高的骨传导蓝牙耳机推荐
空间站为什么只“飞”400公里高?
交流稳压器的最低工作电压以及其对设备运行的影响
什么是VPN?如何应对VPN安全风险
稳压器的安装方法 和变压器的区别