Arduino: первое знакомство

Программирование под ОС ограничено рамками. Вы пишете приложение, и оно работает только на компе. Программист который хочет выйти за эти рамки, на шаг ближе к созданию своих устройств. Если, вы только начали задумыватся над этим, советую посмотреть в сторону Arduino – это отличный первый шаг к созданию своих устройств и «пониманию как вообще оно работает». Желаю вам удачи, тема очень интересная и перспективная во всех отношениях.

Arduino: первое знакомство

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

Через месяц после заказа ко мне пришла посылка с Arduino, точнее, ее вариацией — Seeeduino. Вот, что в ней было:
Arduino: первое знакомство

Программирование под ОС ограничено рамками. Вы пишете приложение, и оно работает только на компе. Программист который хочет выйти за эти рамки, на шаг ближе к созданию своих устройств. Если, вы только начали задумыватся над этим, советую посмотреть в сторону Arduino – это отличный первый шаг к созданию своих устройств и «пониманию как вообще оно работает». Желаю вам удачи, тема очень интересная и перспективная во всех отношениях.

Arduino: первое знакомство

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

Через месяц после заказа ко мне пришла посылка с Arduino, точнее, ее вариацией — Seeeduino. Вот, что в ней было:
Arduino: первое знакомство

Слева направо / сверху вниз:

Черно-белый графический жк-дисплей, 128*64 (ST7565/67 ctrl)
Serial port bluetooth module (slave)
Пара джойстиков — маленький 4-позиционный и большой аналоговый Playstation2 analog joystick
Seeeduino Mega — собственно сам мини-компьютер, а справа от него — набор прилагавшихся «гребенок»
Пара каких-то зеленых плат, макетная плата, набор из 20 мини-кнопочек
Набор деталей «Seeeduino Catalyst Pack» (что входит в этот набор, можно посмотреть здесь)
Набор проводков для макетной платы
Пакет с деталями для подключения батарейки «Крона» или блока питания
USB/miniUSB кабель

Зачем мне все это богатство? Носимый компьютер требует нестандартных устройств — таких, как, к примеру, аккордная клавиатура. Можно, конечно, заказать из Штатов трехсотдолларовый Twiddler2 (или уже нельзя — кажется, их прекратили выпускать). А можно — с помощью Arduino попробовать самостоятельно сделать аналогичное устройство, заодно попытавшись найти боолее удобное решение. Кроме аккордной клавиатуры мне хотелось бы получить беспроводной текстовый дисплей (чтобы наголовный дисплей работал через bluetooth, а не по проводам), а также беспроводные биометрические датчики. Тем более, что в сети есть инструкции по сборке простейших датчиков пульса на базе Arduino. В сети вообще тысячи Arduino-проектов самого разного уровня — этот конструктор собрал вокруг себя большую аудиторию энтузиастов.

Arduino — открытая платформа. Каждый при желании и соответствующей квалификации может заняться выпуском подобных «кубиков» и продавать их. Но для того, чтобы продавать их «под лейблом» Arduino, нужно пройти сертификацию. Впрочем, никто не мешает внести в конструкцию незначительные изменения и продавать свои устройства под другим названием. В результате появились клоны Arduino разной степени совместимости — Seeeduino, Freeduino и другие. Все они собраны на базе микроконтроллеров семейства ATmega. Разные модели этих микроконтроллеров отличаются друг от друга быстродействием, объемом ОЗУ/ППЗУ и, естественно, ценой. Я купила Seeeduino Mega на базе одного из самых мощных процессоров, используемых в Arduino — ATmega1280.

Чтобы начать работать с Arduino, нужно установить на компьютер среду для разработки — Arduino IDE. Так как она написана на Java, то работает и под линуксом, и под виндами, и под Mac OS. Загрузить эту программу и ознакомиться с инструкцией по установке можно на официальном сайте Ardiono: www.arduino.cc/playground/Main/DevelopmentTools

Установка под линуксом

У меня на нетбуке — Eeebuntu (Jaunty Jackalope). Java уже установлена. Почитав довольно невнятные инструкции по установке софта, я на всякий случай проделала следующее:

1) В /etc/apt/sources.list дописала строку
deb archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse

2) Выполнила:

$ sudo apt-get update
$ sudo apt-get install gcc-avr
$ sudo apt-get install avr-libc

3) Скачала, распаковала и запустила arduino-0018.tgz

Установка под MS Windows XP
(http://arduino.cc/en/Guide/Windows)

Скачиваем и распаковываем архив с софтом. В отличие от неполных 4 мегабайт линуксного дистрибутива архив для виндов весит 87 Мб. Подключаем к USB-порту компьютера Arduino. Появившемуся визарду установки нового оборудования (или как он у них называется? помощник?) говорим, что искать дравера в сети не стоит, а в качестве каталога поиска драйверов указываем «папка, куда распаковался ардуиний софтdriversFTDI USB Drivers». После первого визарда придет второй — настроить COM-порт. Со вторым визардом поступаем так же, как с первым — после чего имеем компьютер, способный общаться с Arduino-платой.

Написание скетчей

Arduino: первое знакомство

Программы для Arduino называются скетчами. Для написания скетчей есть разные языки. С помощью Arduino IDE можно писать скетчи на C-подобном языке Processing. Если изучение C многие начинают с классического «Hello World!», то для Arduino таким «хелло» стал скрипт, мигающий светодиодом. Запустим Arduino IDE и в появившемся окне напечатаем:

// Определим, к какой ножке микросхемы будет подключен  светодиод
#define LED 13

void setup() {
// Укажем, что данная ножка будет использоваться для вывода
pinMode(LED, OUTPUT);
}

void loop() {
// Зажжем светодиод, подав напряжение на ножку
digitalWrite(LED, HIGH);
// Подождем секунду
delay(1000);
// Погасим светодиод, убрав напряжение с ножки
digitalWrite(LED, LOW);
// Подождем секунду
delay(1000);
}

В данном скетче — две основных функции. setup() выполняется один раз при старте приложения, здесь как правило, устанавливаются режимы, в которых будут работать ножки микроконтроллера, инициализируются данные. loop() выполняется бесконечно (пока не будет выключено питание). Кстати, при выключении питания записанный в Arduino скетч не стирается. Так что при включении питания микроконтроллер начнет выполнять скетч — сначала исполнив setup(), а затем циклически повторяя loop().

Откомпилируем написанный скетч, нажав кнопку Verify. Если скрипт откомпилировался без ошибок (сообщения компилятора выводятся внизу, в черном окошке), загрузим его на устройство. Сначала соберем схему, для которой написан скетч. В нашем случае — полключим к Arduino светодиод. Катод светодиода (короткая ножка) вставим в гнездо Gnd, анод (длинная ножка) — в гнездо 13.

Arduino: первое знакомство

Теперь подсоединим Arduino к USB-разъему компьютера и нажмем кнопку Upload . Плата помигает служебными лампочками и начнет выполнение скетча.
Arduino: первое знакомство

Для освоения Arduino стоит прочесть книгу Massimo Banzi «Getting started with Arduino». Кроме бумажного экземпляра, выпущенного издательством O\’Reilly существует абсолютно легальная электронная версия книги, которую несложно нагуглить.

Дополнительные ресурсы

  1. Официальный сайт Arduino
  2. Arduino на Випипедии
  3. robocraft.ru
  4. easyelectronics.ru
  5. [attachment=1:Учебник по C++]

Автор статьи: telegamochka