Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Blind Stick Navigator: Навигационная трость для слабовидящих на Arduino

Компоненты и материалы

Приложения и сервисы

О проекте

Устройство помогает слабовидящим людям безопасно перемещаться. Два ультразвуковых датчика (верхний и нижний) сканируют пространство перед пользователем. При обнаружении препятствия вибромоторы внутри ПВХ-трубки выдают тактильный сигнал. Модуль 1Sheeld использует GPS и SMS-функции смартфона: при нажатии аварийной кнопки (тумблер) на заданный номер уходит сообщение с координатами и ссылкой на Google Maps.

Принцип работы

  1. Питание: 9В батарея через USB-адаптер на Arduino. (Автор отмечает необходимость улучшения автономности, например, солнечной панелью.)
  2. Связь: Смартфон с запущенным приложением 1Sheeld подключён по Bluetooth к Arduino. В приложении активированы щиты GPS и SMS.
  3. Детектирование препятствий: Верхний датчик (порт 6/7) и нижний (4/5). Если расстояние < 40 см (нижний) или < 100 см (верхний) — включается соответствующий вибромотор (пины 12, 13). Режим вибрации настраивается в коде.
  4. SOS-кнопка: При замыкании тумблера (пин 8) Arduino читает текущие координаты GPS через 1Sheeld и отправляет SMS: «I need Help! I'm at latitude: X, longitude: Y. Google Maps — https://maps.google.com/place/X,Y».

Код (OneSheeldBlindStickNavigator)


#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD
#include 

#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);
  OneSheeld.begin();
}

void loop() {
  // Нижний датчик
  digitalWrite(trigPinL, LOW); delayMicroseconds(2);
  digitalWrite(trigPinL, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinL, LOW);
  long durationL = pulseIn(echoPinL, HIGH);
  int distanceL = (durationL / 2) / 29.1;

  // Верхний датчик
  digitalWrite(trigPinH, LOW); delayMicroseconds(2);
  digitalWrite(trigPinH, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinH, LOW);
  long durationH = pulseIn(echoPinH, HIGH);
  int distanceH = (durationH / 2) / 29.1;

  // Вибрация нижнего
  if (distanceL > 40) digitalWrite(Vib1, HIGH);
  else digitalWrite(Vib1, LOW);

  // Вибрация верхнего (пульсация)
  if (distanceH < 100) {
    digitalWrite(Vib1, HIGH); delay(200);
    digitalWrite(Vib1, LOW); delay(200);
  }

  // SOS кнопка
  if (digitalRead(SW) == 0) {
    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;
    Message += " Google Maps - https://www.google.co.in/maps/place/" + Message1 + "," + Message2;
    SMS.send(PhoneNumber, Message);
    delay(3000);
  }
  delay(1000);
}

Перспективы

Автор надеется на коммерциализацию и улучшение: более длительное питание, специализированный смартфон с брайль-клавиатурой, интеграция в ОС Android для автономной активации GPS/SMS.

Схемы

Файл схемы для Fritzing: OneSheeldTONGKAT.fzz

Производственный процесс

  1. TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
  2. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  3. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  4. Создание рулетки на 37 светодиодов с Arduino Nano
  5. Мини-аркада на ATtiny85: Snake — ручная OLED-консоль своими руками
  6. Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
  7. Сборка аудиореактивной настольной лампы на Arduino Nano
  8. Автономный робот-следопыт с распознаванием лиц на Arduino Nano и OpenCV
  9. Медное гальваническое покрытие: умная система на Arduino UNO
  10. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10