- Arduino.ru
- Справочник языка Ардуино
- Операторы
- Данные
- Функции
- Библиотеки Arduino
- Arduino и совместимые языки программирования
- Что такое Arduino
- C/C++
- Ardublock
- Snap!
- Python
- Go и другие языки.
- Что за особый язык программирования используется для Arduino?
- Язык программирования Ардуино: что собой представляет
- Какой язык программирования на Ардуино
Arduino.ru
Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.
Базовые и полезные знания, необходимые для успешного программирования под платформу Arduino:
- Начало работы с Arduino в Windows
- Работа с Arduino Mini
- Цифровые выводы
- Аналоговые входы
- Широтно-импульсная модуляция
- Память в Arduino
- Использование аппаратных прерываний в Arduino
- Перепрошивка контроллера Atmega8U2 для Arduino Uno и Mega2560
- Переменные
- Функции
- Создание библиотек для Arduino
- Использование сдвигового регистра 74HC595 для увеличения количества выходов
- Прямое управления выходами через регистры микроконтроллера Atmega
Справочник языка Ардуино
Язык Arduino можно разделить на три раздела:
Операторы
Управляющие операторы
Синтаксис
Арифметические операторы
Операторы сравнения
- == (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)
Данные
Константы
Типы данных
Преобразование типов данных
Область видимости переменных и квалификаторы
Функции
Цифровой ввод/вывод
Аналоговый ввод/вывод
Дополнительные фунции ввода/вывода
Работа со временем
Математические функции
Тригонометрические функции
Генераторы случайных значений
Внешние прерывания
Функции передачи данных
Библиотеки Arduino
Servo — библиотека управления сервоприводами.
EEPROM — чтение и запись энергонезависимой памяти микроконтроллера.
SPI — библиотека, реализующая передачу данных через интерфейс SPI.
Stepper — библиотека управления шаговыми двигателями.
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?
Хочется прояснить ситуацию с так называемым «языком программирования Arduino», который «основан на Wiring». Подобные сочетания слов часто встречаются на страничках, посвященных Arduino. На официальном сайте так и пишут: «. is programmed using the Arduino programming language (based on Wiring)». По факту нет никакого особого языка программирования, и фактически программы пишутся на C/C++, а компилируются и собираются с помощью широко известного avr-gcc.
Все особенности сводятся к тому, что имеется набор библиотек, включающий в себя некоторые функции (вроде pinMode) и объекты (вроде Serial), а при компиляции Вашей программы среда разработки создает временный .cpp файл, в который кроме Вашего кода включается еще несколько строчек, и полученный результат скармливается компилятору а затем линковщику с нужными параметрами.
Для примера можно создать маленький проект с любым именем, добавить туда минимум кода, например так:
--- Test.pde --- void setup() < pinMode(13, OUTPUT); >void loop() < digitalWrite(13, 1); delay(500); digitalWrite(13, 0); delay(500); >---
Если теперь «зашить» полученную программу в Arduino, то в папке с проектом появится папка «applet», а в ней куча файлов. В основном это объектники, содержащие скомпилированные стандартные функции, а также готовая скомпилированная программа в разных форматах (ELF, ROM, HEX). Самым интересным является .cpp файл — это то, во что превратился наш код:
--- Test.cpp --- #include "WProgram.h" // тут определения всех Arduino ф-ий, констант и т.д. void setup(); // объявляют ф-ии setup() и loop(), в которых наша void loop(); // программа для Arduino и пишется void setup() < // --- а вот с этого места пошел наш исходник --- pinMode(13, OUTPUT); >void loop() < digitalWrite(13, 1); delay(500); digitalWrite(13, 0); delay(500); >// здесь наш код кончился, опять пошли "довески" int main(void) // здесь как и принято в c/c++ ф-ия main() < init(); // в ней вызывается своя инициализация setup(); // затем вызывается наш setup() for (;;) // и в бесконечном цикле вызывается наш loop() loop(); return 0; // а сюда вообще никогда не попадаем >---
На самом деле среда Arduino делает еще какие-то мелкие преобразования исходного кода, например декорирует не латинские символы, выносит все «#include» наверх, может еще какие-то мелочи, но идея остается той же самой.
Язык программирования Ардуино: что собой представляет
Язык программирования Ардуино – прикладной язык. Используется для работы с микроконтроллерами. Это яркий пример того, как код может быть воплощен не просто в какую-то потенциальную программу, а в действие в прямом смысле этого слова. Всё, что вы запрограммируете, будет двигаться, выполняя определенные функции.
Основой для Ардуино является язык C/C++, однако для работы с микроконтроллерами используются и другие. О том, что собой представляет эта интересная среда разработки, вы узнаете из нашего материала.
Какой язык программирования на Ардуино
Стать хорошим специалистом в сфере IT бывает непросто из-за трудности с первоначальным выбором конкретного направления деятельности. Речь о многообразии современных технологий, и о том, что приходится определяться, к чему сильнее ваш интерес, к «железу» или всё-таки к программному обеспечению.
Вам хотелось бы создавать уникальные по внешнему виду и возможностям устройства, или контролировать их функционал, процессы обработки данных, быстродействие? Чтобы стать специалистом по Ардуино, не нужно быть ни виртуозным разработчиком, ни опытным «технарём».
Ардуино, как язык программирования, предназначен для непрофессионального использования в роботостроении и для создания простейших автоматических систем управления. Спектр задач, которые будет способно выполнять готовое устройство, определяется набором входящих в его состав плат.
Самый простой пример – автоматическая кормушка для домашних питомцев из подобных плат, а вообще с вариантами их применения можно фантазировать до бесконечности.
Говоря прямо, микроконтроллер сам по себе «глуп». Он не наделен способностями мыслить или импровизировать, действует строго по инструкциям, для написания которых как раз и используется язык программирования со строгим синтаксисом и нормами оформления. Это упрощает работу и программистов, и тех, кто будет устранять возможные синтаксические ошибки, из-за которых нарушается компиляция кода, либо прошитое им устройство начинает работать некорректно.
Бинарный машинный код, по виду представляющий собой беспорядочный набор цифр и букв, загружается в созданный микроконтроллер. Код этот может создаваться с помощью разных языков программирования, что определяется с учетом среды разработки и интерпретатора.
На каком языке программирования работает Ардуино? На давно заработавшем себе популярность С++, который на сегодняшний день один из самых мощных (официальная среда разработки — Arduino IDE). Используемому новому языку разработчики дали название Arduino Wiring, потому что в стандартную библиотеку Arduino.h включен инструментарий и функционал из фреймворка Wiring. Что касается синтаксиса, то он берется именно из языка С++, поэтому если берётесь за язык программирования Ардуино с нуля, то придется изучить не только стандартные функции, но ещё какие-то справочники по С++.