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

Все блоги / Блоги людей 2 февраля 2010 0   
Через месяц после заказа ко мне пришла посылка с Arduino, точнее, ее вариацией - Seeeduino. Вот, что в ней было:


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

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

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

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

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


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

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

1) В /etc/apt/sources.list дописала строку
deb
http://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 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 к USB-разъему компьютера и нажмем клавишу Upload . Плата помигает служебными лампочками и начнет выполнение скетча.



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

Источник:Telegamochka на ЖЖ

Похожие публикации

@
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Архив публикаций