Главная страница

АрдуиноМетодПособое_240123. Методическое пособие для преподавателей Обучение робототехническому программированию на основе комплексной платформы Arduino


Скачать 6.18 Mb.
НазваниеМетодическое пособие для преподавателей Обучение робототехническому программированию на основе комплексной платформы Arduino
Дата24.01.2023
Размер6.18 Mb.
Формат файлаdocx
Имя файлаАрдуиноМетодПособое_240123.docx
ТипМетодическое пособие
#902201
страница3 из 6
1   2   3   4   5   6

Входы и выходы микроконтроллера


У робота есть органы для взаимодействия с окружающей средой. Органы, которые получают информацию из окружающей среды, называются рецепторами илидатчиками, например, фототранзистор, микрофон, контактный датчик (кнопка). А органы, которые воздействуют на окружающую среду – эффекторы:двигатели, динамики, светодиоды и прочие (см.рис.8.).

У микроконтроллера есть некоторое количество входов и выходов. К входам мы можем присоединить рецепторы, а к выходам эффекторы. Микроконтроллер может обрабатывать информацию с входов и создавать электрические сигналы на выходах в соответствии с тем, как мы запрограммируем поведение робота(см.рис.9.).

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

  • Изучить основы архитектуры микроконтроллеров и микроЭВМ

  • Изготовить контроллер робота

  • Научиться азам программирования на языке Си (для этого предстоит выполнить ряд лабораторных работ по программированию)

  • Изготовить ходовую часть робота, датчики и т.п.

 


Рис.8. Необходимые роботу эффекторы и рецепторы



Рис.9. Робот, управляемый микроконтроллером и решающий задачу движения по полосе.
На таблице №4 приведены часто встречаемые электронные компоненты, которые позволяют студенту их идентифицировать и возможно понять принцип их действия

 


Таблица №4

Электронные компоненты Arduino

Наименование компонента

Назначение

Примечание

LED (светодиод)



Излучает свет, если пропустить через

него небольшой ток. Важно: через светодиод только в одном направлении.

Вид: Похож на небольшую лампочку.

Число выводов: 2 более длинный вывод (анод) подключается к положительному потенциалу. Важно: Работает только при правильном включении. Потребуется резистор для ограничения силы тока.

Диод



Ток через диод может течь только в одну сторону.

Вид: Обычно цилиндрической формы с выводами на противоположных торонах.

Число выводов: 2

Важно: Пропускает ток только в одном направлении

Резистор



Ограничивает силу тока, протекающего в цепи. Вид: Обычно цилиндрической формы с выводами на противоположных сторонах.

Число выводов: 2

Важно: не перепутать номинал.

Транзистор


Используется для коммутации или усиления сигналов.

Вид: Выпускается в разнообразных

корпусах. Название обычно наносится

на корпус.

Число выводов: 3

Важно: Не путать выводы.

Требуется резистор для ограничения силы тока.

Сервопривод



Преобразует электрические импульсы в угол поворота оси.

Вид: Пластиковая коробочка с тремя

проводками и металлической осью с

кронштейном.

Число выводов: 3

Важно: Правильное подключение.

Коллекторный Двиг.

Коллекторный Двигатеель в Вращается, когда через него протекает электрический ток.

Вид: Выглядит как мотор. Обычно цилиндрической формы с осью посередине.


Число выводов: 2

Важно: Используйте транзистор или реле соответствующей мощности для подключения двигателя.

Пьезоэлемент



Импульс тока преобразуется в щелчок. Последовательность импульсов преобразуется в музыкальный тон.

Вид: В этом наборе он выглядит как

черный бочонок. Иногда может

выглядеть как золотой диск.

Число выводов: 2

Важно: Трудно подключить неправильно.



Интегральная схема



Содержит в себе электронику любой

сложности. Вид: Название компонента обычно нанесено на

корпус (часто для того чтобы прочитать требуется увеличительное стекло или хорошее освещение).

