0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作带超声波传感器的无限远镜

454398 来源:工程师吴畏 2019-08-19 16:31 次阅读

第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和电池组粘贴到框架的背面,你就完成了!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 超声波传感器

    关注

    18

    文章

    551

    浏览量

    35600
  • 远镜
    +关注

    关注

    0

    文章

    6

    浏览量

    5990
收藏 人收藏

    评论

    相关推荐

    超声波传感器的工作原理 超声波传感器声波频率是多少

    超声波传感器是一种常用的非接触式测距传感器,以其精确测量距离、高可靠性和广泛应用而受到广泛青睐。超声波传感器工作原理基于
    的头像 发表于 02-21 15:30 561次阅读

    超声波传感器的工作模式有哪些

    超声波传感器是一种利用超声波的特性进行测量和检测的设备。它通过发射超声波,然后接收反射回来的超声波,通过计算发射和接收之间的时间差,来确定物
    的头像 发表于 02-16 10:21 326次阅读

    超声波液位传感器的工作原理 超声波液位传感器型号

    超声波液位传感器是一种常用于测量液体或固体物料高度的装置。其工作原理基于超声波传播和回波反射的原理,通过发送超声波脉冲并测量回波的时间来确定物体的距离。下面将详细介绍
    的头像 发表于 01-30 09:52 264次阅读

    超声波传感器形成超声波的原理

    超声波传感器发射头是利用压电效应来实现产生超声波的,就是在发射头不断给出一定频率的如40KHz的电压信号,就可以产生超声波
    的头像 发表于 01-29 10:23 562次阅读

    超声波传感器超声波测距原理分析

    声音是由振动产生的,能够产生超声波的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。
    发表于 01-29 09:20 255次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>和<b class='flag-5'>超声波</b>测距原理分析

    超声波传感器的硬件组成及类型

    超声波传感器的硬件组成如图所示。超声波发送电路由晶体管,电阻,T/R40-16 压电陶瓷超声波传感器和变压器组成。
    发表于 01-22 17:31 486次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>的硬件组成及类型

    超声波测距原理 超声波测距离传感器接线方法

    超声波测距是一种常用的测距方法,通过发射超声波脉冲,利用其在空气中传播速度较快的特点,测量出从传感器到目标物体的时间差,并进而计算出距离。超声波测距具有非接触式、高精度、可靠性高等特点
    的头像 发表于 01-22 15:22 620次阅读

    一文详解:如何选择超声波传感器

    随着技术的不断发展,超声波传感技术已经广泛应用于许多领域。超声波传感器可以通过发射和接收超声波来测量距离、检测障碍物和监测液位。当您需要选择
    的头像 发表于 12-29 14:34 254次阅读

    什么是超声波传感器?光学与超声波传感器的对比

    传感器头发射超声波,并再次通过传感器头接收目标物反射回来的超声波超声波传感器可通过测量从发
    发表于 11-06 17:41 413次阅读
    什么是<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>?光学与<b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>的对比

    超声波传感器在protues上面如何实现?

    超声波传感器在protues上面如何实现? 求帮助
    发表于 10-08 06:17

    涂鸦超声波液位传感器有哪些优势

    涂鸦超声波液位传感器是一种先进的技术,用于检测液体的水位。它利用超声波技术来测量液体的高度,通过发射和接收超声波信号来实现。该传感器具有高精
    的头像 发表于 07-17 14:45 260次阅读

    超声波传感器测量距离计算实例

    该项目将向您展示如何使用超声波传感器计算距离。它将分为三个部分: 编程超声波传感器 + 将其显示到串行监视器上 如何在 LCD 上显示距离 将中断与
    发表于 07-07 14:42 2次下载
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b>测量距离计算实例

    南京超声波传感器怎么调节

    南京超声波传感器是一种常用的测距传感器,可以通过发射超声波信号并接收回波来测量物体与传感器之间的距离。调节
    的头像 发表于 07-07 01:23 1289次阅读

    超声波传感器的种类、优点及具体应用

    超声波传感器是一种基于超声波原理来探测物体距离、位置、形状、速度等参数的传感器。它通过发送超声波束到被测物体上,再接收反弹回来的回波,确定被
    的头像 发表于 06-07 16:35 3025次阅读

    超声波式液位传感器的应用

    超声波技术是传感器技术中的一种重要应用,而超声波式液位传感器则是应用最为广泛的类型之一。超声波式液位传感
    发表于 05-05 15:19