Начнём небольшую серию статей про программирование плат 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, которую можно найти на официальном сайте —arduino.cc/en/Main/Software