CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Программирование Arduino - введение

Начнём небольшую серию статей про программирование плат 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
  • 30 июня 2009, 19:03
  • admin

Комментарии (2)

RSS свернуть / развернуть
+
0
Статья хорошая, спасибо, но пытаюсь за пустить 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: у меня основной жесткий)
avatar

Sgushenka

  • 10 марта 2013, 02:11
+
0
IDE не получается создать папку для настроек и скетчей — возможно из-за ограничения прав на запись или путь до домашнего каталога содержит кириллицу. Но версия 0016 уже устарела, поэтому рекомендую попробовать более свежую версия Arduino IDE, которую можно найти на официальном сайте — arduino.cc/en/Main/Software
avatar

admin

  • 10 марта 2013, 19:41

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.