Число выводов: от двух до нескольких сотен. В этом наборе TMP36 имеет 3 вывода и 74HC595 имеет 16 выводов.

Важно:

Не перепутать ориентацию микросхемы.

Кнопка



Замыкает контакты при нажатии.

Вид: Маленький квадратик с выводами

внизу и кнопкой наверху.

Число выводов: 4

Важно: Практически квадратная, можно внизу и кнопкой наверху. вставить с поворотом на 90 градусов.

Потенциометр



Резистор с номиналом, величина 3

которого зависит от угла поворота оси. Вид: Выпускается в разнообразных корпусах

Число выводов: 3

Важно: Может иметь линейную или логарифмическую шкалу

Фоторезистор



Резистор с номиналом, величина

которого зависит от интенсивности

падающего на него света.

Вид: бычно выглядит как небольшой диск с прозрачным покрытием и зигзагообразным проводником под ним.

Число выводов: 2

Важно: Чтобы получить полезный сигнал, необходимо использовать фоторезистор как часть делителя напряжения


Подведение итогов темы и ответы на вопросы студентов (5минут).
Контрольные вопросы:

  1. 1. Что такое микроконтроллер?

  2. 2. Что такое рецепторы?

  1. 3. Что такое эффекторы ?

  2. 4. Для создания простого робота , что надо знать и сделать?

  3. 5. Что такие электрические компоненты Arduino?



Тема №5. Радиосигналы.

Тип и форма: Ознакомления с новым материалом (лекция, практические занятия).
Основные понятия, рассматриваемые на занятии:

  • Электромагнитные колебания;

  • Аналоговые сигналы;

  • Цифровые сигналы;


Радиоволны – это электромагнитные колебания, распространяющиеся в пространстве со скоростью света (300 000 км/сек). Свет это тоже электромагнитные волны, обладающие схожими с радиоволнами свойствами (отражение, преломление, затухание и т.п.). Радиоволны переносят через пространство энергию, излучаемую генератором электромагнитных колебаний. А рождаются они при изменении электрического поля, например, когда через проводник проходит переменный электрический ток. 1 Гц – это одно колебание в секунду, 1 мегагерц (МГц) – миллион колебаний в секунду. Длина волны в метрах рассчитывается по формул l = 300 / f
где f – частота электромагнитного излучения в МГц.

С увеличением частоты длина волны уменьшается. Каждой радиослужбе выделен свой участок диапазона или фиксированные частоты (см.рис.9).




Рис.9. Международный диапазон частот
Ана́логовый сигна́л - это сигнал, порождаемый физическим процессом, параметры которого можно измерить в любой момент времени [13]. Техническое определение аналогового сигнала дается в ГОСТе, посвященном передаче данных. Аналоговый сигнал — сигнал данных, у которого каждый из представленных параметров описывается функцией времени и непрерывным множеством возможных значений/(см.рис.10)..

Дискре́тный сигна́л (лат. discretus — «прерывистый», «разделённый») — сигнал, который является прерывистым (в отличие от аналогового) и который изменяется во времени и принимает любое значение из списка возможных значений. Список возможных значений может быть непрерывным или квантованным/



Рис.10. Сигналы.
Цифровой сигнал — сигнал, который можно представить в виде последовательности дискретных (цифровых) значений(см.рис.10). В наше время наиболее распространены двоичные цифровые сигналы (битовый поток) в связи с простотой кодирования и используемостью в двоичной электронике. Для передачи цифрового сигнала по аналоговым каналам (например, электрическим или радиоканалам) используются различные виды манипуляции (модуляции).
Подведение итогов темы и ответы на вопросы студентов (5минут).
Контрольные вопросы:

  1. 1. Что такое сигнал?

  2. 2. Что такое международный диапазон астот?

  1. 3. Что такое аналоговый сигнал ?

  2. 4. Что такое дискретный сигнал?

  3. 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.Датчик утечки газа



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

