АрдуиноМетодПособое_240123. Методическое пособие для преподавателей Обучение робототехническому программированию на основе комплексной платформы Arduino
Скачать 6.18 Mb.
|
Входы и выходы микроконтроллераУ робота есть органы для взаимодействия с окружающей средой. Органы, которые получают информацию из окружающей среды, называются рецепторами илидатчиками, например, фототранзистор, микрофон, контактный датчик (кнопка). А органы, которые воздействуют на окружающую среду – эффекторы:двигатели, динамики, светодиоды и прочие (см.рис.8.). У микроконтроллера есть некоторое количество входов и выходов. К входам мы можем присоединить рецепторы, а к выходам эффекторы. Микроконтроллер может обрабатывать информацию с входов и создавать электрические сигналы на выходах в соответствии с тем, как мы запрограммируем поведение робота(см.рис.9.). Для создания подобного робота предстоит: Изучить основы архитектуры микроконтроллеров и микроЭВМ Изготовить контроллер робота Научиться азам программирования на языке Си (для этого предстоит выполнить ряд лабораторных работ по программированию) Изготовить ходовую часть робота, датчики и т.п. Рис.8. Необходимые роботу эффекторы и рецепторы Рис.9. Робот, управляемый микроконтроллером и решающий задачу движения по полосе. На таблице №4 приведены часто встречаемые электронные компоненты, которые позволяют студенту их идентифицировать и возможно понять принцип их действия
Подведение итогов темы и ответы на вопросы студентов (5минут). Контрольные вопросы: 1. Что такое микроконтроллер? 2. Что такое рецепторы? 3. Что такое эффекторы ? 4. Для создания простого робота , что надо знать и сделать? 5. Что такие электрические компоненты Arduino? Тема №5. Радиосигналы. Тип и форма: Ознакомления с новым материалом (лекция, практические занятия). Основные понятия, рассматриваемые на занятии: Электромагнитные колебания; Аналоговые сигналы; Цифровые сигналы; Радиоволны – это электромагнитные колебания, распространяющиеся в пространстве со скоростью света (300 000 км/сек). Свет это тоже электромагнитные волны, обладающие схожими с радиоволнами свойствами (отражение, преломление, затухание и т.п.). Радиоволны переносят через пространство энергию, излучаемую генератором электромагнитных колебаний. А рождаются они при изменении электрического поля, например, когда через проводник проходит переменный электрический ток. 1 Гц – это одно колебание в секунду, 1 мегагерц (МГц) – миллион колебаний в секунду. Длина волны в метрах рассчитывается по формул l = 300 / f где f – частота электромагнитного излучения в МГц. С увеличением частоты длина волны уменьшается. Каждой радиослужбе выделен свой участок диапазона или фиксированные частоты (см.рис.9). Рис.9. Международный диапазон частот Ана́логовый сигна́л - это сигнал, порождаемый физическим процессом, параметры которого можно измерить в любой момент времени [13]. Техническое определение аналогового сигнала дается в ГОСТе, посвященном передаче данных. Аналоговый сигнал — сигнал данных, у которого каждый из представленных параметров описывается функцией времени и непрерывным множеством возможных значений/(см.рис.10).. Дискре́тный сигна́л (лат. discretus — «прерывистый», «разделённый») — сигнал, который является прерывистым (в отличие от аналогового) и который изменяется во времени и принимает любое значение из списка возможных значений. Список возможных значений может быть непрерывным или квантованным/ Рис.10. Сигналы. Цифровой сигнал — сигнал, который можно представить в виде последовательности дискретных (цифровых) значений(см.рис.10). В наше время наиболее распространены двоичные цифровые сигналы (битовый поток) в связи с простотой кодирования и используемостью в двоичной электронике. Для передачи цифрового сигнала по аналоговым каналам (например, электрическим или радиоканалам) используются различные виды манипуляции (модуляции). Подведение итогов темы и ответы на вопросы студентов (5минут). Контрольные вопросы: 1. Что такое сигнал? 2. Что такое международный диапазон астот? 3. Что такое аналоговый сигнал ? 4. Что такое дискретный сигнал? 5. Что такое цифровой сигнал? Тема №6. Основные датчики для умных DIY – устройств. Тип и форма: Ознакомления с новым материалом (лекция, практические занятия). Основные понятия, рассматриваемые на занятии: Выходной сигнал датчика. Климатические датчики. Датчики расстояния и движения. Датчики света и цвета. Датчики расстояния и движения. Датчик (или сенсор) является средством измерений, преобразующим контролируемый параметр в удобный для использования сигнал, как правило, электрический. Отдельный датчик может измерять одну или одновременно несколько физических величин [8]. Основными характеристиками датчиков являются чувствительность и погрешность. В рамках концепции Интернета Вещей сенсоры служат необходимым проводником электронных систем в реальный мир. Датчики можно разделить по измеряемой величине: • Датчики давления: – Абсолютного давления – Избыточного давления • Датчики расхода: – Механические счетчики расхода – Электромагнитные расходомеры • Датчики уровня: – Поплавковые – Кондуктометрический – Ёмкостные – Ультразвуковые • Датчики температуры • Датчики радиоактивности • Датчики вибрации • Датчики влажности Также можно разделять сенсоры по принципу измерения: • Волоконно-оптические • Оптические датчики (фотодатчики) • Магнитоэлектрические датчики (на основе эффекта Холла) • Пьезоэлектрические датчики • Тензопреобразователи • Емкостные датчики • Потенциометрические датчики • Индуктивные датчики И по среде передачи сигналов: • Проводные • Беспроводные По характеру выходного сигнала: • Дискретные • Аналоговые • Цифровые • Импульсные DIY (англ. Do It Yourself) или “сделай сам”, “самоделки”, - это термин, обозначающий самостоятельную сборку и разработку самых различных предметов от полки для книг до электромобиля. Основное отличие DIY-проектов - для их реализации нет необходимости в промышленном инструменте. В сфере Интернета Вещей популярно создание различных умных вещей (умных выключателей, чайников) и систем мониторинга.Большинство датчиков для самостоятельной сборки проектов используют для передачи сигнала провод, присоединяясь к микроконтроллеру. Далее представлены некоторые датчики, которые распространены в IoT DIY проектах. Для удобства они разделены на несколько категорий: Климатические датчики • Датчик атмосферного давления BMP280. Модуль представляет собой высокоточный цифровой измеритель атмосферного давления на базе микрочипа BMP280. Интерфейс обмена данными цифровой (SPI и I2C). • Датчик температуры и влажности DHT11 и DHT22. Эти датчики одни из самых популярных, определяют влажность и температуру, состоят из емкостного датчика влажности и термистора. Внутри датчика уже встроен АЦП, выходной сигнал цифровой и может быть считан одноплатным компьютером. Основное отличие DHT22 от DHT11 в большем разрешении и частоте измерений, что позволяет точнее пределять температуру и влажность, также у DHT22 шире границы измерений от -40 до 80 градусов Цельсия и от 0 до 100% влажности, против диапазона 0-50 градусов Цельсия и 20-95% у DHT11 [9]. Датчики света и цвета • Датчик цвета DFR0022. • Аналоговый датчик оттенков серого цвета. • Датчик ультрафиолета. • Датчик света на базе фоторезистора и LM393. Датчик имеет как аналоговый, так и цифровой выход, для цифрового сигнала используется компаратор аналоговых сигналов (LM393). Датчики газа • Инфракрасный датчик движения HC-SR501. • Ультразвуковой дальномер HC-SR04 (датчик расстояния). Датчики газа • Датчик угарного газа и углеводородных газов MQ-9. • Детектор дыма NAP-07. Датчики звука • Датчик звука (sound sensor) пороговый. • Датчики механического воздействия. • Датчик вибрации SW420. Датчик расхода воды, потока воды YF-S201 (G1/2). Датчик модели YF-S201 предназначен для измерения объема проходящей жидкости в диапазоне от 1 до 30 литров в минуту при давлении не более 1,75 МПа. Датчик присоединяется к трубе или шлангу с помощью гайки. Состоит из пластикового корпуса, водяного ротора с магнитами и датчика Холла. Проходящая вода вращает магнит, что в свою очередь создает импульсы на проводе: 450 импульсов на 1 литр воды. Скорость вращения ротора прямо пропорциональна скорости водяного потока. Чем выше скорость, тем чаще магниты проходят рядом с датчиком Холла, тем больше импульсов на информационном выходе датчика. Практический пример: Все датчики нужные для проекта «умный дом» приведены в таблице №5. Вся программно – техническая работа системы «Умный дом» основана на целом комплексе датчиков, отслеживающих различные параметры окружающего пространства. Независимо от разнообразии конструкции, все они действуют по одному принципу – передают данные на базовый управляющий модуль при помощи Wi-Fi, GSM-связи, или радиосигнала. Базовый управляющий модуль в свою очередь, анализирует ситуацию и отдаёт приказ приборам на то или иное действие и о происшедшем события мгновенно сообщает владельцу дома по телефону.
Подведение итогов темы и ответы на вопросы студентов (5минут). Контрольные вопросы.: 1. По характеру выходного сигнала датчики разделяются на…? 2. Что можно измерить при помощи датчика DHT11? 3. Как называется сравнивающее устройство, принимающее на свои входы два аналоговых сигнала, и выдающее на выходе логический 0 или логическую 1? 4. Что такие Дискретные, аналоговые, цифровые, импульсные сигналы? 5. Что такое интеллектуальные устройства? 6. Что такие умные объекты? Тема №7. Среда программирование IDE Arduino. Основы программирования Arduino. Тип и форма: Ознакомления с новым материалом (лекция, практические занятия). Основные понятия, рассматриваемые на занятии: Техническая платформа Arduino; Рабочая среда программирования IDE Arduino; Написания скетч (программирование). На рисунке 12 приведено расположения набора кнопок с назначениями ленты среды программирования. Рис.11. Интерфейс языка программирования. Интерфейс скетч (программы) выглядит на рис.11. Писать программы можно на специально разработанном для Arduino упрощенном языке C AVR. по сути это набор библиотек, который называют Wiring. Использование которого облегчает код и ускоряет его работу. В верхней части окна присутствует привычное меню, где можно открыть файл, настройки, выбрать плату, с которой вы работаете (Uno, Nano и много-много других) а также открыть проекты с готовыми примерами кода. Рис.12. Интерфейс скетча. Рассмотрим первую программу «Blink» рисунка 12, который находится в библиотеке Arduino. В начале командой pinMode мы задаем микроконтроллеру назначить порт со светодиодом на выход. В коде нет объявления переменной “ledPin”, дело в том, что в платах Uno, Nano и других с завода к 13 выводу подключен встроенный светодиод и он распаян на плате. Он может быть использован для индикации программы мигалок. Далее мы строкой digitalWrite(ledPin, HIGH) установили вывод к которому подпаян светодиод в единицу (5 В), следующая строка delay(1000) заставляет микроконтроллера подождать 1 секунду, а затем строкой digitalWrite(ledPin, LOW) выключаем светодиод, и строкой delay(1000) задерживаем на 1 секунду. И так в цикле void loop() будет повторятся бесконечно. 7.1. Основы программирования Arduino. Тип и форма занятия: Ознакомления с новым материалом (лекция, практические занятия, беседа, демонстрация). Основные понятия, рассматриваемые на занятии: • Переменные. • Типы данных (см.таб.№7). • Операторы (см.таб.№8). • Комментарии. • Встроенные функции. Язык программирования отладочных плат Arduino основан на C/C++, но имеет ряд особенностей, связанных с управлением устройствами реального мира и электронными схемами.
Рассмотрим некоторые встроенные функции, для удобства разбиты на группы. Функции работы с временем: delay(x) - остановка программы на x миллисекунд. delayMicroseconds(x) - остановка программы на x микросекунд. millis() - возвращает количество миллисекунд, прошедших от запуска программы. Работа с контактами (пинами) платы. pinMode(x,mode) - устанавливает режим работы пина x в режим вывода (mode=’OUTPUT’) или ввод (mode=’INPUT’). digitalWrite(x,value) - подает логическую единицу (можно записывать как HIGH, true, 1) или логический 0 (можно записывать как LOW. false, 0) значение на цифровой выход x. digitalRead(x) - считывает значение (логическую 1 или 0) с входа х. analogRead(х) - считывает значение с аналогового входа х, преобразуя уровень напряжения в цифровое значение. В большинстве плат Arduino аналоговый вход принимает на вход от 0 до 5 вольт. Этот диапазон будет разбит на 1024 участка от 0 до 1023, с шагом около (0.0049 Вольт). Таким образом, можно считывать, например, уровень освещенности. analogWrite(x,value) - формирует заданное аналоговое напряжение (value) на выводе номер х в виде ШИМ-сигнала. Математические функции min(x,y) - функция возвращает минимальное значение из двух значений x и y. max(x,y) - функция возвращает максимальное значение из двух значений x и y. random(x,y) - функция возвращает случайное значение в диапазоне от x до y. abs(x) - возвращает модуль числа x. map(x, fromLow, fromHigh, toLow, toHigh) - возвращает значение x, в новом диапазоне. Например, map(5, 0, 10, 0, 100) вернет 50. pow(x, exponent) - возводит число х в указанную степень. sqrt(x) - вычисление квадратного корня из числа х. sin(x) - вычисление синуса х. cos(x) - вычисление косинуса х. Serial позволяет плате Arduino обмениваться данными с компьютером и выводить сообщения в монитор последовательного интерфейса (Serial monitor). Serial.begin(speed) - открывает соединение с заданной скоростью передачи данных в бит/c. Часто используют скорость 9600 бит/с. Serial.end() - закрывает соединение. Serial.print(s) - передает значение переменной s. Serial.read() - считывает байт данных из буфера последовательного соединения. 7.2. Основы программирования Arduino. Тип и форма занятия: Ознакомления с новым материалом (лекция, практические занятия, беседа, демонстрация). Язык можно разделить на четыре раздела: операторы, данные, функции и библиотеки. В таблице №9 представлены функции операторов языка программирования с примерами и описаниями.
Примеры написания скетча. Пример №1: Считываем с датчика освещенности уровень яркости и если он меньше половины, то включаем светодиод, подключенный к выходу №9. Скетч к примеру №1: int analogSensorPin = 3; int ledPin = 9; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ if(analogRead(analogSensorPin)<512){ digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } } Можно объединять несколько частей условия при помощи логических операторов: && - И || - ИЛИ ! - НЕ (отрицание) Пример №2: В условие из предыдущего примера можем добавить еще один датчик и включать свет, только, если их показания не отличаются больше, чем на 70 единиц. Скетчкпримеру №2: int analogSensor1Pin = 3; int analogSensor2Pin = 4; int ledPin = 9; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ int valueSensor1 = analogRead(analogSensor1Pin); int valueSensor2 = analogRead(analogSensor2Pin); if((valueSensor1<512) && (abs(valueSensor1- valueSensor2)<=70)){ digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } } Пример №3: Функции, вычисляющей среднее трех целых чисел. float average(int x1, int x2, int x3){ int sum =x1+x2+x3; return sum/3; } // Функция имеет имя “average”, возвращает значение при помощи return. Пример №4: :-. Светодиод постепено будет тускнет. int PWMpin = 13; //СД подключен через резистор 220 ом на 13 выводе. void setup(){ } void loop(){ for ((int i=0; i<=255; i++) { analogWrite(PWMpin,i) delay(10); } } Подведение итогов темы и ответы на вопросы студентов (5минут). Контрольные вопросы: 1. Язык программирование? 2. Среда программирования IDE? 3. Из чего состоит Интерфейс программирования IDE? 4.Основная конструкция Язык программирования? 5. Что такое скетч? 6. Что такое компиляция? 7. Что такое отладка скетча? 8. Что такое плата Arduino? 9. Что такое библиотека Arduino? 10. Что такое прошивка? 11. Назначение команды pinMode? 12.Назначение команды Delay? 13. Переменные? 14. Типы данных? 15. Математические функции? 16. Назначение оператора setup()? 17. Назначение оператора loop()? 18. Назовите управляющих операторов? Тема №8. Электронные схемы и TinkerCad. Тип и форма занятия: Ознакомления с новым материалом (лекция, практические занятия, демонстрация). Основные понятия, рассматриваемые на занятии: Tinkercad; Симуляция и эмуляция; Основные элементы интерфейса Tinkercad; Практические занятия. Тинкеркад (Tinkercad Circuits Arduino) – Это эмулятор Arduino, который позволяет собирать электрические цепи и программировать Ардуино и проверить работоспособность, смоделировав процесс. Что достаточно удобно для студентов изучать Ардуино и робототехнику. Чтобы начать работы достаточно зарегистрироваться в Tinkercad интернета. Возможности симулятора Tinkercad для разработчика ArduinoОнлайн платформа, для работы не нужно ничего кроме браузера и устойчивого интернета. Удобный графический редактор для визуального построения электронных схем. Предустановленный набор моделей большинства популярных электронных компонентов, отсортированный по типам компонентов. Симулятор электронных схем, с помощью которого можно подключить созданное виртуальное устройство к виртуальному источнику питания и проследить, как оно будет работать. Симуляторы датчиков и инструментов внешнего воздействия. Вы можете менять показания датчиков, следя за тем, как на них реагирует система. Встроенный редактор Arduino с монитором порта и возможностью пошаговой отладки. Готовые для развертывания проекты Arduino со схемами и кодом. Визуальный редактор кода Arduino. Возможность интеграции с остальной функциональностью Tinkercad и быстрого создания для вашего устройства корпуса и других конструктивных элементов – обрисованная модель может быть сразу же сброшена на 3D-принтер. |