媒体装置艺术设计说明1Word格式.docx
《媒体装置艺术设计说明1Word格式.docx》由会员分享,可在线阅读,更多相关《媒体装置艺术设计说明1Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
附录4
图1—1
当把元器件都接起来之后,就要开始对程序进行编辑。
一开始灯的闪烁形式是常亮的状态。
但是发现在转换灯颜色的时候会有轻微的闪烁。
所以就想着将灯变成呼吸灯的闪烁模式,这样会更加吸引使用杯子的人。
在对代码进行编辑完成之后,就要将代码传输到Arduino开发板上进行测试。
一开始,灯的颜色没有变化,以为是程序出了问题。
后来打开端口监视器一看,原来是水的温度没有达到要求。
因为串口监视器上,可以直观的看到温度的变化,和当下的温度值是多少。
知道了这个问题之后,就测试成功了。
1.4成果
这个作品成果是一个会随着温度变化,随之发出不同颜色光的水杯。
这样可以有效的方式使用者喝水的时候被开水烫伤。
对于杯子上方的圆点是想做出透光效果,从而更加炫目。
成果图如图1-2所示。
图1-2
1.5价值和影响
对于刚上小学的孩子,他们在学校喝水的时候有可能因为着急,从而不去试一试水温再喝水。
这样就容易发生被开水烫伤的可能性。
如果用了这个杯子,看到杯子上红灯亮起来的时候,这个时候使用杯子的人就会注意到杯子里水的温度,从而可以减少被开水烫伤的可能性。
如果孩子有了这样一个智能水杯,家长也不用担心孩子容易被开水烫伤了。
1.6创新点
从外形上来说,在杯子的上方,有一些透光的小孔。
这些小孔可以更好的透出小灯泡发出的光,这样可以让杯子更加绚丽,让使用者喜欢上用这个水杯喝水。
在灯泡的闪烁形式上来说,是采用的呼吸灯的形式。
这样的形式比常亮的形式,更加吸引用户。
第二章结论
2.1技术层面
这个作品是通过Arduino开发版来完成的,先在Arduino软件中编辑程序,再传入开发板,接下来把线路连接正确。
就可以实现想要的效果了。
Arduino是一款便捷灵活、方便上手的开源电子原型平台。
包含硬件和软件。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
对Arduino的编程是利用Arduino编程语言和Arduino开发环境来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信来实现。
2.2艺术层面
因为制作的是一个可以测量水温的智能水杯,所以这个装置在包装上还是采用的杯子的原型。
但是这个杯子的形状是与普通水杯有区别的。
这个杯子的中间部分是突出的,这样做的目的,是想将杯子做成双层的,中间突出的部分可以将装置放入,也可以避免用户将手烫伤。
在杯子的上半部分有一些镂空的小孔,是为了让杯子的透光性更好。
给人一种不一样的设计感觉。
随着用户在喝水的同时,看着灯光的闪烁,心情也会随之愉悦一些。
在这个作品中,智能水杯是用两个透明一次性纸杯做成的。
如果直接用透明纸杯的话,会看见里面的装置,所以在做的时候,在透明纸杯的外面涂上了丙烯,这样透光性不会太好也不会太差,给人一种朦胧的感觉。
2.3不足及展望
在这个作品当中,测量温度的温度段,只有三段,如果能有更多的温度段的话,就可以让温度测量的更加具体。
这样,可以让使用者更加了解杯子里水温的状况,会更加方便一些。
在杯子的外形上,可以采用磨砂玻璃的,这样透光性会好,而且会有一种朦胧感。
这个作品可以在生活中,给年龄小一些的孩子,这样可以防止他们被开水烫伤的可能性,可以让他们觉得,其实喝水也是一件很开心的事。
谢辞
在此,我要特别感谢,教这门课的胡鹏老师。
胡老师导我们如何去编写程序,并且告诉我们每句代码的含义是什么,方便我们去理解和学习。
胡老师还教会了我们如何连接电路,应该怎么去区分正负极,还有Arduino版上端口与端口之间的区别。
此外,还要感谢我身边的朋友和同学,感谢他们在制作过程中对我的指导、帮助和支持,感谢他们的宝贵建议,感谢所有关心、支持、帮助过我的良师益友。
参考文献
[1]ArduinoXX百科.[j]
[2]极客工坊.[j]
附录
源程序
#defineR_LIGHT9
#defineG_LIGHT10
#defineB_LIGHT11//#define是C中用来定义宏的语法,定义三个灯的端口
#defineFADE_STEP5//这是呼吸灯光线变强变弱的单位数,可以调节,越小,光线的变化越细腻
#defineFADE_TIME30//30ms
intrgb_value[3];
//这是一个数组,用来存储每次R/G/B_LIGHT三个灯的亮度值
voidinit_rgb_value()
{
rgb_value[0]=0;
rgb_value[1]=0;
rgb_value[2]=0;
//这个函数是在setup中,把上面声明的数组,初始化一下,都变成0
}
voidinit_rgb()
analogWrite(R_LIGHT,rgb_value[0]);
analogWrite(G_LIGHT,rgb_value[1]);
analogWrite(B_LIGHT,rgb_value[2]);
//模拟量的写入
voidfade_on(intport)
intv;
if(port==R_LIGHT)
v=0;
elseif(port==G_LIGHT)
v=1;
elseif(port==B_LIGHT)
v=2;
for(intfadeValue=rgb_value[v];
fadeValue<
=0xff;
fadeValue+=FADE_STEP){
analogWrite(port,fadeValue);
delay(FADE_TIME);
}
rgb_value[v]=0xff;
//呼吸灯慢慢变亮
voidfade_off(intport)
for(intfadeValue=rgb_value[v];
fadeValue>
=0;
fadeValue-=FADE_STEP){
}
rgb_value[v]=0;
//呼吸灯慢慢变暗
voidfade_flash(intport)//不停的呼吸效果
fade_on(port);
fade_off(port);
voiddirect_fade_off(intport)//呼吸函数,直接变暗
analogWrite(port,0);
voiddirect_fade_on(intport)//呼吸函数,直接变暗
analogWrite(port,255);
voidturn_off(intport)//直接关灯函数
direct_fade_off(port);
voidturn_on(intport)//直接开灯函数
direct_fade_on(port);
voidsetup()
pinMode(R_LIGHT,OUTPUT);
pinMode(G_LIGHT,OUTPUT);
pinMode(B_LIGHT,OUTPUT);
////3个端口初始化为OUTPUT(输出)
init_rgb_value();
init_rgb();
Serial.begin(9600);
//串口初始化,9600波特率
voidcheck_temp_loop()//读温度传感器
intvol=analogRead(A0)*(5.0/1023.0*100);
Serial.println(vol);
//串口输出当前读取的值
if(vol<
=31)
{
fade_flash(B_LIGHT);
turn_off(R_LIGHT);
turn_off(G_LIGHT);
elseif(vol>
=32&
&
vol<
=40)
turn_off(B_LIGHT);
fade_flash(G_LIGHT);
=41)
fade_flash(R_LIGHT);
voidloop(){
check_temp_loop();
//不停的运行这个函数达到不停的读取温度变化的功能
接线图
图5-1
图5-2