3. Датчики движения

(Aqara Motion Sensor)



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

4. Датчики протечки



Датчики протечки устанавливаются на полу в потенциально опасных местах – в кухнях, ванных, санузлах, – на пол. Попавшая внутрь прибора вода замыкает контакты, и он передаёт сигнал тревоги на центральный модуль, одновременно включая звуковой оповещатель.


5. Пожарная сигнализация



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

6. Датчики открытия и закрытия дверей



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

7. Датчики температуры и освещения



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



Подведение итогов темы и ответы на вопросы студентов (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++, но имеет ряд особенностей, связанных с управлением устройствами реального мира и электронными схемами.


Таблица №7

Доступные типы данных

Тип

Размер (байт)

Диапазон значений

bool

1

true или false

byte

1

от 0 до 255

char

1

-128 до 127

int

2

от -32 768 до 32 767

unsigned int

2

от 0 до 65535

long

4

от -2,147,483,648 до 2,147,483,647

float

4

от -3.4028235E+38 до 3.4028235E+38




Таблица №7

Операторы действия над переменными.

Оператор

Назначение

=

Присваивания.

+

Сумма. Например, int i = 5+5. После выполнения этой строчки кода в

переменной i будет храниться значение 10.

-

Разность. Например, int i = 10-5. После выполнения этой строчки кода

в переменной i будет храниться значение 5.

*

Умножение. Например, int i = 5*3. После выполнения этой строчки кода в переменной i будет храниться значение 15.

/

Деление. Например, float i = 10/4. После выполнения этой строчки

кода в переменной i будет храниться значение 2.5.

%

Остаток от деления нацело. Например, int i = 5/2. После выполнения

этой строчки кода в переменной i будет храниться значение 1.

//

Комментарий, служит для написания пояснений к коду

/* до */

Комментарий на несколько строк



Рассмотрим некоторые встроенные функции, для удобства разбиты на группы.

Функции работы с временем:

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 представлены функции операторов языка программирования с примерами и описаниями.


Таблица №9

Операторы

Примеры

Описание

setup()

void setup()

{

pinMode(3, INPUT);

}

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

loop()

void loop() {

digitalWrite(3, HIGH);

delay(1000);

digitalWrite(3, LOW); }


Функция loop крутится в цикле, позволяя программе совершать вычисления и реагировать на них. Функции setup() и loop() должны присутствовать в каждом скетче, даже если эти операторы в программе не используются.

Управляющие операторы

if

if (x>100) digitalWrite(3,HIGH);

if (x>100) digitalWrite(3,LOW);

Оператор if используется в сочетании с операторами сравнения (==, !=, <, >) и проверяет, достигнута ли истинность условия. Например, если значение переменной x больше 100, то включается светодиод на выходе 13, если меньше — светодиод выключается.

If…else

if (x>100) digitalWrite(3,HIGH);

else digitalWrite(3,LOW);

Оператор else позволяет cделать проверку отличную от указанной в if, чтобы осуществлять несколько взаимно исключающих проверок. Если ни одна из проверок не получила результат ИСТИНА, то выполняется блок операторов в else.

switch…case

switch (x)
{
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
default: digitalWrite(4, HIGH);
}

Подобно if, оператор switch управляет программой, позволяя задавать действия, которые будут выполняться при разных условиях. Break является командой выхода из оператора, default выполняется, если не выбрана ни одна альтернатива

for

void setup() {
pinMode(3, OUTPUT);
}
void loop() {
for (int i=0; i <= 255; i++){
analogWrite(3, i);
delay(10);
} }

Конструкция for используется для повторения операторов, заключенных в фигурные скобки. Например, плавное затемнение светодиода. Заголовок цикла for состоит из трех частей: for (initialization; condition; increment) — initialization выполняется один раз, далее проверяется условие condition, если условие верно, то выполняется приращение increment. Цикл повторяется пока не станет ложным condition

while

void loop() {
while (x < 10) {
x = x + 1;
Serial.println(x);
delay(200); } }

Оператор while используется, как цикл, который будет выполняться, пока условие в круглых скобках является истиной. В примере оператор цикла while будет повторять код в скобках бесконечно до тех пор, пока x будет меньше 10.

do…while

voidloop() {

do
{ x = x + 1;
delay(100);
Serial.println(x); }
while(x < 10);
delay(900); }

Оператор цикла do…while работает так же, как и цикл while. Однако, при истинности выражения в круглых скобках происходит продолжение работы цикла, а не выход из цикла. В приведенном примере, при x больше 10 операция сложения будет продолжаться, но с паузой 1000 мс.

break
continue

switch (x) {
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
case 4: continue;
default: digitalWrite(4, HIGH); }

Break используется для принудительного выхода из циклов switch, do, for и while, не дожидаясь завершения цикла. Оператор continue пропускает оставшиеся операторы в текущем шаге цикла.

{}
(фигурные скобки)

void setup()
{
pinMode(3, INPUT);
}

Открывающая скобка “{” должна сопровождаться закрывающей скобкой “}”. Непарные скобки могут приводить к скрытым и непонятным ошибкам при компиляции скетча.

//
(комментарий)

x = 5;  // комментарий

Комментарии используются для напоминания, как работает программа. Они игнорируются компилятором и не экспортируются в процессор, не занимая место в памяти микроконтроллера.

#define

#define ledPin 3

Директива #define позволяет дать имя константе. Директива служит исключительно для удобства и улучшения читаемости программы.

#include

// библиотека для серво
#include <Servo.h>

Директива #include используется для включения сторонних библиотек в скетч. Помните, что директивы #include и #define, не требуют точки запятой.

Типы данных

boolean

boolean val = false;

Переменная boolean может принимать значение — true или false. Каждая переменная типа boolean занимает один байт в памяти микроконтроллера.

char

// оба значения эквивалентны
char val = ‘A’;
char val = ’65’;

Тип данных char хранит символьное значение и занимает в памяти 1 байт. Символы пишутся в одинарных кавычках, например: ‘A’, но в памяти символы хранятся в виде чисел

int

Int val = 32767;

Тип данных для хранения целых чисел. Переменная типа int хранит целочисленные 16-битные значения в диапазоне от -32768 до 32767.

unsigned int

unsigned int val = 65535;

Переменная типа unsigned int также может хранить двухбайтовые значения. Но вместо отрицательных чисел хранит только положительные значения в большом диапазоне от 0 до 65535.

float

float val = 25.1547;

Переменная типа float служит для хранения чисел с десятичным разделителем. Числа с плавающей точкой позволяют более точно описать аналоговые величины, чем целые числа. Точность дробных чисел составляет 6-7 знаков — это общее количество цифр, а не количество цифр после запятой.

Цифровые сигналы

digitalWrite(pin, value);

В pin, записывается номера портов.

pinMode(pin, mode);

Если порт установлен в режим

OUTPUT, в него можно

записать HIGH (логическую

единицу, +5В) или LOW

(логический ноль, GND). Режим может быть или INPUT (вход) или OUTPUT (выход).

digitalRead(pin);

Если порт установлен в режим INPUT эта команда возвращает значение сигнала на входе HIGH или LOW.

Аналоговые сигналы

Arduino - цифровое

устройство, но может

работать и с аналого-выми

сигналами


analogWrite(pin,value);

Некоторые порты Arduino (3,5,6,9,10,11)

поддерживают режим ШИМ .

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

единиц и нулей и может изменяться в пределах от 0 (0В) до 255 (+5В).

analogRead(pin);

Если аналоговый порт настроен в режим INPUT, то можно измерить напряжение на нем. Может принимать

значения от 0 (0В) до 1024 (+5В


Примеры написания скетча.
Пример №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-принтер.



1   2   3   4   5   6


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