Arduino.ru
Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.
Базовые и полезные знания, необходимые для успешного программирования под платформу Arduino:
- Начало работы с Arduino в Windows
- Работа с Arduino Mini
- Цифровые выводы
- Аналоговые входы
- Широтно-импульсная модуляция
- Память в Arduino
- Использование аппаратных прерываний в Arduino
- Перепрошивка контроллера Atmega8U2 для Arduino Uno и Mega2560
- Переменные
- Функции
- Создание библиотек для Arduino
- Использование сдвигового регистра 74HC595 для увеличения количества выходов
- Прямое управления выходами через регистры микроконтроллера Atmega
Справочник языка Ардуино
Язык Arduino можно разделить на три раздела:
Операторы
Управляющие операторы
Синтаксис
- ; (semicolon)
- <> (curly braces)
- // (single line comment)
- /* */ (multi-line comment)
Арифметические операторы
- = (assignment)
- + (addition)
- — (subtraction)
- * (multiplication)
- / (division)
- % (modulo)
Операторы сравнения
- == (equal to)
- != (not equal to)
- <(less than)
- > (greater than)
- <=(less than or equal to)
- >= (greater than or equal to)
Логические операторы
Унарные операторы
- ++ (increment)
- — (decrement)
- += (compound addition)
- -= (compound subtraction)
- *= (compound multiplication)
- /= (compound division)
Данные
Константы
- HIGH | LOW
- INPUT | OUTPUT
- true | false
- Целочисленные константы
- Константы с плавающей запятой
Типы данных
Преобразование типов данных
Область видимости переменных и квалификаторы
Функции
Цифровой ввод/вывод
Аналоговый ввод/вывод
- analogRead()
- analogReference()
- analogWrite()
Дополнительные фунции ввода/вывода
Работа со временем
Математические функции
Тригонометрические функции
Генераторы случайных значений
Внешние прерывания
- attachInterrupt()
- detachInterrupt()
Функции передачи данных
Библиотеки Arduino
Servo — библиотека управления сервоприводами.
EEPROM — чтение и запись энергонезависимой памяти микроконтроллера.
SPI — библиотека, реализующая передачу данных через интерфейс SPI.
Stepper — библиотека управления шаговыми двигателями.
Авторизация
Примеры
Изменяем яркость светодиода — плавное изменение яркости светодиода функцией analogWrite().
Мигаем светодиодом — пример подключения светодиода к Arduino и работы с ним
Тактовая кнопка — считывание состояния кнопки
Мигаем светодиодом без delay() — еще один, более практичный способ мигать светодиодом
Arduino.ru

Существует несколько версий платформ Arduino. Последняя версия Leonardo базируется на микроконтроллере ATmega32u4. Uno, как и предыдущая версия Duemilanove построены на микроконтроллере Atmel ATmega328 (техническое описание). Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168 (техническое описание), более ранние версии использовали ATmega8 (техническое описание). Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560 (техническое описание).
Программирование Ардуино
Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.

Arduino?
Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.
Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.
Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.
В 2006 Arduino получила признание в категории Digital Communities на фестивале Ars Electronica Prix .
Arduino и совместимые языки программирования

Начать свой путь в IT бывает очень сложно хотя бы просто потому, что глядя на окружающие технологии невозможно отделить «железный» интерес от программного. С одной стороны — желание создать устройство с безупречным внешним видом, множеством датчиков и безграничными возможностями, с другой — таинство обработки данных, стремление максимально увеличить быстродействие, не пренебрегая функциональностью. Arduino — первый шаг к большим изобретениям, не требующий ни глубоких знаний схемотехники, ни опыта в программировании.

