Автор А.Т.Григорьев
Внимание! В электронном архиве опубликована 5 глава нашего пособия "Scratch и Arduino для юных программистов и конструкторов" в формате pdf для свободного доступа. В этой главе, в частности, детально описывается установка расширения Advanced Arduino
.
Загрузить расширение
Что такое "AdvancedArduino"
"AdvancedArduino" - это расширение для среды программирования mBlock, которое может применяться вместо стандартного расширения "Arduino", и предоставляет следующие дополнительные возможности при работе в режиме "Arduino mode":
Внимание! Среда mBlock генерирует скетч Arduino IDE, используя тип "double" для всех переменных и параметров функций, создаваемых в визуальном режиме. Не забывайте при необходимости использовать операцию явного преобразования значения к другому типу - int(), byte(), String().
Установка расширения AdvancedArduino
Первый способ установки
Второй способ установки
При наличии вопросов пользуйтесь дополнительными инструкциями разработчиков Makeblock:
http://www.mblock.cc/docs/create-extensions-for-mblock/
Примеры использования расширения AdvancedArduino
Пример 1.
Блоки с текстовым кодом Arduino IDE в графическом скрипте.
Внимание! Содержимое графических блоков code() и def() при генерации скетча Arduino IDE попадает ВНУТРЬ комментария, определенного с использованием директив /* и */. Для того, чтобы фрагмент кода начал использоваться компилятором, В НАЧАЛЕ необходимо поставить ЗАКРЫВАЮЩУЮ "скобку" ( */ ), а В КОНЦЕ - ОТКРЫВАЮЩУЮ ( /* ).
Имейте ввиду, что mBlock самостоятельно добавляет в скетч Arduino IDE команды pinMode() лишь в том случае, когда встречает в графическом скрипте блоки, подобные "digitalRead" и "digitalWrite".
Пример 2.
Глобальные и локальные переменные, массивы и функции, возвращающие значения.
Обратите внимание, глобальная переменная "SizeOfArray" имеет тип double, в данном примере используется явное преобразование значения к другому типу: byte(SizeOfArray).
Пример 3.
Графические блоки с библиотечными функциями Arduino IDE.
Пример 4.
"Построчное" добавление фрагментов текстового кода.
Обратите внимание, в текстовое поле отмеченного графического блока "Serial println" необходимо ввести символ <пробел> (ASCII 32), в этом случае mBlock добавляет в скетч Arduino IDE команду Serial.println(). Если внутри текстового поля - пустая строка, генерируется команда Serial.println(0).
Пример 5.
Включение текстового кода, сохраненного в текстовом файле на диске.
На диске должен располагаться текстовой файл с соответствующим именем и содержанием. При необходимости поменяйте путь к этому файлу в своем скрипте.
Содержание текстового файла:
void ascendingSort(int dt[], int SizeOfArray) {
for (int i=0;i<SizeOfArray;i++) {
for (int j=i+1;j<SizeOfArray;j++) {
if (dt[i]>dt[j]) {
int temp=dt[i];
dt[i]=dt[j];
dt[j]=temp;
};
};
};
};