Разработка мультисенсорного сонара для слепых на основе микроконтроллера STM8L
Пути расширения угла обзора в разрабатываемом микроконтроллере, а также пути снижения энергопотребления за счет применения современной элементной базы. Алгоритм работы микроконтроллера и код программы на языке C++. Исследование макета устройства.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 09.10.2018 |
Размер файла | 94,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Разработка мультисенсорного сонара для слепых на основе микроконтроллера STM8L
Для решения важной социальной проблемы - реабилитации слабовидящих и незрячих людей требуются разработки новых и совершенствования известных средств обнаружения травматически потенциальных препятствий, находящихся в пространстве перед ними. Среди таких средств в настоящее время большое внимание отводится мобильным ультразвуковым устройствам с микроконтроллерами, интегрированными на одной плате с миниатюрными датчиками и устройствами индикации [1, 2, 3].
В настоящее время наибольшую популярность получили ультразвуковые сонары на базе микроконтроллера Arduino [4, 5]. При эффективном угле наблюдения до 15° и дальности до 1,5 м, устройство потребляет ток до 140 мА, при этом расстояние до препятствия не определяется, а среднее время автономной работы на одном заряде элемента питания составляет 8 часов Для повышения локальности обнаружения, в работе [6] предлагаются ультразвуковые перчатки для слепых, пригодные для обнаружения объектов на расстоянии до 3,5 м с эффективным сектором наблюдения не менее 30 градусов и с интегрированным процессором Arduino Pro Mini 328. При энергопотреблении от 33 мВт до 100 мВт, время автономной работы устройства составляет 4-8 часов в зависимости от используемой платы. Устройство удобно для использования внутри помещений, однако не оптимально на улице из-за необходимости постоянно направлять руки с перчатками в сторону предполагаемых препятствий. Для обнаружения препятствий на уровне подстилающей поверхности и расстояния до них в [7] предлагается ультразвуковая «умная трость» для незрячих на базе микроконтроллера семейства Arduino. Обладая расширенными функциональными возможностями данное устройство, вместе с тем, обеспечивает невысокий эффективный угол обзора - порядка 14-30 градусов и обладает недостаточно большим сроком работы в автономном режиме без подзарядки элемента питания. С целью повышения информативности обнаружения, в работе [8] предлагается использование системы обнаружения и позиционирования с применением трех ультразвуковых сенсоров для определения препятствия на пути слепых в трех различных направления, GPS и система сообщения СМС, микроконтроллер Arduino, зуммер и генератор вибраций. Недостатком систем обнаружения препятствий для слепых на базе этих плат является их сравнительно высокое энергопотребление и, соответственно, малое время работы на одном заряде элемента питания, необходимость частого заряда устройства.
Проведенные нами исследования показали, что одним из основных факторов, ограничивающих применение известных сонаров для слепых, является большое потребление мощности микроконтроллером Arduino, которое, в зависимости от применяемой платы, меняется от 33 мВт (плата Arduino LilyPad USB, питание от аккумулятора 3,7 В) до 105 мВт (плата Beetle leonardo, при питании от аккумулятора 5 В) [9].
Поэтому исследования по энергосбережению сонаров для слепых являются важной научно-прикладной проблемой, которая может быть решена на основе применения современной элементной базы, в том числе микроконтроллеров c минимальным энергопотреблением [11, 12], и разработки соответствующего программного обеспечения.
С учетом проведенных исследований были разработаны программное обеспечение и макет сонара для слепых, который включает два ультразвуковых сенсора HC-SR04, микроконтроллер STM8L с низким энергопотреблением, разработанный специально для изделий с батарейным питанием, и стандартный малогабаритный элемент питания на 3 В. Конструктивно предусмотрена возможность заряда элемента питания через USB интерфейс. В качестве индикатора направления на препятствие и расстояния до него, с учетом минимизации энергозатрат, был выбран звуковой излучатель Piezo Buzzer 17855 с током потребления не более 2 мА.
Программным путем обеспечивается последовательный опрос сенсоров и возможность перехода неактивного датчика в режим тишины до следующего акта измерений с целью снижения энергопотребления и экономии заряда батареи.
В процессе работы сонара микроконтроллер формирует короткий запускающий импульс, который подается поочередно на вход каждого ультразвукового датчика. На выходе датчиков получаем импульс, длительность которого прямо пропорциональна расстоянию до объекта. Микроконтроллер преобразует полученный импульс в серию импульсов, длительность которых постоянна, а частота следования обратно пропорциональна расстоянию до объекта. Эти импульсы поступают на один из звуковых излучателей, смонтированных на плате совместно с соответствующим датчиком. По частоте следования звукового сигнала можно ориентировочно определить удаленность до объекта на слух, а по номеру звукового излучателя - направление на препятствие.
Код программы написан на языке C++. Основной фрагмент кода программы представлен на рис. 2. Звуковые излучатели расположены в блоке с датчиками и индицируют расстояние до препятствия паузами между звуковыми сигналами. Индикация заканчивается в тот момент, когда индикация самого длинного расстояния будет произведена, после этого программа производит переход на начало измерений.
void UltrasonicSensor: BeepersActivation()
{
if (echoLengthFirstSensor <= echoBackFront && echoLengthSecondSensor <= echoBackFront)
{
distanceFirstObstacle = echoLengthFirstSensor / soundSpeed; distanceSecondObstacle = echoLengthSecondSensor / soundSpeed; if (distanceFirstObstacle <= distanceOneMeter && distanceSecondObstacle < = distanceOneMeter)
{
if (distanceFirstObstacle < distanceSecondObstacle)
{
/* Determine the number of beeps */
uint32_t temp = (echoLengthSecondSensor * delayAfterBeep + delayBetweenBeep) /(echoLengthFirstSensor * delayAfterBeep + delayBetweenBeep);
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_11, BitSET);
Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_11, Bit RESET); for (uint32_t i = 0; i < temp+1; ++i)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit SET); Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit RESET); Delay (echoLengthFirstSensor * delayAfterBeep);
}
}
else if (distanceSecondObstacle <= distanceFirstObstacle)
{
/* Determine the number of beeps */
uint32_t temp = (echoLengthFirstSensor * delayAfterBeep + delayBetweenBeep)
/
(echoLengthSecondSensor * delayAfterBeep + delayBetweenBeep);
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit SET);
Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit RESET); for (uint32_t i = 0; i < temp+1; ++i)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_11, Bit SET); Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_11,
BitRESET);
Delay (echoLengthSecondSensor * delayAfterBeep);
}
}
}
}
else if (echoLengthFirstSensor <= echoBackFront && echoLengthSecondSensor > echoBackFront)
{
distanceFirstObstacle = echoLengthFirstSensor / soundSpeed; if (distanceFirstObstacle < = distanceOneMeter)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit SET);
Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit RESET);
Delay (echoLengthFirstSensor * delayAfterBeep);
}
}
else if (echoLengthFirstSensor > echoBackFront && echoLengthSecondSensor <= echoBackFront) distanceSecondObstacle = echoLengthSecondSensor / soundSpeed; if (distanceSecondObstacle <= distanceOneMeter)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_11, BitSET); Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_11, BitRESET); Delay (echoLengthSecondSensor * delayAfterBeep);
}
Макет сонара с двумя ультразвуковыми датчиками
Ультразвуковые датчики расположены под углом друг к другу. Такое расположение датчиков по сравнению с аналогами [4], обеспечивает увеличение эффективного угла обзора в горизонтальной плоскости.
Предложенное программное обеспечение позволяет наращивать количество датчиков и звуковых излучателей, расположенных на одной плате с микроконтроллером, без увеличения потребляемого тока, с целью расширения угла обзора сонара. Разработаны алгоритм работы, программа и макет сонара с тремя сенсорами и тремя звуковыми излучателями. Алгоритм работы микроконтроллера для устройства с тремя сенсорами представлена на рис.
Алгоритм работы микроконтроллера с тремя сенсорами
Программа базируется на основном фрагменте (рис. 5)
void UltrasonicSensor: BeepersActivation()
{
if (echoLengthFirstSensor <= echoBackFront && echoLengthSecondSensor <= echoBackFront && echoLengthThirdSensor <= echoBackFront)
{
distanceFirstObstacle = echoLengthFirstSensor / soundSpeed; distanceSecondObstacle = echoLengthSecondSensor / soundSpeed; distanceThirdObstacle = echoLengthThirdSensor / soundSpeed; if (distanceFirstObstacle <= distanceOneMeter &&
distanceSecondObstacle < = distanceOneMeter && distanceThirdObstacle <= distanceOneMeter)
{
if (distanceFirstObstacle < distanceSecondObstacle &&
distanceSecondObstacle < distanceThirdObstacle)
{
/* Determine the number of beeps */
uint32_t tempFirst = (echoLengthThirdSensor * delayAfterBeep + delayBetweenBeep) /
(echoLengthFirstSensor * delayAfterBeep + delayBetweenBeep); uint32_t tempSecond = (echoLengthThirdSensor * delayAfterBeep + delayBetweenBeep) /
(echoLengthSecondSensor * delayAfterBeep + delayBetweenBeep);
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_13, BitSET);
Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_13, BitRESET); for (uint32_t i = 0; i < tempSecond+1; ++i)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_11, Bit SET); Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_11, Bit RESET); Delay (echoLengthSecondSensor * delayAfterBeep);
}
for (uint32_t i = 0; i < tempFirst+1; + +i)
{
/* Activating the beeper */
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit SET); Delay(delayBetweenBeep);
GPIO_WriteBit (GPIOC, GPIO_Pin_8, Bit_RESET); Delay (echoLengthFirstSensor * delayAfterBeep);
}
}
}
}
}
}
Основной фрагмент программной реализации работы микроконтроллера с тремя сенсорами
Проведен анализ зависимости потребляемого тока от тактовой частоты микроконтроллера и и выбрана оптимальная тактовая частота 1 МГц, при этом ток потребления снижается с 3,54 мА на частоте 16 МГц до 0,54 мА на частоте 1 МГц.
В результате испытаний установлено, что суммарный ток потребления устройства составляет 17,7 мА. При использовании литий-полимерного аккумулятора емкостью 2800 мАч, время работы в автономном режиме без подзарядки элемента питания составляет 80 часов, т.е. не менее 10 дней, при этом обеспечивается уверенная фиксация препятствий в диапазоне расстояний от 0,02 до 3 мв пределах диаграммы направленности ультразвуковых датчиков.
Испытания подтвердили, что энергопотребление сонара по сравнению с аналогами [4-10] снижено, а время работы без подзарядки элемента питания увеличено в 4-5 раз.
Наличие двух и трех ультразвуковых датчиков позволяет расширить угол обзора и обеспечить панорамность «зрения», т.е. возможность определять наличие препятствий прямо перед человеком, а также слева и справа от него.
На основе проведенных исследований можно сделать следующие выводы:
1. Проведен анализ устройств ультразвукового обнаружения препятствий для слепых.
2. На основании сравнительного анализа, был выбран микроконтроллер с низким энергопотреблением STM8L и оптимальная тактовая частота микроконтроллера.
3. Разработан алгоритм работы микроконтроллера STM8L и программа работы на языке C++. Приведены результаты разработки программной модели и кода программы.
4. Собраны и испытаны макеты сонаров с двумя и тремя сенсорами.
5. Показана возможность наращивания числа сенсоров.
6. Расширен угол обзора сонара за счет наличия нескольких сенсоров.
7. Увеличено время работы устройства в автономном режиме без подзарядки элемента питания за счет применения современной элементной базы, в том числе микроконтроллеров c минимальным энергопотреблением, и разработки соответствующего программного обеспечения.
Литература
микроконтроллер алгоритм программа
1. Ершов, С.О. Системы технического зрения с невизуальным представлением пространственной информации / С.О. Ершов и П. Майер // Известия вузов. Приборостроение, Т. 51, №1. С. 42-47, 2008.
2. Ершов, С.О. Локальные и глобальные программно-аппаратные средства позиционирования и навигации для слепых / С.О. Ершов, П. Мейер, Е.Л. Баки-Бородов // Информатизация и связь, №1, с. 58-62, 2011.
3. Jayant, Sakhardande. Arduino Based Mobility Canell / Jayant Sakhardande, Pratik Pattanayak, Mita Bhowmick //International Journal of Scientific & Engineering Research, Vol. 4, Issue 4, pp 1163-1166, (April 2013).
4. Бюджетное устройство на базе Arduino для незрячих [Електронний ресурс] / Режим доступа: https://future.d3.ru/biudzhetnoe-ustroistvo-na-baze-arduino-dlia-nezriachikh-open-hardware-750859.
5. Ультразвуковые фонарики «Сонар-5УФ» [Електронний ресурс] / Режим доступа: https://www.sites.google.com/site/tehniceskiesredstvadlaslepyh/1-ultrazvukovoj-fonar-sonar-5uf.
6. Сонар для слепых на базе Arduino Mini Pro [Електронний ресурс] / Режим доступа: http://meandr.org/archives/21701.
7. Shubham, Adhe. Ultrasonic Smart Stick for Visually Impaired People / Shubham Adhe, Sachin Kunthewad, Preetam Shinde, Mrs.V.S. Kulkarni // IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-ISSN: 2278-2834, p - ISSN: 2278-8735.PP 11-15 www.iosrjournals.org.
8. Osama, Bader. 3D Ultrasonic Stick for Blind» / Osama Bader, AL-Barrm, Jeen Vinouth // International Journal of Latest Trends in Engineering and Technology (IJLTET), Vol.3, No.3, pp. 108-114, January 2014.
9. Энергопотребление Arduino [Електронний ресурс] / Режим доступа: https://www.arduino.md/arduino_power consumption.
10. Sylvain, Cardin. Wearable Obstacle Detection System for visually impaired peopl / Sylvain Cardin, Daniel Thalmann and Frederic Vexo // Virtual Reality Laboratory (VRlab) Ecole Polytechnique Federale de Lausanne (EPFL) CH-1015 Lausanne, Switzerland {sylvain.cardin, daniel.thalmann, frederic.vexo} @epfl.ch.
11. Костенко, В. Л Информаццонно-измеритетьная система контроля нормированных параметров производственных факторов / Костенко В.Л., Николенко А.А., Поперека Е.Д., Ядрова М В., Тыманюк К С. // Східно-європейский журнал передових технологій. Серия «Информаццонно-управпяющие системы» Т. 3, №9 (69), С. 51-56, 2014.
12. Костенко, В.Л. Информационная система измерения и контроля параметров воздушной среды / Костенко В.Л., Кондратьев С.Б., Ядрова М.В., Попов Д.А. // Вісник НТУ «ХПІ». Серія: «Нові рішення в сучасних технологіях». - Харків НТУ ХПІ, 2017 - №23 (1245). - С. 117-122.
Размещено на Allbest.ru
...Подобные документы
Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010Функциональная спецификация и преимущества термометрического датчика. Структурная схема микроконтроллера РIС16F84A. Алгоритм работы программы, описание функциональных узлов, выбор элементной базы и принципиальная схема терморегулятора для аквариума.
курсовая работа [4,7 M], добавлен 27.12.2009Создание аналого-цифрового устройства для проведения лабораторных работ с использованием микроконтроллера. Разработка структурной и принципиальной схем. Выбор и описание элементной базы, используемого микроконтроллера. Программирование микроконтроллера.
дипломная работа [1,7 M], добавлен 19.07.2014Описание структурной и функциональной схем электронных часов, выбор элементной базы. Разработка счетчика времени с системой управления на базе микроконтроллера. Экономический расчет затрат на проектирование, разработку и сборку макета электронных часов.
дипломная работа [223,5 K], добавлен 26.07.2015Описание интегратора первого порядка. Обзор микроконтроллера AТmega16. Доопределение набора аппаратных средств. Схема включения микроконтроллера. Формирование тактовых импульсов. Организация сброса. Алгоритм работы и проектирование модулей устройства.
курсовая работа [1,1 M], добавлен 19.12.2010Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Разработка микропроцессорной системы на основе микроконтроллера. Методы и средства совместной отладки аппаратных и программных средств. Структурная схема и функциональная спецификация устройства - регулятора яркости ламп накаливания. Алгоритм управления.
дипломная работа [1,4 M], добавлен 15.07.2010Разработка и описание структурно-функциональной схемы к динамику. Принципы построения устройства синтезатора звуковых сообщений, работа с таймером микроконтроллера. Выбор элементной базы. Разработка программного обеспечения, алгоритм и листинг программы.
курсовая работа [387,9 K], добавлен 24.12.2012Описание объекта и функциональная спецификация. Структурная схема, расположение выводов, конструктивные размеры микроконтроллера РIС16F84A. Алгоритм программы тахометра. Описание функциональных узлов МПС. Описание выбора элементной базы и работы схемы.
курсовая работа [2,4 M], добавлен 27.12.2009Разработка схемы без включения элементной базы с нужными функциональными узлами. Цоколевка корпуса МК51 и наименования выводов. Принцип работы датчиков под воздействием внешнего магнитного поля. Эффект Холла. Граф состояния системы микроконтроллера.
курсовая работа [1,3 M], добавлен 08.03.2013Роль микроконтроллерных технологий в развитии микроэлектроники. Алгоритм разработки микропроцессорной системы термометр-часы на базе микроконтроллера PIC16F84A. Разработка схемы электрической принципиальной устройства и программы для микроконтроллера.
курсовая работа [584,1 K], добавлен 19.03.2012Построение структурной, функциональной и принципиальной схем электронного термометра на основе микроконтороллера, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, алгоритм работы системы и программный код.
курсовая работа [2,4 M], добавлен 27.12.2009Разработка малогабаритного автомобильного термометра на базе микроконтроллера и требования к нему. Проектирование функциональной схемы, работа измерителя. Выбор элементной базы. Схема включения усилителя. Архитектура и элементы микроконтроллера.
контрольная работа [841,4 K], добавлен 22.05.2015Принцип работы электрических термометров, преимущества использования. Структурная схема устройства, выбор элементной базы, средств индикации. Выбор микроконтроллера, разработка функциональной схемы устройства. Блок-схема алгоритма работы термометра.
курсовая работа [3,6 M], добавлен 23.05.2012Алгоритм работы схемы микропроцессорного устройства и протокол обмена информацией между ним и объектом управления. Составление карты памяти для микропроцессора. Разработка программы на языке Ассемблера для выбранного микропроцессора и микроконтроллера.
контрольная работа [207,8 K], добавлен 29.06.2015Разработка микропроцессорной системы на основе микроконтроллера. Проектирование аппаратных средств. Характеристика этапов разработки многофункциональных астрономических часов: функциональная схема, алгоритм управления, описание и расчет элементной базы.
дипломная работа [6,9 M], добавлен 14.07.2010Описание Автоматического Определителя Номера (АОНа). Характеристики микроконтроллера Z86E0812PSC, ЖК индикатора PANAPHONE. Ассемблирование и разработка алгоритма работы устройства. Управление АОН и описание функциональных узлов МПС, принципиальная схема.
курсовая работа [913,0 K], добавлен 26.12.2009Электрическая принципиальная схема устройства автоматической тренировки аккумулятора. Выбор элементной базы. Разработка схемы электрической принципиальной. Размещение компонентов на печатной плате. Разработка алгоритма программы микроконтроллера.
дипломная работа [670,2 K], добавлен 20.10.2013Особенности проектирования микропроцессорного устройства "Цифровой осциллограф". Выбор микроконтроллера, описание периферийных устройств. Разработка принципиальной схемы устройства и программы для микроконтроллера, осуществляющей все функции устройства.
курсовая работа [923,5 K], добавлен 24.12.2012