亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

盲人智能导航拐杖:Arduino + 1Sheeld + 超声波 + GPS短信求助

组件与物料清单

组件数量备注
1Sheeld 扩展板1手机传感器虚拟化盾板
Arduino UNO1主控板
Android 手机1提供GPS、短信、蓝牙
HC-SR04 超声波测距模块2高/低位各一个,检测前方与地面障碍
DC 振动马达2对应两个超声波,触觉反馈
继电器模块1驱动振动马达
拨动开关1紧急求助触发
9V 电池 + USB转接板1供电,续航有限,建议升级锂电/太阳能
PVC管、跳线等若干结构件与连接

软件与APP

项目背景

看到视障人士仅凭传统白色长杖艰难避让路面坑洼、台阶,触动我开发此原型。虽非电子专业,但利用网络资源与1Sheeld平台,历时6个月完成毕设。核心创新:双超声波检测高低障碍 + 手机GPS定位 + 一键短信求助。

盲人智能导航拐杖:Arduino + 1Sheeld + 超声波 + GPS短信求助
盲人智能导航拐杖:Arduino + 1Sheeld + 超声波 + GPS短信求助

步骤1:供电系统

9V电池经USB转接板供电Arduino。已知不足:续航短,后续应加装太阳能板或改用锂电池组。

盲人智能导航拐杖:Arduino + 1Sheeld + 超声波 + GPS短信求助

步骤2:蓝牙连接与APP配置

上电后,监护人需在手机开启1Sheeld APP,启用GPS Shield与SMS Shield。视障者无法操作手机,未来需开发盲文键盘或语音唤醒方案。

盲人智能导航拐杖:Arduino + 1Sheeld + 超声波 + GPS短信求助

步骤3:障碍检测与振动反馈

两个HC-SR04分别安装在拐杖上端(检测胸部高度障碍)和下端(检测地面坑洼/台阶):

振动马达内置PVC管内,用户手握即可感知。检测阈值可在代码中调整。

步骤4:GPS定位与紧急求助

拨动开关按下(读取为低电平)触发求助:

  1. 读取手机GPS经纬度
  2. 生成Google Maps链接
  3. 发送短信至预设号码(监护人/救援)

拐杖长度可按用户身高调节,检测距离阈值代码可改。

步骤5:展望与反思

希望原型能商业化造福视障群体。受限于英语水平与学生身份,文档不完善,相关资料见附件链接(FYP文档、海报、演示视频)。

核心代码

#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD
#include <OneSheeld.h>
#include <string.h>

#define trigPinL 4
#define echoPinL 5
#define trigPinH 6
#define echoPinH 7
#define Vib1 12
#define Vib2 13
#define SW 8

boolean isInRange = false;
float lat, lon;
String PhoneNumber = "0134087286";  // 修改为监护人号码
String Message, Message1, Message2;
char latitude[10], longitude[10];

void setup() {
  pinMode(trigPinL, OUTPUT); pinMode(echoPinL, INPUT);
  pinMode(trigPinH, OUTPUT); pinMode(echoPinH, INPUT);
  pinMode(Vib1, OUTPUT); pinMode(Vib2, OUTPUT);
  pinMode(SW, INPUT_PULLUP);  // 建议上拉
  
  OneSheeld.begin();
}

void loop() {
  // 读取下端超声波
  digitalWrite(trigPinL, LOW); delayMicroseconds(2);
  digitalWrite(trigPinL, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinL, LOW);
  long durationL = pulseIn(echoPinL, HIGH);
  long distanceL = (durationL / 2) / 29.1;

  // 读取上端超声波
  digitalWrite(trigPinH, LOW); delayMicroseconds(2);
  digitalWrite(trigPinH, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinH, LOW);
  long durationH = pulseIn(echoPinH, HIGH);
  long distanceH = (durationH / 2) / 29.1;

  // 下端:>40cm 持续振动(无障碍时提醒? 逻辑似反,建议<40cm振动)
  if (distanceL > 40) digitalWrite(Vib1, HIGH);
  else digitalWrite(Vib1, LOW);

  // 上端:<100cm 间歇振动
  if (distanceH < 100) {
    digitalWrite(Vib1, HIGH); delay(200);
    digitalWrite(Vib1, LOW); delay(200);
  }

  // 紧急求助按键检测(低电平触发)
  if (digitalRead(SW) == LOW) {
    lat = GPS.getLatitude();
    lon = GPS.getLongitude();
    Message1 = String(lat, 8);
    Message2 = String(lon, 8);
    Message = "I need Help! I'm at latitude: " + Message1 + 
              " and longitude: " + Message2 +
              " Google Maps - https://www.google.co.in/maps/place/" + 
              Message1 + "," + Message2;
    SMS.send(PhoneNumber, Message);
    delay(3000);  // 防抖
  }
  delay(1000);
}

原理图文件

OneSheeldTONGKAT.fzz (Fritzing源文件)

改进建议

制造工艺

  1. 基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
  2. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  3. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  4. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  5. ATtiny85 迷你街机:贪吃蛇 — 打造掌上 OLED 游戏机
  6. 便携测距仪 DIY 套件:Arduino Nano + HC-SR04 + 18650 电池 + 3D 打印外壳
  7. 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
  8. Arduino Nano + OpenCV 人脸追踪自主机器人小车
  9. 铜电镀智能系统:基于 Arduino UNO 的可控电解装置
  10. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
  11. 使用 Arduino 移位寄存器创建绚丽灯光序列
  12. 智能插座:基于 Arduino 与 RTC 的 120V 定时开关插座