Скетч - это программа, написанная для платформы Arduino и имеющая определенную структуру.

Для начала рассмотрим в простой, абстрактной манере как работает ваша плата с программной точки зрения. Arduino, по сути, является распиновкой (разводкой ножек микроконтроллера на удобные для использования входы/выходы - пины) микроконтроллера Atmega. Как вы заметили, разные платы содержат различные контроллеры и, соответственно, имеют разную конфигурацию пинов. Изготовитель устанавливает на плату arduino hex-прошивку (bootloader), которая стартует при включении и передает управление скетчу, написанному и залитому пользователем.

Cтруктура скетчей:

Скетч обязательно содержит 2 функции: функцию setup и функцию loop .

Прошивка Arduino при включении вызывает функцию setup. Функция setup вызывается лишь раз, при каждом запуске платы. Это место идеально подходит для инициализации (задания начальных значений) переменных, установки режимов пинов (ввод/вывод), задания соответствия подключенных датчиков/сервоприводов/прочего с пинами. После выполнения функции setup идет циклический вызов функции loop (т.е. сразу после выхода из функции setup, выполняется функция loop, после выхода из неё, она же вызывается снова. Процесс продолжается пока питание не будет отключено.)

Для закрепления рассмотрим простейший скетч на мигание светодиодом (эдакий классический Hello World для Arduino). Слово void перед названием функции, говорит нам о том, что функция не возвращает никаких значений (возвращает "void" - "пустоту"). Структуру, понятие и назначение функций мы рассмотрим в последующих статьях.

void setup () { // Установим 13-пин, как вывод pinMode (13, OUTPUT ); } void loop () { digitalWrite (13, HIGH ); // зажигаем светодиод delay (1000); // ждем секунду digitalWrite (13, LOW ); // выключаем светодиод delay (1000); // ждем секунду }

Как уже должно быть ясно, при включении платы, будет вызвана функция setup, в которой 13 пин будет установлен как вывод. Далее циклически будет вызываться функция loop.

Рассмотрим процесс заливки скетча на arduino. Весь процесс рассмотрим для среды Arduino IDE. В других средах шаги аналогичны, и мы не считаем, что требуют отдельного рассмотрения. Для начала открываем среду и копируем наш скетч.

Нажимаем кнопку "Залить"

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

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

Загрузка первого скетча, это состояние восторга не покидает продолжительное время. Описать то что ты испытываешь в момент удачи очень сложно, особенно если ты не когда ранее не имел дела с программируемой радиоэлектроникой. В голове крутятся мысли, идеи, и хочется скорее узнать на что же ещё способен этот кусок текстолита и набор радиодеталей! Если вы прошли этап Arduino uno R3 CH340G подключение и настройка. к компьютеру, мы можем приступить к следующим действиям.

Первый скетч совсем не обязательно искать на просторах интернета или писать самому. Arduino IDE обладает набором предустановленных библиотек и примеров, которые вы можете использовать в своих проектах при дальнейшей работе с контроллером. Для начала откроем Arduino IDE и переходим на вкладку Файл в верхнем меню окна, далее наводим указатель мыши на пункт Примеры . Примеров скетчей много, но я предлагаю остановить выбор на скетче Blink в категории примеров Basics. Скетч очень простой и не требует каких либо дополнительных элементов для своей демонстрации.

Выбрав данный пример у нас открывается новое окно среды разработки Arduino с готовым для загрузки кодом прошивки контроллера. Выглядит это так.

Давайте немного разберём что несёт в себе этот скетч. С 1 по 23 сточку мы видим текст серого цвета. Этот текст несёт информационный характер и описывает пользователю некоторые параметры работы данного скетча, также автор этого скетча может оставить контактную информацию о себе. Эти строчки закомментированы и при прошивке контроллера они не загружаются в него. Закомментировать текст можно двумя способами. Первый способ будет удобен если нужно скрыть от загрузчика несколько строк, в таком случае используется знак /* в начале комментариев, */ в конце комментариев, как в первой и двадцать третьей строке. Второй способ больше подходит для описания части кода или какой либо функции, для этого используется // текст или код попавший за двойной слеш // в пределах одной строки будет скрыт от загрузки в контроллер, что мы можем наблюдать в остальной части кода. Кстати, если вы в дальнейшем планируете писать скетчи сами то, считается хорошим тоном оставлять описание параметров работы скетча и комментариев к функциям. Из описания которое оставил нам автор понятно следующее, что этот скетч заставляет встроенный в плату контроллера светодиод и привязанный к 13 цифровому пину, моргать с частотой в 1000 миллисекунд.

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

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

И на контроллере мы можем наблюдать как светодиод промаркированный латинской буквой L начинает моргать с заданной частотой.

Для большего понимания работы этого скетча, давайте немного отредактируем код и посмотрим что изменилось. Переходим на 34 строку кода и изменим время паузы, delay(1000); изменим на delay(10000); .

В результате этих манипуляций программа работы нашего контроллера изменилась. И сейчас светодиод на контроллере загорается не на 1 секунду как это было при загрузке исходного кода, а на 10 секунд. Сейчас мы программно указали в 33 строчке включить светодиод и этот светодиод будет гореть до тех пор пока относительно него не поступит другой команды. Поэтому в 34 строчке мы ставим паузу в 10 секунд а в 35 строчке гасим светодиод. Должно получится что то вроде ниже представленного изображения.

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

Когда я начала заниматься Ардуино, мне казалось, что весь мир только и делает, что занимается тем же. На самом деле оказалось, что, как и мне, многим просто трудно начать, «въехать» в саму тему. Поэтому я решила написать быстрый гайд для того, чтобы вы сразу могли взять несколько компонентов и попробовать эту игрушку. Вероятно, после прочтения, вы даже сразу во многом поймёте что к чему и без моих будущих постов. Итак.

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

Ардуино - это просто, как конструктор Lego. Но когда его начинают объяснять, то всплывает куча баззвордов: среда разработки, железо, камень, прошивка, библиотека, драйвер, скетч, исполняемый файл, компоненты, навыки программирования, программно-аппаратная часть, ардуино-совместимая платформа… Да тут кто хочешь с ума сойдёт, надо же так усложнять простой набор игрушек для детей! =)
На самом деле всё просто: у нас есть сама Ардуино - это мозг наших будущих игрушек, которые мы с ней соберём.

