查看原文
其他

教程|生人勿近!1米社交距离袖珍报警器

柴火菌 柴火创客空间 2021-07-07


距离,作为疫情期间的社交礼仪,带动“社交距离”成为时下热门字眼。保持社交距离无法完全阻止病毒散播,但它能大幅度减低疫情传播的速度。


3月底,新加坡卫生部宣布,对那些未遵守社交距离的人处以高额罚款和监禁。在非暂时性互动中未自觉遵守保持一米距离的行为,将被处以最高10000新加坡元(合约50000元)的罚款或六个月的监禁,严重时或同时面临两种处罚。


图自网络,侵删


那么,你可能会问,社交距离具体是要保持多少米距离?通常意义上,“保持社交距离”指的是人与人之间有意保持至少六英尺(约为1.82米)的物理距离。但目前疫情下一般都将安全的社交距离定义在“至少一米”


而为保“社交距离”,民间奇招频出。例如,意大利这位背着一个目测半径超过一米圆纸板,走在街上的老大哥


搭乘电梯时,各自占据一个角落,“面壁思过”几秒


许多知名企业将自己LOGO临时「隔离」,借品牌视觉的社交距离,宣传保持社交距离


在这个抗疫的关键时期,人人都应该自觉保持社交距离,为全球战疫贡献一己之力。然而,要时时刻刻记住这一点或保持准确的一米社交距离并非易事。而这也是柴火认证会员小小铭(@Makerming)制作下面这个小型袖珍距离警报器的初衷。当与他人距离小于一米距离时,警报器会自动发出声音和灯光提示,这样,当自己不小心过于靠近他人,或他人过于靠近自己时,都可以得到相应提示,用相对友善且不尴尬的方式提醒大家自觉保持距离,利用开源科技助力科学抗疫。(柴火认证会员?点击此处了解更多详情)


精彩项目视频,点击前往柴火B站小程序观看


下面就跟着柴火菌一起看看,小小铭是如何一步一步做出这个项目的吧(以下教程中,”我“指代项目制作者)。



步骤0:备好物料,整装待发


软件工具

  • Arduino IDE

硬件清单

  • Seeeduino XIAO ×1

  • Grove - LED Pack ×1

  • Grove - 蜂鸣器 ×1

  • Grove - ToF距离传感器(VL53L0X) ×1

  • 电烙铁×1

扫码一键前往柴火硬件军火库Seeed京东店

搜索购买开源硬件物料





步骤1:硬件连接


这个项目是一个小型袖珍型的可穿戴产品,对尺寸要求比较严格,所以我选用了Seeeduino XIAO作为主板。Seeeduino XIAO是Seeed Studio的新产品,是目前市面上我可以找到的最小的主板。硬件连接请参考下图。


接线图为实物等比例绘制,可以看出,Seeeduino XIAO的大小跟一个开关差不多,十分迷你!如果你需要做一些对于体积、重量有要求的项目,特别是一些体积小的可穿戴项目,墙裂推荐使用Seeeduino XIAO。





步骤2:焊接


虽然Seeeduino XIAO很小巧可爱,但非常考验焊接新手的耐心。期待Seeed尽快发布Seeeduino XIAO的扩展板,可以享受XIAO的小体积外,不用焊接就能快速调试和使用Grove做项目。


虽然焊接是做项目经常用到的技能,但毕竟我也不是焊接高手,还是花了点时间才完成的,大家也要给点耐心。





步骤3:编程,烧录与测试

const int Buzzer = 8;// D8const int LED = 7;//LED D7#include "Seeed_vl53l0x.h"Seeed_vl53l0x VL53L0X;  //tof   IIC D4 D5   #ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE #define SERIAL SerialUSB#else #define SERIAL Serial#endifvoid setup() { pinMode(Buzzer, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(Buzzer, LOW); // turn the Buzzer on (HIGH is the voltage level) digitalWrite(LED, LOW); // turn the LED on (HIGH is the voltage level)            VL53L0X_Error Status = VL53L0X_ERROR_NONE; SERIAL.begin(115200); Status = VL53L0X.VL53L0X_common_init(); if (VL53L0X_ERROR_NONE != Status) { SERIAL.println("start vl53l0x mesurement failed!"); VL53L0X.print_pal_error(Status); while (1);    } VL53L0X.VL53L0X_long_distance_ranging_init();
if (VL53L0X_ERROR_NONE != Status) { SERIAL.println("start vl53l0x mesurement failed!"); VL53L0X.print_pal_error(Status); while (1);    }}void loop() {
VL53L0X_RangingMeasurementData_t RangingMeasurementData; VL53L0X_Error Status = VL53L0X_ERROR_NONE;
memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); Status = VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData); if (VL53L0X_ERROR_NONE == Status) { if (RangingMeasurementData.RangeMilliMeter >= 2000) { SERIAL.println("out of range!!"); digitalWrite(Buzzer, LOW); // turn the Buzzer on (HIGH is the voltage level)            digitalWrite(LED, LOW);   // turn the LED on (HIGH is the voltage level)             } else if (RangingMeasurementData.RangeMilliMeter <= 1000) { digitalWrite(Buzzer, HIGH); // turn the Buzzer on (HIGH is the voltage level) digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level) SERIAL.print("Distance:"); SERIAL.print(RangingMeasurementData.RangeMilliMeter); SERIAL.println(" mm"); } else { digitalWrite(Buzzer, LOW); // turn the Buzzer on (HIGH is the voltage level) digitalWrite(LED, LOW); // turn the LED on (HIGH is the voltage level) SERIAL.print("Distance:"); SERIAL.print(RangingMeasurementData.RangeMilliMeter); SERIAL.println(" mm");              } } else { SERIAL.print("mesurement failed !! Status code ="); SERIAL.println(Status); digitalWrite(Buzzer, LOW); // turn the Buzzer on (HIGH is the voltage level)        digitalWrite(LED, LOW);   // turn the LED on (HIGH is the voltage level)         }    delay(250);  }




步骤4:设计外壳与切割制作


备注:切割文件中的灰线只用于标注各硬件的放置位置,在导出到激光切割机时记得不用输出切割,实际切割只有黑色线部分。



图片展示的是我个人设计的外壳造型,都是相对较小的尺寸,在保证可以覆盖所有硬件的前提下,大家也可以自行设计多种外形的外壳造型。(项目的CAD设计文件欢迎文末点击“阅读原文”到项目页面下载)



步骤5:项目组装




步骤6:完成啦!

测试视频如下


真人场景下的测试,也是非常6~





🤖️🤖️🤖️

文末互动话题

留言区分享

你生活中见过保持社交距离

最最独特的方式是什么?

👋👋👋





 写在最后-文末小广告 

Arduino官方认证-Arduino基础认证来中国啦!


作为Arduino官方认证中国区合作伙伴,柴火特现别开放Arduino基础认证考试预报名(考试费用210元人民币)!成功报名后,可在1年内任意时间自主参与考试。前100位报名的伙伴,我们还会额外送出价值50元的柴火硬件军火库无门槛购物抵用券。


还等什么,点击下图了解详情报名吧!



如果你还在担心认证考试的难度,可以看看5位考试通过并拿到证书的小伙伴的访谈实录|Arduino基础认证考试难吗?

基础认证最全信息,点击此处了解。

关于基础认证的常见问题FAQ汇总,点击此处了解

报名前想要体验下考试难易度?点击以下网址,免费体验5道考试题demo:https://create.arduino.cc/edu/courses/local/quiz/index.php

更多认证详情:https://store.arduino.cc/digital/cert_fundamentals




----END----

  Chaihuo x.factory|深圳,河北  


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存