作者:王艳梅
技术支持:白银蚁创空间
步骤1 背景和目标
八年级物理第四章第五节《光的色散》中有“色光的合成”这一实验,课本中提到可以在聚光灯前蒙一块有颜色(红色、黄色或蓝色)的透明胶片,再将其发出的光投射到白色屏幕上,形成有部分光交汇。学生通过观察现象,可以发现不同颜色的光能混合成另一颜色的光。自然界中红、绿、蓝三种颜色的光是无法用其他颜色的光混合而成的,而其他颜色的光则都可能通过红、绿、蓝光的适当混合而得到,因此,红、绿、蓝三种颜色被称为光的“三原色”。红、绿、蓝三种颜色的光混合在一起,可以得到不同颜色的光。
但实验的过程中因受环境光光线的影响,清晰度不够,视觉效果不佳,操作又比较复杂,且最终不能达到较好的实验效果。于是,我通过思考与分析,特设计了一款作品,通过旋钮控制三种颜色(红、绿、蓝) LED 灯的亮度,由单片机根据旋钮数据,控制三色合成灯板模拟三原色的混合,让大家更好地认识光的三原色,同时更加直观的明白各种颜色是如何通过三原色混合而成的。
步骤2 教学用途和应用场景
智能色彩演示仪既适合一个人独立学习,也可在班级做演示实验,同时也适宜小组学习,故人数不受限制,亦可收到好的实验效果。
通过旋钮控制三种颜色(红、绿、蓝) LED 灯的亮度,由单片机根据旋钮数据,控制三色合成灯板模拟三原色的混合,让大家更好地认识光的三原色,同时更加直观的明白各种颜色是如何通过三原色混合而成的。
步骤3 三、设计原理和思路
1、RGB三原色原理
RGB色彩模式由自然界中光的三原色的混合原理发展而来。RGB分别代表红色(Red)、绿色(Green)、蓝色(Blue)。它的每个象素在每种颜色上可以负载2的8次方(256)种亮度级别,这样三种颜色通道合在一起就可以产生256的3次方(1670多万)种颜色,它在理论上可以还原自然界中存在的任何颜色。
RGB模式的图像支持多个图层。据有R、G、B三个单色通道和一个由它们混合颜色的彩色通道。
在RGB色彩模式的图像中,某种颜色的含量越多,那么这种颜色的亮度也越高,由其产生的结果中这种颜色也就越亮。例如如果三种颜色的亮度级别都为0(亮度级别最低),则它们混合出来的颜色就是黑色;如果它们的亮度级别都为255(亮度级别最高),则其结果为白色。这和自然界中光的三原色的混合原理相同。
RGB色彩模式是运用最广泛的色彩模式之一,它能适应多种输出的需要,并能较完整地还原图像的颜色信息。如大多数的显示屏、RGB打印、多种写真输出设备都需要用RGB色彩模式的图像来输出。
2、项目设计思路
该项目使用开源硬件 Arduino及编程工具 Mixly 软件,通过旋钮调整控制红、绿、 蓝 LED 灯的亮灭及亮度,再由Arduino根据旋钮值,控制RGB灯板精确地混合出其他各种颜色并显示出来,同时使用OLED液晶屏将单色的亮度(0-255)显示在上面,方便使用者明白现在的颜色是由哪些颜色混合,并能够清晰的指导各个单色的亮度。
步骤4 四、使用材料和功能
Arduino nano及扩展板、红色 LED 灯、绿色 LED 灯、蓝色 LED 灯、RGB 灯板、旋钮×3、面包板、杜邦线若干、9V 电池。
其他工具及材料: 剪刀、胶枪、裁纸刀、烙铁、焊锡丝、3D打印机及其耗材等。
Arduino nano功能:主控,存储执行程序;
扩展板功能:通过I/O接口,实现Arduino nano与旋钮、RGB灯板、LED灯、旋钮之间的连接。通过电源接口连接电池供电。同时扩展板自身还带有电源开关。
旋钮功能:通过主控程序将旋钮的模拟值(0-1023)进行映射,得到范围为0-255的数字控制三色灯的亮度。
单色LED灯功能:分别显示红、绿、蓝三种单色的亮度。
RGB灯板功能:主控根据旋钮值(三种单色值0—255),控制灯板自带的三原色灯进行混合显示。
步骤5 活动内容、过程和步骤
1、材料工具准备
根据项目计划及材料清单,备齐需要的材料和工具,如下图:
2、电路连接
将三个单色灯负极及 RGB 灯板(共阳极灯板) 的信号管脚分别连接至 Arduino NANO 扩展板的 D9、D10、D11 信号管脚,同时将 RGB灯板和三个 LED 灯的正极连接到扩展板的正极;使用 3p杜邦线分别将三个旋钮连接至 Arduino NANO 扩展板的 A0、A1、A2 管脚;将 OLED 液晶显示屏连接至扩展板的IIC 管脚;9V 电池通过电源线直接连接扩展板的电源接口。
电路图设计如下:
3、程序编写
编程软件使用Arduino IDE 和 Mixly。通过管脚(A0、A1、A2)采集旋钮模拟数值(0-1023),然后通过映射转换为 0-255,转换后的数值通过 D9、D10、D11 信号管脚进行模拟输出控制相应的 LED 灯和 RGB 灯板颜色。
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
volatile int R;
volatile int G;
volatile int B;
void RGB_oled() {
u8g2.setFont(u8g2_font_courR12_tf);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("color");
u8g2.setCursor(25,20);
u8g2.print(String("R:") + String((255 - R)));
u8g2.setCursor(25,35);
u8g2.print(String("G:") + String((255 - G)));
u8g2.setCursor(25,50);
u8g2.print(String("B:") + String((255 - B)));
}
void setup(){
u8g2.setI2CAddress(0x3C*2);
u8g2.begin();
R = 0;
G = 0;
B = 0;
u8g2.enableUTF8Print();
}
void loop(){
R = (map(analogRead(A0), 1023, 0, 0, 255));
G = (map(analogRead(A1), 1023, 0, 0, 255));
B = (map(analogRead(A2), 1023, 0, 0, 255));
analogWrite(11,R);
analogWrite(10,G);
analogWrite(9,B);
u8g2.firstPage();
do
{
RGB_oled();
}while(u8g2.nextPage());
delay(20);
}
图形化代码(Mixly)
4、外观制作
⑴使用123d design建模,将外壳分为上盖和下底两部分。
首先设计上盖。点击草图绘制矩形,长为140mm,宽为 130mm,向上拉升1.5mm,然后根据纸质版的上盖结构。设计开孔如下:
① RGB 灯板开孔:在草图左上脚处绘制长为20mm,宽为3mm的矩形,向右移动60mm,向下移动20mm,向下拉伸1.5mm。
②以距左边边框间距为40mm处为圆心,绘制 LED灯的开孔,直径为5mm,点击阵列,阵列个数为3个,间距为30mm,然后选中向下拉伸2mm,旋钮开孔即可获得。
③OLED 液晶屏开孔。首先点击绘制草图按钮,绘制一个长为28mm,宽为26mm的矩形,再向下拉升5 mm(OLED 液晶屏两侧需卡在外壳以内);再在拉升的基础上,绘制长为20mm,宽为26mm的矩形(上下间距为4mm),然后下拉10 mm;在此基础上,下边缘处绘制一个长为10mm,宽为6mm的矩形,向右移动8mm,下拉10mm,
④旋钮,以距左边边框间距为40mm处为圆心,绘制直径为5mm的圆,然后点击阵列按钮,阵列个数设为3个,间距设为30mm,最后选中三个旋钮向下拉伸2mm,即可得到旋钮的开孔。
其次,设计下底。点击绘制草图,绘制矩形1,长为139.2mm,宽为129.2mm的矩形,向上拉伸45mm;点击绘制草图,绘制矩形2,长为138.2mm,宽为 128.2mm的矩形,向右和下移动0.5mm,向下拉伸5mm;点击绘制草图,绘制矩形3,长为136mm,宽为 126mm的矩形,向右和下移动1.5mm,向下拉伸42mm,即可得到底。
然后,将设计好的外壳切片之后,主备3D耗材进行打印。
再次,将RGB 灯板、三个 LED 灯、 OLED 液晶屏、三个旋钮放置于外壳内部,将所有电路部分放置于纸盒内部,使得作品外观整洁美观。
3D打印外壳如下图:
5、调试
上传程序,并对作品进行调试,修改程序及其他不完善的地方, 最终达到预期效果。
步骤6 预期效果与呈现方式
1、作品最终效果图片
2、功能介绍
通过三个旋钮分别控制红、绿、蓝 LED 灯的亮灭及亮度,RGB 灯板显示三原色混合后的颜色。OLED 液晶显示屏实时 显示 RGB 三原色的值(0-255)。通过该项目可以清晰的理解三原色及颜色的合成。
3、效果演示
图片颜色与实际颜色有差异,图片效果仅做参考。
4、操作说明
通过旋钮顺时针旋转,调节三原色色值从 0 至255 进行变化,观察三原色 LED 灯及 RGB 灯板颜色变化。
步骤7 作品创新点
该作品是一个非常直观的学习光的三原色、及光是如何产生的实验装置。使用者可以自己动手,通过调节旋钮,改变三原色的亮灭及亮度,通过不同的混合方式,组合出不同颜色,实验过程简单,操作容易,实验效果非常直观、还非常有趣,视觉效果良好,可以大大提升实验的效果。
材料清单
- arduino nano X1
- 旋钮 X3
- LED-红 X1
- LED-绿 X1
- LED-蓝 X1
- RGB LCD多彩发光板 X1 链接
评论