基于 AI 的视障辅助可穿戴手套


ChangeCode
原创
发布时间: 2026-01-03 17:40:13 | 阅读数 0收藏数 0评论数 0
封面
我设计了 DrishtiY—— 一款专为视障人士打造的 AI 辅助手套, 这款手套搭载树莓派 Zero W 和 ESP32-CAM 模块,用户按下按键就能捕捉图像,经 AI 分析后,15 秒内就能通过耳机或电脑播报场景细节。它仅需约 80 美元,远低于同类智能眼镜,还能灵活指向不同角度,解决了眼镜视角受限的问题。 我整理了完整的材料清单、组装步骤和代码资源,支持无 USB 耳机的替代方案。未来我还会升级离线模式、面部识别等功能,希望用普惠的 AI 技术,让视障人士自主感知世界,让 “看见” 不再昂贵。

准备工作:

材料:

所需材料

以下是自制该项目所需的全部物品:

  1. 带 SD 卡(8-16GB)的树莓派 Zero W(Raspberry Pi Zero W)
  2. SD 卡读卡器
  3. ESP32-CAM 模块(若不带内置 USB 接口或 USB 屏蔽层,需额外配备 FTDI 编程器
  4. 按键开关(Push Button)
  5. 3 根公对母杜邦线(Female to Female Jumper Wires)
  6. 一副手套
  7. 一小块泡沫板
  8. 锂离子电池(或其他适用于 ESP32-CAM 的电源)
  9. 移动电源(或其他适用于树莓派 Zero W 的电源)
  10. USB 数据线(A 型转 Micro B 型)
  11. 双面胶
  12. USB 耳机(我目前没有,会展示替代方案,但主方案需配备
  13. OTG 数据线(使用主方案时需配备)


1

连接按键开关

使用公对母杜邦线将按键开关连接到树莓派 Zero W 的 GPIO 17 引脚和 GND 引脚(接地引脚)。成品效果如图所示,你也可以参考第二张图片进行操作。

2

设置树莓派 Zero W 和 ESP32-CAM 模块

ESP32-CAM 模块设置(含 USB 接口 / 型号 hw-818/ch340)

  1. 下载并安装 Arduino IDE。
  2. 从开发板管理器中下载 Espressif 的 ESP32 开发板包。
  3. 在 Arduino IDE 界面中选择你的 ESP32-CAM 开发板(若不确定型号,可尝试排查,建议先从 Wrover 模块开始)。
  4. 按照上图所示路径打开示例中的摄像头网络服务器代码:文件(File)→示例(Examples)→ESP32→摄像头(Camera)→CameraWebServer。
  5. 在代码第 13-32 行中,删除对应你开发板型号前的井号(#),完成型号选择。
  6. 按照第二张图片所示配置参数(注:参数示例:Flash Before Sketch Upload:Disabled;频率:40MHz;模式:QIO;方案:Huge APP (3MB No OTA/1MB);波特率:115200)。
  7. 在代码中修改 ssid 和 password 变量,填入你的 Wi-Fi 名称和密码。
  8. 将 GPIO 0 引脚与 GND 引脚连接,选择端口后点击 “上传”。
  9. 上传完成后,移除 GPIO 0 与 GND 的连接线,点击复位按钮。
  10. 在控制台中记录显示的 IP 地址。
  11. 注意:若你的开发板不带 USB 屏蔽层或内置 USB 接口,需通过 FTDI 编程器进行接线。如果你更喜欢视频教程而非文字和静态图片,可参考我频道中附带的 YouTube 视频完成上述操作😉。

树莓派 Zero W(安装 Raspberry Pi OS Lite 系统)设置

  1. 从树莓派官方网站下载 Raspberry Pi Imager 工具。
  2. 将 SD 卡插入 SD 卡读卡器。
  3. 使用 Raspberry Pi Imager 将系统安装到 SD 卡:第一个选项选择 “树莓派 Zero”,第二个选项选择 “Raspberry Pi OS Lite”,最后一个选项选择插入 SD 卡的读卡器。
  4. 点击 “下一步(NEXT)”,在弹出窗口中点击 “编辑设置”:
  5. 设置易于记忆的主机名
  6. 设置用户名和密码
  7. 输入你的 Wi-Fi 名称(SSID)、密码和无线局域网所在国家 / 地区
  8. 进入 “服务” 选项,启用 SSH 功能
  9. 点击 “保存”,然后点击 “确认(yes)”。
  10. 等待镜像写入完成,弹出驱动器,取出 SD 卡并插入树莓派 Zero W,为树莓派供电。
  11. 使用 IP 扫描工具(如 Advanced IP Scanner)查找树莓派的 IP 地址,通过 Putty 等软件访问终端。
  12. 若上述两步遇到问题,可连接显示器,问题会直观显示且易于理解;若仍无法解决,欢迎在下方留言。
  13. 确保树莓派 Zero W 和 ESP32-CAM 模块处于同一局域网内。


3

制作设备结构

  1. 用热熔胶将泡沫板粘在手套的上表面。
  2. 用双面胶将 ESP32-CAM 模块固定在泡沫板上,确保摄像头朝前。
  3. 用双面胶固定树莓派 Zero W。
  4. 用双面胶将按键开关固定在手套的下表面,位置以拇指可轻松按压为准,并用胶带固定按键连接的导线。


4

编写代码!

  1. 访问树莓派终端后,输入用户名和密码。无需在系统中进行额外的前置配置,插入新写入镜像的 SD 卡后即可从零开始操作。
  2. 更新软件包列表并安装所需软件包:
sudo apt update
sudo apt install espeak ffmpeg libespeak-ng1 -y
sudo apt install python3
sudo apt install python3-pip
  1. (可选)安装构建 Python 模块所需的软件包:
sudo apt install build-essential python3-dev -y
  1. 创建项目文件夹并进入该文件夹(可选,但能让文件结构更清晰):
mkdir drishti
cd drishti
  1. 创建并激活虚拟环境:
python3 -m venv DrishtiY
source DrishtiY/bin/activate
  1. 安装重要的 Python 库:
pip install pyttsx3 requests wget RPi.GPIO
  1. 打开编程环境:
touch main.py # 可选,nano编辑器会自动创建不存在的文件
nano main.py


无 USB 耳机的使用方案

如果没有 USB 耳机,需在电脑上运行一个程序,该程序会接收树莓派发送的音频文件并在电脑上播放。我会提供以下三个代码文件:

  1. 树莓派 Wi-Fi 传输版代码
  2. 设备端 Wi-Fi 接收版代码(用于播放音频)

额外配置步骤:

  1. 安装所需工具:
sudo apt install alsa-utils -y
  1. 下载 mainWIFI.py 和 main-server.py 文件。
  2. 修改代码中的以下变量:
  3. ESP32CAM:填入之前记录的 ESP32-CAM 模块 IP 地址
  4. PC_IP:填入运行 main-server.py 的电脑 IP 地址
  5. API_KEY:填入从 Google AI Studio 获取的 Gemini API 密钥
  6. 查找电脑 IP 地址:
  7. Windows 系统:在命令提示符中输入 ipconfig
  8. Linux/MacOS 系统:在终端中输入 ifconfig
  9. 获取 Gemini API 密钥:
  10. 访问 Google Cloud Console(https://console.cloud.google.com/)→选择项目→新建项目→输入项目名称
  11. 访问 Google AI Studio(https://aistudio.google.com/apikey)→获取 API 密钥→选择已创建的项目→在现有项目中创建 API 密钥
  12. 将修改后的代码复制粘贴到树莓派的 Nano 编辑器中,按 Ctrl+S 保存,Ctrl+X 退出。
  13. 关闭树莓派,为步骤 6 安装电源做准备:
sudo shutdown now

有 USB 耳机的使用方案(主方案)

  1. 通过 OTG 数据线将 USB 耳机连接到树莓派,也可通过 USB 适配器连接普通耳机。
  2. main.py 文件适用于配备 USB 耳机的情况,只需修改代码中的 ESP32CAM(ESP32-CAM 模块 IP 地址)和 API_KEY(Gemini API 密钥)变量。
  3. 按照上述步骤关闭树莓派。

附件下载

  1. mainWIFI.py
  2. main-server.py
  3. main.py
5

USB 耳机版代码(主方案)

通过 OTG 数据线将 USB 耳机连接到树莓派,也可通过 USB 适配器连接普通耳机。main.py 文件适用于配备 USB 耳机的制作者,在此方案中,你只需替换 ESP32CAM(ESP32-CAM 模块 IP 地址)变量和 API_KEY(Gemini API 密钥)变量。按照上一部分的步骤关闭树莓派 Zero W。

6

安装电源

  1. 将 ESP32-CAM 模块和树莓派 Zero W 的电源固定在泡沫板上。
  2. 为 ESP32-CAM 模块连接电池:
  3. 正极接 5V 引脚
  4. 负极接 GND 引脚(接地引脚)
  5. 为树莓派供电:建议使用移动电源或带移动电源模块的电池(更安全,也可选择其他方式)。我的移动电源较大,所以用橡皮筋或胶带固定在手臂上;理想方案是使用带移动电源模块的电池,或体积足够小、可固定在泡沫板上的移动电源。后续版本 2 会整合电源系统,手套下方空间将预留供用户使用,不用于安装电源。


7

使用方法

操作流程

  1. 将移动电源连接到树莓派 Zero W 的电源接口(PWR port)。
  2. 树莓派 Zero W 启动时,若使用无 USB 耳机方案,需在电脑上运行 main-server.py 文件:打开电脑终端,进入文件下载后的存储目录,执行命令 python main-server.py
  3. 回到树莓派终端,输入用户名和密码,执行以下命令进入项目文件夹并激活虚拟环境:
cd drishti
source DrishtiY/bin/activate
  1. 执行以下命令运行代码:
python main.py
  1. 设备激活后即可测试:戴上手套,指向目标物体并按下按键,等待约 15 秒后,音频输出会通过电脑扬声器(无 USB 耳机方案)或 USB 耳机(主方案)播放。

核心操作手册

  1. 戴上手套
  2. 启动树莓派 Zero W 和 ESP32-CAM 模块
  3. (无 USB 耳机方案)在电脑上运行 main-server.py 文件
  4. 执行启动命令:cd drishti && source DrishtiY/bin/activate && python main.py
  5. 按下按键,聆听场景描述


8

3D 模型(Fusion 360)

点击下方 “3D 查看” 按钮查看 3D 模型:

  1. “SRG 手套”(https://skfb.ly/KJIt)由 SrGeneroso 创作,依据知识共享署名许可协议(http://creativecommons.org/licenses/by/4.0/)授权使用。
  2. 3.7V 100mAh 锂聚合物电池(LiPo Battery 3.7v 100mAh)由 dalidavila 创作(https://www.autodesk.com/community/gallery/project/127300/lipo-battery-3-7v-100mah
  3. 树莓派 Zero(Raspberry Pi Zero)由 schneik-adsk(欧特克 Fusion 360 产品架构高级总监)创作(https://www.autodesk.com/community/gallery/project/26271/raspberry-pi-zero
  4. ESP32-CAM 模块模型由 T3do 创作(https://www.autodesk.com/community/gallery/project/176252/esp-32-cam


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报