Что такое Arduino
Если называть вещи своими именами, то Arduino — это конструктор для тех, кому надоело созидать бесполезные образы и захотелось хоть немного наделить их жизнью. В самом простейшем случае Arduino — печатная плата, на которой расположен контроллер, кварцевый генератор, АЦП/ЦАП, несколько разъёмов, диодов и кнопок. Остальное — дело рук хозяина: хотите — создавайте робота, хотите — программно-аппаратную платформу для «умного» дома, ну или забудьте про практическую пользу и развлекайтесь.
Конечно, в зависимости от того. насколько далеко вы хотите зайти в своих экспериментах, хотите ли вы получать фильтрованное удовольствие или сделать из Arduino платформу для собственного заработка, вам придётся совершенствоваться и в проектировании железа, и в изучении языков программирования. О последнем сегодня чуть подробнее.
Arduino достаточно ограниченная платформа в плане возможностей программирования, особенно в сравнении с Raspberry Pi. В силу того, что порог входа неприлично низкий (базовый Tutorial занимает 3 листа формата A4), то рассчитывать на изобилие языков без подключения дополнительных модулей не приходится. За основу здесь принят C/C++, но с использованием различных IDE и библиотек вы получите доступ к оперированию Python, C#, Go, а также таким детским развлечениям, как Snap! и ArduBlock. О том как, когда и кому их использовать, поговорим далее.
C/C++
Базовый язык платформы Arduino, который с некоторыми доработками и упрощениями используется в стандартной программной оболочке. Найти все доступные команды «для новичка» можно здесь, но никто не мешает вам воспользоваться исходными возможностями языка C++, никаких надстроек не потребуетс. Если же есть желание поиграть с «чистым» C, то к вашим услугам программа WinAVR, предназначенная, как следует из названия, для взаимодействия ОС Windows и МК серии AVR, которые и используются на Arduino. Более подробное руководство можете прочитать вот здесь.
Использование C/C++ рекомендуется тем, кто уже имеет представление о программировании, выучил в школе пару языков и хочет создать на Arduino что-то большее, чем светодиодную «мигалку» или простую машинку.
Ardublock
Временно отойдем от языков взрослых к любимому ребятней языку Scratch, а вернее к его адаптации — Ardublock. Здесь всё тоже самое, но с адаптацией к вашей платформе: цветные блоки, конструктор, русские названия, простейшая логика. Такой вариант здорово подойдет даже тем, кто с программированием не знаком вовсе. Подобно тому, как в языке Logo вы можете перемещать виртуальную черепашку по виртуальной плоскости, здесь с помощью нехитрых операций вы можете заинтересовать ребенка реальной интерпретацией его программных действий.
Да, кстати, для использования необходимо на вашу стандартную среду Arduino IDE установить плагин. Последние версии лучше не хватать, они довольно сложные, для начала подойдет датированная концом 2013 года. Для установки скачанный файл переименовываем в «ardublock-all» и запихиваем в папку «Мои документы/Arduino/tools/ArduBlockTool/tool». Если её не существует — создаем. Если что-то не поняли, то вот здесь более подробно.
Snap!
По сравнению с Ardublock, Snap! имеет расширенные возможности в виде дополнительных блоков, возможности использования списков и функций. То есть Snap! в общем и целом уже похож на взрослый язык программирования, не считая, что вам по прежнему необходимо играть в конструктор кода.
Для того, чтобы использовать этот язык, придется сходить на сайт snap4arduino.org и скачать необходимые компоненты для вашей ОС. Инструкции по установке, использованию и видеопримеры ищите здесь же.
Рекомендуется младшей возрастной группе, тем, кто учил программирование так давно, что уже ничего не помнит и тем, кто хочет завлечь своего ребенка в IT через Scratch и Snap!.
Python
Формально программировать на Arduino вы можете используя хоть язык Piet, просто потому что при должном упорстве вы скомпилируете в машинный код что угодно. Но в силу того, что Python — один из наиболее популярных языков с практически оптимальным сочетанием сложность\возможности, то обойти стороной его применяемость в Arduino было бы нелепо. Начать изучение Python вы можете с нашего бесплатного интенсива «Основы языка Python».
Итак, для этого вам понадобится библиотеки PySerial (ранее, возможно, вы использовали её для общения с портами компьютера) и vPython. О том, как правильно всё настроить и заставить в конечном счёте работать, можете соответственно почитать здесь и здесь.
Go и другие языки.
Подобно тому, как Arduino взаимодействует с Python через библиотеку PySerial, он может взаимодействовать и с Go, и c Java, и с HTML, и с чем только захотите. Arduino — достаточно популярная платформа, чтобы такой банальный вопрос, как выбор удобного языка, не остановил очередного исследователя. Единственное, что требуется от владельца этой маленькой платы — задумать что-нибудь удивительно интересное, а удобный инструмент неизбежно найдётся.
На чем пишутся скетчи в Arduino?
Это самый что ни на есть обычный C++. Для компиляции скетчей используется либо AVR-GCC (для микроконтроллеров AVR8), либо ARM-NONE-EABI-GCC — для микроконтроллеров ARM.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 3
На языке Arduino. А он сам основан на С/С++ согласно документации.
The Arduino language is based on C/C++. It links against AVR Libc and allows the use of any of its functions.
Ответ написан более трёх лет назад
Нравится 2 2 комментария

Dima Kim @jalpy Автор вопроса
т.е. чтобы начать писать скетчи я должен учить ардуино а не Си?
Dima Kim: синтаксис Си, остальное функции Ардуино.

Александр Волков @a_volkov1987
Инженер-схемотехник
Можете писать скетчи на Wiring, если не жаль себя.
А вообще можно и на чистом С — пруф
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Обычно пишутся на языке Arduino, синтаксис его основан на C++, потому что для классов у него не свой собственный, а тот же синтаксис, что и у C++, а все остальное (библиотеки функций) очевидно не имеет ничего общего с десктопными и мобильными реализациями C-like-языков, иногда скетчи частично или полностью пишутся на AVR-ассемблере, для начала тоже можно писать в Arduino IDE, поэтому установите Arduino IDE и пишите.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Программирование
- +3 ещё
Профиль HSP на HC-05?
- 1 подписчик
- 21 янв.
- 55 просмотров