Этот проект был придуман и реализован с целью помощи людям с проблемами зрения. Эти очки используют ультразвуковой датчик и помогают слабовидящим или слепым людям избежать различных препятствий. Устройство распознает препятствие или объект, а затем динамик издает звук, который оповещает о приближении к этому объекту.
Шаг 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); } } }
На этом с проектом очков для Ардуино мы заканчиваем. В следующих уроках мы постараемся модифицировать наши очки. Дальше мы продолжим публикацию уроков и статей, которые демонстрируют технологии, доступные каждому, для создания полезных проектов с точки зрения медицины.