Arduino: с чего начать?
У всех новичков, впервые взявших в руки Arduino, часто возникают одни и те же вопросы: «Как загрузить программу на Arduino? Нужен ли для этого программатор? Что такое Arduino IDE?». На этом небольшом уроке мы разберемся с этими вопросами раз и навсегда.
Начнем со второго вопроса, ответ на который прост: никакого так называемого программатора не нужно. Контроллер Arduino отличается от «голых» микроконтроллеров тем, что он адаптирован для загрузки программ через обычный USB-порт компьютера! Исключение составляют версии Arduino Pro Mini, где требуется специальное внешнее устройство USB-UART мост, которое, впрочем, всё так же просто подключается по USB.
Arduino.ru
Данный документ разъясняет, как подключить плату Arduino к компьютеру и загрузить ваш первый скетч.
Необходимое железо — Arduino и USB-кабель
В этом руководстве предполагается, что вы используете Arduino Uno, Arduino Duemilanove, Nano или Diecimila.
Вам потребуется также кабель стандарта USB (с разъемами типа USB-A и USB-B): такой, каким, к примеру, подключается USB-принтер. (Для Arduino Nano вам потребуется вместо этого кабель с разъемами А и мини-В).
Программа – среда разработки для Arduino
Найдите последнюю версию на странице скачивания.
После окончания загрузки распакуйте скачанный файл. Убедитесь, что не нарушена структура папок. Откройте папку двойным кликом на ней. В ней должны быть несколько файлов и подкаталогов.
Подсоедините плату
Arduino Uno, Mega, Duemilanove и Arduino Nano получают питание автоматически от любого USB-подключения к компьютеру или другому источнику питания. При использовании Arduino Diecimila убедитесь, что плата сконфигурирована для получения питания через USB-подключение. Источник питания выбирается с помощью маленького пластикового джампера, надетого на два из трех штырьков между разъемами USB и питания. Проверьте, чтобы он был установлен на два штырька, ближайших к разъему USB.
Подсоедините плату Arduino к вашему компьютеру, используя USB-кабель. Должен загореться зеленый светодиод питания, помеченный PWR.
Установите драйвера
Установка драйверов для Arduino Uno на Windows7, Vista или XP:
- Подключите вашу плату и подождите, пока Windows начнет процесс установки драйвера. Через некоторое время, несмотря на все её попытки, процесс закончится безрезультатно.
- Нажмите на кнопку ПУСК и откройте Панель управления.
- В панели управления перейдите на вкладку Система и безопасность (System and Security). Затем выберите Система. Когда откроется окно Система, выберите Диспетчер устройств (Device Manager).
- Обратите внимание на порты (COM и LPT). Вы увидите открытый порт под названием «Arduino UNO (COMxx)».
- Щелкните на названии «Arduino UNO (COMxx)» правой кнопкой мышки и выберите опцию «Обновить драйвер» (Update Driver Software).
- Кликните «Browse my computer for Driver software».
- Для завершения найдите и выберите файл драйвера для Uno – «ArduinoUNO.inf», расположенный в папке Drivers программного обеспечения для Arduino (не в подкаталоге «FTDI USB Drivers»).
- На этом Windows закончит установку драйвера.
Установка драйверов для Arduino Duemilanove, Nano или Diecimila в Windows7, Vista или XP:
Когда вы подключите плату к компьютеру, Windows запустит процесс установки драйвера (если до этого вы не подключали к компьютеру плату Arduino).
В Windows Vista драйвер скачается и установится автоматически (это действительно работает!)
В Windows XP откроется Мастер установки нового оборудования (Add New Hardware wizard).
- На вопрос «Подключиться к узлу Windows Update для поиска программного обеспечения? (Can Windows connect to search for software?)» выберите ответ «Нет, не в этот раз (No, not this time)». Нажмите «Далее».
- Выберите «Установить из списка или указать местонахождение (Advanced) (Install from a list or specified location (Advanced))» и нажмите «Далее».
- Убедитесь, что выбрано «Искать наиболее подходящий драйвер в указанном месте (Search for the best driver in these locations)»; снимите флажок «Искать на съемных носителях (Search removable media)»; выберите «Добавить область поиска (Include this location in the search)» и укажите папку drivers/FTDI USB Drivers в дистрибутиве Arduino. (Последнюю версию драйвера можно найти на FTDI веб-сайте). Нажмите «Далее».
- Мастер начнет поиск и затем сообщит вам, что обнаружен «USB Serial Converter». Нажмите «Готово (Finish)».
- Снова появится мастер установки нового оборудования. Выполните все те же шаги с теми же опциями и указанием того же пути для поиска. На этот раз будет обнаружен «USB Serial Port».
Проверить, что драйвера действительно установлены можно, открыв Диспетчер устройств (Windows Device Mananger) (он находится во вкладке Оборудование(Hardware) панели Свойства системы(System)). Найдите «USB Serial Port» в разделе «Порты (Ports)» – это и есть плата Arduino.
Запустите среду разработки Arduino
Дважды щелкните на приложении для Arduino.
Откройте готовый пример
Откройте мгновенный пример скетча «LED» по адресу: File > Examples > 1.Basics > Blink.
Выберите вашу плату
Вам нужно выбрать пункт в меню Tools > Board menu, соответствующий вашей плате Arduino.
Выбор Arduino Uno
Для Duemilanove Arduinoплат с ATmega328 (проверьте на плате надпись на микросхеме) выберите Arduino Duemilanove или Nano с ATmega328. Вначале платы Arduino выпускались с ATmega168; для них выберите Arduino Diecimila, Duemilanove, или Nano с ATmega168. Подробно о пунктах меню платы можно прочитать на странице «Среда разработки».
Выберите ваш последовательный порт
Выберите устройство последовательной передачи платы Arduino из меню Tools | Serial Port. Вероятно, это будет COM3 или выше (COM1 и COM2 обычно резервируются для аппаратных COM-портов). Чтобы найти нужный порт, вы можете отсоединить плату Arduino и повторно открыть меню; пункт, который исчез, и будет портом платы Arduino. Вновь подсоедините плату и выберите последовательный порт.
Загрузите скетч в Arduino
Теперь просто нажмите кнопку «Upload» в программе – среде разработки. Подождите несколько секунд – вы увидите мигание светодиодов RX и TX на плате. В случае успешной загрузки в строке состояния появится сообщение «Done uploading (Загрузка выполнена)».
(Замечание. Если у вас Arduino Mini, NG или другая плата, вам необходимо физически кнопкой подать команду reset непосредственно перед нажатием кнопки «Upload»).
Несколько секунд спустя после окончания загрузки вы увидите как светодиод вывода 13 (L) на плате начнет мигать оранжевым цветом. Поздравляю, если это так! Вы получили готовый к работе Arduino!
Use your Arduino Uno on the Arduino Desktop IDE
If you want to program your Arduino Uno while offline you need to install the Arduino Desktop IDE The Uno is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards. Before you can move on, you must have installed the Arduino Software (IDE) on your PC, as explained in the home page of our Getting Started.
Connect your Uno board with an A B USB cable; sometimes this cable is called a USB printer cable
The USB connection with the PC is necessary to program the board and not just to power it up. The Uno automatically draw power from either the USB or an external power supply. Connect the board to your computer using the USB cable. The green power LED (labelled PWR) should go on.
Install the board drivers
If you used the Installer, Windows — from XP up to 10 — will install drivers automatically as soon as you connect your board.
If you downloaded and expanded the Zip package or, for some reason, the board wasn’t properly recognized, please follow the procedure below.
Click on the Start Menu, and open up the Control Panel.
While in the Control Panel, navigate to System and Security. Next, click on System. Once the System window is up, open the Device Manager.
Look under Ports (COM & LPT). You should see an open port named «Arduino UNO (COMxx)». If there is no COM & LPT section, look under «Other Devices» for «Unknown Device».
Right click on the «Arduino UNO (COmxx)» port and choose the «Update Driver Software» option.
Next, choose the «Browse my computer for Driver software» option.
Finally, navigate to and select the driver file named «arduino.inf», located in the «Drivers» folder of the Arduino Software download (not the «FTDI USB Drivers» sub-directory). If you are using an old version of the IDE (1.0.3 or older), choose the Uno driver file named «Arduino UNO.inf»
Windows will finish up the driver installation from there.
Open your first sketch
Open the LED blink example sketch: File > Examples >01.Basics > Blink.
Select your board type and port
You’ll need to select the entry in the Tools > Board menu that corresponds to your Arduino board.
Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port.
Upload the program
Now, simply click the «Upload» button in the environment. Wait a few seconds — you should see the RX and TX leds on the board flashing. If the upload is successful, the message «Done uploading.» will appear in the status bar.
A few seconds after the upload finishes, you should see the pin 13 (L) LED on the board start to blink (in orange). If it does, congratulations! You’ve gotten Arduino up-and-running. If you have problems, please see the troubleshooting suggestions.
Learn more on the Desktop IDE
See this tutorial for a generic guide on the Arduino IDE with a few more infos on the Preferences, the Board Manager, and the Library Manager.
Подключение вашей платы Arduino к компьютеру
После того как вы установили Arduino IDE на свой компьютер следующим логичным шагом будет подключение платы Arduino UNO к компьютеру. Чтобы сделать это просто используйте кабель для программирования (синего цвета) и соедините его с платой Arduino и USB портом вашего компьютера.
Синий кабель для программирования может выполнять следующие три функции:
- Он запитывает плату Arduino UNO, то есть чтобы обеспечить выполнение программ на ней необходимо просто запитать ее с помощью USB кабеля.
- Через него программируется микроконтроллер ATmega328, находящийся на плате Arduino UNO. То есть код программы пересылается из компьютера в микроконтроллер именно по этому кабелю.
- Он может функционировать в качестве кабеля для последовательной связи, то есть с его помощью можно передавать данные с Arduino UNO в компьютер – это полезно для целей отладки программы.
После того как вы подадите питание на плату Arduino UNO на ней загорится маленький светодиод – это свидетельствует о том, что на плату подано питание. Также вы можете заметить как мигает другой светодиод – это результат работы программы по управлению миганием светодиода, которая по умолчанию загружена в вашу плату ее производителем.
Поскольку вы подключаете плату Arduino в первый раз к компьютеру необходимо некоторое время чтобы драйвера для нее успешно установились. Чтобы проверить правильно ли все установилось и определилось откройте «Диспетчер устройств (Device manager)» на вашем компьютере.
В диспетчере устройств откройте опцию «Порты» “Ports (COM & LPT)”, кликните на ней и посмотрите правильно ли отображается там ваша плата.
При этом стоит отметить, что не стоит обращать внимание на то, какой номер порта отобразился у вашей платы Arduino – он может, к примеру, выглядеть как CCH450 или что то подобное. Этот номер порта просто определяется производителем платы и больше ни на что не влияет.
Если вы не можете в диспетчере устройств найти опцию “Ports (COM & LPT)”, то это означает, что ваша плата не корректно определилась компьютером. В большинстве случает это означает проблему с драйверами – по какой то причине они автоматически не установились для вашей платы. В этом случае вы должны будете вручную установить необходимые драйверы.
В некоторых случаях в указанной опции диспетчера устройств может отобразиться два COM порта для вашей платы и вы не будете знать какой из них правильный. В этой ситуации отключите и снова подключите плату Arduino к компьютеру – какой из COM портов при этом будет появляться и исчезать, значит тот и правильный порт.
Следует помнить о том, что номер COM порта будет изменяться при каждом новом подключении вашей платы к компьютеру – не пугайтесь, в этом нет ничего страшного.
Установка ПО
После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.
Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.
В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.
Среда разработки Arduino IDE
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:
Управление яркостью светодиода
Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.
Знакомство с платой
Итак, перед нами – одна из самых распространенных плат ардуино Arduino UNO.
Для начала давайте посмотрим что мы видим на плате – только главные вещи, которые действительно имеют значение для начинающего ардуинщика, и ничего лишнего.
Микроконтроллер
Большая многоножка посередине платы – это сердце ардуино, микроконтроллер.
Говоря по-простому, микроконтроллер выполняет 4 основные функции:
- Выставляет напряжение на своих ножках
- Считывает (измеряет) напряжение на ножках
- Запоминает данные
- Производит вычисления
Выстраивание этих функций в нужной комбинации и последовательности и представляет собой процесс программирования микроконтроллера. После чего он может общаться со внешней средой и управлять подключёнными к нему устройствами:
- Считывать данные с датчиков
- Воспроизводить звук
- Вращать моторчики
- Отправлять и принимать данные и т.д.
В зависимости от модели платы здесь может стоять разный микроконтроллер. В UNO R3, например, стоит Atmega328.
Он может быть в разном корпусе: SMD или DIP.
DIP бывает впаян, а бывает съемным, как здесь, что позволяет заменить микроконтроллер в случае выхода его из строя. А ведь микроконтроллер рассчитан лишь на определенное, хоть и немалое, число прошивок. Также съемный контроллер может использоваться для быстрой смены программы на плате без подключения к компьютеру.
Ножки микроконтроллера называются пинами. Все они выведены на плате ардуино.
Пины выполняют определенную функцию, а многие из них совмещают даже сразу несколько функций.
Давайте сначала разберемся с входным питанием платы и, наконец, уже подключим ее компьютеру.
Входное питание
У платы UNO нее есть 2 основных способа питания:
- USB разъем, для подключения 5V источника питания или подключения к компьютеру
- Разъем для подключения сетевого источника питания с выходным напряжением от 7 до 12V. Т.е. сюда напрямую можно подключить хоть батарейку крону, хоть питание от светодиодной ленты. Нам он нужен только для того, чтобы ардуино работала без компьютера. Но в ходе обучения, ардуино у нас почти всегда будет подключена к компьютеру. Поэтому этот разъем нам не нужен. А для экспериментов без компьютера проще будет использовать power bank, подключаемый к разъему USB.
Да, у ардуино есть еще 3й способ питания, а для, например, ProMini он является вообще единственным. Это пин VIN (сокращение от «Voltage Input») – альтернативный способ питания, который полезен, например, если ваше устройство будет иметь 2 способа питания: от сети и аккумулятора. Компаратор на плате сам выберет питание с наибольшим напряжением. Диапазон напряжение тоже от 7 до 12V.
Все, для написания и понимания первой программы ардуино этого более чем достаточно.
Настало время подключить плату к компьютеру и написать первую программу.
Частые вопросы
- Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс flash памяти. А он довольно большой.
- Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
- Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов.
- Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию.
- Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
- Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу
- Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь
- Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI
ВНИМАТЕЛЬНО ЧИТАЙ ИНСТРУКЦИЮ Если это твой первый опыт работы с Arduino — внимательно изучи каждый пункт инструкции выше, здесь всё написано. × Отклонить предупреждение
1. Установить Arduino IDE и драйверы, как написано в гайде. Если это ваш первый раз – желательно не подключать ничего к новой плате, а загрузить пробную прошивку из гайда и убедиться, что всё загружается и работает. Если после сборки схемы прошивка перестанет загружаться – увы, схема собрана с ошибками и плата уже могла сгореть. Но она работала, мы это проверили =)
- Если проект основан на esp8266 или Digispark – устанавливаем поддержку этих плат, как описано в гайде выше.
2. Скачать архив со страницы проекта. Ссылка всегда одна, она ведёт на прямую загрузку архива с хранилища GitHub. Когда проект обновляется (об этом может быть написано на странице проекта), ссылка на архив остаётся той же, но в нём будут уже какие-то изменённые файлы, добавлены новые версии прошивки и т.д. Все обновления указаны на странице проекта.
3. Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив – прошивка откроется неправильно. Я не отличаюсь буйной фантазией и всегда называю папки одинаково, вот что может быть в архиве проекта:
- firmware – прошивки для Arduino
- software – программы для ПК
- libraries – библиотеки
- schemes – схемы
- PCB – gerber файлы печатных плат
- docs – всякие документы
- Android – исходники приложения
- 3Dprint – модели для печати
- processing – программа на Processing
4. Установить библиотеки. К прошивкам моих проектов всегда идут библиотеки, необходимые для работы кода. Библиотеки в проектах часто пересекаются, но рекомендуется ставить именно идущую в комплекте с проектом версию, так как более старые или новые могут быть несовместимы.
Содержимое папки libraries из архива помещаем в
- С/Program Files/Arduino/libraries/ (Windows x32)
- C/Program Files (x86)/Arduino/libraries/ (Windows x64)
Если возникнут проблемы с доступом к этой папке (на Windows 10), то библиотеки можно положить в
Примечание: к разным проектам идут разные версии одних и тех же библиотек, они не всегда совместимы. При возникновении ошибок рекомендуется удалить текущие версии и заменить их теми, которые идут в архиве.
5. Открыть скетч (так называется файл с программой). При запуске файла скетча автоматически откроется Arduino IDE. Важно: если в папке со скетчем есть несколько файлов – запускаем любой с логотипом Arduino. Остальные файлы должны подтянуться автоматически и образовать вкладки в окне программы. Если запускать скетч прямо из архива – вкладки не откроются и скомпилировать/загрузить программу будет невозможно.
Вкладки в Arduino IDE
6. Выбрать плату и порт. Выбираем в настройках программы соответствующую плату и порт куда она подключена, как в гайде выше. Важные моменты по настройкам самой платы обычно указано в описании конкретного проекта.
- Для проектов на Arduino Nano выбираем Arduino Nano, а также ИнструментыПроцессорATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Для проектов на Wemos выбираем (LOLIN)Wemos D1 R2 & mini
- Для проектов на NodeMCU выбираем NodeMCU 1.0
- В некоторых проектах, например GyverLamp2 (второй версии) для прошивки в esp8266 нужно выбрать плату Generic esp8266, читайте особенности загрузки на странице проекта!
- Для проектов на Digispark порт выбирать не надо, читай инструкцию выше
7. Настроить программу. Очень часто в начале кода моих программ можно встретить блок настроек. Настройки обычно имеют вид
где цифра отвечает за значение настройки, менять нужно только цифру согласно комментарию.
8. Загрузить прошивку. Нажимаем стрелочку в левом верхнем углу окна программы и прошивка загружается. Не загружается? Читаем гайд выше, там описаны все возможные причины.
Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если потребитель его потребует – это может привести к выгоранию защитного диода на плате Arduino.
9. Если что-то не работает – читай инструкцию, в ней описан каждый шаг и решение всех проблем. Также в самом начале есть видео, где всё показано ещё более подробно.
Заметка для тех, кто не читал инструкцию и получил какую-то ошибку. Вот список самых частых причин: