Вариант очков для слепых на Ардуино

Этот проект был придуман и реализован с целью помощи людям с проблемами зрения. Эти очки используют ультразвуковой датчик и помогают слабовидящим или слепым людям избежать различных препятствий. Устройство распознает препятствие или объект, а затем динамик издает звук, который оповещает о приближении к этому объекту.

Шаг 1. Комплектующие

Для очков Ардуино нам понадобятся ряд комплектующих, которые мы перечислим ниже:

  • Arduino Nano
  • Ультразвуковой датчик (подойдет HC-SR04)
  • Перемычки
  • Макет
  • Аккумулятор
  • Динамик

Т.к. нам нужно сделать компактное устройство мы должны выбрать одну из самых небольших плат в линейке Ардуино. Поэтому наш выбор пал на Ардуино Нано.

Из фото выше видны сравнительные размеры плат Arduino Uno и Nano. Также вы можете посмотреть Сравнительные таблицы всех плат, чтобы выбрать себе подходящее решение.

Также не забываем, что для работы с кодом нам обязательно пригодится Arduino IDE - среда разработки от производителя плат.

Шаг 2. Схема соединения

Все соединения наших комплектующих мы делаем согласно схеме ниже:

Не забываем, что для автономной работы мы используем аккумулятор.

Шаг 3. Код для очков Ардуино

Ниже вы сможете скачать или скопировать код для проекта очков для слабовидящих. Файл pitches.h (есть в архиве) должен быть включен в код.

#include "pitches.h"

int melody[] = {
  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

int noteDurations[] = {
  4, 8, 8, 4, 4, 4, 4, 4
};

const int trig1 = 9, echo1 = 10, trig2 = 12, echo2 = 11;
long dur1, dur2;
int dist1, dist2;

void setup() {
  pinMode(trig1, OUTPUT);
  pinMode(echo1, INPUT);
  pinMode(trig1, OUTPUT);
  pinMode(echo1, INPUT);
  Serial.begin(9600);
  Serial.println("ok");

}

void loop() {

  digitalWrite(trig1, LOW);
  delayMicroseconds(2);
  digitalWrite(trig1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig1, LOW);
  dur1 = pulseIn(echo1, HIGH);
  dist1 = dur1 * 0.03429 / 2;
/*
  digitalWrite(trig2, LOW);
  delayMicroseconds(2);
  digitalWrite(trig2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig2, LOW);
  dur2 = pulseIn(echo2, HIGH);
  dist2 = dur2 * 0.034 / 2;
*/
  Serial.println(dist1);
  //Serial.println(dist2);

  if (dist1 <=80) {
    for (int thisNote = 0; thisNote < 8; thisNote++) {
      int noteDuration = 1000 / noteDurations[thisNote];
      tone(8, melody[thisNote], noteDuration);
      int pauseBetweenNotes = noteDuration * 1.30;
      delay(pauseBetweenNotes);
      noTone(8);
    }
  }
  
}

На этом с проектом очков для Ардуино мы заканчиваем. В следующих уроках мы постараемся модифицировать наши очки. Дальше мы продолжим публикацию уроков и статей, которые демонстрируют технологии, доступные каждому, для создания полезных проектов с точки зрения медицины.

02.06.2019 | Уроки |
Ардуино+