- Необходимые материалы:
- Принципиальная схема глухой рукояти:
- Программа Arduino для Smart Blind Stick:
- Слепой стик Arduino в действии:
Вы когда-нибудь слышали о Хью Герре? Он известный американский скалолаз, который преодолел ограничения своей инвалидности; он твердо убежден, что технологии могут помочь инвалидам жить нормальной жизнью. В одном из своих выступлений на TED герр сказал: « Люди не инвалиды. Человека никогда нельзя сломать. Наша искусственная среда, наши технологии сломаны и выведены из строя. Нам, людям, не нужно принимать наши ограничения, но мы можем передавать инвалидность через технологические инновации ». Это были не просто слова, он прожил с ними свою жизнь, сегодня он пользуется протезами ног и утверждает, что живет нормальной жизнью. Так что да, технологии действительно могут нейтрализовать человеческую инвалидность; Имея это в виду, давайте воспользуемся некоторыми простыми конструкторскими досками и датчиками, чтобы создать ультразвуковую трость для слепых с использованием Arduino. который мог бы послужить больше, чем просто палкой для слабовидящих.
Этот смарт-джойстик будет иметь ультразвуковой датчик для определения расстояния до любого препятствия, LDR для определения условий освещения и радиочастотный пульт, с помощью которого слепой может дистанционно определять местонахождение своей палки. Все отзывы будут передаваться слепому через зуммер. Конечно, вы можете использовать вибромотор вместо зуммера и продвигаться дальше, используя свое творчество.
Необходимые материалы:
- Arduino Nano (подойдет любая версия)
- Ультразвуковой датчик HC-SR04
- LDR
- Зуммер и светодиод
- 7805
- 433 МГц RF передатчик и приемник
- Резисторы
- Конденсаторы
- Нажать кнопку
- Перфорированная доска
- Набор для пайки
- Батареи 9В
Вы можете купить все необходимые компоненты для этого проекта умной слепой палки здесь.
Принципиальная схема глухой рукояти:
Для этого проекта Arduino Smart Blind Stick требуется две отдельные схемы. Один из них - это основная цепь, которая будет установлена на палке слепого. Другой - это небольшая удаленная схема радиочастотного передатчика, которая будет использоваться для определения местоположения главной цепи. Принципиальная схема основной платы для создания слепой ручки с помощью ультразвукового датчика показана ниже:
Как мы видим, для управления всеми датчиками используется Arduino Nano, но вы также можете построить эту интеллектуальную слепую палку, используя arduino uno, но следуя той же распиновке и программе. Вся плата питается от батареи 9 В, которая регулируется до + 5 В с помощью регулятора напряжения 7805. Ультразвуковой датчик питается от 5В и триггер, и эхо - вывод подключен к Arduino нан контактом 3 и 2, как показано выше. LDR соединен с резистором значения 10K, чтобы сформировать делитель напряжения и разность напряжения считываются Arduino АЦП контактного A1. Вывод A0 АЦП используется для считывания сигнала с РЧ-приемника. Выход платы обеспечивается зуммером, который подключен к контакту 12.
Схема дистанционного управления RF показана ниже. Его работа также объясняется дополнительно.
Я использовал небольшой прием, чтобы заставить эту схему дистанционного управления RF работать. Обычно при использовании этого радиочастотного модуля 433 МГц для работы требуется кодировщик и декодер или два микроконтроллера, как и в нашей предыдущей схеме радиочастотного передатчика и приемника, мы использовали HT12D и HT12E, декодер и кодировщик IC соответственно. Но в нашем приложении нам просто нужно, чтобы приемник определил, отправляет ли передатчик какие-либо сигналы. Таким образом, вывод данных передатчика подключен к земле или Vcc источника питания.
Вывод данных приемника проходит через RC-фильтр, а затем передается на Arduino, как показано ниже. Теперь, когда кнопка нажата, приемник многократно выводит некоторое постоянное значение АЦП. Это повторение невозможно наблюдать, когда кнопка не нажата. Поэтому мы пишем программу Arduino для проверки повторяющихся значений, чтобы определить, нажата ли кнопка. Вот как слепой может отслеживать свою палку. Вы можете проверить здесь: как работают РЧ передатчик и приемник.
Я использовал перфорированную плату, чтобы припаять все соединения, чтобы она не повредилась вместе с палкой. Но вы также можете сделать их на макете. Это платы, которые я сделал для этого проекта «слепой» с помощью Arduino.
Программа Arduino для Smart Blind Stick:
Когда мы будем готовы с нашим оборудованием, мы можем подключить Arduino к нашему компьютеру и начать программировать. Полный код используется для этой страницы можно найти в нижней части этой страницы, вы можете загрузить его непосредственно к Arduino борту. Однако, если вам интересно узнать, как работает код, читайте дальше.
Как и все программы, мы начинаем с void setup () для инициализации контактов ввода-вывода. В нашей программе вывод зуммера и триггера является устройством вывода, а вывод эха - устройством ввода. Мы также инициализируем последовательный монитор для отладки.
void setup () {Serial.begin (9600); pinMode (Buzz, ВЫХОД); digitalWrite (Buzz, LOW); pinMode (триггер, ВЫХОД); pinMode (эхо, ВХОД); }
Внутри основного цикла мы читаем все данные датчиков. Мы начинаем со считывания данных ультразвукового датчика расстояния, LDR для интенсивности света и радиочастотного сигнала, чтобы проверить, нажата ли кнопка. Все эти данные сохраняются в переменной, как показано ниже, для будущего использования.
Calcul_distance (триггер, эхо); Сигнал = analogRead (Удаленный); Intens = analogRead (Свет);
Начнем с проверки сигнала Remote. Мы используем переменную с именем Similar_count, чтобы проверить, сколько раз одни и те же значения повторяются из РЧ-приемника. Это повторение произойдет только при нажатии кнопки. Таким образом, мы запускаем тревогу удаленного нажатия, если счетчик превышает значение 100.
// Проверяем, нажата ли кнопка Remote int temp = analogRead (Remote); Similar_count = 0; в то время как (сигнал == темп) {сигнал = аналоговое чтение (удаленный); Similar_count ++; } // Если удаленное нажатие if (Similar_count <100) {Serial.print (Similar_count); Serial.println («Удаленное нажатие»); digitalWrite (Buzz, HIGH); задержка (3000); digitalWrite (Buzz, LOW); }
Вы также можете проверить это в Serial Monitor на своем компьютере:
Затем мы проверяем интенсивность света вокруг слепого. Если LDR дает значение меньше 200, предполагается, что он очень темный, и мы даем ему предупреждение через зуммер с определенным тоном задержки с 200 мс. Если интенсивность очень яркая, более 800, мы также даем предупреждение другим тоном. Звуковой сигнал и интенсивность можно легко изменить, изменив соответствующее значение в приведенном ниже коде.
// Если очень темно if (Intens <200) {Serial.print (Intens); Serial.println («Яркий свет»); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); задержка (200); задержка (500); } // Если очень ярко if (Intens> 800) {Serial.print (Intens); Serial.println («Слабая освещенность»); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); задержка (500); }
Наконец, мы начинаем измерять расстояние до любого препятствия. Сигнал тревоги не будет, если измеренное расстояние превышает 50 см. Но, если оно меньше 50 см, сигнализация включится звуковым сигналом зуммера. По мере приближения объекта к зуммеру интервал звуковых сигналов также уменьшается. Чем ближе объект, тем быстрее раздается звуковой сигнал. Это можно сделать, создав задержку, пропорциональную измеренному расстоянию. Поскольку delay () в Arduino не может принимать переменные, мы должны использовать цикл for, который основан на измеренном расстоянии, как показано ниже.
if (dist <50) {Serial.print (dist); Serial.println («Оповещение об объекте»); digitalWrite (Buzz, HIGH); for (int i = dist; i> 0; i--) delay (10); digitalWrite (Buzz, LOW); for (int i = dist; i> 0; i--) delay (10); }
Узнайте больше об измерении расстояния с помощью ультразвукового датчика и Arduino.
Программу можно легко адаптировать для вашего приложения, изменив значение, которое мы используем для сравнения. Вы используете последовательный монитор для отладки, если срабатывает ложная тревога. Если у вас есть какие-либо проблемы, вы можете использовать раздел комментариев ниже, чтобы разместить свои вопросы.
Слепой стик Arduino в действии:
Наконец пришло время протестировать наш проект arduino для слепых. Убедитесь, что соединения выполнены в соответствии со схемой и программа успешно загружена. Теперь включите обе цепи, используя батарею 9 В, и вы должны начать видеть результаты. Переместите ультразвуковой датчик ближе к объекту, и вы заметите звуковой сигнал зуммера, и частота этих звуковых сигналов увеличивается по мере приближения ручки к объекту. Если LDR покрыт темнотой или слишком много света, раздастся звуковой сигнал. Если все в порядке, зуммер не подает звуковой сигнал.
Когда вы нажимаете кнопку на пульте дистанционного управления, зуммер издает длинный звуковой сигнал. Полная работа этого смарт-стика для слепых с использованием Arduino показана в видео в конце этой страницы. Я также использую небольшую палку для сборки всей сборки, вы можете использовать большую палку или настоящую слепую палку и привести ее в действие.
Если ваш зуммер постоянно издает звуковой сигнал, это означает, что тревога срабатывает ложно. Вы можете открыть последовательный монитор, чтобы проверить параметры и проверить, какой из них является критическим, и отрегулировать его. Как всегда, вы можете опубликовать свою проблему в разделе комментариев, чтобы получить помощь. Надеюсь, вы поняли проект и вам понравилось что-то строить.