Материалы для преподавателей

Материалы для преподавателей

План:

1. Описание программы S4A
2. Работа с костюмами
3. Переход с S4A на C++
4. Внешний вид программы IDE Arduino
5. Основные функции

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

Скачать программу для ubuntu

программа для Arduino 

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

cbc1e68d7d4a613ab01a1ef8cca136af

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 — устанавливает размер объекта в процентах.

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

 — заменяет костюм на холсте.

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

 

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

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

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

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

 

IDE Arduino

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

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

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

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

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

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

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

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

Блок из Skretch

Аналог в С++

Описание

всегда

 

void loop()
{
/*действия, которые будут выполняться постоянно, пока включено питание платы*/
}

 

Одна из обязательных функций. Внутри располагаются действия, которые будут выполняться постоянно, пока включено питание. digital on

 

digitalWrite(10, HIGH);

 

Посылает на заданный порт значение HIGH digital off

 

digitalWrite(10,LOW);

 

Посылает на заданный порт значение LOW sensor value

 

digitalRead(2);

 

Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW. value of sensor

 

analogRead(0);

 

Возвращает аналоговое значение с заданного порта analog value

 

analogWrite(5,255);

 

Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты. ждать секунд

 

delay(100);

 

Задержка в миллисекундах. если

 

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

 

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

 

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

 

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

 

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

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

 

Скрипт в 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);
}
}

 

 

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

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

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