教程|生人勿近!1米社交距离袖珍报警器
距离,作为疫情期间的社交礼仪,带动“社交距离”成为时下热门字眼。保持社交距离无法完全阻止病毒散播,但它能大幅度减低疫情传播的速度。
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;// D8
const 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
#endif
void 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|深圳,河北