Мигаем светодиодом
Будем постепенно знакомиться с основами программирования, платой и другими полезными вещами. Это позволит избежать стресса от потока новой информации.
Хотя я немного разбираюсь в программировании, сегодня притворюсь, что никогда не слышал о языках программирования и постараюсь максимально доходчиво показать, как новичок осваивает новую для себя деятельность.
Во-первых, нам придётся писать примеры на C++-подобном языке. Поэтому можете похвастаться перед знакомыми, что пишите программы на C++. Во-вторых, он очень упрощённый, и вам не нужно бояться его.
01.Basics: Blink
Запускаем скетч File | Examples | 1.Basics | Blink (Файл | Примеры | 1.Basics | Blink). У вас загрузится готовый пример с кодом. С его помощью мы можем увидеть, что плата работает.
Теперь нужно выбрать последовательный порт. Опять идём в меню Tools | Serial Port (Сервис | Последовательный порт) и выбираем нужный порт (обычно это COM3 или COM4).
Теперь нам необходимо загрузить открытый пример Blink на микроконтроллер. Просто щёлкните на кнопкуUpload (Загрузить) и внимательно смотрите на плату. Вы увидите, что светодиоды, помеченные как RX и TX будут мигать. После успешной загрузки примера в контроллер, в строке состояния среды разработки появится надпись Done uploading (Загрузка выполнена).
Ещё ниже в области консоли будет выведено сообщение:
Sketch uses 930 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
В сообщение выводится информацию об используемой памяти. Программа настолько проста, что почти ничего не потребляет (0% оперативной памяти и 2% постоянной памяти).
Через несколько секунд после загрузки, вы можете увидеть, что светодиод, помеченный на плате как 13 (L), будет мигать оранжевым цветом. Поздравляю, вы успешно установили среду разработки и запустили свою первую программу!
Обращу внимание, что в комментариях к коду написано, что листинг менялся несколько раз. Так выглядел код в предыдущий раз.
Сравните с текущей версией.
Теперь вместо создания отдельной переменной led используется встроенная константа LED_BUILTIN. Это удобно, так как в разных платах используются разные значения для встроенного светодиода и таким образом программа получилась универсальной.
Проверим. Нажимаем кнопку Verify и видим сообщения с красным текстом. Его текст приводить не буду, сами убедитесь. Если программа с ошибкой, то нет смысла её загружать на плату. Даже если вы очень упрямый и всё-равно нажмёте кнопку Upload, то получите ту же ошибку. Иными словами, Upload сначала самостоятельно выполняет операцию Verify и при отсутствии ошибки загружает скетч.
Разбор примера
Мы запустили программу, чтобы помигать светодиодом. Но делали это неосознанно, повторяя шаг за шагом описываемые действия. В дальнейшем вам придётся самому писать код, а значит пора ознакомится с основами программирования.
Изучим код шаг за шагом.
В функции setup() мы видим три строчки:
Приблизительный перевод комментариев, которые используется в функции setup() можно перевести как:
Дальше следует сам код, который делает операцию, описанную в комментариях. Обратите внимание, что команда завершается точкой с запятой:
В старых версиях код был немного другим:
Разработчики позже написали более грамотный код, вынеся число 13 в отдельную переменную led.
Комментарий можно перевести как:
Сейчас код обновили, и вместо переменной led используют константу LED_BUILTIN. Такой подход удобен, так как не все платы Arduino имеют встроенный светодиод на порту 13. Если у вас две разные платы и одна из них имеет нестандартный номер, то вам не придётся переписывать пример под каждую плату. Например, у плат MKR1000 встроенный светодиод находится на порту 6.
Нам встретилась новая функция pinMode(), которая устанавливает режим для портов. Функция состоит из двух параметров. В первом параметре указывается порт, с которым мы собираемся работать. Во втором параметре мы сообщаем, как должен работать указанный порт: работать на выход (OUTPUT) или вход (INPUT). В нашем примере, вывод под номером 13 (или другой порт, используемый встроенным светодиодом) должен выводить информацию (посылать сигнал), то есть давать указание мигать светодиоду.
Мы определили в функции setup() необходимые данные для начала работы и теперь можем приступить к непосредственной реализации задачи в функции loop().
Здесь мы видим уже четыре строчки кода. Первая строчка включает светодиод при помощи функции digitalWrite(). В первом параметре мы указываем номер порта, с которым собираемся работать, а во второй указываем константу HIGH. Забегая вперёд, могу сказать что константа HIGH равна 1, и можно было написать digitalWrite(13, 1). Но такая запись не очень удобна, так мельтешение цифр в большом проекте затрудняет чтение кода. А здесь вы сразу видите, что на порту под номером 13 включается светодиод.
Следом идёт уже знакомая нам функция digitalWrite(), но уже с параметром LOW, который выключает светодиод (значение константы LOW равно 0).
И последняя строчка снова делает паузу в одну секунду.
Посмотрим, как работает программа. Когда мы загружаем программу в микроконтроллер, то Arduino активирует порт 13 в режиме выхода (функция setup()), а затем начинает последовательно выполнять четыре строчки из функции loop(): включает диод-пауза-выключает диод-пауза. Когда эти четыре строчки будут выполнены, то они снова будут вызваны и будут повторяться до тех пор, пока мы не выдернем кабель.
Добавляем свой светодиод (+светодиод)
Напомню, что диод проводит ток в одном направлении. Следовательно, необходимо всегда правильно устанавливать светодиод в своих схемах. Встроенный светодиод уже правильно припаян к плате Arduino (скажем спасибо разработчикам).
В светодиодах короткую ножку («минус») светодиода нужно соединять с землёй (GND). Светодиод не рассчитан на большой ток. Чтобы не повредить светодиод, используйте с ним резистор. Он позволяет уменьшить силу тока. В противном случае светодиод прослужит недолго или просто сгорит. Полярность резисторов не важна. Сам резистор можно подключать как до светодиода, так и после него. Я привык сначала ставить резистор, а потом светодиод по направлению от источника питания к земле.
Из первого примера с встроенным светодиодом мы помним, что он использует вывод под номером 13 (на большинстве плат). На плате есть свободный вывод с этим номером, который находится рядом с выводом GND. Берём светодиод и вставляем в эти выводы. Не забываем, что короткую ножку вставляем в GND, а длинную в вывод 13. У вывода 13 уже установлен резистор, поэтому светодиод не сгорит.
Запускаем снова программу Blink. Теперь будут мигать два светодиода: встроенный и наш. Красота!
На следующем уроке мы поближе познакомимся с цифровыми выводами и попробуем изменять программы под свои нужды.
Источник
Как удаленно управлять Arduino с помощью приложения Blynk
Знакомимся с платформой Blynk и создаем проект в котором будем дистанционно управлять светодиодом со смартфона.
Комплектующие
В этом уроке мы реализуем удаленное управление светодиодом с помощью приложения Blynk и с использованием платы Arduino Uno. Для этого нам понадобится:
В целом, мы можем использовать различные типы подключения, такие как Bluetooth, Wi-Fi, USB и многие другие. Приложение также поддерживает множество плат.
Что такое Blynk?
Прежде всего для нас это приложение и нам необходимо скачать приложение Blynk для Android либо для iOS. Ссылки на установку указал выше. После загрузки открываем приложение. Далее оно попросит вас создать учетную запись или авторизоваться.
Новичку не нужно тратить время на изучение приложения и можно начать использовать платформу очень быстро. Платформа может поддерживать Arduino и Raspberry Pi через Wi-Fi, Ethernet или чип ESP8266, а также она работает со множеством языков программирования.
Начало работы с Blynk
Начальное окно приложения выглядит так:
После создания учетной записи нажмите New Project (Новый проект).
Далее даем Название нашему проекту и выбираем Плату (Устройство, Device), которую вы будете использовать. Я использую плату Arduino Uno. Если у вас есть Arduino Mega или любая другая плата, то выберите ее.
Выберите USB в качестве типа подключения (Connection Type), потому что мы собираемся управлять им через последовательную связь. В типе подключения USB вам не потребуется другое устройство. Если вы выбираете тип подключения Bluetooth, вам потребуется Bluetooth, а для типа подключения Wi-Fi требуется шилд Ethernet или любое другое устройство Wi-Fi.
Когда вы нажмете кнопку Создать (Create), приложение оповестит о том, что токен аутентификации был отправлен на вашу электронную почту, и вы увидите экран, подобный показанному ниже. Если у вас iOS, экран может отличаться.
Теперь нажмите на экран, и вы увидите окно виджетов.
В окне виджетов много контроллеров, но нам нужна только лишь кнопка для этого проекта. Поэтому нажмите на Кнопку (Button), и кнопка будет размещена на экране вашего проекта.
Библиотека Blynk
Теперь нам нужно скачать библиотеку Blynk для Arduino IDE, которую можно найти здесь.
Поместите библиотеку в папку библиотек Arduino и откройте IDE Arduino.
В меню Примеров (Examples) выберите Arduino Serial USB.
В скетч вставьте токен аутентификации, который вы получили в электронном письме от приложения Blynk, и далее загрузите код на плату.
После сохранения файла запустите его, и вы увидите экран терминала cmd, как показано ниже:
Соединяем комплектующие
Теперь подключите всё согласно схеме, как показано ниже:
Теперь, когда вы в ваше приложения Blynk нажимаете кнопку, светодиод будет включаться и выключаться.
На этом всё! Наше знакомство с Blynk оказалось довольно простым. Теперь вы можете попробовать поиграть с другими функциями приложения.
Источник
Урок 6. Загрузка первого скетча «Blink»
Arduino IDE поставляется с несколькими примерами скетчей, которые вы можете использовать для изучения основ Arduino.
Для начала подключите плату Arduino к компьютеру с помощью USB-кабеля и запустите установленную ранее среду Arduino IDE. Чтобы открыть пример эскиза Blink:
Пример кода Blink будет загружен в новое окно IDE. Но прежде чем вы сможете загрузить эскиз на плату, вам необходимо настроить IDE, выбрав плату и подключенный порт.
Чтобы настроить плату, откройте меню «Инструменты» (Tools), а затем «Плата» (Board). Для Arduino Uno вы должны выбрать «Arduino / Genuino Uno»:
После того, как вы выбрали плату, вы должны установить соответствующий порт. Снова откройте меню «Инструменты» (Tools) и выберите «Порт» (Port):
Имена портов могут отличаться в зависимости от вашей операционной системы.
В Windows порты будут называться COM4, COM5 или что-то подобное.
В macOS или Linux вы можете увидеть что-то вроде /dev/ttyACM0 или /dev/ttyUSB0.
После того, как вы настроили плату и порт, у вас все готово для загрузки эскиза на Arduino. Для этого вам просто нужно нажать кнопку «Загрузить» (Upload) на панели инструментов IDE:
Кабель USB обеспечивает последовательное соединение для загрузки программы и питания платы Arduino. Во время загрузки вы увидите мигающие светодиоды на плате. Через несколько секунд загруженная программа запустится, и вы увидите, что светодиодный индикатор мигает один раз в секунду:
После завершения загрузки USB-кабель продолжит питание платы Arduino. Программа хранится во флэш-памяти микроконтроллера Arduino. Вы также можете использовать аккумулятор или другой внешний источник питания для запуска приложения без USB-кабеля.
Источник