Материалы для преподавателей: Работа в среде Arduino

Материалы для преподавателей: Работа в среде Arduino

1. Описание программы S4A

2. Работа с костюмами

3. Переход с S4A на C++

4. Внешний вид программы IDE Arduino

5. Основные функции

6. Структуры уроков

 

 1. Описание программы S4A.

Для быстрого и удобного создания программы для Arduino существует среда визуального программирования S4A, основанная на SKRETCH — визуальной объектно-ориентированной среде программирования для обучения школьников младших и средних классов. Она позволяет не писать код, а собирать программу из блоков.

Скачать программу можно на сайте s4a.cat.

Внешний вид программы показан на рисунке 1.

 

Рисунок 1 — Внешний вид программы S4A

 

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

Большое поле в середине экрана называется областью скриптов. Это та область, в которой будет собираться программа.

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

  • Движение
  • Контроль
  • Внешность
  • Сенсоры
  • Звук
  • Операторы
  • Перо
  • Переменные

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

 

Группа Движение

Английский вариант

Русский вариант

Описание

— значение датчика, подключенного к заданному дискретному входу. Может принимать значение 1 и 0 (HIGH и LOW).   — посылает сервомотору команду вращаться по часовой стрелке или против нее.   — значение датчика, подключенного к заданному аналоговому входу. Изменить номер входа можно нажав на черный треугольник возле имени входа.   — передает на заданный аналоговый выход значение от 0 до 255.   — посылает сервомотору команду повернуться на заданный угол.   — передает на заданный дискретный выход значение LOW.   — передает на заданный дискретный выход значение HIGH.

 

Группа Контроль

Английский вариант

Русский вариант

Описание

— задержка заданной длины. — внутри блока “всегда” располагается последовательность действий, которая будет выполняться постоянно, пока включено питание платы. — внутри блока располагаются две последовательности действий. Первая выполняется, если выполняется условие. Вторая выполняется, если условие не выполняется.

Группа Переменные

Английский вариант

Русский вариант

Описание

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

 

Блоки можно, подцепив мышкой, перенести в среднее окно — область скриптов. Именно в этой области из блоков, как из кирпичиков, будет формироваться программа. Стоит обратить внимание, что блоки соединяются между собой как детальки в конструкторе Лего. Иногда это может служить подсказкой. Если какие-то блоки не соединяются между собой, значит в вы что-то делаете неправильно.

 

 

2. Работа с костюмами

Для визуализации данных, полученных с датчиков, введем несколько новых понятий.
Обведенная в красную рамку область называется холстом. На холсте располагаются объекты. Сейчас это рисунок нашей Arduino.

 

Рисунок 2 – Холст

 

Внешний вид объектов можно менять, используя вкладку Костюмы (рисунок 3).

 

Рисунок 3 – Импорт костюмов

 

Далее нажимаем на кнопку Импорт и выбираем нужные нам костюмы.
Работать с костюмами можно используя блоки из группы Внешность.

 

Группа внешность

Английский вариант

Русский вариант

Описание

— заменяет костюм на холсте. — устанавливает размер объекта в процентах.  — изменяет размер объекта относительно текущего. Аргумент задается в процентах.

— выводит текст на холсте. Аргумент может быть как текстом, так и переменной.

 

 

3. Переход с S4A на C++

Программировать Arduino можно не только в визуальной среде S4A, но и написанием кода на языке программирования Processing/Wiring. Этот язык программирования основан на языке С++, с добавлением некоторых функций, которые облегчают работу с Arduino.
Программирование на языке C++ позволяет использовать больше возможностей Arduino. Например, любой порт можно настроить как вход и как выход, а количество используемых портов ограничивается только их наличием на плате.

 

4. Внешний вид программы IDE Arduino

Для программирования плат Arduino существует специальная интегрированная среда разработки IDE Arduino. Скачать программу можно на сайте arduino.cc. Рассмотрим внешний вид программы (рис 4).

 

 IDE Arduino

Рисунок 4 — Внешний вид IDE Arduino

 

 

Вверху, под строкой заголовка находится строка Меню, со следующими пунктами: File (Файл), Edit (Правка), Sketch (Скетч), Tools (Настройки), Help (Сервис).
Под строкой меню располагается строка инструментов, на которую вынесены частоиспользуемые команды:

 

fe1e7f8b5077464e35e58d08ae68cf3a-2 — Проверить ae5e7ebea66c83c3012450066e634ebb-2 — Проверить ae5e7ebea66c83c3012450066e634ebb-2 — Загрузить e5f981e52bd71b29b9b52cfcbcebad48-2 — Создать 39b24086801d4b29d99df43dee59951b-1 — Создать 39b24086801d4b29d99df43dee59951b-1 — Сохранить — Открыть 41566f9b345c27158695b0befac01307-2 — Монитор порта

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

 

 

5. Основные функции

Программа, написанная в IDE Arduino называется скетчем. Каждый скетч должен состоять как минимум из двух функций:

void setup()
{
  операторы;
}

void loop()
{
  операторы;
}

В начале программы, перед функцией setup, обычно, объявляются переменные. После включения питания платы первой выполняется функция setup. Она выполняется только один раз. Обычно в ней инициализируются (устанавливаются) режимы работы портов: порты, к которым подключены различные датчики устанавливаются как входы, а порты с исполнительными устройствами как выходы.
Код, написанный в функции loop() начинает выполняться после выполнения функции setup(), и выполняется в бесконечном цикле снова и снова. В этой функции выполняется основная работа: различные вычисления, получение значений датчиков, вывод значений на порты.
В таблице ниже приведены в соответствия блоки из Skretch и их аналоги — функции из С++.

 

Блок из Skretch

Аналог в С++

Описание

sensor value digitalRead(2); Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW. value of sensor digitalRead(2); Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW. analogRead(0); Возвращает аналоговое значение с заданного порта analog value analogWrite(5,255); Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты. digital off analogWrite(5,255); Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты. digitalWrite(10,LOW); Посылает на заданный порт значение LOW digital on digitalWrite(10, HIGH); Посылает на заданный порт значение HIGH ждать секунд digitalWrite(10, HIGH); Посылает на заданный порт значение HIGH delay(1000); Задержка в миллисекундах. если

if (/*условие*/)
{ /*
дейсвия, выполняемые, если выполняется условие */
};

Выполняет действия, указанные между фигурных скобок, если условие истинно. Если выполняемое действие одно, то оно может не заключаться в фигурные скобки. Условие записывается с помощью следующих операторов отношения: == — проверка на равенство, < — меньше, > — больше, <= — меньше или равно, >= больше или равно, != — не равно.  если или if (/*условие*/)
{ /*
дейсвия, выполняемые, если выполняется условие */
}
else { /*
действия, выполняемые, если условие не выполняется */
};

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

 всегда  void loop()
{
/*действия, которые будут выполняться постоянно, пока включено питание платы*/
}  Одна из обязательных функций. Внутри располагаются действия, которые будут выполняться постоянно, пока включено питание.

 

 

 

6. Структуры уроков

Рекомендованная длительность урока – 2 астрономических часа.

Структура лекционно – практического занятия следующая:

1) 10 мин – устный/письменный блиц — опрос по предыдущим темам
2) 10 мин – доклад одного из учащихся по теме, связанной с темой урока.
3) 30 мин – теоретическая часть
4) 60 мин – выполнение практического задания
5) 10 мин – проверка выполненных проектов, устный блиц – опрос по теме урока.

Структура практического занятия:

1) 10 мин – устный/письменный блиц — опрос по предыдущим темам
2) 100 мин – выполнение практического задания
3) 10 мин – проверка выполненных проектов, устный блиц – опрос по теме урока.

Структура итогового занятия:

1) 60 мин – письменные ответы на теоретические вопросы
2) 60 мин – выполнение практического задания

 

 

Практическая часть

 

 

Пример программы, которая “моргает” светодиодом.

Скрипт в Skretcs

Программа  на C++

Скрипт для мигания светодиодом

void setup()
{
  pinMode(10, OUTPUT);
}

void loop()
{
  digitalWrite(10, HIGH);
  delay(1000);
  digitalWrite(10,LOW);
  delay(1000);
}

 

 

Пример программы, которая зажигает светодиод при нажатой кнопке.

Скрипт в Skretcs

Программа на C++

реакция на кнопку

void setup()
{
  pinMode(10, OUTPUT);
}

void loop()
{
  if (digitalRead(2)==HIGH)
  {
    digitalWrite(10, HIGH);
    delay(1000);
  }
  else
  {
    digitalWrite(10,LOW);
    delay(1000);
  }
}

 

 

Download

Скачать содержание статьи в .pdf

 

 

Центр робототехники "BOTEON".
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: