带激光雷达的完美停车场

是时候把那个旧网球从车库里弹出来了,用这个简单的项目来提高你的游戏水平,让你知道在停车场停车的确切位置。金沙线上娱乐场

喜爱的 最喜欢的 1个

距离传感器很棒!它们通常是制造者创造基本自主机器人的第一步,但是你知道它们还有很多其他用途吗?是真的!一切从万圣节道具烦人的乐器停车库导航系统可以使用距离传感器。让我们离开工作台,到野外去,让事情发生!

第一,找到需要

我从没打过网球,在车库天花板上挂着布吉牌或其他什么东西,让我知道我在开进车库的时候应该什么时候停车。然而,现在我有个十几岁的孩子要开车了,我想也许是时候了。现在,我不打网球,但我玩电子产品,所以我要用我现有的东西。我的计划是使用一个距离传感器和创造一个小刹车灯。当汽车第一次驶入车库时,绿色LED将点亮。随着车越来越近,黄色LED将亮起,当汽车到达理想的停车点时,驾驶员将看到一个红色LED。我将设计和3D打印一个简单的交通灯作为房屋,所以它在美学上是令人愉悦的,太!

替换文本

快速演示以展示新的tfmini刹车灯(车辆未按比例缩放)。

所以,哪个距离传感器是正确的?

替换文本

一定要把他们都弄到手!(我知道,我知道,但实际上这个短语是注册商标)。

有这么多的距离/接近传感器可供选择,你怎么知道哪一个适合你的项目?金沙线上娱乐场有很多考虑,比如范围,分辨率,接口类型,更新费率和成本。有时,您可能需要决定哪些选项具有一定的灵活性(它真的需要每秒更新635次吗?),哪些是必须拥有的(我的教授说我们必须使用I2c组件),我的车库距离后墙到车库门大约26英尺。我可能会和我们的XL MaxSonar超声波装置,很好,高达25英尺,对于这个构建,我要和你一起去tfmini-微型激光雷达模块.

我把它和Qwiic软件包一起使用,因为这包括一个升压板。由于tfmini在5伏电压下运行,但在3.3伏电压下通信,QWIIC封装附带的Boost板无需使用5V板进行逻辑电平转换,如果使用3.3V板,则为分体式电源。把这个和金沙线上娱乐场Sparkfun黑板,内置QWIIC连接器,我可以把传感器的一半连接成一个直截了当的即插即用设计。增加一些超亮的发光二极管,电阻和电源,我们很高兴去!

这是这个项目的零件清单。金沙线上娱乐场



把零件和代码变成一件事

在tfmini刹车灯内

易于组合,用一根小的带状电缆保持整洁

QWIIC系统确实使构建变得非常简单。TfMiniQwiic版本配有升压板和一对电缆。一根电缆从模块连接到升压板,另一个从BoostBoard连接到黑板上的Qwiic接口。绿色,黄色和红色LED连接到插脚8,9和10,分别。对于代码,我只是对Lidartest.ino的草图做了一些修改,你可以在TfMini Qwiic的连接指南.它的外观如下:

