Начнём небольшую серию статей про программирование плат Arduino.
Для программирования используется Arduino IDE, которую можно скачать на официальном сайте.
Текущая версия, как здесь уже писали — Arduino 0016. Есть версии для Windows (70 Mb), MacOS и Linux.
Рассмотрим версию для Windows — после скачивания архива его нужно распаковать.
Например, в
С:\utils\arduino-0016\
далее остаётся запустить run.bat и всё — Arduino IDE перед вами 🙂

1. Введение
Как мы уже выяснили Arduino/ Freeduino программируется на языке Wiring, которого на самом деле не существует, как и не существует и компилятора Wiring – написанные на Wiring программы преобразуются (с минимальными изменениям) в программу на языке C/C++, и затем компилируются компилятором AVR-GCC. Так что, фактически, используется специализированный для микроконтроллеров AVR вариант C/C++.
Однако, Вы получаете простую среду разработки, и набор базовых библиотек, упрощающих доступ к находящейся «на борту» микроконтроллера периферии.
Например, начать работу с последовательным портом на скорости 9600 бит в секунду, можно всего одной строчкой:
Serial.begin(9600);
А при использовании «голого» C/C++ Вам бы пришлось разбираться с документацией на микроконтроллер, и вызывать нечто подбное:
UBRR0H = ((F_CPU / 16 + 9600 / 2) / 9600 - 1) >> 8; UBRR0L = ((F_CPU / 16 + 9600 / 2) / 9600 - 1); sbi(UCSR0B, RXEN0); sbi(UCSR0B, TXEN0); sbi(UCSR0B, RXCIE0);
фактически, класс HardwareSerial
( \hardware\cores\arduino\HardwareSerial.h – здесь и далее путь указывается от директории установки Arduino IDE) инкапсулирует данные операции в функции begin (\hardware\cores\arduino\HardwareSerial.cpp)
void HardwareSerial::begin(long speed)
{
*_ubrrh = ((F_CPU / 16 + speed / 2) / speed - 1) >> 8;
*_ubrrl = ((F_CPU / 16 + speed / 2) / speed - 1);
sbi(*_ucsrb, _rxen);
sbi(*_ucsrb, _txen);
sbi(*_ucsrb, _rxcie);
}
Раз уж мы открыли заголовочный файл \hardware\cores\arduino\HardwareSerial.h — обратите внимание, что так как по смыслу выполняемых задач экземпляр этого класса может быть только один (ведь COM-порт на плате всего один – верно?), то заодно происходит и объявление этого экземпляра в .h файле:
extern HardwareSerial Serial;
и именно этот экземпляр мы и используем при работе с последовательным портом.
Подключение заголовочного файла класса работы с последовательным портом происходит строчкой
#include "HardwareSerial.h"
в файле
\hardware\cores\arduino\WProgram.h
,который, как мы уже знаем, подключается автоматически при компиляции скетча.
Далее кратко рассмотрим основные функции и особенности программирования Arduino/Freeduino.
Если Вы не знакомы с синтаксисом языков C/C++, советуем обратиться к любой литературе по данному вопросу, либо Internet-источникам.
Начать можно с википедии: http://ru.wikipedia.org/wiki/C++
С другой стороны, все представленные примеры очень просты, и скорее всего у Вас не возникнет трудностей с пониманием исходных текстов и написанием собственных программ даже без чтения дополнительной литературы.
По аналогии с описанием на официальном сайте проекта Arduino, под «портом» будем понимать контакт микроконтроллера, выведенный на разъем под соответствующим номером. Кроме того, существует порт последовательной передачи данных (COM-порт).
Более полная документация (на английском языке) представлена на официальном сайте проекта – http://www.arduino.cc.
читать дальше: 2. Программирование Arduino — структура программы, константы
Ссылки
http://arduino.cc/en/Reference/HomePage (или же в каталоге ArduinoIDE \reference\HomePage.html )
http://freeduino.ru/arduino/lang.html
По теме
Arduino/CraftDuino и WinAVR — программируем на чистом С
Переходим от Arduino к программированию ATtiny13 на C

0 комментариев на «“Программирование Arduino — введение”»
Статья хорошая, спасибо, но пытаюсь за пустить run.bat и выдаёт раз через раз вот такие 2 ошибки «arduino cannot run because it could not create a folder to store your setting» и «arduino cannot run because it could not create a folder to store your sketch». Может подскажете в чём дело? Копирую в папку F:\utils\arduino-0016 (F: у меня основной жесткий)
IDE не получается создать папку для настроек и скетчей — возможно из-за ограничения прав на запись или путь до домашнего каталога содержит кириллицу. Но версия 0016 уже устарела, поэтому рекомендую попробовать более свежую версия Arduino IDE, которую можно найти на официальном сайте —