Изготовление локатора с лидаром для незрячих
В нашем обыденном мире, где подавляющую часть информации мы получаем визуально, любые трудности со зрением - это серьезная проблема, а полная потеря зрения часто превращается для человека в катастрофу, разделяя мир на «до» и «после», ставя крест на множестве занятий и вариантов времяпрепровождения. Задачу ориентации в пространстве здоровый решает не задумываясь, а для слепого или слабовидящего она превращается в серьезный, а порой и неразрешимый вопрос. Простейшим стандартным средством реабилитации обычно служит белая тактильная трость. Но кроме нее существуют и электронные дальномеры, которые призваны дополнить «палочку». В основном, на рынке сейчас присутствуют устройства - по сути, компактные ультразвуковые локаторы - которые отображают расстояние до препятствия интенсивностью вибрации или звуковыми сигналами [1-2]. Подобные конструкции преобладают и среди некоммерческих разработок [3-5].
Альтернативой ультразвуковым дальномерам можно считать приборы, оснащенные инфракрасными дальномерами или маломощными лидарами. а также их комбинаций [6-10].
Прототипы таких устройств выглядят весьма неказисто, так как изготовить подходящий корпус, по крайней мере, не прибегая к 30-печати. - непросто. Тем не менее, в продаже встречаются недорогие корпуса портативных аккумуляторных батарей, предназначенных для подзарядки носимой электроники Обычно они рассчитаны на несколько (от одного до четырех) литий-ионных аккумуляторов типоразмера 18650. Причем, если даже установить не все элементы батареи, то такое устройство остается работоспособным Последнее обстоятельство открывает широкий простор для творчества радиолюбителей мы получаем качественный корпус заводского изготовления, в котором уже имеется готовая электронная схема для зарядки аккумулятора и место для его размещения. Остается лишь немного доработать корпус под конкретный прибор. И, к слову, сохранить возможность его применения по прежнему назначению в роли внешней аккумуляторной батареи.
Именно таким образом был собран локатор для незрячих, о котором и пойдет речь. В качестве его оболочки использован корпус внешней аккумуляторной батареи, рассчитанный на четыре аккумулятора типоразмера 18650 и имеющий внешние габариты 115x78x23 мм
Основой конструкции выступает плата Arduino ProMini на базе микроконтроллера ATmega328. Это миниатюрная версия аппаратной платформы Arduino, которая предназначена для установки в готовые устройства. Для загрузки программы в память микроконтроллера и обмена информацией с компьютером плату необходимо подключить через преобразователь интерфейсов USB-TTL-UART-Serial CH340G или аналогичный. В данной конструкции применена плата с микроконтроллером, работающим на частоте 8 МГц и рассчитанная на питание постоянным током с напряжением 3,3 В. Это позволяет подключить плату к одному литий-ионному аккумулятору без преобразователя напряжения. Потребляемый ток составляет 40-70 мА в зависимости от режима работы вибромотора.
Литий-ионный аккумулятор G1 типоразмера 18650 подключен через клавишный выключатель SA1 типа SMRS-101-1С2. Аккумулятор большой емкости может запасти достаточно много энергии, и его короткое замыкание небезопасно, поэтому в цепи питания установлен предохранитель FU1, рассчитанный на ток 100 мА Дальномером в устройстве работает модуль, основанный на измерителе расстояний VL53L0X. В нем используется инфракрасный лазер, излучающий на длине волны около 940 нм и принадлежащий к лазерам класса 1. Модуль измерителя можно питать от источника постоянного тока напряжением от 2,6 до 5 В. Для передачи информации используется интерфейс I2C. Между сигнальными цепями и шиной питания включены резисторы R2 и R3 типа МЛТ-0,25 сопротивлением 4,7 кОм. линия SDA подключена к порту A4, a SCL к порту А5 - как этого требуют рекомендации по использованию данного интерфейса [11].
Вибромотор М1 рассчитан на напряжение 3 В и ток 60 мА. Он управляется ШИМ через порт D3 платы Arduino ProMini при помощи транзисторного ключа. Последний выполнен на транзисторе VT1 типа ВС337-16 и резисторе R1 типа МЛТ-0,25 сопротивлением 510 Ом.
В лицевой панели корпуса проделано отверстие для модуля VL53L0X, а также отверстия для крепежных винтов.
Программа, управляющая устройством, создана в среде Arduino IDE.
В начале программы подключаются необходимые сторонние библиотеки (1-3 строки кода) Затем в строках с 5-й по 9-ю объявляются глобальные переменные. В их число входят переменная М - номер порта для подключения транзисторного ключа, управляющего вибромотором М1: переменная РМ для текущего значения ШИМ, определяющего интенсивность работы вибромотора: переменные i,j, используемые как счетчики в циклах; переменная dt. определяющая задержку в конце основного цикла программы и переменная distance - для хранения результата измерения расстояния.
Функция I VL для работы с датчиком VL53L0X располагается в строках с 12-й по 77-ю. В строках 15-17 инициализируются локальные переменные для многократного измерения расстояния и определения медианного среднего по результатам этих измерений [12]. В строках кода с 20-й по 44-ю расположен цикл, в пределах которого происходит 11-кратное измерение расстояния. В строках 48-53 реализован отладочный цикл, который выводит в последовательный порт массив с результатами измерений (после завершения отладки, в окончательной версии программы его следует убрать или закомментировать). В строках 56-67 происходит сортировка элементов массива методом пузырька В строках кода с 69-й по 74-й расположен второй отладочный цикл, который выводит в последовательный порт массив с упорядоченными результатами измерений. В строке 76 функция возвращает медианное среднее, полученное по результатам всех измерений.
В строках 81-104 расположена функция setup(). В данной функции помещен код для инициализации датчика VL53L0X (код взят из файла Single, который в качестве примера прилагается к библиотеке vl53IOx-arduino-master [13]).
В начале цикла loop() в строке 110 происходит вызов функции I VL для измерения расстояния. В строке 116 устанавливается значение переменной РМ для управления вибромотором М1 при помощи ШИМ. Необходимое значение ШИМ рассчитывается по формуле РМ = -0.15*distance+215, чтобы при дистанции 100 мм коэффициент заполнения ШИМ составлял 78%, а при дистанции 1100 мм, соответственно, примерно 20%. Таким образом, на больших расстояниях мотор вибрирует слабо, а по мере приближения к препятствию интенсивность вибрации возрастает
Так как локатор построен во многом из готовых элементов, то печатная плата нужна только для транзисторного ключа и подтягивающих резисторов интерфейса I2C. Все это упрощает повторение устройства и делает его доступным для начинающих. Как известно, в рядах Всероссийского общества слепых состоит более 200 тыс. человек [14], таким образом, существует немало людей, которым может попытаться помочь любой радиолюбитель.
Денис ЛЕКОМЦЕВ, г. Орел
Комментарии (0)
Написать
Похожие темы: