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).
Рисунок 4 — Внешний вид IDE Arduino
Вверху, под строкой заголовка находится строка Меню, со следующими пунктами: File (Файл), Edit (Правка), Sketch (Скетч), Tools (Настройки), Help (Сервис).
Под строкой меню располагается строка инструментов, на которую вынесены частоиспользуемые команды:
— Проверить — Проверить — Загрузить — Создать — Создать — Сохранить — Открыть — Монитор порта
Ниже располагается строка с названиями открытых вкладок. В конце строки находится пиктограмма , по нажатии на которую открывается меню, относящееся ко вкладкам.
В центре окна находится рабочая область, в которой пишется код программы. Под рабочей областью находится окно сообщений, куда выводятся сообщения о результате компиляции, загрузки и т.д.
5. Основные функции
Программа, написанная в IDE Arduino называется скетчем. Каждый скетч должен состоять как минимум из двух функций:
void setup()
{
операторы;
}
void loop()
{
операторы;
}
В начале программы, перед функцией setup, обычно, объявляются переменные. После включения питания платы первой выполняется функция setup. Она выполняется только один раз. Обычно в ней инициализируются (устанавливаются) режимы работы портов: порты, к которым подключены различные датчики устанавливаются как входы, а порты с исполнительными устройствами как выходы.
Код, написанный в функции loop() начинает выполняться после выполнения функции setup(), и выполняется в бесконечном цикле снова и снова. В этой функции выполняется основная работа: различные вычисления, получение значений датчиков, вывод значений на порты.
В таблице ниже приведены в соответствия блоки из Skretch и их аналоги — функции из С++.
Блок из Skretch
Аналог в С++
Описание
digitalRead(2); Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW. digitalRead(2); Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW. analogRead(0); Возвращает аналоговое значение с заданного порта analogWrite(5,255); Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты. analogWrite(5,255); Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты. digitalWrite(10,LOW); Посылает на заданный порт значение LOW 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