У нас есть две готовых шилды на выбор. Почему? Мы сейчас «воткнем» Ардуину в одну шилду, посмотрим, как она работает, а затем перепрограммируем и воткнём в другую - и снова убедимся, что работает. Так нам сразу станет понятно, и мы сможем двигаться дальше - благо направлений развития вместе с Ардуиной - много.

2. Установите IDE как обычную программу.
Узнать больше: для Windows

3. Подключите Ардуину по USB

4. Запустите IDE (с правами супер-пользователя, если вам это о чем-либо говорит. Если нет, то забейте на эти права. Если да - скачайте версию 1.0.1 - всё, что старше, на Linux работает криво).

5. Выберите тип Ардуины. (Выберется, скорее всего, автоматически. Но у нас в руках из набора Arduino Nano 3.0 и на квадратном процессоре сверху написано Amtel Mega 328p - это значит, из меню выбираем Nano ATmega328).

6. Проверьте, компьютер видит Ардуину: виден её порт, через который мы её подключили.

Всё готово? Сейчас разберёмся с тем, что загрузить и как, и через 5 минут лампочки (диоды!) на нашей новой шилде будут весело освещать наш дом.

Troubleshooting:

Если порт не найден, отсоедините всё и закройте программу. Присоедините Ардуино заново, можно к новому порту, откройте программу. Это похоже на мобильное приложение у вас в телефоне: если оно зависло, вы его перезапускаете, и оно снова работает. Здесь тот же принцип troubleshooting. =)

Шаг 3: Используйте скетч и библиотеку по назначению

Здесь-то и начинается самый magic! =) Но, почему-то, именно к этому волнующему моменту объяснения были самые скучные:

Для того, чтобы запрограммировать микроконтроллер, у нас есть три типа файлов: .h, .cc, .ino Файлы компилируются, к библиотекам шлются обращения. Всё это написано на языке C, который оперирует функциями, переменными, после чего, чтобы написанная на языке C программа стала понятна микроконтроллеру, она переводится в машинный код - компилируется и затем загружается в контроллер… вы себе не представляете, насколько сейчас нам на это пофиг =) Всё гораздо проще.

Откройте все нужные библиотеки (см. изобр.) + копируйте сюда скетч. Компилируйте. Загружайте. Готово! Можно поставить Ардуино обратно в шилду радио и снова его (радио) включить.

Вот так быстро мы с вами разобрались с:

1. Как перепрограммировать Ардуино под разные шилды при помощи готовых скетчей и библиотек.
2. Зачем нам скетч, зачем нам библиотека. Что куда класть.
3. Как работать с программой Arduino IDE, чтобы загрузить скетч вместе с библиотекой.

Как видите, всё просто. У меня ушло несколько дней на то, чтобы «въехать» самостоятельно. Надеюсь, кому-то я сэкономлю эти несколько дней. Удачи вам с Ардуино DIY и до новых встреч: я планирую ещё много с чем разобраться на базе имеющихся у меня модулей и компонентов и обязательно поделюсь с вами идеями и навыками.

Традиционно, в конце статьи - спасибо!

Большое спасибо пользователю

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

Шаг 1: Материалы и инструменты

Материалы:

Кабель USB-A – USB-B
Кабель USB-Host (OTG-кабель)
Arduino
1 светодиод (для тестирования)
Android устройство, версия ОС Android 4.0.0+ (или c поддержкой режима host)

Программное обеспечение:

ArduinoDroid или ArduinoCommander, которые можно загрузить из магазина Google Play

Шаг 2: Кабель USB-Host

Кабель USB-Host в основном аналогичен кабелю USB, но в разъеме micro USB установлены другие резисторы. Внутренние резисторы позволяют Android устройству активировать режим USB-Host. В этом режиме вы также можете использовать USB-флешки или другие устройства с поддержкой usb интерфейса. Это очень полезная функция, и теперь можно подключать даже usb-принтер.

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

Шаг 3: Соединения

Этот очень простой шаг и не требует особого внимания. Просто вставьте кабель USB-A – USB-B в USB разъем типа мама Host кабеля. Затем вставьте USB-B разъем в Arduino, а Micro USB в Android устройство.

Шаг 4: Включение Arduino

Все соединения должны быть выполнены как на фотографии. Далее можно включить ваш Arduino и загрузить в него последний скачанный код. На своем Arduino я использовал Blink скетч. Если Arduino не запускается, тогда проверьте правильность соединений.

Шаг 5: Приложения

Теперь Arduino уже готов к загрузке кода, но ваше Android устройство пока нет...

Давайте изменим эту ситуацию!

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

Для их загрузки перейдите на сайт Play Store, затем в строке поиска введите "Arduino". Далее щелкните на "Apps", после этого будут отображаться только приложения. Нам нужно два приложения: "ArduinoDroid" и "ArduinoCommander". Установите их, затем запустите "ArduinoDroid". Это приложение должно обновить IDE, на что понадобится некоторое время. Приложение "ArduinoCommander" потребуется далее.

Примечание: Оба приложения использовать одновременно необязательно, просто я хочу показать работу обеих!

Шаг 6: ArduinoCommander, автор программы Антон Смирнов

Ну, что ж, начнем с приложения "ArduinoCommander". Его разработал Антон Смирнов для версии Andorid 2.2 или выше.

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

С данным приложением легко разобраться, даже если управление нестандартное. Оно автоматически определяет Arduino и функционирует очень стабильно.

Однако некоторые функции не работают. Надеюсь, в дальнейших версиях приложения эти баги будут исправлены. Загрузка скетча прошла успешно!

Ставлю данному приложению 4.0 из 5 звездочек.

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

Шаг 7: Часть 1

Другие опции включают:
Ethernet
Bluetooth
USB-extras

Шаг 8: Часть 2

Теперь щелкните на "Autodetect". Android устройство начнет автоматический поиск Arduino, затем покажет его на экране. А сейчас выберем наш Arduino (просто щелкнем на нем).

Шаг 9: Часть 3

После выполнения предыдущего шага на экране будет показан наш Arduino. Обычно он отображается в цвете, и вы можете щелкать на выводы, чтобы изменить их режим. Однако у меня выбор режимов не работал, и эту проблему у меня не получилось устранить; возможно, у вас все будет работать без сбоев. Когда вы щелкните в нижнем правом углу, то перейдете в меню, с помощью которого сможете загрузить ваши скетчи с SD-карты. Эта функция работает очень хорошо.

Шаг 10: ArduinoDroid

Теперь перейдем к рассмотрению другого приложения, которое позволяет загружать скетчи в ваш Arduino. Это приложение называется "ArduinoDroid" и работает для версии Android 4.2.2 или выше. Автор этого приложения также Антон Смирнов!