所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
【翟子聪 孙兴城】智能追日晾晒架
怀若谷 怀若谷 2019-07-14 21:06:46
0
0
简单

— 创作灵感 — 

我们家乡夏天的时候,都会晒一些茄子干、南瓜干之类的干货。奶奶们一般会选好时机(连续几个大晴天),经过采摘、清洗、削切、蒸煮、拌料等环节,最后由太阳公公完成最后一道工序——晾晒。早上,人们把未干的半成品搬出去晒,傍晚又得收回来(防止沾到露水和尘埃),反复很多天,很辛苦!

我们想把这个活用创客的办法去改良下,至少不下雨的时候傍晚就不要收回家里,这样可以大大减少劳力成本。所以,想到了制作了一个智能追日晾晒架。

projectImage

— 演示视频 — 

材料清单 材料清单
1x
Arduino主控板
1x
IO 扩展板
3x
舵机
2x
光线传感器
30x
小木棒
1x
纸盒
1x
薄膜
20x
杜邦线
步骤1 步骤1
准备材料

根据方案,准备所需的硬件和其他材料:1块Arduino主控板、1块扩展板、3个舵机、2个光线传感器、若干根小木棒、1个纸盒、1块薄膜、若干根杜邦线。

projectImage
步骤2 步骤2
硬件搭建

将扩展板安装到Arduino主控板上,然后将舵机和光线传感器连接到扩展板上。

projectImage
步骤3 步骤3
编写程序

利用Mixly0.998软件编写程序,测试硬件连接是否正确,并编写项目程序。

projectImage
projectImage
projectImage
projectImage
步骤4 步骤4
造型制作

#1# 使用一个废弃纸盒做底座,用于封装电子元件及固定支撑转轴。

projectImage
projectImage

#2# 利用小木棒制作晾晒架的支架。

projectImage

#3# 将支架通过热熔胶固定在转轴上。

projectImage

#4# 将电子元件安装到需要的位置

projectImage

#5# 安装薄膜,反复测试,进行加固。

projectImage
代码 代码
	                    					#include <Servo.h>

volatile int zuo;
volatile int you;
volatile int duojijiaodu;

Servo servo_1;
Servo servo_2;
void 出始化() {
  servo_1.write(130);
  delay(0);
  servo_2.write(50);
  delay(0);
}

Servo servo_3;
void 打开() {
  servo_1.write(50);
  delay(0);
  servo_2.write(130);
  delay(0);
  servo_1.write(90);
  delay(0);
  servo_2.write(90);
  delay(0);
  servo_1.write(130);
  delay(0);
  servo_2.write(50);
  delay(0);
}

void 收起() {
  servo_1.write(90);
  delay(0);
  servo_2.write(90);
  delay(0);
  servo_1.write(50);
  delay(0);
  servo_2.write(130);
  delay(0);
  servo_1.write(10);
  delay(0);
  servo_2.write(170);
  delay(0);
}

void setup(){
  servo_1.attach(1);
  servo_2.attach(2);
  zuo = 0;
  you = 0;
  duojijiaodu = 90;
  servo_3.attach(3);
  servo_3.write(duojijiaodu);
  delay(500);
  出始化();
}

void loop(){
  you = analogRead(A1);
  zuo = analogRead(A0);

  if (you - zuo > 5 && you > 300) {
    duojijiaodu = duojijiaodu + 6;
    servo_3.write((constrain(duojijiaodu, 0, 180)));
    delay(50);

  }
  if (zuo - you > 5 && you > 300) {
    duojijiaodu = duojijiaodu - 6;
    servo_3.write((constrain(duojijiaodu, 0, 180)));
    delay(50);

  }
  if (you < 300 && zuo < 300) {
    收起();

  } else {
    打开();

  }
  delay(2000);

}
	                    				
Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]