第1步:需要的部件
对于这个项目,我从一个旧的阴影盒购买二手商店。由于它的形状很好并且已经安装了一块玻璃,我不需要做任何进一步的工作。任何阴影盒或深框架都可以工作,它只需要足够大,可以将led灯条固定在里面,并有前玻璃和后视镜的空间。
您需要的其他部件包括
shadowbox
镜子窗膜
arduino uno(或类似的arduino芯片组)
led灯条(确保它是5v)
四个超声波传感器
母头(这可能是可选的)
一个电容器(大约100uf到220uf可以工作)
一个电阻器(任何200-600欧姆都可以工作)
电池组(我用18650制造自己的电池,但9v电池可以工作)
你还需要一个少量供应。
烙铁(可以只使用压接机)
热胶枪
玻璃切割器(如果需要镜子或玻璃)
连接线,我使用了一条旧的网络电缆(cat5)
dupont压接器(可选,但非常有用)
3d打印机(我的是robo3d)
我的建议是提示根据你的供应量来确定。这些是我使用过的耗材。
第2步:在胶片上添加胶片
我做的第一步是在我的镜头上添加一个镜像胶片前玻璃。事实证明这是非常容易的。
无限远镜使用后视镜和前玻璃上的“双向”镜子的方式。然后光线会在后视镜和双向镜子之间反弹,最终逃离双向镜子。留下镜子无限深的效果。
我使用的是银色窗帘遮光膜,涂抹后留下非常镜面的效果。您也可以尝试不同的胶片效果以获得其他效果。
只需按照胶片附带的说明将其涂在前玻璃背面即可。对于我的胶片,你将肥皂水涂在玻璃上,将胶片切成精确的尺寸(或略小),涂抹并用刮刀将多余的水挤出。让它干一夜,你就完全了。
第3步:安装led灯条
衡量你的阴影框的内部尺寸,并确定四个边中的每个边上应有多少个led。如果每侧有奇数个led,它将工作得最好。具有奇数将允许一个led作为灯的中心。
一旦确定每侧需要多少个led,请仔细切割led灯条,确保只切割指定的led您可以保持最终切割部件的正确极性。
切割led后,将它们干燥安装到阴影箱中,并仔细测量需要多少连接线才能将它们重新连接到阴影箱中。角落。你可以避免切割一些角落,这一切都取决于你的影子箱的大小。对于我的,我只需要切割其中一个角落。
用短线焊接切割的led条带,如果使用裸线,则应用热缩管。通过对齐箭头确保维持led的正确极性。
在led灯条的起始处,焊线会导致连接到arduino。这些引线将通过后视镜进行捕捉。
在正确切割和焊接led之后,将背胶粘贴并粘贴在框架上,将它们安装在阴影盒内部。不要相信粘合剂会粘住,因此在整个led灯条的关键位置涂上热胶。在拐角处特别小心,因为它们将首先在那里松散。
步骤4:为超声波传感器构建软件
将超声波传感器连接到该项目的方法有很多种。我通过将电线引线连接到母头的4个引脚上,然后将头部热胶粘到框架的背面。这允许我插入我的超声波传感器并在必要时将其移除。
在每个标题上使用4根不同颜色的电线,并保持顺序与阴影盒周围的顺序完全相同。我们稍后将所有+ 5v和gnd线连接在一起,每个echo,trigg线将连接到ardiuno。保持颜色一致将使该过程更容易。
将电线焊接到接头后,我为每个接头添加了一小段收缩管。
或者,超声波传感器可以直接焊接到电线上并安装在阴影箱上。
步骤5:安装镜子和背面
超声波传感器接头粘合后,是时候将镜子粘到遮阳板背板上并安装背面。如果您的镜子太大,请使用玻璃切割器将其切割成正确的尺寸。请注意,正确的尺寸可能会比你的支持者小一点1/2英寸。
我的影子盒使用框架中的一个凹槽来固定背部,然后使用两个小金属钩来固定它地方,给我的支持者一个小角度。您的设计可能会有所不同。
使用热胶,在背面涂上一些大胶水,然后将镜子按到位。镜子粘合后,将电线绕在电线周围并将其连接到框架上。如有必要,在每个角落涂抹少量热胶。
在安装背面之前,最好先测试一下led灯条,确保所有接线都正确无误。此外,确保在连接之前将led线引线从背面拉出,因为我们将在下一步中需要这些引线。
步骤6:连接arduino uno和ultra sonic传感器
收集超声波传感器的所有gnd线,并将尾纤线连接到束上,然后将它们全部焊接在一起。这将成为我们所有传感器的共同基础。尾纤线将插入arduino uno。
对所有超声波传感器的+ 5v线路重复此过程。你应该将所有的线束都焊接在一起,并将一根引线插入arduino。
接下来,led灯条的gnd和+ 5v应该在其电源上获得一个100-200uf的电容。确保观察到正确的极性,电容的负极在gnd线上。我使用与传感器公共电线相同的技术将我焊接在一起。
最后,在led灯条的data线上,串联一个200-500欧姆的电阻器。这将确保我们的led灯带不会产生电流涌入,导致我们的第一个led烧坏。
在所有连接处添加热缩管。下一步显示电路图是否有用。
完成所有接线后,将每根导线连接到arduino。 gnd至gnd,+ 5v至+ 5v,led数据至pin 10,传感器至pin 2-9。
我用我的压接器将杜邦端部添加到每根电线上。如果您没有压接器,可以将连接线焊接到每根导线或将它们焊接到插头引脚。
步骤7:电路图
这是我设计的电路图。乍一看可能看起来很复杂,但它只有4个传感器,每个传感器有4根线和led灯条。
步骤8:arduino代码
我选择使用传感器周围的脉冲led制作橙色中心点,以测量最近的物体。当然,由于你有传感器和基本代码,你可以做一些完全不同的事情。
注意:
这使用adafruit neopixel库,确保你正确安装该库。
传感器的确切顺序及其pin码。
调整阴影框使用的总像素数。
根据需要调整颜色。
告诉代码“角落”的位置,这些是盒子每一边的中心点。
#include
const int numpixels = 26;
adafruit_neopixel pixels = adafruit_neopixel(numpixels, 10);
const int numpixels = 26;
adafruit_neopixel pixels = adafruit_neopixel(numpixels, 10);
const int toptrigpin = 2;
const int topechopin = 3;
const int lefttrigpin = 4;
const int leftechopin = 5;
const int bottrigpin = 6;
const int botechopin = 7;
const int righttrigpin = 8;
const int rightechopin = 9;
void setup() {
serial.begin(9600);
pixels.begin();
}
int corners[4] = {16, 23, 3, 10};
int focuspoint = 20;
int focusmoveto = 20;
int rainbow = 0;
uint32_t rainbowcolor = wheel(0);
unsigned long previousmillis = 0;
void loop() {
unsigned long currentmillis = millis();
if (currentmillis - previousmillis 》= 500) {
previousmillis = currentmillis;
long top = readsensor(toptrigpin, topechopin);
long left = readsensor(lefttrigpin, leftechopin);
long bot = readsensor(bottrigpin, botechopin);
long right = readsensor(righttrigpin, rightechopin);
serial.print(“t:”);
serial.print(top);
serial.print(“l:”);
serial.print(left);
serial.print(“b:”);
serial.print(bot);
serial.print(“r:”);
serial.println(right);
rainbowcolor = (wheel((rainbow) & 255));
rainbow = (rainbow + 1) % 255;
if (top 《 left && top 《 bot && top 《 right ) {
// move to top
focusmoveto = corners[0];
} else if (left 《 top && left 《 bot && left 《 right) {
// move to left
focusmoveto = corners[1];
} else if (bot 《 top && bot 《 left && bot 《 right ) {
// move to bot
focusmoveto = corners[2];
} else if ( right 《 top && right 《 left && right 《 bot ) {
// move to right
focusmoveto = corners[3];
}
}
if (focuspoint != focusmoveto) {
if (focuspoint 》 focusmoveto) {
focuspoint--;
} else {
focuspoint++;
}
}
bouncearound(focuspoint);
delay(30);
}
int pos = 0;
long readsensor(int trigpin, int echopin) {
pos++;
if (pos == 5) {
pos = 0;
}
return pos;
pinmode(trigpin, output);
pinmode(echopin, input);
long duration, cm;
digitalwrite(trigpin, low);
delaymicroseconds(2);
digitalwrite(trigpin, high);
delaymicroseconds(10);
digitalwrite(trigpin, low);
duration = pulsein(echopin, high);
return microsecondstocentimeters(duration);
}
long microsecondstocentimeters(long microseconds)
{
return microseconds/29/2; // to convert time into distance
//the speed of sound is 340m/s or 29 microseconds per centimeter.
//the ping travels out and back so distance from the obstacle is half of the distance travelled
}
int bouncesize = 5;
int bouncesizemax = 5;
int bouncedirection = 1;
void bouncearound(int point) {
setall(rainbowcolor);
if (bouncesize 《= 0) {
bouncedirection = 1;
} if (bouncesize 》= bouncesizemax) {
bouncedirection = -1;
}
bouncesize += bouncedirection;
pixels.setpixelcolor(point, pixels.color(0,250,0));
for(int i = 1; i 《= bouncesize; i++ ){
pixels.setpixelcolor(point - i, pixels.color(40*i,40*i,40*i));
pixels.setpixelcolor(point + i, pixels.color(40*i,40*i,40*i));
}
showstrip();
}
void showstrip() {
pixels.show();
}
void setall(uint32_t color) {
for(int i = 0; i 《 numpixels; i++ ) {
pixels.setpixelcolor(i, color);
}
}
void setall(byte red, byte green, byte blue) {
for(int i = 0; i 《 numpixels; i++ ) {
pixels.setpixelcolor(i, red, green, blue);
}
}
// input a value 0 to 255 to get a color value.
// the colours are a transition r - g - b - back to r.
uint32_t wheel(byte wheelpos) {
wheelpos = 255 - wheelpos;
if(wheelpos 《 85) {
return pixels.color(255 - wheelpos * 3, 0, wheelpos * 3);
}
if(wheelpos 《 170) {
wheelpos -= 85;
return pixels.color(0, wheelpos * 3, 255 - wheelpos * 3);
}
wheelpos -= 170;
return pixels.color(wheelpos * 3, 255 - wheelpos * 3, 0);
}
步骤9:3d打印支架
背面有arduino和电池,它不适合贴合墙壁,所以我决定设计和3d打印一个简单的立场。经过4次修改,这是我提出的立场。它有足够的空间放置底部超声波传感器并紧紧握住我的影子盒。
你可能决定用你的影子箱做一些不同的事情。
第10步:总结
将arduino和电池组粘贴到框架的背面,你就完成了!
2018 年底 5G 将实现预商用?5G技术研发试验跨进第三阶段
力科示波器PCI Express解码注释软件提供新的功能
iphone7取消了3.5mm耳机接口!现在的手机追求轻薄放弃了5大优秀设计!哪个最让你遗憾?
物联网时代下,多种编程语言之间或将没有限制性
4515DO-DS3BS002DP传感器检测洁净实验室压差的方法
如何制作带超声波传感器的无限远镜
电子激光射击分组对抗系统的原理以及系统特点是什么?
工信部苗圩:5G未来的应用场景主要体验在车联网和远程医疗方面
手环加速度传感器原理及选型技巧
RT-Thread操作系统的FreeRTOS兼容层
RS232转Profinet网关rs232转网线
工业机器人产业链分析
聊一聊MCU如何选型
防水试验箱要知道的几件事 了解一下吧!
上海发布《三年行动计划》,2025年工业机器人密度达到360台/万人
Bourns 推出具有变革性 EdgMOV™ 压敏电阻系列 提供节省空间的浪涌保护解决方案
软件工程师的从业要求有哪些
Achronix和Signoff半导体携手为人工智能机器学习应用提供FPGA和eFPGA IP设计服务
联发科:天玑9300加持,今年旗舰级手机SoC营收将达10亿美元
“小冰之父”是如何看待微软小冰发展的?