/*我是罗布·雷诺兹,11月19日,2018本规范是TFmini激光雷达模块的一个小型实用示范应用。3D文件可以在Github存储库中找到,这里[https://github.com/thingsrobmade/tfmini_stop_light]主要基于nate seidle和benewake之前的合作工作。启用QWIIC的tfmini的原始示例草图可以在以下位置找到:(//www.pontait.com/products/14786)此代码是免费的,金沙线上娱乐场但如果你觉得它有用,我们总有一天见面,你可以给我买一瓶啤酒(啤酒许可证)。*/包括
            
             uint16_t距离=0;//距离in16_t强度=0;//信号强度huint8_t rangetype=0;//range scale/*值范围:00(短距离)03(中间距离)07(长距离)*/布尔有效值_data=false;//忽略无效的范围数据通信字节传感器1=0x10;//tfmini i2c address//为ledscost int greenled=8;const int yellowled=9;const int redled=10;int stoplimit=160定义管脚;//更改此厘米数以调整停止距离void setup()wire.begin();开始(115200);serial.println(“tfmini i2c测试”);//用于使用串行监视器进行测试//将LED管脚设置为输出管脚模式(红色LED,输出);PINMODE(黄色,输出);PinMode(绿色LED,输出);void loop()if(readDistance(sensor1)==true)if(valid_data==true)serial.print(“\stoplimit[”);//这些serial.print行保留用于测试和调整的serial.print(stoplimit);serial.print(“\tdist[”);序列号打印(距离);serial.println();如果(距离<=stoplimit)数字写入(红色LED,高);数码笔(黄色,低);数字写入(绿色LED,低);}否则,如果(距离>停止限制和距离<(停止限制+200))//更改此数字以增加黄色保持亮起的距离数字写入(红色LED,低);数码笔(黄色,高);数字写入(绿色LED,低);}否则,如果(距离>(StopLimit+199))//当黄色LED点亮DigitalWrite(红色LED,低);数码笔(黄色,低);数字写入(绿色LED,高);}}//else//serial.println(“read fail”);/delay(50);//在读数之间延迟少量//将两个字节写入spotBoolean readDistance(uint8_t deviceAddress)wire.beginTransmission(deviceAddress);线.写(0x01);//msb wire.write(0x02);//lsb wire.write(7);//数据长度:距离数据的7个字节if(wire.endtransmission(false)!=0)返回(假);//传感器没有确认Wire.RequestFrom(设备地址,(uint8_t)7);//如果(wire.available())为(uint8_t x=0,则要求7个字节;x<7;x++)uint8_t incoming=wire.read();if(x==0)//trigger done if(incoming==0x 0 0)//serial.print(“data not valid:”);//用于调试有效的_data=false;//返回(false);}else if(incoming==0x01)serial.print(“数据有效:”);有效数据=真;}}否则,如果(x==2)距离=进线;//距离值“dist_l”的lsb,否则如果(x==3)距离=传入<<8;//距离值“dist_h”的msb,否则,如果(x==4)strength=incoming;//信号强度值的LSB,否则(x==5)强度=传入<<8;//信号强度值的最大有效位,否则如果(x==6)rangetype=incoming;//range scale else serial.println(“没有可用的有线数据”);返回(假);}返回(真);
            

我还做了一个快速刹车灯模型,你可以从Github存储库下载在这里.

警告!因为TFmini的电力需求,以及Sparkfun黑板上的电源管理系统,金沙线上娱乐场如果你试着用圆筒千斤顶供电来运行你的最后一个项目,金沙线上娱乐场它会冻结,绿色LED将保持点亮,还有你的司机,他们的行动完全基于你的新项目,金沙线上娱乐场会直接撞到墙上。然而,通过microusb接口为其供电毫无问题。所以即使那个漂亮的大木桶杰克正盯着你看,诱惑你,不要屈服!它只会导致痛苦。

在这里查看已完成的构建,行动起来了!

现在就自己动手吧!

这个建筑和它们来时一样快速和基本,但不一定是。你有密码,你有.stl文件,现在带着他们一起跑。添加一些按钮,以便更容易地调整最佳停车距离。创造更好的住房。增加LED的数量以使其更可见。如果你真的有雄心壮志,你甚至可以把黑板换成覆盆子圆周率,并用python编程这个项目。金沙线上娱乐场在这个项目中,使用SBC比使用微控制器有什么优势吗?金沙线上娱乐场绝对不是。但是,当你能把一个项目杀掉的时候,为什么金沙线上娱乐场还要杀掉它呢?快乐黑客朋友!

有兴趣了解更多关于距离感应的线上金沙指定注册网址知识吗?

线上金沙指定注册网址了解距离传感器使用的不同技术以及哪些产品最适合您的下一个项目。金沙线上娱乐场

带我去那儿!


