hnyzcj 发表于 2017-9-10 20:16:21

一款简易无线遥控摄影棚

      写教程时总免不了要拍摄一些中间过程图和作品效果图,但有时由于光线等外在条件的限制总导致拍摄出来的图片惨目忍睹。为了让照片显得更加清晰,明亮,背景干净,我决定做个简易摄影棚用于拍摄物品。最初设计用Arduino控制两路继电器控制LED灯来照明后又加上蜂巢云台,通过红外遥控来实现这些功能。不过由于光源的问题,拍摄的照片还是难以让人接收(如图1)。针对以上问题,终于决定从淘宝上网购了一个摄影棚。作品展示:
该摄影棚可以通过红外遥控来控制灯光,控制云台转动拍摄视频。作品器材:
序号名称数量
1Arduino Uno 教育版1
2IR kit红外遥控套件1
3数字继电器模块(Arduino兼容)1
4全方位蜂巢云台1
5舵机延长线2
摄影棚安装:摄影棚是从网上购买的成品,到货后,将其安装即可。如下图所示云台安装:外壳建模及打印:电路连接:代码编写:运行Example中的IRrecvDemo代码即可。如果没有装载该库,请先加载库。Upload上述代码后,打开Arduino IDE的串口监视器(Serial Monitor),设置波特率baud为9600,与代码中Serial.begin(9600)相匹配。设置完后,用Mini遥控器的按钮对着红外接收管的方向,任意按个按钮,我们都能在串口监视器上看到相对应的代码。如按数字“0”,接收到对应16进制的代码是FD30CF。每个按钮都有一个特定的16进制的代码。如果按住或常按一个键不放就会出现“FFFFFFFF”。在串口中,正确接收的话,应该收到以FD-开头的六位数。如果遥控器没有对准红外接收管的话,可能会接收到错误的代码。我们这里使用了开关按钮和VOL+按钮。对应16进制代码分别为0xFD00FF和0x#include <Servo.h>
Servo myservo;
int pos = 0;
#include <IRremote.h>
int RECV_PIN = 11;
int leftPin = 9;
boolean leftState = LOW;
boolean rightState = LOW;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(leftPin,OUTPUT);
pinMode(rightPin,OUTPUT);
myservo.attach(10);
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if(results.value == 0xFD00FF){
leftState = !leftState;
digitalWrite(leftPin,leftState);
}
if(results.value == 0xFD08F7){
for(pos = 0; pos < 180; pos += 1){
myservo.write(pos);
delay(200);
}
}
if(results.value == 0xFD8877){
for(pos = 180; pos>=1; pos-=1) {
myservo.write(pos);
delay(200);
}
}
irrecv.resume();
}
}

FD807F安装调试:样片展示:拍摄工具红米4,镜头1.4倍。

糖醋花生 发表于 2022-6-30 20:41:42

耶,沙发

俺是胡胡 发表于 2022-8-10 18:37:37

ye,板凳
页: [1]
查看完整版本: 一款简易无线遥控摄影棚