Главная страница
Навигация по странице:

  • Федеральное государственное бюджетное образовательное учреждение высшего образования

  • Владимир, 2021 Содержание 1. Анализ модуля Arduino с микроконтроллером. Исходные данные…...4

  • 5. Написание кода программы………………………………………………..12 Вывод…………………………………………………………………………….16 Список литературы……………………………………………………………17 Введение

  • Анализ модуля Arduino с микроконтроллером. Исходные данные

  • Используемые инструменты

  • Создание алгоритмов управления

  • Аналого-цифровой преобразователь

  • Широ́тно-и́мпульсной модуля́ции

  • 8 совместимых с Arduino датчиков температуры для ваших электронных проектов

  • Отчёт по практической работе. Разбор модуля с микроконтроллером Arduino


    Скачать 379.89 Kb.
    НазваниеРазбор модуля с микроконтроллером Arduino
    Дата26.01.2022
    Размер379.89 Kb.
    Формат файлаdocx
    Имя файлаОтчёт по практической работе.docx
    ТипОтчет
    #342576

    Министерство науки и высшего образования Российской Федерации

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

    Кафедра: Автоматизация, мехатроника и роботехника

    «Отчёт»

    на тему: «Разбор модуля с микроконтроллером Arduino»
    Выполнил:

    студентк группы МРсп-119

    Аксёнов Е. А.

    Руководитель:

    Родионов Р.В.

    Владимир, 2021

    Содержание

    1. Анализ модуля Arduino с микроконтроллером. Исходные данные…...4

    2. Используемые инструменты………………………………………….……..7

    3. Структурная схема системы управления………………………………...10

    4. Создание алгоритмов управления………………………………...11

    5. Написание кода программы………………………………………………..12

    Вывод…………………………………………………………………………….16

    Список литературы……………………………………………………………17

    Введение

    Отчёт представляет собой анализ модуля Arduino с микроконтроллером

    Для его анализа нам потребуеться:

    1. Изучения его периферийного модуля- данном случае датчик температуры.

    2. Определить интерфей взаимодейсвия периферийного модуля с процессорным (сигналы передачи данных, протокол)

    3. Составить алгоритм работы.

    4. Разобраться с программным кодом работы (между периферийным модулем и процессорным).

    Результатом проделанной практической работы и как следствие его проверкой является, корректное изучение матерела и проработанных вопросов, алгоритмов и программного кода.



    1. Анализ модуля Arduino с микроконтроллером. Исходные данные

    Arduino — это электронная платформа с открытым исходным кодом, который может быть запрограммирован для анализа и производства электрических сигналов, которая позволяет взаимодействовать с окружающим миром. Это платформа, основанная на простом интерфейсе ввода и вывода. Изображен на рисунке 1.



    Рисунок 1. модуль Arduino с микроконтроллером.

    Arduino на аппаратном уровне это серия состоит из смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR.


    Платы имеют всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).

    платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.

    Производители выпускают большое количество плат, различающихся характеристиками микроконтроллера, количеством портов и функциональным назначением:

    1. Arduino Nano — различие с UNO только в конструктивном исполнении. Nano меньше.

    2. Arduino Mega — плата на базе мощного микроконтроллера. Имеет большое количество портов.

    3. Arduino Micro — имеет встроенную поддержку USB-соединения, а потому может использоваться как HID-устройство (клавиатура, мышь, MIDI-устройство).

    4. Arduino Ethernet — имеет возможность подключения к сети через Ethernet-провод. На плате также расположен слот для microSD карточки.

    5. Arduino Mini — по характеристикам немного уступает UNO. Преимуществом платы является её миниатюрное исполнение.

    6. Arduino Due — плата на базе 32-разрядного ARM микроконтроллера. Имеет преимущество в производительности по сравнению с остальными.

    7. Arduino LilyPad — форм-фактор позволяет использовать плату в предметах одежды и текстиля.

    8. Arduino Yún — «нужно было ставить линукс…». Имеет поддержку дистрибутива Linux, встроенную поддержку Ethernet и Wi-Fi, слот для microSD. Как и Micro, имеет встроенную поддержку USB-соединения.



    Модуля Arduino Diecimila с микроконтроллером ATmega168 следующие характеристики:

    1. Флэш-ko - 16

    2. EEPROM, КБ – 0,5

    3. КБ SRAM - 1

    4. Цифровых входов/выходов - 14

    5. Аналоговый ввода ПИН - 6

    6. USB интерфейс типа – FTDI

    7. Размер – 68,6x53,3 мм


    1. Используемые инструменты

    Модуля Arduino Diecimila с микроконтроллером ATmega168 может использует следящие модули:

    Датчики:

    1. Температуры;

    2. Давления;

    3. Влажности;

    4. Кислотности;

    5. Освещенности;

    6. Уровня воды или других веществ;

    7. Вибраций;

    8. И другие специализированные компоненты.


    Для поставленной задачи будем использовать датчик освещённости, изображенный на рисунке 4.



    Рисунок 4. Фото датчика освещённости BH1750.

    Характеристики датчика освещённости:

    • Спектральная характеристика: близка к визуальной чувствительности;

    • Малое влияние инфракрасного излучения;

    • Функция спящего режима: есть;

    • Фильтрация световых шумов: 50/60 Гц;

    • Рабочее напряжение питания: 3.3-5 В;

    • Ток потребления: 120 мкА;

    • Ток потребления в спящем режиме: 0.01 мкА;

    • Чувствительность: 65536 градаций;

    • Точность в режиме высокого разрешения: 1 Лк;

    • Точность в режиме низкого разрешения: 4 Лк;

    • Период измерения в режиме высокого разрешения: 120 мс;

    • Период измерения в режиме низкого разрешения: 16 мс;

    • Встроенный АЦП;

    • Шина данных: I2C;

    • Калибровка: не требуется;

    • Размеры: 18.5 х 13.9 х 2 мм;

    • Вес: 5 г.

    Простейшим способом определить освещённость чего-либо – использовать фоторезистор, фотодиод или фототранзистор. Можно подключить к Ардуино один из перечисленных вариантов. Для определения изменений освещенности одного фотоэлемента недостаточно, нужен ещё и обычный или подстроечный резистор, возможно её и компаратор, для ступенчатого срабатывания типа "да/нет".

    Этого модуля есть три вывода:

    1. Питание;

    2. Земля;

    3. Цифровой выход с компаратора.

    Так на плате размещен подстроечный резистор для регулировки момента срабатывания компаратора может выдавать цифровой сигнал.

    Примеры использования:

    • Датчик освещенности для фотореле;

    • Сигнализация (в паре с излучателем);

    • Счетчик объектов которые пересекают световой луч и т.д.

    Точных значений добиться сложно, так как для корректной отстройки по освещенности понадобится полноценный люксметр. Фоторезисторы подходят скорее для определения абстрактных величин типа «темно или светло».

    Кроме такой платы можно встретить с дополнительным модулем GY-302. Это датчик освещенности на базе интегральной микросхемы BH-1750. Его особенностью является то, что это цифровой модуль, у него разрядность в 16 бит, общается с микроконтроллерами по шине i2c. 16 бит позволяют измерять освещенность от 1 до 65356 Люкс (Лк).



    1. Структурная схема системы управления

    Управляющим звеном является платформа серии Arduino Diecimila с микроконтроллером ATmega168. Ниже изображена схема его подключения. Вы можете обратить внимание на то, что SDA и SCL подключены к аналоговым пинам микроконтроллера. Она приведена на рисунке 5.



    Рисунок 5. Структура системы управления.

    Это связано с тем, что на этих пинах ардуины реализована шина I2C, в чем можно убедится.датчик является цифровым.

    Преимуществом цифровых сенсоров является то, что не нужно проверять значения каждого экземпляра, составлять таблицы для перевода измеренных величин в реальные шкалы и прочее. В большинстве случаев для цифровых датчиков достаточно просто подключить готовую библиотеку и считывать значения, переведенные в реальные единицы измерения.

    1. Создание алгоритмов управления

    Для начало подключаем датчик к модулю Arduino , пищим программу , проверим работу и сдаём работу.


    1. Написание кода программы

    После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE. Программный код для Arduino принято называть sketches. У скетчей есть два основных метода: setup() и loop(). Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод loop() вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.

    Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).

    Любой пин работает с двумя логическими состояниями: LOW и HIGH, что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный Аналого-цифровой преобразователь, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме Широ́тно-и́мпульсной модуля́ции (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.

    Для базовой работы с платой в библиотеке Arduino есть следующие функции:

    1. pinMode(PIN, type) — указывает назначение конкретного пина PIN (значение type INPUT — вход, OUTPUT — выход);

    2. digitalWrite(PIN, state) — устанавливает логическое состояние на выходе PIN (state LOW — 0, HIGH — 1);

    3. digitalRead(PIN) — возвращает логическое состояние со входа PIN (LOW — 0, HIGH — 1);

    4. analogWrite(PIN, state) — устанавливает аналоговое напряжение на выходе PIN (state в пределах от 0 до 255);

    5. analogRead(PIN) — возвращает значение аналогового уровня сигнала со входа PIN (пределы зависят от разрядности встроенного АЦП. Обычно разрядность составляет 10 бит, следовательно, возвращаемое значение лежит в пределах от 0 до 1023);

    6. delay(ms) — приостанавливает исполнение скетча на заданное количество миллисекунд;

    7. millis() — возвращает количество миллисекунд после момента запуска микроконтроллера.

    В остальном процесс программирования на Arduino такой же, как на стандартном C++. После написания необходимо прошить скетч на микроконтроллер. Платформа Arduino берёт весь процесс прошивки микроконтроллера на себя — лишь необходимо подключить плату к компьютеру.

    Перед прошивкой микроконтроллера нужно выбрать плату из списка в IDE. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат. После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт.

    Для прошивки достаточно нажать кнопку Загрузка. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.

    У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю. Нам нужен класс Serial, который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе Serial существуют небезызвестные методы print() и println().

    В Arduino IDE есть Монитор порта. После его открытия надо убедиться, что Монитор работает на той же скорости, которую указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка «T for Tproger». Обмен данными с компьютером можно использовать для отладки устройства. Код программы изображён на рисунке 8.



    Рисунок 8. Код программы.

    В начале мы говорим программе о том, что нужно подключить библиотеку Wire.h, которая отвечает за связь по линии I2C, и BH1750. В итоге каждые 100мс мы считываем значение с сенсора в Люксах.

    Время, за которое выполняются измерения: В режиме высокого разрешения – 120 мс. В режиме низкого разрешения – 16 мс.

    Вывод

    В ходе работы над отчётам были изучены технические характеристики модуля с микропроцессором, определены возможности робота, изучено ПО, и как следствие изучена программа для управления локальным объектом. В результате выполнения задания и его проверки, датчик корректно выполнил поставленные задачу.


    Список литературы:

    1. Arduino: выбор платы, подключение и первая программа


    - https://tproger.ru/curriculum/arduino-quick-start/

    2. Всё о Arduino -https://instrumentic.info/ru/hardware/arduino.html#gsc.tab=0

    3. Самые популярные датчики для Ардуино


    -https://3dradar.ru/post/48139/

    4. 8 совместимых с Arduino датчиков температуры для ваших электронных проектов - https://www.joyta.ru/13046-8-sovmestimyx-s-arduino-datchikov-temperatury-dlya-vashix-elektronnyx-proektov/



    написать администратору сайта