评论11条评论

  • 网球的一个优点是不需要备用电源。由于所有车库门开启器(至少在美国)都需要“释放”,以便在电源故障时打开车门,如果有一个系统在停电的情况下仍能工作,这似乎是明智的,如果你使用太阳能的话,在多云的天气里也可以。(还有)为网球辩护:它不会被弄湿的!

    我建议对代码进行改进(自从尼尔·阿姆斯特朗采取他的“一小步”后不久,我就一直在使用计算机):

    #定义黄色极限200

    然后在代码后面

    否则,如果(距离>StopLimit和距离<(StopLimit+Yellow_Limit))//更改此数字以增加黄色保持亮起的距离

    而且以后

    否则,如果(距离>(StopLimit+黄色_Limit-1))//更改此数字以在黄色LED亮起时进行调整

    不管怎样,Rob伟大的工程!金沙线上娱乐场(祝你的年轻司机好运!)

    • 还有两种关于代码的想法:使用“define stop_limit 160”而不是将stop limit作为变量将有助于保存RAM(尽管对于这个程序来说没什么大不了的,但是我已经完成了Arduino程序,我的内存用完了,或者使用“const int stoplimit=160”;至少让编译器(尝试)防止代码“意外”更改值。

      顺便说一句,我喜欢“啤酒执照”!

      (我希望每个人都意识到我不是进攻,但要为“良好实践”提供建设性建议。)

      • 谢谢你,它绝对不会让人觉得是一种攻击。我做的大多数项目,金沙线上娱乐场即使一旦启动运行,我总是觉得我的代码可以改进。(尤其是在赶时间的时候,我的每一篇文章都是如此。)如果我记得,我想我把stoplimit作为一个变量,以防有时间添加stoplimit up和stoplimit down按钮作为输入,以便更容易地为用户调整该距离。但是如果用户是一个制造者,他将自己把所有的东西组合在一起,他们可以很容易地在自己的代码中更改define stop_limit编号。谢谢您的反馈!

        • 如果我记错了,黑板上有几个字节的“用户可访问”EEPROM。在我看来,如果您包括“停止限制上限”和“停止限制下限”,将值存储在EEPROM中是EEPROM的理想用途。(我倾向于在setup()中读取一个管脚,如果接地了,然后使用“默认”值作为stoplimit并将其写入EEPROM,否则从eeprom读取值,如果值为零,使用“默认”值。如果调整了限位,只要调整好就写到EEPROM中。)

          旁注:雄心勃勃的制造商也可以为“黄限”(而不是我前面提到的黄限常数)做同样的事情。有“黄限向上”和“黄限向下”按钮。

          对不起的。。。作为一名工程师,我花了很多年时间寻找易于实现的“功能”,以使市场营销快乐…尤其是那些不需要太多额外硬件的!

  • DKB / 大约4个月前 /

    一分钟左右后关闭LED是否有意义?

    • 绝对!如果我还有10分钟的时间,这将是我对代码的第一次添加。

  • 我正处于建造自动垃圾箱的早期阶段,一旦感觉到接近的脚步声,它的盖子就会自动打开,请允许我使用正确的传感器,我住在肯尼亚。

  • Woowits的设计非常惊人,我喜欢整个项目。你会一直贴这样的文章吗?希金沙线上娱乐场望看到更多

    • 很高兴你喜欢!计划是继续使用我们的组件,把它们建设成这样的实际项目。金沙线上娱乐场希望它能激发人们对他们下一步能创造什么的想法,一旦他们掌握了基础知识。

  • 添加“睡眠”功能的非软件解决方案是将电源插入车库门遥控接收器的灯插座。大多数开启器的灯在门打开时打开,使用后关闭一分钟左右。

    伟大的工程!金沙线上娱乐场

  • 我觉得有一个电位计是合理的,用户可以调整它来设置停车距离。

    同样在那张纸条上,有时你可以用两个(或更多)灯来照明,这样你就可以更好地了解位置。例如,您可以让转换模式与下表类似。(可通过硬编码值或电位计设置距离)

    绿色 黄色的 红色 状态
    X X X 未检测到
    X 检测
    X X “一英尺”
    X “B”脚要走
    X X “C”英尺
    X 全部停止!

相关帖子

看那游艇灯!

听着,在…天花板!

Enginursday:点亮3D打印机的床

数码时钟

近期职位

三十年试验控制器设计进展

春季清仓大甩卖!

工程日:制造商社区IRL

标签


所有标记