版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会移动的“向日葵”基于Arduino的小型太阳能收集装置时间:2012-10-19 10:28:47 作者:王飞剑 来源: 查看:2918 评论:0导读: 前言: 现代社会越来越讲究资源的节约,随着煤、石油、天然气这些不可再生能源越来越稀缺,在不久的将来,绿色能源势必会成为主流能源。所谓绿色能源,也就是可再生能源,包括风能、太阳能、水能、生物能等。其中太阳能更是越来越得到人们的青睐,在人们的生活工作. 前言: 现代社会越来越讲究资源的节约,
2、随着煤、石油、天然气这些不可再生能源越来越稀缺,在不久的将来,绿色能源势必会成为主流能源。所谓绿色能源,也就是可再生能源,包括风能、太阳能、水能、生物能等。其中太阳能更是越来越得到人们的青睐,在人们的生活工作中起着广泛的作用,太阳能发电就是其中最普遍的一种应用。一般的太阳能收集装置都是固定在一个方向的,不能充分采集太阳能。笔者制作了一款名为“向日葵”的太阳能收集装置,它的最大特点就是装有转动装置,4个在太阳能板周围的光传感器随时检测周围环境光的亮度,经过代码处理,加上底下舵机的旋转,就能让太阳电池能板始终对着光最强的方向。放到太阳光下的效果,就是它始终会对着太阳的方向,这样就能保证最大限度地收
3、集太阳能。 笔者的太阳能收集装置基于Arduino制作,所用的元件都与Arduino兼容。Arduino是一个开放源代码的硬件项目,最大的优势就是具有良好的开放性和扩展性。用户在它的官网上可以随时免费下载电路图、源码和软件开发环境等,依据官方提供的PCB和SCH电路图,简化Arduino模组,来完成独立运作的微处理控制;也可以很方便地与传感器、各式各样的电子元件(红外线、超音波、热敏电阻、光敏电阻、伺服电机等)连接。Arduino所用的编程语言类似C语言,但是结构更简单,更简洁易懂,对于机器人爱好者和电子知识尚欠缺的人群而言更容易上手。
4、; 笔者使用DFRobot 的Romeo控制器对小车平台做直接的电机控制。首先准备好制作“向日葵”的材料,这里用到了4个光线传感器、2个舵机及固定支架、1块扩展板、1块控制板、1块多功能固定板、1部Rover 5小车(将向日葵固定在小车上,方便全方位监测)、1块太阳能板,最后别忘了电源(712V)。详细信息如表1所示。
5、160;
6、
7、;
8、;
9、160; &
10、#160; 表1 所需器件参考信息 元件名称功能所需数目(个)参考价格(元)DFR0026环保模拟环境光线传感器基于环保型光敏二极管的光线传感器,可以用来对环境光线的强度进行检测410×42自由度DF15MG舵机云台含两个舵机和1个支架,用于多自由度机械臂、监控云台、双足机器人、多足机器人等1259多孔原型钣金板多功能固定板,用于传感器、电机等固定159Xbee传感器扩展板
11、V5一个传感器扩展板,能使大部分传感器轻松地和Arduino控制板连接175DFRduino Romeo 328控制器基于Arduino的实用控制器,该控制器集成了电机驱动、键盘、IO扩展板、无线数串等接口,可方便地控制2个直流电机1300太阳能电池板用于收集太阳能150路虎5履带小车用于安装舵机,以进行全方位检测11881.2V充电电池小车和Romeo控制器的电源6 路虎(Rover)5履带小车 路虎5履带小车与一般履带小车相比不同的地方是,可以根据路面情况的需要,调节前后轮的高度。为了提高履带小车的越野性能及
12、美观度,笔者将前后轮支架调节到了与地面形成15°左右夹角的位置。 由于Romeo的工作电压在712v,并且履带小车的工作电压与Romeo控制器相近,所以使用了6节1.2V的充电电池作为电机和Romeo控制器的电源,当然,选用7.4V的锂电池也会是一种比较合适的选择。 制作过程 准备好了上述材料就可以将这些元器件拼起来了,制作步骤如下。1将4个环境光线传感器呈“十”字形固定在多功能固定板的4个边上,这样做的目的是方便检测四周光线,尤其是在制作追光机器人时更体现了它的优势。
13、; 2将2个舵机固定在一起。这2个舵机分别控制横向和纵向的旋转,这里所用的舵机的旋转角度是从0°到180°的。考虑到横向舵机在做太阳能收集器时不需要180°旋转,所以只要设定一定的偏角即可。而纵向舵机因为要寻找光源,所以需要360°旋转,为此我将它安装在小车上,通过控制小车的运动来使舵机能全方位搜索光源。 3将多功能板与舵机固定在一起。
14、160; 4.将舵机与小车固定在一起。 5将Xbee传感器扩展板插在DFRduino Romeo 328控制板上。 &
15、#160; 6将DFRduino Romeo 328控制板固定到车上,然后将传感器和舵机的接口导线插到控制板的IO口上。 注:光传感器读取的是模拟信号,所以要将它们连接到扩展板的Analog口,05口可任意选择。而舵机是数字输出,要连接到PWM输出端,板子上有注明。写代码的时候要注意。
16、 7最后只要将一块太阳能电池板固定在多功能板上就可以了,这样一个小型的向日葵式的太阳能收集装置就做好了。 设计原理及效果
17、160; 4个光传感器的作用是寻找测试环境的最亮点,也就是太阳所在的位置。经过测试,笔者所用的光传感器在光源变亮时,其值会相应减小。所以只要找到这4个传感器所采集到的信号值的最小均值,那么也就找到光源最亮点的所在位置了。再通过舵机的旋转加上电机控制,就可以扫描到周围光线的最亮点了。 将它拿到室外,每隔10分钟,“向日葵”会做一次检测,找到太阳所在位置进行定位并开始采集太阳能。如果加装将太阳能电池板采集到的电能输出到其他设备的功能,就会让“向日葵”变成很有实用价值的会移动的自动充电器。 示意图如下:
18、160; 太阳能收集装置参考代码#include <math.h>
19、160; /一些库函数#include <Servo.h>#include <Metro.h>Servo DF15MG1;Servo DF15MG2;int vala,valb,valc,vald,sum,mindata;int average25,pos2=0,i=1,no;void ready() DF15MG2.write(0);void setup() DF15MG1.attach(3); DF15MG2.attach(11); DF15MG1.write(70); &
20、#160; DF15MG2.write(0); delay(1000); for(int i= 0; i < 180; i+) StartUpcode(); calmaxlight();void loop() void StartUpcode() DF15MG1.write(70); vala=analogRead(0
21、); /传感器数值读入 valb=analogRead(1); valc=analogRead(2); vald=analogRead(3); pos2=pos2+1; DF15MG2.write(pos2); pos2=constrain(pos2,0,180); if(pos2%10=0) sum=vala+valb+valc+vald;
22、/4个传感器求和 averagei=sum/4; /求均值 mindata=average1; i+; delay(10);void calmaxlight() mindata=average1; for(int i = 2; i< 19; i
23、+) if(mindata>averagei) mindata=averagei; /找到最小值及其最小值的编号 no = i; DF15MG2.write(no*10); /舵机转到光源所在方向 “向日葵”的另一应用追光机器人
24、 在正常的室内环境光下,用手电筒打一束光,产生光源并移动,这时“向日葵”就会跟着你的手电筒转。 其原理类似上述的太阳能收集器,最大的区别在于此处不再做4个传感器的均值,而是将横竖方向的光传感器两两求差。当一端的感应数值小于另一端时,就会向这一端偏转。我们不必放上太阳能电池板,可以随个人喜好在板上固定任何东西,比如插朵花、放个娃娃上去等,这样就能使机器人看起来更加生动了。
25、 追光机器人参考代码&
26、#160; #include <math.h> /一些函数库#include <Servo.h>#include <Metro.h>Servo DF15MG1;Servo DF15MG2;Metro receMetro=Metro(20);Metro proceMetro=Metro(30);Metro transMetro=Metro(40);int sumab,sumcd,pos1=90,pos2=90; /定义变量int vala,valb,valc,vald;void ready()
27、; DF15MG1.write(90); /设定舵机的初始位置为90° DF15MG2.write(90);void setup() DF15MG1.attach(3); DF15MG2.attach(11);void loop() if(receMetro.check()=1) /控制数据采集、处理、输出时间 receM
28、erval(10); receivedata(); if(proceMetro.check()=1) proceMerval(15); processdat
29、a(); if(transMetro.check()=1) transMerval(20); transmitdata();
30、; void receivedata() vala=analogRead(0); /设定光传感器模拟数据读取端口 valb=analogRead(1); valc=analogRead(2); vald=analogRead(3);void processdata() sumab=vala-valb; /横竖光传感器读入数值求差 sumcd=valc-vald;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 剧院舞台地面铺设合同
- 私人会所大理石装修合同
- 水上赛艇鱼塘租赁协议
- 酒店协管员管理办法
- 生态农业灰土施工合同
- 门店租赁合同附装修项目清单
- 社区活动音响租赁合同
- 住宅小区绿化施工合同转让协议
- 设备转让协议书签订配供应
- 防水工程环境保护合同
- 民事证据规则 培训课件
- 冬季施工阶段安全事故案例分析及对策
- 医院感染科护士的手术室感染控制培训
- 大棚项目施工安全措施计划方案
- 安徽省合肥市蜀山区2023-2024学年七年级上学期期末生物试卷
- 变电站消防培训课件
- TSM0500G(阻燃性) 丰田试验测试标准
- 叠合板施工工艺及质量控制要点
- 公共卫生事业管理专业职业生涯规划书
- 花艺师年度工作总结
- 新目标汉语口语课本2课件-第2单元
评论
0/150
提交评论