Дятьковский филиал
государственного автономного профессионального образовательного
учреждения «Брянский техникум энергомашиностроения и радиоэлектроники
имени Героя Советского Союза М.А.Афанасьева»
Студенческая научно-практическая конференция
«НАУКА И ТВОРЧЕСТВО – 2024»
ИССЛЕДОВАТЕЛЬСКАЯ РАБОТА
«ЭЛЕКТРОННАЯ ЛЕТУЧАЯ МЫШЬ»
Автор (-ы): Павликов И.В
Азаров Д.А.
__________________
(Ф.И.О.обучающихся)
Студент (-ы) группы М-12
Руководитель: Барташевич А.С.
(Ф.И.О. преподавателя)
г. Дятьково, 2024г.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
СПИСОК СОКРАЩЕНИЙ И ТЕРМИНОВ 4
ОСНОВНАЯ ЧАСТЬ 5
ЗАКЛЮЧЕНИЕ 14
СПИСОК ЛИТЕРАТУРЫ 15
ВВЕДЕНИЕ
Ультразвуковые датчики уже много лет являются популярным методом измерения расстояний и обнаружения объектов. Их основной принцип работы заключается в измерении количества времени, необходимого для излучаемого ультразвукового импульса звука, чтобы отразиться от объекта и вернуться, отсюда и название ультразвуковой датчик.
Поскольку рынок автономных роботов, транспортных средств и другой подобной электроники продолжает расти, ультразвуковые датчики находят новые применения благодаря своим возможностям и гибкости в различных конструкциях.
Если вам нужно бесконтактным способом измерить расстояние до объекта, находящегося на некотором расстоянии перед вами, или до какой-нибудь крупной преграды, то для этого можно использовать ультразвуковой датчик. Такие датчики широко используются в конструкциях автономных роботов, транспортных средствах и системах автоматизации различных технологических процессов.
Такую технологию для измерения расстояния до объектов, например, препятствий и насекомых используют летучие мыши. Это позволяет им летать и охотится на добычу в полной темноте.
Цель нашего проекта изготовить электронный аналог органов чувств летучих мышей – ультразвуковой сонар.
В процессе работы над проектом были поставлены следующие задачи:
- Используя отладочную плату Arduino Uno на основе микроконтроллера создать устройство для определения расстояния;
- запрограммировать наше микроконтроллерное устройство на языке С++
- установить все компоненты в корпус и испытать устройство.
СПИСОК СОКРАЩЕНИЙ И ТЕРМИНОВ
1. Отладочная плата Arduino Uno - Arduino UNO представляет из себя отладочный комплекс, выполненный на базе микроконтроллера ATMega328. Проще говоря – это обычная плата, которая является «посредником» между пользователем и микроконтроллером, позволяя удобно цепляться к его ножкам и загружать в него прошивку прямо из среды программирования.
2. Язык С++ C++ (читается си-плюс-плюс[2][3]) — компилируемый, статически типизированный язык программирования общего назначения.
3. Микроконтроллер Microchip (Atmel) ATmega328P-AU в корпусе TQFP32 - чип на архитектуре AVR с разрядностью 8 бит и тактовой частотой 20 МГц. Используется для создания управляющих плат, промышленных устройств и умных гаджетов.
4. ESP32 — серия недорогих микропроцессоров с малым энергопотреблением китайской компании Espressif Systems. Это система на кристалле с интегрированными контроллерами радиосвязи Wi-Fi, Bluetooth и Thread. В микросхему интегрирован радиочастотный тракт: симметрирующий трансформатор, встроенные антенные коммутаторы, радиочастотные компоненты, малошумящий усилитель, усилитель мощности, фильтры и модули управления питанием.
ОСНОВНАЯ ЧАСТЬ
Основой нашего устройства станет отладочная плата Arduino Nano. Устройство представляет собой небольшую плату, оснащенную микроконтроллером ATmega328P. Подключается ESP32 к компьютеру через обычный USB провод (рис.1)
Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.
Рис 1. Отладочная плата Arduino Nano. Так же на плате имеются специальные коннекторы для подключения источника питания, цифровые и аналоговые входы и выходы.
Технические характеристики Arduino Nano:
Напряжение питания 5В;
Входное питание 7-12В (рекомендованное);
Количество цифровых пинов – 14, из них 6 могут использоваться в качестве выходов ШИМ;
8 аналоговых входов;
Максимальный ток цифрового выхода 40 мА;
Флэш- память 16 Кб или 32 Кб, в зависимости от чипа;
ОЗУ 1 Кб или 2 Кб, в зависимости от чипа;
EEPROM 512 байт или 1 Кб;
Частота 16 МГц;
Размеры 19 х 42 мм;
Вес 7 г.
Второй важный компонент нашего проекта –сам ультразвуковой датчик. Будем использовать наиболее простой и распространенный HC SR04 (рис.2)
Рис.2 Ультразвуковой датчик, состоит из передатчика и приемника звуковых волн.
Диапазон дальности его измерения составляет от 2 до 400 см.
Датчик имеет 4 вывода: + питание 5В, GND (земля) и контакт Trig и Echo.
Питание датчика осуществляется от самой отладочной платы, для этого предусмотрены выводы +5 В и GND (земля). Для питания самой платы Arduino будем использовать батарею 9В.
Отображать информацию о расстоянии для объекта будем на LCD 1602.
Рис. 3 Жидкокристаллический дисплей LCD 1602
Схема взаимодействия с Arduino
Для получения данных, необходимо выполнить такую последовательность действий:
1.Подать на выход Trig импульс длительностью 10 микросекунд;
В ультразвуковом датчике, подключенном к Arduino произойдет преобразование сигнала в 8 импульсов с частотой 40 кГц, которые через излучатель будут посланы вперед;
2. Когда импульсы дойдут до препятствия, они отразятся от него и будут приняты приемником R, что обеспечит наличие входного сигнала на выходе Echo;
3. На стороне контроллера полученный сигнал при помощи формул следует перевести в расстояние.
При делении ширины импульса на 58.2, получим данные в сантиметрах, при делении на 148 – в дюймах.
Ход работы над проектом
Для реализации нашей идеи необходимо:
1. Подключить ультразвуковой датчик и LCD к плате Arduino;
2 Загрузить в память микроконтроллера управляющую микропрограмму, так называемый «скетч»[1];
3. Выбрать корпус нашего устройства и смонтировать компоненты. Проверить изделие в работе.
Итак, приступим!
Рис. 4 и 5 Отладочная плата, ультразвуковой датчик и батарея подключены.
Скетч для нашего проекта имеет вид:
//подключаем нужные библиотеки #include <LiquidCrystal_I2C.h> #include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея
const int trigPin = 8; //Trig pin подключаем к Arduino pin 8 const int echoPin = 9; //Echo pin подключаем к Arduino pin 9 const int ledPin = 13; // 13 – если будете использовать встроенный в Arduino светодиод
void setup() { pinMode(trigPin, OUTPUT); // задаем триггер - выходной пин pinMode(echoPin, INPUT); // задаем эхо - входной пин pinMode(ledPin, OUTPUT); // задаем светодиод - выходной пин Serial.begin(9600); // инициализация послед. порта Wire.begin(); lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.print("Distance:"); //печатаем текст } void loop() { long distance = getDistance(); // получаем дистанцию с датчика Serial.println(distance); // выводим в последовательный порт lcd.setCursor(10,0); //устанавливаем курсор lcd.print(distance); //выводим на lcd lcd.print("cm"); //печатаем текст cm lcd.print(" "); //печатаем пробелы для стирания лишних символов при увеличении разрядности значений delay(300);// поставил задержку, чтобы цифры на экране не рябили if (distance<20) // задаем нужную дистанцию, например менее 20 сантиметров { digitalWrite(ledPin, 1); // включаем светодиод lcd.setCursor(0,1); //устанавливаем курсор в начало первой строчки lcd.print("Attention"); //печатаем Внимание } else { digitalWrite(ledPin, 0); // иначе выключаем lcd.setCursor(0,1); //устанавливаем курсор в начало второй строчки lcd.print("Normal "); //печатаем Норма } } // Определение дистанции до объекта в см long getDistance() { long distacne_cm = getEchoTiming() * 1.71 * 0.01; //коэффициент пересчета, аналогичен делению на 58.4 return distacne_cm; } // Определение времени задержки long getEchoTiming() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); // генерируем импульс запуска delayMicroseconds(10); digitalWrite(trigPin, LOW); // определение на пине echoPin длительности уровня HIGH, мксек: long duration = pulseIn(echoPin, HIGH); return duration; delay(100); |
После загрузки программы в память микроконтроллера подключим дисплей и подадим питание. Наше устройство включится и начнет измерять расстояния. Данные будут обновляться с периодичностью в 0.1сек, при уменьшении расстояния до препятствия до значения 20 см на экране появится надпись «Attention!» (Внимание!)
Рис. 6 Устройство измеряет расстояние до препятствия.
ЗАКЛЮЧЕНИЕ
В результате работы над проектом мы полностью достигли поставленных целей и реализовали свой проект от стадии идеи до готового изделия. Мы создали ультразвуковой сонар, электронную «летучую мышь» тем самым сделали первые шаги в изучении одного из удивительных способов ориентации в пространстве - эхолокации.
Использовать эхолокацию людям позволяют специальные приборы, например, в медицине. При ультразвуковом исследовании (УЗИ) используется ультразвук в диапазоне от 2 до 10 мегагерц: такие волны проникают в толщу тканей организма. Датчик улавливает отраженный от плотных органов ультразвуковой сигнал и преобразует его в изображение на мониторе.
Тот же принцип действует при ультразвуковой диагностике труб на теплотрассах и водопроводах. Волны частотой от 0,5 до 10 мегагерц проникают сквозь металлические и неметаллические материалы и графически отображаются на мониторе прибора — дефектоскопа. Если волна встречает на своем пути препятствия (неровности, коррозию, трещины), ее рисунок на мониторе меняется. Амплитуда отраженной волны указывает на размер дефекта, по изображению импульса специалист понимает, где находятся дефекты, сколько их и так далее.
СПИСОК ЛИТЕРАТУРЫ
1. Еременко В.Т. Основы электротехники и электроники: учебник для высшего профессионального образования. М. 2019 529с.
2. Рейзлин В.И. Язык С++ и программирование на нём: учебное пособие / В.И. Рейзлин; Томский политехнический университет. – 3-е изд., перераб. – Томск: Изд-во Томского политехнического университета, 2021. – 208 с.
3. Устройство ATmega328P: распиновка, даташит и Old Bootloader https://www.ruselectronic.com/atmega328p/?ysclid=lsuqf6nku4491416435
4. Ярочкина Г.В. Основы электротехники. Академия, 2021. 240с.
5. Arduino Nano 3.0 - распиновка, схема, подключение, примеры https://arduinomaster.ru/platy-arduino/plata-arduino-nano/?ysclid=lsx5c7jvtq730289949
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.