Вы находитесь на странице: 1из 417

РАДИО -

ЕЖЕГОДНИК
2 0 1 5 выпуск 3 4
ТЕМАТИЧЕСКИЙ ОБЗОР ПЕЧАТИ И ИНТЕРНЕТ-РЕСУРСОВ

ТЕМА НОМЕРА:

Путеводитель
по A R D U I N O
Ч ем б ол ь ше ч и т а ю п ро A r du i no ,
т ем с ил ьн ее х оч е тся поп ро бо в а ть : )
(из к ом м ен та р и я на Ха бр е)

Сб ор ни к по м о ж ет н ач ин аю щ им с ор и ен ти р ов ат ь с я в б ез бр е жн о м м ор е
A rd u in o и сд ел а т ь св о и п ер в ы е к о н с тру кц и и д а ж е н е им ея н авы к ов
пр огр ам ми ро в ан ия . О пы тн ы е « ард уи н щ и ки» н айд у т в н ё м н о вы е и д еи и
пу ти д л я с в о ег о д а л ьн е йш е г о с о в ер ш е нс т в о ва ния .

Выпускающий редактор: С. Степанов

Над выпуском работали: С. Муратчаев В. Накоряков B. Davidov


С. Скворцов В. Гололобов М. Шустов
В. Смирнов С. Глушенко
Художник: О. Агафонов

E- mail : radioyearbook@gmail.com

Январь 2015

Информационная поддержка: Портал "РадиоЛ о цман " www.rlocman.ru


Официальные версии журнала
дост упны для свободной загрузки:
www.rlocman.ru/radioyearbook
Путеводитель
по A R D U I N O

СОДЕРЖАНИЕ

7 Амперка - официальный дистрибьютор Arduino в России


8 Готовые наборы от Амперки

9 Arduino Uno

12 Arduino Leonardo
amperka.ru
14 Arduino Mega 2560

16 Arduino Due Амперка


19 Arduino Yun

22 Arduino Ethernet

23 Arduino Mini

24 Arduino Micro

25 Strela

30 LilyPad Arduino 328

33 STM32 Nucleo F401RE

36 Baby Orangutan B-328

38 Teensy 3.1

40 Netduino 2

42 GPRS Shield v2

43 Motor Shield (2 канала, 2 А)

45 Multiservo Shield

47 Music Shield v2

48 NFC Shield v2

49 Relay Shield (4 канала по 5 А)

51 Wi-Fi Shield

53 XBee

54 Bluetooth Bee

55 Wi-Fi Bee v2

57 CAN-BUS Shield

58 RS-485 Shield
60 РадиоЛоцман
61 Как создавали и продвигали Arduino

68 Открытая платформа Arduino высвобождает творческий потенциал

72 Arduino Shields - расширение возможностей аппаратной платформы

76 Аналоговый функционал Arduino: как использовать его в своих проектах

80 Сетевые возможности Arduino-приложений и систем

85 Arduino Due - официальная плата Arduino на микроконтроллере ARM

Статьи, идеи и проекты – интернет-обзор


89 Arduino.ru

92 RoboCraft

94 Все проекты с Arduino

96 Паяльник

98 Хабрахабр

102 KAZUS

103 Digitrode

104 Elektor Labs

106 Hack n Mod

Обзор публикаций по Arduino (с подробным содержанием)


112 Микроконтроллеры DUINO

113 Конструкции с Arduino

114 Знaкомство с Arduino

115 Блокнот программиста Arduino

116 Arduino For Dummies / Arduino для «чайников»

119 Arduino Projects For Dummies / Arduino проекты для «чайников»

121 30 Arduino Projects for the Evil Genius / 30 проектов на Arduino для Злого Гения

122 Arduino + Android Projects for the Evil Genius / Arduino + Android проекты для Злого Гения

123 Programming Arduino Next Steps / Следующие шаги в программировании Arduino

125 LEGO and Arduino Projects / LEGO и проекты Arduino

126 Environmental Monitoring with Arduino / Экологический мониторинг с Arduino

127 Atmospheric Monitoring with Arduino / Атмосферный контроль с Arduino

128 Making Things Talk / Устанавливаем связь

130 Arduino Bots and Gadgets / Arduino роботы и гаджеты

131 Make a Mind-Controlled Arduino Robot / Создайте разумного робота на Arduino

132 MintDuino / Создание Arduino-совместимой макетной платы микроконтроллера

133 Make an Arduino−Controlled Robot / Создаём Arduino−управляемого робота

135 Basic Arduino Projects / Простые проекты на Arduino

137 Pro Arduino / Arduino профи


139 Beginning Sensor Networks with Arduino and Raspberry Pi /
Введение в сенсорные сети с Arduino и Raspberry Pi
141 Beginning Android ADK with Arduino / Введение в Android ADK с Arduino

142 Beginning Arduino Programming / Введение в программирование Arduino

144 Arduino Projects to Save the World / Проекты Arduino для сохранения окружающей среды

146 Arduino and LEGO Projects / Проекты Arduino и LEGO

147 Beginning Arduino / Arduino для начинающих

150 Arduino and Kinect Projects / Проекты Arduino и Kinect

152 Arduino Wearables / «Носимый» Arduino

154 Practical Arduino / Arduino на практике

156 Beginning C for Arduino / Знакомство с Си для Arduino

158 Practical Arduino Engineering / Практическое конструирование с Arduino

161 Arduino Adventures / Приключения с Arduino

163 Practical AVR Microcontrollers / Микроконтроллеры AVR на практике

165 Arduino Robotics / Роботы Arduino

168 Arduino Internals / Arduino изнутри

170 Learn Electronics with Arduino / Учитесь электронике с Arduino

172 iOS Sensor Apps with Arduino / Подключение датчиков к устройствам на iOS при помощи
Arduino

173 Distributed Network Data / Распределённая сеть передачи данных

174 Building Wireless Sensor Networks / Создание беспроводных сенсорных сетей

176 Beginning NFC / Введение в NFC

178 Arduino Cookbook / Справочник по Arduino

182 Programming Interactivity /


Руководство разработчика по проектированию Arduino и openFrameworks
185 C Programming for Arduino / Программирование на C для Arduino

188 Raspberry Pi Home Automation with Arduino / Raspberry Pi и домашняя автоматизация с


Arduino
190 Internet of Things with the Arduino Yun / Интернет-сервисы и Arduino Yun

191 Exploring Arduino / Изучение Arduino: инструменты и методы инженерного искусства

193 Professional Android Open Accessory Programming with Arduino /


Профессиональное программирование на Android Open Accessory для Arduino
195 Arduino Workshop / Мастерская Arduino: практическое знакомство с 65 проектами

199 Arduino in Action / Arduino в действии

202 Arduino Starters Kit Manual / Полное руководство для начинающих в Arduino

203 Programming Your Home / Атоматизируйте с Arduino, Android и компьютером

204 Arduino: A Quick-Start Guide / Arduino: быстрый старт

205 Introduction to Arduino / Введение в Arduino: пара пустяков

206 Arduino Microcontroller Processing for Everyone! / Обработка данных в Arduino для всех!

209 20 Unbelievable Arduino Projects / 20 невероятных проектов на Arduino


Ознакомительные версии книг
211 Программирование микроконтроллерных плат Arduino/Freeduino. Улли Соммер

220 Глава 1. Общие сведения о микроконтроллерах

226 Глава 2. Программирование микроконтроллеров

228 Проекты с использованием контроллера Arduino. Петин В.А.

232 Проекты с использованием контроллера Arduino, 2-е изд. Петин В.А.

245 Предисловие

248 Глава 1. Введение в Arduino

252 Заводим Raspberry Pi. Мэтт Ричардсон и Шон Уоллес

253 Глава 6. Arduino и Raspberry Pi

266 Конспект хакера. Амперка

267 Принципиальные схемы

268 Управление электричеством

269 Широтно-импульсная модуляция

270 Эксперимент 2. Маячок с нарастающей яркостью

273 С чего начинаются роботы? О проекте Arduino для школьников (и не только). Гололобов В. Н.

274 Глава 4. Введение в язык программирования Arduino

284 Глава 5. Arduino, визуальное программирование

294 Глава 6. Введение в язык программирования Scratch

301 Глава 7. Отладка программы на виртуальной плате

Практическое программирование Arduino. Статьи


313 FLProg — система визуального программирования плат Arduino. Сергей Глушенко

332 Портал научно-практических публикаций portalnp.ru Dr. Bob Davidov

333 Создание интерактивных объектов и сред на базе платформы Arduino

358 Многоканальное устройство ввода и накопления аналоговых данных на базе MS Excel

380 Построение интерфейса пользователя локальной системы управления на базе контроллера


Arduino UNO

410 Arduino55.ru - интернет магазин электронных компонентов


amperka.ru

Официальный дистрибьютор Arduino в России

В Амперке — только настоящие итальянские платы Arduino


и платы расширения Arduino. При покупке каждому
покупателю обеспечивается гарантия и поддержка.

А ещё на сайте amperka.ru можно найти:

o Уютный форум
o Информативную вики
o YouTube-канал с обзорами и обучающими видео

Включайтесь! Скидка читателям «РЕ» по кодовому слову


«RE-34» до 1 марта.
Готовые наборы от Амперки

Амперка производит стартовые наборы для новичков. В них вы найдёте всё


необходимое, чтобы легко пройти путь от полного нуля до продвинутого уровня.
Для освоения Arduino обратите внимание на наборы «Матрёш ка». Они содержат
саму плату, кучу периферии и красочный обучающий конспект.
amperka.ru
Arduino Uno
Амперка

Последняя модель Arduino Rev3 выполнена на базе процессора ATmega328P с тактовой


частотой 16 МГц, обладает памятью 32 кб и имеет 20 контролируемых контактов ввода и
вывода для взаимодействия с внешним миром.

Arduino — это открытая платформа, которая позволяет собирать всевозможные электронные


устройства. Arduino будет интересен креативщикам, дизайнерам, программистам и всем
пытливым умам, желающим собрать собственный гэджет. Устройства могут работать как
автономно, так и в связке с компьютером. Всё зависит от идеи.
Платформа состоит из аппаратной и программной частей; обе чрезвычайно гибки и просты в
использовании. Для программирования используется упрощённая версия C++, известная так же
как Wiring. Разработку можно вести как с использованием бесплатной среды Arduino IDE, так и
с помощью произвольного C/C++ инструментария. Поддерживаются операционные системы
Windows, MacOS X и Linux.

Для программирования и общения с компьютером вам понадобится USB-кабель. Для


автономной работы потребуется блок питания на 7,5—12 В. Если вы новичок в конструировании
электроники, рекомендуем обратить внимание на готовые наборы: «Матрёшка X», «Матрёшка
Y» или «Матрёшка Z».

Питание

Arduino Uno может питаться как от USB подключения, так и от внешнего источника: батарейки
или обычной электрической сети. Источник определяется автоматически.

Платформа может работать при наличии напряжения от 6 до 20 В. Однако при напряжении


менее 7 В работа может быть неустойчивой, а напряжение более 12 В может привести к
перегреву и повреждению. Поэтому рекомендуемый диапазон: 7−12 В.

На Arduino доступны следующие контакты для доступа к питанию:

o Vin предоставляет тот же вольтаж, что используется для питания платформы. При
подключении через USB будет равен 5 В.
o 5V предоставляет 5 В вне зависимости от входного напряжения. На этом напряжении
работает процессор.
o 3.3V предоставляет 3,3 В.
o GND — земля.

Память

Платформа оснащена 32 кб flash-памяти, 2 кб из которых отведено под так называемый


bootloader. Он позволяет прошивать Arduino с обычного компьютера через USB. Эта память
постоянна и не предназначена для изменения по ходу работы устройства. Её предназначение —
хранение программы и сопутствующих статичных ресурсов.

Также имеется 2 кб SRAM-памяти, которые используются для хранения временных данных


вроде переменных программы. По сути, это оперативная память платформы. SRAM-память
очищается при обесточивании.
Ещё имеется 1 кб EEPROM-памяти для долговременного хранения данных. По своему
назначению это аналог жёсткого диска для Arduino.

Ввод / вывод

На платформе расположены 14 контактов, которые могут быть использованы для цифрового


ввода и вывода. Какую роль исполняет каждый контакт, зависит от вашей программы. Все они
работают с напряжением 5 В, и рассчитаны на ток до 40 мА. Также каждый контакт имеет
встроенный, но отключённый по умолчанию резистор на 20 - 50 кОм. Некоторые контакты
обладают дополнительными ролями:

o Serial: 0-й и 1-й. Используются для приёма и передачи данных по USB.


o Внешнее прерывание: 2-й и 3-й. Эти контакты могут быть настроены так, что они будут
провоцировать вызов заданной функции при изменении входного сигнала.
o ШИМ: 3-й, 5-й, 6-й, 9-й, 10-й и 11-й. Могут являться выходами с широтно-импульсной
модуляцией с 256 градациями.
o LED: 13-й. К этому контакту подключен встроенный в плату светодиод. Если на контакт
выводится 5 В, светодиод зажигается; при нуле — светодиод гаснет.

Помимо контактов цифрового ввода/вывода на Arduino имеется 6 контактов аналогового ввода,


каждый из которых предоставляет разрешение в 1024 градации.

Взаимодействие

Arduino Uno обладает несколькими способами общения с другими Arduino,


микроконтроллерами и обычными компьютерами. Платформа позволяет установить
последовательное (Serial UART TTL) соединение через контакты 0 (RX) и 1 (TX). Установленный
на платформе чип ATmega16U2 транслирует это соединение через USB: на компьютере
становится доступен виртуальный COM-порт. Программная часть Arduino включает утилиту,
которая позволяет обмениваться текстовыми сообщениями по этому каналу.

Встроенные в плату светодиоды RX и TX светятся, когда идёт передача данных между чипом
ATmega162U и USB компьютера.

Отдельная библиотека позволяет организовать последовательное соединение с использова-


нием любых других контактов, не ограничиваясь штатными 0-м и 1-м.

С помощью отдельных плат расширения становится возможной организация других способов


взаимодействия, таких как ethernet-сеть, радиоканал, Wi-Fi.
amperka.ru
Arduino Leonardo
Амперка

Arduino Leonardo — это плата схожая по характеристикам с Arduino Uno, но с несколько


отличающимся микроконтроллером и его обвязкой.

В качестве микроконтроллера используется ATmega32U4. Он же используется и в качестве


USB-UART преобразователя для прошивки. Этим Arduino Leonardo выделяется среди остальных
плат Arduino, где для коммуникации используется дополнительный микроконтроллер. Это
имеет следующие последствия:

o Arduino Leonardo смотрит в сторону USB через виртуальный serial-порт, не через


аппаратный. Это означает, что 0-й и 1-й контакты аппаратного порта остаются свободными
и вы можете использовать их одновременно с коммуникацией с компьютером.
Виртуальный serial-порт доступен через класс Serial, а аппаратный — через класс Serial1.
o При сбросе микроконтроллера его соединение с компьютером теряется и поднимается
заново. Это усложняет процесс прошивки, но не должно являться особой проблемой, т.к.
Arduino IDE поддерживает этот процесс.
o При открытии serial-соединения с компьютера загруженный скетч не перезагружается. Это
означает, что если вы отсылаете данные по serial до реального открытия соединения, они
уйдут в никуда и вы не сможете их увидеть.
o С точки зрения компьютера Arduino Leonardo является HID устройством (вроде клавиатуры
или мыши), поэтому сделать на основе Arduino Leonardo новый компьютерный эмулятор
проще, чем с другими платами

Кроме того, в сравнении с Arduino Uno есть различия в распиновке. В частности контакты 4, 6,
8, 9, 10 и 12 подключены к АЦП, а следовательно могут быть использованы как аналоговые
входы (A6-A11) в дополнение к обычным A0-A5

По габаритам и допустимому вольтажу плата идентична Arduino Uno.

Если вы новичок и сомневаетесь в выборе между Arduino Leonardo и Arduino Uno —


берите Arduino Uno, с ним проще работать, а уровень совместимости с другими железками
выше.

Сравнительная таблица

Uno Leonardo

Микроконтроллер ATmega328P ATmega32U4

Количество цифровых входов/выходов 20 20

…из них ШИМ поддерживают 6 7

Количество аналоговых входов 6 12

Количество контактов для аппаратного прерывания 2 2

Тактовая частота (МГц) 16 16

Количество аппаратных serial-портов 1 1

USB-разъём Type B micro-USB


amperka.ru
Arduino Mega 2560
Амперка

Arduino Mega 2560 — это расширенная версия Arduino Uno. Платформа выполнена на базе более
продвинутого чипа ATmega2560, имеет больше контактов и большее количество аппаратных
serial-портов для взаимодействия с компьютером и другими устройствами.
Сравнительная таблица

Uno Mega

Микроконтроллер ATmega328P ATmega2560

Количество цифровых входов/выходов 14 54

…из них ШИМ поддерживают 6 15

Количество аналоговых входов 6 16

Количество контактов для аппаратного прерывания 2 6

Тактовая частота (МГц) 16 16

Количество аппаратных serial-портов 1 4

Объём Flash-памяти (кБ) 32 256

Объём SRAM-памяти (кБ) 2 8

Объём EEPROM-памяти (кБ) 1 4

Совместимость

Платформа выполнена таким образом, чтобы быть максимально совместимой со своими


младшими собратьями и модулями расширения. Левая часть платы по конфигурации контактов
идентична Arduino Uno, как по расположению, так и по назначению. Это означает, что Arduino
Mega 2560 может просто подменить Arduino Uno, если её возможностей перестало хватать.

Питание, распределение напряжений, защита USB и принципы взаимодействия аналогичны


базовой модели.

Габариты

Размер платы составляет 10,16 × 5,3 см (против 6,9 × 5,3 см базовой модели). Гнёзда для
внешнего питания и USB выступают на пару миллиметров за обозначенные границы. На плате
предусмотрены места для крепления на шурупы или винты. Расстояние между контактами
составляет 0,1” (2,54 мм), но в случае 7-го и 8-го контакта — расстояние: 0,16”.
amperka.ru
Arduino Due
Амперка

Arduino Due — это мощная Arduino, основанная на 32-битном ARM-процессоре AT91SAM3X8E от


Atmel. Он обладает тактовой частотой 84 МГц, а его 32-битная архитектура позволяет
выполнять большинство операций на целыми числами в 4 байта за один такт.

Кроме этого, Arduino Due предоставляет:

o 96 Кб SRAM (оперативная память)


o 512 Кб флеш-памяти (для хранения программы)
o Прямой доступ к памяти (DMA) для задач, активно работающих с данными в памяти
o 54 цифровых входов/выходов; 12 из них поддерживают ШИМ (PWM)
o 4 аппаратных последовательных порта (UART)
o 12 аналоговых входов
o 2 цифро-аналоговых преобразователя (DAC) для 2 аналоговых выходов
o 2 шины TWI / I²C
o SPI-разъём
o JTAG-разъём
o Поддержка USB On The Go (USB OTG) для подключения других USB-устройств
В отличии от большинства плат Arduino, родным напряжением Arduino Due является 3,3 В, а не
5 В. Соответственно, выходы для логической единицы выдают 3,3 В, а в режиме входа
ожидают принимать не более 3,3 В.

Контакты

o Цифровые входы/выходы: контакты 0–53. Работают на напряжении 3,3 В. В режиме выхода


могут выдавать ток 3 или 15 мА (в зависимости от контакта); в режиме входа — принимать
ток 6 или 9 мА (в зависимости от контакта). К контактам также подключены
подтягивающие резисторы по 100 кОм, которые по умолчанию выключены, но могут быть
включены программно.
o Аппаратные последовательные порты (RX/TX): 0/1, 19/18, 17/16, 15/14. Передача данных
осуществляется на уровне 3,3 В. Первая пара также соединена с чипом ATmega16U2,
отвечающим за подключение через USB к компьютеру.
o Широтно-имульсная модуляция (ШИМ/PWM): контакты 2–13. Дают возможность выдавать
аппаратный шим с разрешением 8 бит (256 градаций).
o SPI — отдельная группа контактов 2×3. На Arduino Due используется только для общения по
SPI-интерфейсу с другими устройствами. Он не может быть использован для
программирования контроллера, как на других Arduino. По расположению он в точности
совпадает с расположением на Arduino Uno, Arduino Mega 2560, Arduino Leonardo, а
следовательно даёт возможность работы с платами расширения его использующими, таких
как Ethernet Shield.
o CAN-шина: контакты CANRX и CANTX. Позволяют использовать Arduino Due в автомобильных
сетях. Поддержка с программной стороны пока не реализована производителем.
o Встроенный светодиод: контакт 13 (L). Для простой индикации. В отличии от Arduino Uno и
Mega, он поддерживает ШИМ.
o Шины TWI/I²C: 20(SDA)/21(SCL), SDA1/SCL1. Для общения с периферией по синхронному
протоколу, через 2 провода.
o Аналоговые входы: контакты A0–A11. Принимают сигнал до 3,3 В. Большее напряжение
может вывести процессор из строя. Аналоговые входы предоставляют разрешение до
12 бит (4096 градаций), хотя по умолчанию настроены на разрешение в 10 бит для
совместимости со скетчами для других моделей Arduino.
o Цифро-аналоговый преобразователь: контакты DAC1 и DAC2. Позволяют выдавать
настоящий аналоговый сигнал с 12-битным разрешением (4096 градации), например, для
устройств, связанных с обработкой звука.
o Сброс процессора: RESET. Позволяет аппаратно перезагружать плату.
o Входное напряжение: Vin. Выдаёт напряжение, поданное внешним источником, либо
может являться входом для внешнего питания.
o Стабилизированные 5 В: контакт 5V. Позволяет получать ровные 5 В и ток до 800 мА.
o Стабилизированные 3,3 В: контакт 3.3V. Позволяет получать ровные 3,3 В и ток до 800 мА.
o Общая земля: GND.
o Опорное напряжение для плат расширения: IOREF. Платы расширения должны
«советоваться» с этим контактом, чтобы правильно определять родное напряжение
родительской платы. Arduino Due выдаёт на IOREF 3,3 В.

Память

o На борту SAM3X — 2 блока по 256 Кб флеш-памяти для хранения программы


o Загрузчик (bootloader) располагается в отдельной памяти только для чтения и прошит на
заводе Atmel
o Оперативная SRAM-память поделена на 2 банка: 64 и 32 Кб

Любая память доступна для последовательной адресации из программы. Содержимое флеш-


памяти (программа) может быть очищено зажатием на несколько секунд кнопки Erase на плате.

Коммуникация

Arduino Due позволяет взаимодействовать с компьютером, другими Arduino,


микроконтроллерами и различными устройствами вроде телефонов, планшетов,
фотоаппаратов. Для этого плата предоставляет три аппаратных последовательных порта
(UART/USART), две шины TWI/I²C, интерфейс SPI и USB-порт.

Один USB-порт (programming) используется для прошивки Arduino Due. Он подключён к чипу
ATmega16U2 на плате, который является мостом между USB и аппаратным портом SAM3X,
используемым для программирования процессора и связи с компьютером.

Второй USB-порт (native) может использоваться для связи с другими устройствами как в
режиме slave (эмуляция мыши, клавиатуры), так и в режиме host (приём данных с
фотоаппаратов, управление мышью, клавиатурой, телефоном).

Совместимость

Платформа по своему форм-фактору полностью совпадает с Arduino Mega 2560. Это означает
механическую совместимость со всеми платами расширения для Arduino Mega, Arduino Uno,
Arduino Leonardo.

Однако, в силу того, что родным является напряжение в 3,3 В, а не 5 В, как на других моделях,
стоит обязательно удостоверяться в возможности подключения платы расширения к Arduino
Due.
amperka.ru
Arduino Yun
Амперка

Вам не хватает производительности Arduino Ethernet для работы с сетью? Воспользуйтесь


Arduino Yun!

Arduino Yun — это плата на основе Arduino Leonardo, объединяющая в себе достоинства двух
платформ, поддерживаемых Свободным Сообществом — Arduino и Linux. Получившийся
симбиоз предоставляет огромные возможности для использования интернета в своих проектах.

На Arduino Yun можно поднять небольшой сайт и использовать его как главное устройство
умного дома. И даже если вы запрячете его в труднодоступное место, вы всегда можете
поменять его прошивку через Wi-Fi. Вы можете сконструировать на его основе робота с веб-
камерой, изображение с которой вещается прямо на ваш компьютер.

Благодаря библиотеке Temboo, ваш Arduino Yun может использовать более 100 различных
интернет-сервисов, таких как Facebook, GMail, PayPal и т.д. Например, он может отправлять
каждый час температуру воздуха в комнате в Twitter. Или отправлять файлы в ваш Dropbox.
Arduino

Arduino-часть содержит микроконтроллер ATmega32U4, работающий на частоте 16 МГц.


Распиновка Arduino Yún аналогична Arduino Leonardo. Вместе с Arduino Yún вы можете
использовать большинство плат расширения Arduino.

Linux

Linux-часть Arduino Yún использует микрокомпьютер Atheros AR9331, работающий под


управлением операционной системы Linino. Linino — это специально подготовленная версия
популярного дистрибутива Linux для встраиваемых систем — OpenWRT.

Микрокомпьютер работает на частоте 400 МГц, имеет 64 МБ оперативной и 16 МБ flash-памяти,


встроенный Wi-Fi-интерфейс, Ethernet-интерфейс, USB-хост и слот для micro-SD карты. Linino
содержит в себе пакетный менеджер opkg, который позволяет устанавливать большое
количество Linux-приложений, а так же интерпретатор языка Python 2.7, с помощью которого
вы можете писать свои приложения для Linino.

Память для Linux-приложений может быть расширена с помощью съёмного носителя (micro-SD
карты или USB-флешки). Для этого нужно лишь создать папку с названием «arduino» в корне
съёмного носителя.

Связь между Atmega32U4 и Atheros AR9331 осуществляется с помощью библиотеки Bridge.

Питание

Для питания Arduino Yún может использоваться micro USB разъём или контакт Vin. Ей
необходимо постоянное напряжение 5 В. В отличии от Arduino Leonardo, плата не имеет
встроенного регулятора питания, поэтому повышенное напряжение питания может повредить
устройство.

Связь

Кконтакты 0 (RX) и 1 (TX). Используются для приёма (RX) и передачи (TX) последовательных
данных с помощью аппаратного устройства связи ATmega32U4. Аппаратные последовательные
порты в ATmega32U4 и AR9331 в Yún соединены между собой и используются для связи между
этими процессорами. Последовательный интерфейс Atheros AR9331 напрямую связан с
интерфейсом командной строки. Это означает, что вы можете получить доступ к программам
Linux из своего скетча: просто посылайте bash-команды в текстовом виде и принимайте ответ.
Последовательный порт, связывающий с USB отделён от аппаратного serial-интерфейса,
поэтому общение с AR9331 и с USB не связано и может производиться одновременно и
независимо.

Программирование

Arduino Yún может быть запрограммирована через micro USB вход. Также доступно
программирование через Wi-Fi, если ваша Arduino Yún находится в той же сети, что и ваш
компьютер.

Для работы с Arduino Yun необходимо установить Arduino IDE версии 1.5.5 и выше.

Характеристики

AVR Arduino микроконтроллер

Микроконтроллер ATmega32U4

Рабочее напряжение 5В

Количество цифровых входов/выходов 20

…из них PWM поддерживают 7

Количество аналоговых входов 12

Количество контактов для аппаратного прерывания 5 Объём Flash-памяти

Объём SRAM-памяти 2,5 КБ

Объём EEPROM-памяти 1 КБ

Тактовая частота 16 МГц

Linux микропроцессор

Процессор Atheros AR9331

Архитектура MIPS @400 МГц

Рабочее напряжение 3,3 В

Ethernet IEEE 802.3 10/100 Мбит/сек

Wi-Fi IEEE 802.11b/g/n

USB Type-A 2.0 хост/устройство

SD-модуль Micro-SD

Объём RAM-памяти 64 МБ DDR2 Объём Flash-памяти


amperka.ru
Arduino Ethernet
Амперка

Arduino Ethernet — это симбиоз Arduino Uno и Ethernet Shield на одной плате размером с
Arduino Uno.

На Arduino Ethernet отсутствует разъём для USB, на его месте расположен разъём 8P8C для
витой пары. Поэтому, чтобы прошивать микроконтроллер Arduino понадобится отдельный
модуль USB-Serial converter, который временно устанавливается на штырьковые контакты, на
плате.
amperka.ru
Arduino Mini
Амперка

Arduino Mini — это Arduino Uno, исполненный на компактной плате. Он лишён USB порта и
разъёма для питания. В качестве чипа используется тот же ATmega328P. Arduino Mini
предназначен для применения в местах, где занимаемое пространство критично.

Взаимодействие

Для прошивки микроконтроллера, в виду отсутствия собственного USB-порта, можно


использовать отдельный USB-Serial Converter. На время соединения портов конвертера с serial-
портом платформы, взаимодействие осуществляется так же, как и с обычным Arduino.
amperka.ru
Arduino Micro
Амперка

Arduino Micro — это Arduino Leonardo, исполненный на компактной плате. Отличие заключается
в отсутствии собственного гнезда для внешнего питания, но оно может быть подведено
непосредственно к контакту Vin.

В остальном, начинка и способы взаимодействия совпадают с Arduino Leonardo. Он также


имеет один микроконтроллер ATmega32U4 и для прошивки через USB, и для исполнения
программ; также может выступать в роли клавиатуры или мыши; предоставляет то же
количество памяти, цифровых, аналоговых и ШИМ-портов.
amperka.ru
Strela
Амперка

Вы хотите построить робота, но не знаете какая электроника вам понадобится? Платформа


Strela идеально подходит для создания лёгкого мобильного робота и содержит в себе всё
необходимое для этого.

Arduino-совместимая платформа Strela разработана и выпускается Амперкой как материнская


плата для постройки роботов. Одна эта плата призвана заменить собой Arduino с несколькими
шилдами, которые обычно применяются в роботах. А благодаря библиотеке Strela, работа с
платой не вызовет затруднений даже у начинающих роботостроителей.

«Стрела» отлично подходит для соревнований. Вы можете сделать на её основе колёсного


робота, который отлично себя покажет при езде по линии, в сумо, в лабиринте и во многих
других категориях. А благодаря наличию на плате разъёма для подключения беспроводных
модулей связи формата XBee не составит труда сделать робота с беспроводным управлением.
Микроконтроллер

«Мозг» платы — микроконтроллер ATmega32U4. Это тот же самый микроконтроллер, что


установлен в Arduino Leonardo. Этот контроллер используется и в качестве USB-UART
преобразователя для прошивки.

Входы/выходы ATmega32U4

Одиннадцать входов/выходов микроконтроллера ATmega32U4 выведены на специальные


тройки контактов «питание–земля–сигнал», где питание соединено с контактом 5V, земля — с
GND, а сигнал с соответствующим цифровым или аналоговым контактом. Такое расположение
входов/выходов позволит подключить к платформе большое количество периферии
вроде сенсоров через стандартные 3-проводные шлейфы. Это позволяет не прибегать к пайке,
и к отдельно стоящему breadboard’у.

Контакты питания пинов P1–P4 соединены широкими контактными дорожками с DC–DC


преобразователем. Это позволяет подключать к этим контактам достаточно мощную нагрузку,
напримерсервоприводы.

o Контакты P4–P9, P11, P12 подключены к АЦП, а следовательно могут быть использованы как
аналоговые входы.
o Широтно-имульсная модуляция (ШИМ/PWM) доступна на контактах P1–P4.
o Контакт P12 может быть использован для подключения ИК-приёмника, такого как TSOP22.

Входы/выходы I²C-расширителей портов

На платформе Strela имеются 2 расширителя цифровых входов/выходов PCA9554. Один из них


имеет адрес I²C-адрес 0x20, используется для управления встроенными светодиодами и
кнопками. Второй имеет I²C-адрес 0x21 для управления LCD-экраном MT-08S2A-2YLG (в
комплект не входит) и контактом P10. При отсутствии экрана вы можете использовать эти
контакты для управления вашими устройствами.

Оборудование доступное для управления по I2C:

o 4× Кнопка
o 4× Светодиод
o LCD-экран MT-08S2A-2YLG
o Пин P10
Связь

Платформа Strela поддерживает несколько различных протоколов связи:

o USB используется для прошивки робота, и как виртуальный последовательный порт для
связи с компьютером.
o SPI. Контакты SPI выведены на стандартный блок контактов ICSP. Три контакта шины SPI
могут быть использованы в качестве цифровых входов/выходов микроконтроллера.
o UART. Контакты UART выведены на четырёхштырьковый разъём (RX, TX, 5V, GND).
Контакты RX и TX используются и для коммуникации с беспроводными модулями связи
формата XBee, а так же могут быть использованы в качестве цифровых входов/выходов
микроконтроллера.
o TWI/I²C используется для связи с установленными на плате расширителями портов
ввода/вывода, которые имеют адрес 0x20 и 0x21. Контакты TWI/I²C выведены на
четырёхштырьковый разъём (SCL, SDA, 5V, GND), к ним могут быть подключены другие
TWI/I²C-устройства. Что бы не мешать работе расширителям портов ввода/вывода, I²C-
устройства должны иметь отличный от них адрес.
o XBee. На плате находится разъём для подключения беспроводных модулей связи
формата XBee. Установив соответствующий модуль связи, вы сможете общаться с
платформой через XBee, Wi-Fi или Bluetooth.
o ИК. На плате расположено гнездо для подключения ИК-приёмника, такого как TSOP22.
Поэтому можно управлять роботом с обычного пульта управления от бытовой техники.
Например, с такого пульта можно дать старт роботу во время соревнований.

Силовая часть

Выводы микроконтроллера являются слаботочными, поэтому ток мотора, при подключении его
напрямую, выведет их из строя. Эту проблему решает так называемый H-мост. Он позволяет
управлять скоростью и направлением вращения мотора с помощью логических сигналов
микроконтроллера. Для управления двигателями робота на плате предусмотрен H-мост L298P.
Именно эта микросхема отвечает за управление моторами в Motor Shield. Плата имеет 2
независимых канала. Используя их, можно подключить на выбор:

o Пару DC-моторов
o Один двухфазный шаговый мотор.
o Один DC-мотор с током до 4 А, если объединить каналы

На плате расположены светодиоды-индикаторы, показывающие направление и скорость по


каждому из каналов.
Питание

Новички при постройке робота часто сталкиваются с проблемой перезагрузки управляющего


контроллера при броске нагрузки на двигателях. Обычно эту проблему решают с помощью
раздельного питания двигателей и микроконтроллера, или при помощи DC–DC
преобразователя. Платформа Strela уже содержит встроенный в плату DC–DC
преобразователь LM2596-5.0. Это означает, что вам понадобится всего один источник питания
для робота. DC–DC преобразователь на выходе точно выдерживает напряжение 5 В,
необходимые для питания микроконтроллера. Поэтому ваш робот не будет перезагружаться в
неподходящий момент при резком увеличении оборотов двигателей.

Плата может быть запитана от источника постоянного тока с напряжением 7–24 В. Она может
получать питание и от USB, это удобно во время отладки и программирования робота. При этом
силовая часть будет получать очень низкое напряжение, и двигатели могут не крутиться.

Reset

На плате присутствует переключатель, который бывает полезен при отладке или при
подготовке к старту на соревнованиях. В положении «RESET» контакт Reset микроконтроллера
замыкается на землю. В таком положении на микроконтроллер подано напряжение, но он не
работает, поэтому робот никуда не убежит при отладке у компьютера. Чтобы запустить
микроконтроллер необходимо перевести рычажок в положение «ON».

Пьезодинамик

На плате установлен пьезодинамик, который может пропищать победную мелодию на финише


или оповестит о срабатывании датчика. Для работы с ним в Arduino IDE можно использовать
встроенную функцию tone или богатую возможностями библиотеку Tone.

Характеристики

Микроконтроллер ATmega32U4

Рабочее напряжение 5В

Максимальный ток через контакт входа/выхода 40 мА

Количество цифровых входов/выходов, выведенных на штырьковые


контакты 11

... из них могут использоваться как аналоговые входы 8

Количество каналов PWM 4

Выведенные интерфейсы UART, SPI, I2C


Объём Flash-памяти 32 КБ

Объём SRAM-памяти 2,5 КБ

Объём внутренней EEPROM-памяти 1 КБ

Тактовая частота 16 МГц

Загрузчик Arduino Leonardo

I²C-расширитель портов 2× PCA9554

Количество цифровых входов/выходов 16

... из них выведены на штырьковые контакты 1

... используется для управления встроенными светодиодами 4

... используется для считывания положения встроенных кнопок 4

... используется для управления экраном MT-08S2A-2YLG 7

Питание

DC–DC преобразователь LM2596-5.0

Выходное напряжение 5В

Максимальное входное напряжение 24 В

Максимальный ток нагрузки 3А

Силовая часть

H–мост L298P

Количество каналов управления 2

Максимальный ток нагрузки на канал 2А

Размеры 105×79×14 мм
amperka.ru
LilyPad Arduino 328
Амперка

Вы собираетесь начать проект умной одежды? Тогда вам необходим LilyPad Arduino 328 — то,
что делает одежду по настоящему умной.

LilyPad Arduino 328 Main Board — электронный мозг, спроектированный специально для
использования в проектах умной одежды. Он выполнен на том же самом микроконтроллере что
и Arduino Uno. С его помощью вы можете изготовить большое количество разнообразных
устройств, взяв за основу одежду, аксессуары или мягкие игрушки. LilyPad Arduino 328
поможет вам наделить умными функциями всё, что может быть прошитым токопроводящими
нитками. Это может быть скатерть, показывающая температуру еды; футболка, светящаяся в
такт музыке; или шорты, вибрирующие когда кому-то понравилось фото вашей кошки в
facebook.

На плате вы не найдёте острых углов и ножек компонентов. Контактные колодки припаяны


методом поверхностного монтажа, т.е. только с одной стороны. Используя такие LilyPad-
модули, вы сводите риск быть натёртым своим же устройством к минимуму.

Модули LilyPad производятся американской компанией SparkFun. Все они специально


разработаны для того, чтобы удобно пришиваться к тканям и соединяться между собой с
помощью токопроводящих ниток. Одежду с нашитыми модулями можно стирать руками или в
стиральной машине при бережном режиме, если не использовать агрессивные отбеливающие
средства.

Контакты

На плате расположены 22 контакта-лепестка, предназначенных для пришивания и соединения


с другими устройствами при помощи токопроводящих ниток. Два контакта предназначены для
питания платы, они обозначены как «+» и «−». Остальные контакты присоединены к
управляющему микроконтроллеру ATmega328P и выполняют те же самые функции, что и
в Arduino Uno. Каждый из этих 20 контактов может быть использован как цифровой вход или
выход. Некоторые контакты имеют специализированные функции:

o Serial: контакты 0 (RX) и 1 (TX). Используются для приёма (RX) и передачи (TX)
последовательных данных.
o SPI-интерфейс присутствует на контактах 10, 11, 12, 13.
o TWI / I²C контакты находятся на контактах A4 (SDA) и A5 (SCL).
o Контакты A0–A5 могут быть использованы как аналоговые входы. Каждый из них
предоставляет разрешение в 1024 градации. Значение напряжения меряется между землёй
и напряжением питания.
o Внешнее прерывание: 2-й и 3-й. Эти контакты могут быть настроены так, что они будут
провоцировать вызов заданной функции при изменении входного сигнала.
o PWM: 3-й, 5-й, 6-й, 9-й, 10-й и 11-й. Могут являться выходами с широтно-импульсной
модуляцией (pulse-width modulation) с 256 градациями.
o Встроенный светодиод: контакт 13. Горит при высоком уровне на этом контакте.

Кроме контактов-лепестков на плате присутствуют штырьковые контакты для


подключения USB-Serial преобразователя, необходимого для программирования платы. Также
на плате присутствует кнопка, предназначенная для перезагрузки микроконтроллера.
Питание

LilyPad Arduino 328 не имеет встроенного преобразователя напряжения. Плата может быть
запитана от источника напряжения 2,7–5,5 В через специальные контактные лепестки. Для
питания LilyPad удобно использовать специальный держатель для батарейки-таблет-
ки или LilyPad-разъём для аккумулятора.

Внимание! Не подключайте LilyPad к источнику напряжения выше 5,5 В! При подключении


питания к LilyPad не перепутайте полярность питания. Эти действия приведут к повреждению
контроллера.

Программирование

Плата программируется при помощи Arduino IDE. Плата не имеет встроенного USB-разъёма,
поэтому, чтобы запрограммировать LilyPad Arduino 328 понадобится отдельный модуль USB-
Serial converter, который временно устанавливается на штырьковые контакты на плате. Модуль
в комплект не входит: вам понадобится всего один для нескольких LilyPad.

Характеристики

Микроконтроллер ATmega328P

Количество цифровых входов/выходов 20

…из них PWM поддерживают 6

Количество аналоговых входов 6

Количество контактов для аппаратного прерывания 2

Объём Flash-памяти 32 кб

Объём SRAM-памяти 2 кб

Объём EEPROM-памяти 1 кб

Тактовая частота 8 МГц

Напряжение питания 2,7–5,5 В

Максимальный постоянный ток через контакт ввода/вывода 40 мА

Диаметр 50 мм

Толщина печатной платы 0,8 мм


amperka.ru
STM32 Nucleo F401RE
Амперка

Nucleo — это высокопроизводительная платформа на ARM-процессоре, поддерживающая


популярную онлайн среду разработки mbed.

При помощи Nucleo можно разрабатывать устройства, для которых требуется высокая
производительность или сложные математические вычисления. Эта платформа основана на 32-
разрядном ARM-процессоре STM32F401 с ядром Cortex-M4, работающим на частоте 84 МГц.

Вы сможете полноценно использовать цветные дисплеи, обрабатывать аудиопоток, управлять


сложными многосуставными роботами и даже наделять их интеллектом.

Процессор имеет 512 кБ Flash и 96 кБ SRAM-памяти. Flash выполняет те же функции, что и


жёсткий диск на компьютере, а SRAM аналогична оперативной памяти.

Nucleo разработан и произведён швейцарской компанией STMicroelectronics — одним из


ведущих производителей ARM-процессоров.
Родным напряжением Nucleo является 3,3 В. Однако все входы и выходы толерантны к 5 В,
поэтому вы можете подключать к платформе любые модули и шилды, рассчитанные на 5 В.

Программирование

Nucleo поддерживает разные среды разработки. Самой простой для освоения является
онлайн среда разработки mbed. Вам не потребуется устанавливать её на компьютер: среда
работает прямо из браузера. Компиляция проекта происходит удалённо, вам остаётся только
прошить плату бинарным файлом, полученным от среды.

Прошивка платы тоже не представляет проблем: Nucleo определяется как «флешка», на


которую вы просто копируете бинарный файл прошивки. Работает это во всех операционных
системах, поддерживающих «флешки»: Windows, Linux, MacOS, FreeBSD, QNX и других.

Также, если вы пользуетесь средой mbed, то к вашему распоряжению библиотека классов для
работы с периферией. Библиотека документирована и имеет очень простой интерфейс для
пользования.

Подробнее о начале работы с mbed и Nucleo вы можете прочитать в вики-статье.

Если вы уже продвинутый разработчик и вам не подходит онлайн среда mbed, вы можете
воспользоваться любой стандартной средой разработки для ARM-процессоров: Keil, IAR, GCC.

Периферия

Процессор, на базе которого построена платформа, обладает большим набором периферии.


Почти каждый пин может работать не только как цифровой вход или выход, но и иметь другие
режимы: АЦП, SPI, I²C, PWM и т.д. В дополнение на каждый пин может быть назначено
прерывание.

10 высокоскоростных 12-разрядных АЦП позволяют оцифровывать сигналы частотой до 240 кГц.


Три SPI-интерфейса работают на частоте 42 МГц, позволяя подключать по нему видеокамеры.
I²C интерфейс, работающий на частоте до 1 МГц, легко осилит аудиомодуль. Наиболее
востребованных UART-интерфейсов на плате целых три, два из них работают на скоростях до
10500000 бод, а третий — до 5250000 бод. В процессор также встроены часы реального
времени и ИК-порт.

Для того, чтобы процессор мог не только принимать или передавать данные по таким
высокоскоростным интерфейсам, он имеет модуль DMA.
Совместимость с Arduino

Nucleo F401RE имеет на плате разъёмы, соответствующие Arduino Uno R3. Если вы уже
работали с Arduino, то вам будет легко перейти на Nucleo: вы сможете использовать
большинство шилдов и модулей, сделанных специально для Arduino.

Питание

Для питания может использоваться mini USB-разъём, контакт 5V (ровно 5 В) или Vin (7–12 В).
Одновременное использование двух способов питания невозможно: источник необходимо
выбрать перемычкой JP5.

Для программирования и общения с компьютером вам понадобится mini USB-кабель.

Характеристики

o Ядро: Cortex-M4
o Рабочая частота: 84 МГц
o Разрядность: 32 бита
o Набор машинных инструкций: ARMv7E-M
o Производительность: 105 DMIPS
o Объём SRAM: 96 кБ
o Объём Flash: 512 кБ
o Количество цифровых пинов: до 81
o Количество аналоговых входов: 10
o Разрядность АЦП: 12 бит
o Количество SPI: 4
o Количество I²C: 3
o Количество UART: 3
o Количество таймеров: 10
o Напряжение питания: 5 В, 7–12 В
amperka.ru
Baby Orangutan B-328
Амперка

Вы опытный Arduino-конструктор, среда Arduino уже кажется вам тесноватой и хочется более
глубокого погружения в мир программирования микроконтроллеров? Baby Orangutan откроет
для вас новые горизонты!

Baby Orangutan — это плата, предназначенная для изготовления мобильных роботов. Она
выполнена на базе процессора ATmega328P с тактовой частотой 20 МГц, имеет на борту
двухканальный драйвер двигателей TB6612FNG, регулятор напряжения, защиту от
переполюсовки питания, два встроенных светодиода и потенциометр. И всё это при размере
меньшем, чем у Arduino Mini — всего 31×18 мм!

Baby Orangutan идеально подходит для переделки старых игрушек, или создания миниатюрных
роботов на небольших шасси, таких как робоплатформа Pololu Zumo. Она отлично умещается
на breadboard mini. Платформу можно использовать как компактное устройство, управляющее
мощным оборудованием, таким как реле или электромагнитные клапаны.
Это оригинальная плата, производится американской компанией Pololu.

Программирование

Baby Orangutan изначально не предназначена для программирования в Arduino IDE.


Микроконтроллер не имеет загрузчика и частота его работы не совместима с Arduino. Написать
программу для микроконтроллера Baby Orangutan можно при помощи специализированных
сред разработки, таких как Atmel Studio, или с использованием произвольного C/C++
инструментария. Baby Orangutan можно запрограммировать через ICSP-разъём при помощи
программатора, такого как AVRISP STK500, или при помощи Arduino-платы, превратив её в
программатор при помощи скетча Arduino ISP.

Характеристики

Микроконтроллер ATmega328P

Рабочее напряжение 5В

Максимальный ток через контакт входа/выхода 40 мА

Количество цифровых входов/выходов, выведенных на штырьковые контакты 18

... из них могут использоваться как аналоговые входы 8

Количество каналов PWM 2

Объём Flash-памяти 32 КБ

Объём SRAM-памяти 2 КБ

Объём внутренней EEPROM-памяти 1 КБ

Тактовая частота 20 МГц

Питание

Входное напряжение 6–13,5 В

Силовая часть

H-мост TB6612FNG

Количество каналов управления 2

Максимальный ток нагрузки на канал 1А

Размеры 31×18 мм
amperka.ru
Teensy 3.1
Амперка

Teensy — это семейство компактных платформ, поддерживающих Arduino IDE. Старшие


представители этого семейства (версий 3.x) построены на высокопроизводительных ARM-про-
цессорах с ядром Cortex-M4. Они обладают высокой производительностью, большим
количеством памяти и широким набором интерфейсов.

По размерам плата сопоставима с Arduino Mini.

Процессор и память

Teensy 3.1 построена на 32-разрядном ARM-процессоре Cypress MK20DX256 с ядром Cortex-M4,


частотой 72 МГц, 64 кБ оперативной памяти и 256 кБ энергонезависимой Flash-памяти. Это дает
возможность разрабатывать сложные и требовательные к ресурсам программы, такие как
обработка звука, управление многосуставными роботами и распознавание образов.

Процессор также имеет развитый DMA-контроллер, позволяющий пересылать данные в обход


процессора. Например, вы сможете получать изображение по SPI и сразу выводить его на
дисплей. Процессор при этом останется разгруженным.
Пины и интерфейсы

Миниатюрная плата содержит целых 3 UART'а, 2 SPI и по одному интерфейсу I²C и CAN. Каналов
АЦП здесь столько, что можно сделать анализатор параллельных интерфейсов, суммарно — 21
аналоговый вход. 12 каналов ШИМ дают свободу в подключении большого количества
периферии, управляемой модулируемым сигналом. Почти каждая ножка может работать как
цифровой вход или выход. Суммарно на Teensy можно получить до 34 цифровых пинов. Все
они толерантны к 5 вольтам.

Автономность

Одно из основных достоинств Teensy 3.1 — это заточенность под автономную работу. В режиме
сна плата имеет потребление менее 0,25 мА. Напряжение питания процессора — 3,3 В, что
позволяет питать плату от одного литиевого аккумулятора. В таком режиме ваше устройство
может «проспать» несколько месяцев, а от трёх пальчиковых батареек — более года.

Программирование

Платформа поддерживает среду Arduino IDE 1.0.x, что сильно облегчает знакомство уже
освоившим Arduino. Большая часть библиотек Arduino работают и на Teensy, хотя это не
гарантируется производителем.

Комплектация

Плата поставляется с нераспаянными колодками. Штырьковых разъёмов в комплекте нет. Вам


предстоит добыть и припаять их самостоятельно.

Характеристики

o Процессор: Cypress MK20DX256


o Ядро: 32-х разрядный ARM Cortex-M4 72 МГц
o Оперативной памяти: 64 кБ
o Энергонезависимой памяти: 256 кБ Flash, 2 кБ EEPROM
o Количество линий ввода-вывода: до 34 (все толерантны к 5 В)
o Количество каналов АЦП: 21
o Количество каналов ШИМ: 12
o Количество UART: 3 шт
o Количество I²C: 2 шт
o Количество SPI: 1 шт
o Количество CAN: 1 шт
o Напряжение питания: 3,3–5,5 В
o Габаритные размеры: 17×35 мм
amperka.ru
Netduino 2
Амперка

Если вашим любимым языком программирования является C#, Netduino 2 позволит вам создать
своё электронное устройство с комфортом. Эта плата подойдёт и тем, кто только начинает
свой путь в программировании. Мощная среда программирования Microsoft Visual Studio
поможет новичкам не ошибиться в трудной ситуации, а благодаря отладочному режиму с
поддержкой breakpoint’ов и watch’ей вы сможете проследить исполнение своей программы
шаг за шагом.

Netduino 2 совместима с большинством плат расширения Arduino и сочетает в себе


вычислительную мощь и удобство разработки.

Процессор и память

Плата оснащена 32-разрядным ARM-микроконтроллером STM32F205RF с ядром Cortex-M3,


частотой 120 МГц, 60 кБ оперативной памяти и 192 кБ энергонезависимой Flash-памяти.
Входы/выходы

22 пина, расположенных в стандартной для Arduino компоновке могут быть использованы как
цифровые входы или выходы.

Цифровые входы и выходы рассчитаны на работу с напряжением 3,3 В. Однако, они


толерантны и к напряжению 5 В.

Плата содержит в себе 4 последовательных порта, по одному интерфейсу I²C и SPI. Для работы
с аналоговым сигналом присутствуют 6 аналоговых входов с разрешением в 12-бит (4096
градаций). 6 выходов поддерживают ШИМ.

На плате присутствуют встроенная кнопка и два светодиода. Кнопка используется для сброса
микроконтроллера. При желании вы можете использовать её в своём проекте в качестве
элемента управления. Белый светодиод PWR используется как индикатор питания. Синий
светодиод LED вы можете использовать в своём проекте для произвольных нужд.

Программирование

Плата программируется при помощи традиционной для .NET разработки среды Microsoft Visual
Studio. Все необходимое для начала работы с Netduino 2 вы можете узнать из статьи на вики.

Характеристики

o Процессор: STM32F205RF
o Ядро: 32-х разрядный ARM Cortex-M3 120 МГц
o Оперативной памяти: 60 кБ
o Энергонезависимой памяти: 192 кБ Flash, 4 кБ EEPROM
o Напряжение питания микроконтроллера: 3,3 В
o Количество линий ввода-вывода: 22 (все толерантны к 5 В.
Подтяжка к земле или питанию, толерантна к 3,6 В)
o Максимальный ток через контакт ввода-вывода: 25 мА
o Максимальный ток через все контакты микроконтроллера: 125 мА
o Количество каналов АЦП: 6
o Количество каналов ШИМ: 6
o Количество UART: 4 шт. (один из них с поддержкой RTS/CTS)
o Количество I²C: 1 шт.
o Количество SPI: 1 шт.
o Напряжения питания платы: 5 В, 7,5–9 В
amperka.ru
GPRS Shield v2
Амперка

GPRS Shield — это плата расширения, позволяющая Arduino работать в сетях сотовой связи по
технологиям GSM/GPRS для приёма и передачи данных, SMS и голосовой связи.

Плата построена на базе модуля SIMCom SIM900. Также на ней расположены: слот для SIM-
карты, стандартное совмещённое 3,5 мм гнездо для аудио-входа и выхода, гнездо
для батарейки CR1225, обеспечивающей работу встроенных часов реального времени, и
разъём для выносной внешней антенны. Общение с платой производится через serial-
соединение с помощью набора AT-команд

Характеристики

o Количество полос — 4: 850, 900, 1800, 1900 МГц


o Класс GSM — «2+»
o Класс GPRS — «B»
o Multislot class — 8/10
amperka.ru
Motor Shield (2 канала, 2 А)
Амперка

Хотите подключить мотор к своей Arduino? Это не совсем тривиально: выводы


микроконтроллера являются слаботочными, поэтому ток мотора, при подключении его
напрямую, выведет их из строя. Эту проблему решает так называемый H-мост. Он позволяет
управлять скоростью и направлением вращения мотора с помощью логических сигналов
микроконтроллера.

На сегодняшний день, самым популярным H-мостом, является микросхема L298P. Motor Shield
— плата расширения для Arduino на базе чипа L298P, позволяющая управлять моторами с
напряжением 5–24 В в режиме раздельного питания и 7–12 В в режиме объединённого питания.
Плата имеет 2 независимых канала. Используя их, можно подключить на выбор:

o Пару DC-моторов
o Один двухфазный шаговый мотор.
o Один DC-мотор с током до 4 А, если объединить каналы

Выходы под каждый из двигателей выполнены в виде клеммника с винтом, поэтому пайка не
требуется.

При разгоне и торможении двигатели сами индуцируют кратковременный обратный ток


большой величины, который может выжечь контакты микроконтроллера. На Motor Shield
установлены возвратные диоды, которые это предотвращают.

На Motor Shield установлен комплект сквозных колодок Arduino Rev3, что означает возможность
свободной установки других плат расширения, использующих незанятые пины. Однако, вы не
сможете набрать этажерку из нескольких Motor Shield’ов для независимого управления
большим числом двигателей: все платы будут работать параллельно, т.к. используют одни и те
же пины. Но вы можете откусить или отогнуть управляющие ножки и перекинуть их на
незанятые пины, чтобы добиться независимой работы.

На плате предусмотрена возможность выбора источника питания: от платы Arduino или от


внешнего источника, подключаемого к клеммам «+» и «−». По умолчанию выбран раздельный
режим, но переставив джампер, вы связываете контуры питания Arduino и Motor Shield и вам
достаточно питать только одну из плат.

На плате расположены светодиоды-индикаторы, показывающие направление и скорость по


каждому из каналов и подачу питания.

Для управления шасси с 4 моторами не нужно иметь два Motor Shield’а: вы можете подключить
левую пару к одному каналу, а правую — ко второму. Ведь моторы на одной стороне должны
работать синхронно.

Распиновка

Для коммуникации с микроконтроллером используются цифровые контакты Arduino:

o 4 — направление, правый
o 5 — скорость (ШИМ), правый
o 6 — скорость (ШИМ), левый
o 7 — направление, левый
amperka.ru
Multiservo Shield
Амперка

Хотите управлять большим количеством сервоприводов одновременно? Воспользуйтесь


Multiservo Shield. При помощи Multiservo Shield можно собирать многосуставных роботов, руки-
манипуляторы и другие интересные вещи.

Установив эту плату расширения на Arduino, вы сможете управлять 18-ю сервоприводами. На


борту Multiservo Shield установлен отдельный микроконтроллер ATmega48, все силы которого
направлены на то, чтобы аккуратно и точно в нужное время передавать управляющие сигналы
на подключённые сервоприводы.

Это позволяет избежать подёргиваний приводов в произвольные моменты времени, как это
происходит при использовании стандартной библиотеки Servo.

Общение с Arduino осуществляется по шине I²C. То есть всего через 2 пина. Поэтому даже при
одновременном рулении 18-ю сервомашинками практически все пины Arduino останутся
свободными.
Питание для двигателей подводится через винтовой клеммник. От клеммника питание по
толстым дорожкам подходит к соответствующим пинам в тройках-контактах. Вам остаётся
лишь подключить свои сервоприводы к этим контактам: дополнительной разводки не
требуется.

Питание микроконтроллера ATmega48 берётся с пина 5V от Arduino. Вы можете установить


специальную перемычку в положение «PWR JOIN», чтобы отправить питание с винтового
клеммника ещё и на Vin Arduino. Таким образом, можно обойтись единственным источником
питания.

Благодаря библиотеке Multiservo, работа с модулем не вызовет затруднений. Интерфейс


библиотеки Multiservo тот же, что и в стандартной библиотеке Servo.

В дополнение к 18-ти серво-тройкам, управляемым выделенным микроконтроллером, на плату


также вынесены 6 выводов Arduino напрямую. Таким образом, возможное количество
сервоприводов в вашем устройстве может достигать 24-х штук.

Характеристики

o Максимальный постоянный ток на сервы: 10 А


o Интерфейс управления: I²C
o Количество сервоприводов: 18 по I²C, 6 через Arduino
o Потребляемый микроконтроллером ток: 15 мА
o Диапазон рабочих температур: −40…+85 °C
amperka.ru
Music Shield v2
Амперка

Music Shield — плата расширения с аудио-кодеком на базе чипа VS1053b даёт


возможность Arduino проигрывать звуковые файлы в форматах MP3, WAV, MIDI, Ogg Vorbis.
Файлы считываются с microSD флэш-карты, которая устанавливается в слот на плате.
Для Arduino Mega доступна также запись в формате Ogg Vorbis.

На Music Shield помимо всего прочего расположены стандартный совмещённый 3,5 мм джек
для линейного входа и выхода, пара светодиодов для отражения состояния, джойстик-
манипулятор. Светодиоды и джойстик предназначены по задумке для управления
воспроизведением, но это жёстко не регламентируется: вы можете использовать их для
произвольных целей или не использовать вовсе.

Линейный выход может раскачивать наушники и колонки сопротивлением 16 или 32 Ом. В эту
категорию попадает большая часть любительской аппаратуры.

Управление проигрыванием происходит через шину SPI.


amperka.ru
NFC Shield v2
Амперка

NFC Shield — плата расширения для Arduino, которая даёт возможность считывать и записывать
данные на 13,56 мегагерцовые RFID карты и метки, обмениваться данными с другими
устройствами, поддерживающими NFC (Near Field Communication). Поддержкой NFC обладает
ряд современных смартфонов.

Плата построена на базе модуля PN532 и обладает выносной антенной, которая может быть
закреплена либо на корпусе самой платы, либо на корпусе вашего устройства. Для
коммуникации с Arduino используется шина SPI.

NFC Shield обеспечивает поддержку протоколов ISO14443 Type A/B.

Характеристики

o Расстояние срабатывания: до 5 см
o Напряжение питания: 3,7 – 5 В
o Потребляемый ток: 100 – 150 мА
amperka.ru
Relay Shield (4 канала по 5 А)
Амперка

В вашем проекте нужно замыкать и размыкать цепь с бытовым напряжением 220 В?


Воспользуйтесь Relay Shield.

По своей сути реле — это просто механический рубильник, которым можно управлять при
помощи микроконтроллера, такого как Arduino. При этом электрическая связь между
управляющей электроникой и коммутируемой нагрузкой отсутствует. А это значит, что никакие
помехи не испортят ваши планы. С помощью реле вы можете включать и выключать
электроприборы, которые подключены к бытовой электросети 220 В. Без реле не обойтись при
обустройстве «умного дома». Реле также может пригодится вам и для управления какими-
нибудь устройствами с кнопками. Например, для автоматического набора номера на
доисторическом настольном телефоне, достаточно включить реле параллельно кнопкам.
Relay Shield — плата расширения для Arduino, на которой расположены 4 независимых
реле G5SB-14, подключённых к цифровым пинам Arduino. О текущем состоянии каждого из них
можно судить по индикаторным светодиодам, расположенным на плате. К каждому реле
подведён клеммник на 3 провода, что позволяет использовать реле как в режиме «нормально
разомкнутое», так и в режиме «нормально замкнутое». Это удобно в ряде случаев. Например,
если нужно что-то включать при обесточивании микроконтроллера.

Обмотки реле подключены к пинам Arduino с 4-го по 7-й через джамперы. Подача логического
сигнала на эти пины замыкает или размыкает соответствующее реле. Если эти контакты уже
используются — ничего страшного. На такой случай в Relay Shield мы предусмотрели
специальные лужёные отверстия. Просто снимите джампер и подключите реле к любому
другому цифровому контакту. Управление реле производится через встроенный ключ, что даёт
вам возможность использовать в качестве управляющего сигнала любое напряжение от 3 до 5
вольт. То есть, в качестве основной платы подойдёт любая модель Arduino.

Характеристики реле

o Ток обмотки: 80 мА
o Максимальное коммутируемое напряжение: 30 В постоянного тока;
250 В переменного тока
o Максимальный коммутируемый ток: 5 А (NO), 3 А (NC)
o Рекомендованная частота переключения: до 1 Гц
o Время жизни: не менее 50 000 переключений
amperka.ru
Wi-Fi Shield
Амперка

Wi-Fi Shield — плата расширения для Arduino, которая даёт возможность организовать
беспроводное соединение по стандарту 802.11 b/g (Wi-Fi) для общения с другими
устройствами или выхода в интернет. Поддерживается шифрование WEP и WPA2 Personal.

Плата построена на базе модуля HDG104 и собственного 32-битного микроконтроллера ATmega


UC3, который предоставляет IP-стек, дающий возможность использовать протоколы TCP и UDP.

На Wi-Fi Shield расположен слот для флеш-карт microSD объёмом до 2 Гб. Вы можете
использовать эту возможность для протоколирования данных или хранения раздаваемых
медиа-ресурсов.
Занимаемые пины

Для коммуникации с Arduino используется шина SPI. Занятыми оказываются пины:

o MOSI, MISO, CLK (11, 12, 13 на Arduino Uno)


o 10-й пин, который выполняет роль чип-селектора (CS) для Wi-Fi
o 4-й пин, который является чип-селектором для SD. Он используется только, если вы
используете флеш-карту
o 7-й пин используется для «рукопожатия» между Arduino и Wi-Fi Shield’ом. Он не должен
использоваться для других целей

Совместимость

Другие платы расширения, работающие через SPI могут работать совместно с Wi-Fi Shield за
исключением случаев, когда они также используют те же чип-селекторы или 7-й пин.

Сама по себе плата работает от напряжения в 5 В. Однако на ней расположен преобразователь


уровней сигналов, который делает Wi-Fi Shield совместимым с платами, работающими на 3,3 В.
Такими как, например, Arduino Due.

Программирование

Для работы через Wi-Fi из программы вы можете использовать стандартную библиотеку


Wi-Fi. Пример использования можно найти на официальном сайте.

Для отладки и перепрошивки модуля на плате выведен FTDI-совместимый разъём. Вы можете


использовать USB-Serial адаптер и этот разъём для подключения через USB. Инструкция по
отладке и перепрошивке доступны на официальном сайте.

Для прошивки бортовой ATmega в режиме DFU на плате расширения доступен разъём mini-USB
и джампер, переводящий плату в DFU.

Индикация

На плате расположены 4 светодиода:

o L9 (жёлтый) — привязан к 9-му пину. Используйте его по своему усмотрению


o LINK (зелёный) — сигнализирует о подключении к сети
o ERROR (красный) — сигнализирует об ошибке коммуникации
o DATA (синий) — сигнализирует передачу данных
amperka.ru
XBee
Амперка

XBee — это модуль, дающий вашему устройству возможность использования протокола ZigBee.
Это стандарт беспроводной передачи данных вроде Wi-Fi и Bluetooth, но ориентированный на
экономию электроэнергии и большую защищённость канала при меньшей скорости.

Мощности передатчика хватает для общения на расстоянии до 120 м на улице и до 35 м в


помещении. Скорость обмена данными: до 250 кбит/с. Устройство работает на частоте 2,4 ГГц.
Возможны как простые соединения «точка-точка», так и сети со сложной топологией.
amperka.ru
Bluetooth Bee
Амперка

Модуль Bluetooth производства DFRobot, выполненный на чипе CSR BC417143, даёт


возможность взаимодействовать с другими устройствами по протоколу bluetooth 2.0.

С точки зрения программирования bluetooth-модуль видится как прозрачный serial-порт. Это


позволяет общаться, в том числе, с мобильными телефонами и ноутбуками.
amperka.ru
Wi-Fi Bee v2
Амперка

Вашему устройству требуется беспроводной выход в интернет или локальную сеть? Установите
на него Wi-Fi Bee модуль и забудьте об этой проблеме.

С помощью него вы можете через интернет управлять вашим роботом или собирать
информацию с датчиков, открывать и закрывать двери, включать и выключать устройства. А
благодаря встроенным часам реального времени и возможности автоматической установки
времени через интернет, вы можете сделать точные часы, не требующие подстройки.

Модуль выполнен в форм-факторе XBee. Для подключения к Arduino будет удобно


использовать Wireless Shield или Mega IO Shield. Так же вы без труда сможете сделать робота
по Wi-Fi, если воспользуетесь платформой Strela.

Антенна модуля — встроенная, она размещена на корпусе.

Модуль имеет встроенную поддержку сетевых протоколов. А это значит, что вам не придётся
реализовывать их самостоятельно — всё уже готово. Модуль управляется AT-командами. Для
удобства работы с Arduino существует библиотека WiFly.
Модуль может быть полезен как при работе с Arduino, так и в качестве отдельного устройства,
питающегося от батареи. Для этого на плате установлен собственный DC-DC преобразователь.
Допустимое входное напряжение в этом случае может быть от 2 до 3 вольт.

Этот модуль имеет 8 аналговых входов, которые могут опрашивать датчики и отправлять
считанное 14-битное значение на удалённый web-сервер. Диапазон измерения аналогового
сигнала: 0–1,2 В.

Поддерживаемые стандарты шифрования

o WEP-128 (только «open mode»)


o WPA2-PSK (только AES)
o WPA1-PSK (только TKIP)

Характеристики

o Мощность передатчика: 0–12 дБ


o Диапазон частот: 2402–2480 МГц
o Поддерживаемые каналы: 0–13
o Номинальное напряжение питания: 3,3 В
o Напряжение питания от батареи: 2–3 В
amperka.ru
CAN-BUS Shield
Амперка

Вам не хватает дальности SPI и I²C, а RS-232 слишком медленный и ненадёжный? Тогда, вам
стоит присмотреться к шине CAN. Этот индустриальный стандарт широко распространён в
промышленной автоматизации, технологиях умного дома, автомобильной промышленности и
других областях.

Существует одна проблема: микроконтроллеры AVR, являющиеся основой плат Arduino, не


поддерживают данную шину. Поэтому необходимо использовать дополнительную обвязку
микроконтроллера, аппаратно реализующую стандарт CAN. CAN-BUS Shield — плата расширения
для Arduino, разработанная на основе микросхемы MCP2515.

Данная плата, по сути, представляет собой конвертер SPI — CAN.


amperka.ru
RS-485 Shield
Амперка

Хотите дёшево и просто объединить несколько плат Arduino в сеть? Достаточно установить на
каждую плату RS-485 и протянуть всего два провода!

Вы сможете разворачивать масштабные сети интеллектуальных датчиков, строить системы


умного дома или организовывать автоматический полив в большом количестве мест вашего
дачного участка.

Никаких витых пар. Никаких обжимок и разъёмов 8P8C. Никаких концентраторов. Только два
провода, к которым параллельно подключаются все контроллеры. Модуль предоставляет
возможность передавать байты данных. Протокол передачи данных предоставляется
определить самостоятельно.
Кроме того, по RS-485 вы можете общаться со сторонними устройствами, которые
поддерживают этот интерфейс.

Компоновка платы

Плата построена на микросхеме Maxim MAX485 и производится компанией DFRobot.

Микросхема MAX485, на которой основан шилд, имеет набор средств защиты от внешний
воздействий: защита от короткого замыкания линий, защита от перегрева и защита от
электростатических разрядов.

На плате есть площадка с отверстиями для прототипирования. Шаг отверстий стандартный —


2,54 мм.

Особенности интерфейса

RS-485 — симплексный интерфейс. Это означает, что в любой момент времени данные могут
передаваться только одним узлом сети. Причём данные передаются сразу по двум проводам
дифференциальным методом: передаваемый бит кодируется разностью потенциалов между
двумя проводами линии. Такой метод передачи существенно снижает уровень помех, т.к. они
наводятся одинаково на оба провода и «не видны» при измерении разности потенциалов на
этих проводах. Как результат, устройства могут общаться на расстоянии до 1200 метров.

Платы расширения не имеют опторазвязки, однако, могут составлять сеть, как с единствен-
ным, так и с множеством источников питания. Данные передаются дифференциально, поэтому
гальваническая развязка узлов питания не нужна.

Характеристики

o Максимальное расстояние связи: 1200 м


o Максимальное количество узлов в сети: 32
o Напряжение питания: 5 В
ÐàäèîËîöìàí.Arduino
www.rlocman.ru/arduino
Øèðîêèé âçãëÿä íà òåìó :
, Ïîñëåäíèå íîâîñòè
, Óíèêàëüíûå ñòàòüè
, Ïåðèîäèêà è êíèãè
, Ñîîáùåñòâî íà ôîðóìå
, Ïîèñê òîâàðîâ
, Datasheets

È åùå ìíîãîå äðóãîå íà ïîðòàëå :

ÐàäèîËîöìàí. ...
www.rlocman.ru
Êàê ñîçäàâàëè è ïðîäâèãàëè Arduino
David Kushner
IEEE Spectrum

Èñòîðèÿ î òîì, êàê ïÿòåðî äðóçåé ñîçäàëè ìàëåíüêóþ ïëàòó, êîòîðàÿ âçÿëà øòóðìîì
ìèð ýëåêòðîííûõ ñàìîäåëîê

Æèâîïèñíûé ãîðîä Èâðåà, ñòîÿùèé íà ðåêå Èâðåà (Interaction Design Institute Ivrea, IDII),
Äîðà Áàëòåÿ â ñåâåðíîé Èòàëèè, èçâåñòåí Arduino ïîðîäèë ìåæäóíàðîäíóþ ðåâîëþöèþ
ñâîèìè êîðîëÿìè-íåóäà÷íèêàìè.  1002 ãîäó â ñôåðå ìåæäóíàðîäíûõ ýëåêòðîííûõ ñàìî-
êîðîëü Àðäóèí ñòàë ïðàâèòåëåì ñòðàíû, à äåëîê. Âû ìîæåòå êóïèòü ýòó ïëàòó âñåãî çà
÷åðåç äâà ãîäà áûë ñâåðãíóò êîðîëåì Ãåðìà- $30 èëè ñîáðàòü åå ñ íóëÿ. Âñå ñõåìû è èñõîä-
íèè Ãåíðè II. Ñåãîäíÿ áàð äè Ðå Àðäóèíî, ðàñ- íûå êîäû äîñòóïíû áåñïëàòíî íà óñëîâèÿõ
ïîëîæåííûé íà áóëûæíîé óëèöå ýòîãî ãîðîä- îòêðûòûõ ëèöåíçèé. Â ðåçóëüòàòå Arduino ñòàë
êà, íàçâàí â ÷åñòü êîðîëÿ è ñòîèò íà òîì ñàìîì ñàìîé âëèÿòåëüíîé àïïàðàòíîé ñèñòåìîé ñâîå-
ìåñòå, ãäå, êàê âåðÿò íåêîòîðûå, ðîäèëñÿ ãî âðåìåíè ñ îòêðûòûì èñõîäíûì êîäîì.
êîðîëü.
Áàð ÿâëÿåòñÿ ïèâíóøêîé Ìàññèìî Áàíöè
(Massimo Banzi), èòàëüÿíñêîãî ñîó÷ðåäèòåëÿ
ïðîåêòà â ñôåðå ýëåêòðîíèêè, êîòîðûé áûë
íàçâàí â ÷åñòü ýòîãî ìåñòà. Àðäóèíî – íåäîðî-
ãàÿ ìèêðîêîíòðîëëåðíàÿ ïëàòà, êîòîðàÿ
ïîçâîëÿåò äàæå íîâè÷êó äåëàòü äåéñòâèòåëü-
íî ïîòðÿñàþùèå âåùè. Âû ìîæåòå ïîäñîåäè-
íèòü ê Arduino ðàçëè÷íûå òèïû äàò÷èêîâ,
èñòî÷íèêîâ ñâåòà, ýëåêòðîìîòîðîâ è ìíîæåñ-
òâî ïðî÷èõ óñòðîéñòâ, è èñïîëüçîâàòü ëåãêî
îñâàèâàåìîå ïðîãðàììíîå îáåñïå÷åíèå, ÷òî-
áû çàïðîãðàììèðîâàòü ïîâåäåíèå âàøåãî
òâîðåíèÿ. Âû ìîæåòå ñîçäàòü èíòåðàêòèâíûé
äèñïëåé èëè äâèæóùåãîñÿ ðîáîòà, è çàòåì
ïîäåëèòüñÿ âàøèì ïðîåêòîì ñ ìèðîì, ïîìåñ-
Ïåðâàÿ ïëàòà ïðîòîòèïà, ñäåëàííàÿ â 2005
òèâ èíôîðìàöèþ î íåì â ñåòü. ãîäó, èìåëà ïðîñòåéøèé äèçàéí è åùå íå íàçû-
Âûïóùåííûé â 2005 ãîäó êàê ñêðîìíûé âàëàñü Arduino. Íåìíîãî ïîçæå, â òîì æå ãîäó,
èíñòðóìåíò äëÿ ñòóäåíòîâ Áàíöè â Èíñòèòóòå Ìàññèìî Áàíöè ïðèäóìàë åé èìÿ (Ôîòî: Ìàññè-
ïðîåêòèðîâàíèÿ âçàèìîäåéñòâèé ãîðîäà ìî Áàíöè)

ÐàäèîËîöìàí – íîÿáðü 2011


òåðû, ñâåòîäèîäíûå êóáû, ñèñòåìû äîìàø-
íåé àâòîìàòèçàöèè, äèñïëåè îòîáðàæåíèÿ
Twitter-ñîîáùåíèé è, äàæå, íàáîðû äëÿ àíà-
ëèçà ÄÍÊ. Óæå ïîÿâèëèñü öåëûå êëóáû è
ñîîáùåñòâà ëþáèòåëåé Arduino. Google
íåäàâíî âûïóñòèë îñíîâàííûé íà Arduino
êîìïëåêò ðàçðàáîò÷èêà äëÿ ñâîåãî ñìàð-
òôîíà íà áàçå Android. Êàê âûñêàçàëñÿ íà
ýòîò ñ÷åò Äýéë Äîýðòè (Dale Dougherty),
ðåäàêòîð è èçäàòåëü æóðíàëà «Make», áèá-
ëèè ëþáèòåëåé ñàìîäåëîê, Arduino ñòàë
«ìîçãàìè ñîçäàòåëåé ïðîåêòîâ».
Íî Arduino – ýòî íå òîëüêî îáùåäîñòóï-
íûé ïðîåêò, ñòðåìÿùèéñÿ ñäåëàòü òåõíîëî-
ãèè áîëåå äîñòóïíûìè, ýòî òàêæå ñòàðòàïî-
ßäðî êîìàíäû Arduino (ñëåâà íàïðàâî): Äýâèä Êóàð- âàÿ êîìïàíèÿ, êîòîðîé ðóêîâîäèò Áàíöè è
òèëëüç (David Cuartielles), Äæàíëóêà Ìàðòèíî(Gianluca íåáîëüøàÿ ãðóïïà åãî äðóçåé. È ýòà êîìïà-
Martino), Òîì Èãî (Tom Igoe), Äýâèä Ìåëèñ (David Mellis), íèÿ ñòîëêíóëàñü ñ ïðîáëåìîé, êîòîðóþ íå
è Ìàññèìî Áàíöè (Massimo Banzi) íà êîíôåðåíöèè ìîæåò ðåøèòü äàæå èõ âîëøåáíîå èçäåëèå –
Maker Faire â Íüþ-Éîðêå (Ôîòî: Ðýíäè Çèëüáåðìàí êàê ïåðåæèòü íàõëûíóâøèé óñïåõ è âûðàñòè.
Êëåòò) «Ìû äîëæíû ñäåëàòü ñëåäóþùèé ñêà÷îê», –
ãîâîðèò Áàíöè, – «è ñòàòü êðóïíîé êîìïàíè-
Ìàëåíüêàÿ ïå÷àòíàÿ ïëàòà òåïåðü ÿâëÿåò- åé».
ñÿ, ñâîåãî ðîäà, èñòî÷íèêîì âäîõíîâåíèÿ äëÿ
 ñâîþ î÷åðåäü, êîãäà-òî Arduino âûðîñ èç
«õóäîæíèêîâ» â ýëåêòðîíèêå, ëþäåé, óâëå÷åí-
äðóãîé êðóïíîé ïðîáëåìû – êàê íàó÷èòü ñòó-
íûõ ýëåêòðîííûìè ïîäåëêàìè, ñòóäåíòîâ è
äåíòîâ ñîçäàâàòü ýëåêòðîííûå óñòðîéñòâà,
ëþáîãî, ó êîãî åñòü ìå÷òà ñîáðàòü ÷òî-íèáóäü
ïðè÷åì áûñòðî. Ýòî áûë 2002 ãîä, è Áàíöè,
ýòàêîå. Âî âñåì ìèðå ïðîäàíî áîëåå 250,000
êîìïëåêòîâ Arduino, è ýòî íå ó÷èòûâàÿ ìíî-
æåñòâà êëîíîâ. «Ýòî ïîçâîëèëî ëþäÿì, äåëàòü
âåùè, êîòîðûå îíè íå ñäåëàëè áû êàêèì-ëèáî
èíûì ñïîñîáîì» – ãîâîðèò Äýâèä À. Ìåëèñ
(David A. Mellis), êîòîðûé ïðåæäå áûë ñòóäåí-
òîì IDII äî òîãî, êàê âûïîëíèë êâàëèôèêàöèîí-
íóþ ðàáîòó â Ìåäèà ëàáîðàòîðèè Ìàññà÷óñåò-
ñêîãî òåõíè÷åñêîãî èíñòèòóòà, è òåïåðü ÿâëÿ-
åòñÿ âåäóùèì ðàçðàáîò÷èêîì ïðîãðàììíîãî
îáåñïå÷åíèÿ äëÿ Arduino.
Ñåãîäíÿ èìååòñÿ ìíîæåñòâî èíòåðåñíûõ
ðàçðàáîòîê íà áàçå Arduino, òàêèõ êàê àëêîòåñ-

ÐàäèîËîöìàí – íîÿáðü 2011


áîðîäàòûé è äîáðîäóøíûé ðàçðàáîò÷èê ïðî- áûëà ÷ðåçâû÷àéíî óäîáíàÿ â ïðîöåññå ðàáî-
ãðàììíîãî îáåñïå÷åíèÿ, áûë âçÿò íà ðàáîòó â òû èíòåãðèðîâàííàÿ ñðåäà ðàçðàáîòêè (IDE).
IDII â êà÷åñòâå äîöåíòà äëÿ ïðîäâèæåíèÿ Áàíöè çàäàëñÿ âîïðîñîì, ñìîãëè áû îíè ðàç-
íîâûõ ñïîñîáîâ ðàçðàáîòêè èíòåðàêòèâíîãî ðàáîòàòü ïîäîáíûé ïðîãðàììíûé èíñòðóìåí-
ïðîåêòà – íîâîé îáëàñòè, òàêæå èçâåñòíîé êàê òàðèé, ÷òîáû ïðîãðàììèðîâàòü ìèêðîêîíòðîë-
ôèçè÷åñêèå âû÷èñëåíèÿ. Íî ñ óðåçàííûì áþä- ëåð, âìåñòî òîãî, ÷òîáû ðèñîâàòü ãðàôèêó íà
æåòîì è îãðàíè÷åííûì ïî âðåìåíè äîñòóïîì ê ýêðàíå.
ëàáîðàòîðíîé áàçå, åãî âîçìîæíîñòè èñïîëü- Ñòóäåíò, îáó÷àâøèéñÿ ó Áàíöè, Ýðíàíäî
çîâàíèÿ íåîáõîäèìûõ ïðèáîðîâ áûëè íåáîëü- Áàððàãàí (Hernando Barragán), ñäåëàë â ýòîì
øèìè. íàïðàâëåíèè ïåðâûå øàãè. Îí ñîçäàë ïëàò-
Êàê è ìíîãèå èç åãî êîëëåã, Áàíöè ïîëàãàë- ôîðìó ðàçðàáîòêè, íàçâàííóþ Wiring, êîòîðàÿ
ñÿ íà BASIC Stamp, ìèêðîêîíòðîëëåð, ðàçðà- âêëþ÷àëà â ñåáÿ êàê äðóæåñòâåííóþ ïîëüçîâà-
áîòàííûé Êàëèôîðíèéñêîé êîìïàíèåé òåëþ IDE, òàê è ãîòîâóþ ê èñïîëüçîâàíèþ ïëà-
Parallax, êîòîðûé èíæåíåðû èñïîëüçîâàëè â òó. Ýòî áûë ìíîãîîáåùàþùèé ïðîåêò, êîòîðûé
òå÷åíèå ïðèáëèçèòåëüíî äåñÿòèëåòèÿ. Ïðîã- ïðîäîëæàåò ðàçâèâàòüñÿ ïî ñåé äåíü, íî Áàí-
ðàììèðóåìûé ïîñðåäñòâîì ÿçûêà BASIC, öè óæå çàäóìàë áîëåå êðóïíûé. Îí õîòåë
Stamp, â öåëîì, ïðåäñòàâëÿë ñîáîé íåáîëü- ñîçäàòü ïëàòôîðìó, êîòîðàÿ áûëà áû åùå ïðî-
øóþ ïå÷àòíóþ ïëàòó ñ ðàçìåùåííûìè íà íåé ùå, äåøåâëå è ëåã÷å â èñïîëüçîâàíèè.
èñòî÷íèêîì ïèòàíèÿ, ìèêðîêîíòðîëëåðîì, Áàíöè è åãî ñîòðóäíèêè áûëè ñòîðîííèêà-
ïàìÿòüþ è ïîðòàìè ââîäà/âûâîäà äëÿ ñîåäè- ìè ïðîãðàììíîãî îáåñïå÷åíèÿ ñ îòêðûòûì
íåíèÿ ñ ðàçëè÷íîé àïïàðàòóðîé. Íî ó BASIC èñõîäíûì êîäîì. È ñ òîãî ìîìåíòà, êîãäà âñòà-
Stamp áûëè äâå ïðîáëåìû, êîòîðûå îáíàðó- ëà öåëü ñîçäàòü ïðîñòóþ è ëåãêîäîñòóïíóþ
æèë Áàíöè – ó íåãî íå õâàòàëî äîñòàòî÷íîé ïëàòôîðìó, îíè ïî÷óâñòâîâàëè, ÷òî áóäåò ëó÷-
âû÷èñëèòåëüíîé ìîùíîñòè äëÿ íåêîòîðûõ øå ðàçðàáîòàòü îòêðûòóþ ïëàòôîðìó, äîñòóï-
çàäóìàííûõ åãî ñòóäåíòàìè ïðîåêòîâ, è îí íóþ äëÿ ìíîãèõ ëþäåé, íåæåëè çàêðûòóþ. Äðó-
áûë äîñòàòî÷íî äîðîãèì – ïëàòà ñ îñíîâíûìè ãèì ôàêòîðîì, ñïîñîáñòâîâàâøèì ýòîìó ðåøå-
äîïîëíåíèÿìè ìîãëà ñòîèòü îêîëî $100. Êðî- íèþ, áûëî òî, ÷òî ïîñëå ïÿòè ëåò ðàáîòû IDII
ìå òîãî, Áàíöè íóæäàëñÿ â ÷åì-òî, ÷òî ìîãëî èñ÷åðïûâàë ñâîè ôîíäû è ñîáèðàëñÿ çàêðû-
áû ðàáîòàòü íà êîìïüþòåðàõ Macintosh, êîòî- âàòüñÿ. Ïðåïîäàâàòåëè áîÿëèñü, ÷òî èõ ïðîåê-
ðûå áûëè ïðàêòè÷åñêè ó êàæäîãî ðàçðàáîò÷èêà òû íå âûæèâóò èëè áóäóò íåçàêîííî ïðèñâîåíû
â IDII. ×òî, åñëè îíè ñàìè ñìîãëè áû ñäåëàòü êåì-ëèáî. Ïî ýòîìó ïîâîäó Áàíöè âñïîìèíàåò:
ïëàòó, êîòîðàÿ íåïîñðåäñòâåííî óäîâëåòâîðÿ- «Èòàê, ìû ñêàçàëè: çàáóäüòå ïðî ýòî. Äàâàéòå
ëà áû èõ ïîòðåáíîñòÿì? æå ñäåëàåì îòêðûòóþ ïëàòôîðìó».
Ó Áàíöè áûë êîëëåãà èç MIT, ðàçðàáîòàâ- Íîâàÿ ìîäåëü ñ îòêðûòûì èñõîäíûì êîäîì
øèé óäîáíûé ÿçûê ïðîãðàììèðîâàíèÿ äîâîëüíî äîëãî èñïîëüçîâàëàñü äëÿ ðàçâèòèÿ
Processing. Processing áûñòðî çàâîåâûâàë ïðîãðàììíîãî îáåñïå÷åíèÿ, íî íå àïïàðàòíî-
ïîïóëÿðíîñòü, ïîñêîëüêó ïîçâîëÿë äàæå ãî. Äëÿ òîãî ÷òîáû çàñòàâèòü åå ðàáîòàòü äîë-
íåîïûòíûì ïðîãðàììèñòàì ñîçäàâàòü ñëîæ- æíûì îáðàçîì, îíè äîëæíû áûëè íàéòè ïîäõî-
íûå, è â òî æå âðåìÿ êðàñèâûå, ñèñòåìû âèçóà- äÿùåå ëèöåíçèîííîå ðåøåíèå, êîòîðîå ìîãëî
ëèçàöèè äàííûõ. Îäíîé èç ïðè÷èí åãî óñïåõà áû ïîäîéòè ê èõ ïëàòå. Ïîñëå íåêîòîðûõ

ÐàäèîËîöìàí – íîÿáðü 2011


èññëåäîâàíèé îíè ïîíÿëè, ÷òî åñëè áû âçãëÿ- áûòü ëåãêî íàéäåíû íà ðûíêå ýëåêòðîíèêè,
íóëè íà ñâîé ïðîåêò íåìíîãî ïîä äðóãèì óãëîì, íàïðèìåð, ìèêðîêîíòðîëëåð ATmega328. Íî
òî ñìîãëè áû èñïîëüçîâàòü ëèöåíçèþ îò êëþ÷åâîå ðåøåíèå ñîñòîÿëî â òîì, ÷òîáû
Creative Commons, íåêîììåð÷åñêîé îðãàíèçà- ãàðàíòèðîâàòü ðàáîòó óñòðîéñòâà ïî ïðèíöèïó
öèè, ñîãëàøåíèÿ êîòîðîé îáû÷íî èñïîëüçóþò- plug-and-play: ÷òîáû ïîëüçîâàòåëü, äîñòàâ
ñÿ â ñôåðå òâîð÷åñêèõ ðàáîò, òàêèõ êàê ìóçûêà ïëàòó èç êîðîáêè è ïîäêëþ÷èâ ê êîìïüþòåðó,
è ëèòåðàòóðà. «Âû ìîæåòå ðàññìàòðèâàòü ìîã íåìåäëåííî ïðèñòóïèòü ê ðàáîòå. Òàêèå
àïïàðàòíîå îáåñïå÷åíèå êàê ÷àñòü êóëüòóðû, ïëàòôîðìû êàê BASIC Stamp äëÿ ýòèõ öåëåé
êîòîðîé âû õîòèòå ïîäåëèòüñÿ ñ äðóãèìè ëþäü- òðåáîâàëè îò ïîëüçîâàòåëÿ íàëè÷èÿ åùå
ìè» – ãîâîðèò Áàíöè. ïîëäþæèíû êîìïîíåíòîâ, êîòîðûå âêëþ÷à-
Ïðèñòóïèâ ê ðàáîòå, ãðóïïà ðàçðàáîò÷èêîâ ëèñü â îáùóþ ñòîèìîñòü ïðîäóêòà, â òî âðåìÿ
ñðàçó çàäàëàñü öåëüþ ñäåëàòü óñòðîéñòâî, êàê óñòðîéñòâî êîìàíäû Áàíöè íóæäàëîñü
öåíà êîòîðîãî áûëà áû ïîäõîäÿùåé äëÿ ñòó- ëèøü USB-êàáåëå, ïîñðåäñòâîì êîòîðîãî îíî
äåí÷åñêîãî êàðìàíà – $30. «Öåíà óñòðîéñòâà ñîåäèíÿëîñü ñ êîìïüþòåðîì – Mac èëè PC.
äîëæíà áûòü ýêâèâàëåíòíà ñòîèìîñòè îáåäà â «Ôèëîñîôèÿ Arduino ñîñòîèò â òîì, ÷òî
ïèööåðèè» – ãîâîðèò Áàíöè. Òàêæå îíè õîòåëè åñëè âû çàõîòèòå íàó÷èòüñÿ ýëåêòðîíèêå, âû
ñäåëàòü åãî íåîáû÷íûì, â ÷åì-òî âûäåëÿþ-
ñìîæåòå èçó÷àòü åå óæå ñ ïåðâîãî äíÿ, âìåñòî
ùèìñÿ è êëàññíî ñìîòðÿùèìñÿ äëÿ ïîìåøàí-
òîãî, ÷òîáû ñíà÷àëà ó÷èòüñÿ àëãåáðå» – ãîâî-
íûõ íà ýëåêòðîíèêå ëþäåé. Â òî âðåìÿ êàê
ðèò äðóãîé ÷ëåí êîìàíäû, èíæåíåð ïî òåëå-
îáû÷íûå ïëàòû, ÷àùå âñåãî, èìåþò çåëåíûé
êîììóíèêàöèÿì, Äýâèä Êóàðòèëëüç.
öâåò, îíè ðåøèëè ñäåëàòü ñâîþ ïëàòó ñèíåé,
òàì ãäå äðóãèå ïðîèçâîäèòåëè ýêîíîìÿò íà È âñêîðå êîìàíäà Áàíöè ïðîâåðèëà ýòî
êîëè÷åñòâå âûâîäîâ ïå÷àòíîé ïëàòû, îíè óòâåðæäåíèå íà ïðàêòèêå. Îíè âðó÷èëè 300
ðåøèëè äîáàâèòü èõ êàê ìîæíî áîëüøå. È â ïóñòûõ ïå÷àòíûõ ïëàò ñòóäåíòàì IDII ñ ïðî-
êà÷åñòâå ïîñëåäíåãî øòðèõà îíè íàíåñëè ñòûì íàñòàâëåíèåì: èùèòå èíñòðóêöèè â
íåáîëüøóþ êàðòó Èòàëèè íà íèæíþþ ñòîðîíó èíòåðíåòå, ðàçðàáîòàéòå ñâîþ ñîáñòâåííóþ
ïëàòû. «Çäåñü ìíîãî ïðîåêòíûõ ðåøåíèé, êîòî- ïëàòó, è èñïîëüçóéòå åå äëÿ ÷åãî-íèáóäü.
ðûå âûãëÿäÿò, ïî ìåíüøåé ìåðå, ñòðàííî äëÿ Îäíèì èç ïåðâûõ ïðîåêòîâ áûë ñàìîäåëüíûé
íàñòîÿùåãî èíæåíåðà» – ãîâîðèò ñî ñìåõîì áóäèëüíèê, êîòîðûé ñâèñàë ñ ïîòîëêà íà êàáå-
Áàíöè – «Íî ÿ íå íàñòîÿùèé èíæåíåð, ïîýòîìó ëå. Ñóòü èäåè çàêëþ÷àëàñü â òîì, ÷òî âñÿêèé
ÿ èçáðàë òàêîé ãëóïûé ïóòü». ðàç, ïðè íàæàòèè êíîïêè ñáðîñà ñèãíàëà ïðî-
Äëÿ îäíîãî èç «íàñòîÿùèõ» èíæåíåðîâ â áóæäåíèÿ, áóäèëüíèê ïîäíèìàëñÿ ïî êàáåëþ
êîìàíäå, Äæàíëóêè Ìàðòèíî, òàêîé íåòðàäè- âñå âûøå, è òàê äî òåõ ïîð, ïîêà âû íå âñòàíåòå
öèîííûé ïîäõîä ê ïðîåêòèðîâàíèþ ïå÷àòíîé îêîí÷àòåëüíî.
ïëàòû áûë ïîó÷èòåëåí. Ìàðòèíî îïèñûâàåò Âñêîðå îá ýòîé ïëàòå óñëûøàëè äðóãèå
åãî êàê «íîâûé ñïîñîá ìûøëåíèÿ îá ýëåê- ëþäè. È îíè òîæå çàõîòåëè ïðèîáðåñòè ñåáå
òðîíèêå». Îí ãîâîðèò: «Ýòî íå èíæåíåðíûé òàêóþ. Ïåðâûì ïîêóïàòåëåì ñòàë äðóã Áàíöè,
ñïîñîá ðàçðàáîòêè, ãäå âû äîëæíû ó÷èòûâàòü êîòîðûé çàêàçàë ñåáå îäíó øòóêó. Òàê ïðîåêò
êàæäûé ýëåêòðîä, ýòî ïîäõîä ñàìîäåëêèíà». íà÷àë íàáèðàòü îáîðîòû, íî áûëà óïóùåíà
Ïðîäóêò, êîòîðûé ñîçäàëà êîìàíäà, ñîñòî- îäíà ñóùåñòâåííàÿ âåùü – ó èõ èçîáðåòåíèÿ
ÿë èç äåøåâûõ êîìïîíåíòîâ, êîòîðûå ìîãëè íå áûëî íàçâàíèÿ. È âîò îäíàæäû íî÷üþ, çà

ÐàäèîËîöìàí – íîÿáðü 2011


ñòîïêîé àëêîãîëüíîãî íàïèòêà, â ìåñòíîì ïàáå ïðåäñòàâëÿþò ñîáîé «÷åðíûå ÿùèêè», çàêðû-
èäåÿ è ïðèøëà ê íèì – «Arduino», – ïðÿìî êàê òûå è çàùèùåííûå ïàòåíòàìè.
ýòîò áàð è êîðîëü. Ïî ìíåíèþ Áàíöè, ñàìûì, âåðîÿòíî, âàæ-
Ñëîâî «Arduino» áûñòðî ðàñïðîñòðàíè- íûì ðåçóëüòàòîì âîçäåéñòâèÿ Arduino ñòàëà
ëîñü â Èíòåðíåòå áåç êàêîé-ëèáî ðåêëàìû è äåìîêðàòèçàöèÿ ïðîöåññà ðàçðàáîòêè. «Ïÿòü-
ïðèâëå÷åíèÿ ñðåäñòâ ìàðêåòèíãà. Âíà÷àëå ýòî äåñÿò ëåò íàçàä ÷òîáû íàïèñàòü ïðîãðàììíîå
ïðèâëåêëî âíèìàíèå Òîìà Èãî, ïðîôåññîðà â îáåñïå÷åíèå âàì òðåáîâàëàñü êîìàíäà ëþäåé
îáëàñòè ôèçè÷åñêèõ âû÷èñëåíèé, çàíÿòîãî ïî â áåëûõ õàëàòàõ, êîòîðûå çíàëè âñå îá ýëåê-
ïðîãðàììå òåëåêîììóíèêàöèîííîãî âçàèìî- òðîííûõ ëàìïàõ. Íî òåïåðü, äàæå ìîÿ ìàìà
äåéñòâèÿ â Íüþ-éîðêñêîì óíèâåðñèòåòå. ìîæåò ïðîãðàììèðîâàòü» – óòâåðæäàåò Áàí-
Ñåãîäíÿ îí òàêæå âõîäèò â ÿäðî êîìàíäû öè, – «Ìû ïîçâîëèëè ìíîæåñòâó ëþäåé ñîçäà-
Arduino. Èãî îáó÷àë ñòóäåíòîâ íåòåõíè÷åñêèõ âàòü ýëåêòðîííûå óñòðîéñòâà ñàìîñòîÿòåëü-
ñïåöèàëüíîñòåé, èñïîëüçóÿ BASIC Stamp, íî íî».
áûë âïå÷àòëåí âîçìîæíîñòÿìè Arduino. «Îíè Íî íå âñå èíæåíåðû ëþáÿò Arduino. Íàèáî-
ïðåäïîëàãàëè, ÷òî âû íå çíàåòå ýëåêòðîíèêó è ëåå ïðèäèð÷èâûå èç íèõ êðèòèêóþò ýòîò ïðî-
ïðîãðàììèðîâàíèå, ÷òî âû íå õîòèòå ðàçðàáà- äóêò çà äîñòàòî÷íî ãëóïûé, ñ òî÷êè çðåíèÿ
òûâàòü öåëîå óñòðîéñòâî, íî, â òî æå âðåìÿ, èíæèíèðèíãà, ïîäõîä ê ðàçðàáîòêå è çàïîëíå-
ñìîãëè áû çàïðîãðàììèðîâàòü ïðîñòóþ ìèê- íèå ðûíêà ëþáèòåëüñêîé ðàäèîýëåêòðîíèêè
ðîñõåìó. Âû ïðîñòî ìîæåòå îòêðûòü êîðîáêó ñ ñåðûì äèëåòàíòñêèì òîâàðîì. Ìåëëèñ, îäíà-
ïëàòîé, íàæàòü êíîïêó çàãðóçêè, è îíà çàðàáî- êî, íå ðàññìàòðèâàåò íîâèíêó êàê óãðîçó îáåñ-
òàåò» – ãîâîðèò Èãî. «Êðîìå òîãî, ÿ áûë ïîðà- öåíèâàíèÿ ðîëè èíæåíåðà âîîáùå. Îí ãîâî-
æåí åå ñòîèìîñòüþ â $30, êîòîðàÿ äåëàåò ïëà- ðèò: «Èìåÿ ïëàòôîðìó, êîòîðàÿ ïîçâîëÿåò
òó äîñòóïíîé. Äëÿ ìåíÿ ýòî áûëî îäíèì èç ïðîåêòèðîâùèêó èëè ëþáîé äðóãîé òâîð÷åñêîé
êëþ÷åâûõ ôàêòîðîâ». ëè÷íîñòè íåìíîæêî ïðèáëèçèòüñÿ ê ñâîåé
Ñâîèì óñïåõîì Arduino âî ìíîãîì îáÿçàí öåëè, ëþäè ìîãóò òåïåðü óïðîñòèòü ñåáå âçàè-
ñóùåñòâîâàâøèì äî íåãî Processing è Wiring. ìîäåéñòâèå ñî ñïåöèàëèñòàìè è ñêàçàòü «Âîò
Îò ýòèõ ïðîåêòîâ Arduino óíàñëåäîâàë îäíó òî, ÷òî ÿ õî÷ó â èòîãå ñäåëàòü». ß íå äóìàþ, ÷òî
ñèëüíóþ ÷åðòó – óäîáíóþ äëÿ ïîëüçîâàòåëÿ ýòî çàìåíà èíæåíåðà, ýòî âñåãî ëèøü îáëåã÷à-
ñðåäó ðàçðàáîòêè. Äî ïîÿâëåíèÿ Arduino ïðî- åò ñîòðóäíè÷åñòâî».
ãðàììèðîâàíèå ìèêðîêîíòðîëëåðîâ ñîïðî- Äëÿ òîãî, ÷òîáû ïîääåðæèâàòü ðàñïðîñòðà-
âîæäàëîñü ñëîæíûì è ðóòèííûì îáó÷åíèåì. Ñ íåíèå Arduino, êîìàíäà Áàíöè ðàññìàòðèâàåò
Arduino äàæå òå, êòî íå èìåë îïûòà ðàáîòû ñ ñïîñîáû áîëåå ãëóáîêîé èíòåãðàöèè ñâîåé
ýëåêòðîííûìè óñòðîéñòâàìè, òåïåðü ìîãóò ïëàòôîðìû â ñèñòåìó îáðàçîâàíèÿ, îò
ïðèêîñíóòüñÿ ê ðàíåå íåäîñòóïíîìó äëÿ íèõ íà÷àëüíûõ øêîë äî êîëëåäæåé. Íåñêîëüêî
ìèðó ýëåêòðîíèêè. Òåïåðü íîâè÷êàì íå íóæíî óíèâåðñèòåòîâ, âêëþ÷àÿ Êàðíåãè Ìåëëîíà è
òðàòèòü ìíîãî âðåìåíè íà èçó÷åíèå ñîîòâå- Ñòýíôîðä, óæå èñïîëüçóþò Arduino. Ìåëëèñ
òñòâóþùåãî ìàòåðèàëà, îíè ìîãóò áûñòðî ðàç- èçó÷àë êàê ñòóäåíòû è äèëåòàíòû ïîñòèãàþò
ðàáîòàòü ïðîòîòèï, êîòîðûé áóäåò ïîëíîöåííî ýëåêòðîíèêó íà ñåìèíàðàõ â ìåäèà ëàáîðàòî-
ðàáî÷èì. Ýòî ìîùíûé øàã âïåðåä, â òî âðåìÿ ðèè Ìàññà÷óñåòñêîãî èíñòèòóòà. Ìåëëèñ ïðè-
êàê íåêîòîðûå äîâîëüíî ïîïóëÿðíûå ãàäæåòû ãëàøàåò 8 – 10 ÷åëîâåê â ëàáîðàòîðèþ, ãäå èì

ÐàäèîËîöìàí – íîÿáðü 2011


äàþò çàäà÷ó, êîòîðóþ íåîáõîäèìî âûïîëíèòü Ïîñêîëüêó êîìàíäà íå ìîæåò ïîçâîëèòü
â òå÷åíèå äíÿ. Ñðåäè ïðîåêòîâ áûëè òàêèå, êàê ñåáå ñíàáæàòü ðûíêè ñîòíÿìè òûñÿ÷ ïëàò, åé
ðàçðàáîòêà ñïèêåðîâ äëÿ iPod, FM-ðàäèî è ïðèõîäèòñÿ ïðîèçâîäèòü îò 100 äî 3000
êîìïüþòåðíîé ìûøè ñ èñïîëüçîâàíèåì òåõ æå óñòðîéñòâ â äåíü íà ðàçëè÷íûõ ôàáðèêàõ áëèç
êîìïîíåíòîâ, êîòîðûå èñïîëüçóþòñÿ â Arduino. èõ ðîäíîãî ãîðîäà Èâðåà. Äëÿ êàæäîé èç ïëàò
Íî ðàñïðîñòðàíåíèå èäåîëîãèè Arduino – êîìàíäà ðàçðàáîòàëà ñèñòåìó êîíòðîëÿ âûâî-
ýòî ëèøü ÷àñòü ïðîáëåìû. Êîìàíäà íå äîëæíà äîâ, êîëè÷åñòâî êîòîðûõ äëÿ ìîäåëè Uno,
îòñòàâàòü îò ñîâðåìåííûõ òðåáîâàíèé, ïðåäú- íàïðèìåð, ðàâíî 26: 14 öèôðîâûõ âõî-
ÿâëÿåìûõ ê èõ ïëàòàì. È òåïåðü, ôàêòè÷åñêè, äîâ/âûõîäîâ, 6 àíàëîãîâûõ âõîäîâ, è åùå 6
ïëàòôîðìà Arduino ïðåäñòàâëåíà íå îäíîé äëÿ ïîäêëþ÷åíèÿ ïèòàíèÿ. Ýòî áîëüøàÿ ïðî-
ïëàòîé, à öåëûì ñåìåéñòâîì.  äîïîëíåíèå ê áëåìà äëÿ îáåñïå÷åíèÿ òðåáóåìîãî êà÷åñòâà,
îðèãèíàëüíîìó ïðîåêòó, íàçâàííîìó Arduino ñ ó÷åòîì òîãî, ÷òî íåîáõîäèìî ïðîèçâîäèòü è
Uno, íîâûå ìîäåëè, èìåþùèå áîëåå ìîùíûå ïðîâåðÿòü òûñÿ÷è ìîäóëåé â äåíü. Íî ïëàòà
ñðåäñòâà íà ïëàòå, íîñÿò íàçâàíèå Arduino Arduino äîñòàòî÷íî äåøåâà, ÷òîáû ïîçâîëèòü
Mega, áîëåå êîìïàêòíûå íàçûâàþòñÿ Arduino êîìàíäå äåðæàòü îáåùàíèå çàìåíÿòü ëþáóþ
Nano, â âîäîíåïðîíèöàåìîì êîðïóñå – LilyPad ïëàòó, êîòîðàÿ îòêàçûâàåòñÿ ðàáîòàòü. Ïî ñëî-
Arduino, è íåäàâíî âûïóùåííàÿ ìîäåëü ñ ïîä- âàì Ìàðòèíî, äîëÿ îòêàçîâ íèæå 1 ïðîöåíòà.
äåðæêîé ñåòåâîãî ïîäêëþ÷åíèÿ – Arduino
Ethernet.
Arduino òàêæå ïîðîäèë öåëóþ îòðàñëü
äîìàøíåãî ïðîèçâîäñòâà äëÿ ëþáèòåëåé ýëåê-
òðîíèêè. Â íàñòîÿùåå âðåìÿ ïî âñåìó ìèðó
íàñ÷èòûâàåòñÿ áîëåå äâóõñîò äèñòðèáüþòî-
ðîâ ïðîäóêöèè Arduino, îò êðóïíûõ êîìïàíèé,
òàêèõ êàê SparkFun Electronics èëè in Boulder,
Colo., äî êîìïàíèé ñåìåéíîãî áèçíåñà, ðàáî-
òàþùèõ íà ìåñòíûé ðûíîê. Áàíöè íåäàâíî
óçíàë î ÷åëîâåêå èç Ïîðòóãàëèè, êîòîðûé óâî-
ëèëñÿ èç òåëåôîííîé êîìïàíèè äëÿ òîãî, ÷òî-
áû ïðîäàâàòü ïðîäóêöèþ Arduino ïðÿìî èç
äîìà. ×ëåí êîìàíäû Arduino Äæàíëóêà Ìàðòè- Êîìàíäà Arduino çàêëþ÷èëà êîíòðàêò ñ êîìïà-
íî, îòâåòñòâåííûé çà ïðîèçâîäñòâî è ðàñïðîñ- íèåé, êîòîðàÿ ñïîñîáíà ïðîèçâîäèòü îò 100 äî
òðàíåíèå, ãîâîðèò, ÷òî îíè ðàáîòàþò â ñâåðõ- 3000 ïëàò â äåíü íà ôàáðèêå íåïîäàëåêó îò
èòàëüÿíñêîãî ãîðîäêà Èâðåà (Ôîòî: Ìàññèìî
óðî÷íîå âðåìÿ, ÷òîáû óäîâëåòâîðèòü ïîòðåá- Áàíöè)
íîñòè ðàçâèâàþùèõñÿ ðûíêîâ Êèòàÿ, Èíäèè è
Þæíîé Àìåðèêè. Ïî åãî ñëîâàì, â íàñòîÿùåå Êîìàíäà Arduino çàðàáàòûâàåò óæå äîñòà-
âðåìÿ, îêîëî 80% ïðîäàæ Arduino ïðèõîäèòñÿ òî÷íî, ÷òîáû ñîäåðæàòü äâóõ åå ñîòðóäíèêîâ â
íà Ñåâåðíóþ Àìåðèêó è Åâðîïó, òîãäà êàê êà÷åñòâå ïîñòîÿííûõ ðàáîòíèêîâ, è óæå ïëà-
îñòàëüíûå 20% ïðèõîäÿòñÿ íà âåñü îñòàëüíîé íèðóåò óâåëè÷åíèå âîçìîæíîñòåé è ïðîèçâî-
ìèð. äèòåëüíîñòè ñâîåé ïëàòû. Íà ñîñòîÿâøåéñÿ â

ÐàäèîËîöìàí – íîÿáðü 2011


ñåíòÿáðå â Íüþ-Éîðêå êîíôåðåíöèè Maker
Faire, ñïîíñèðóåìîé æóðíàëîì Make, êîìàíäà
ïðåäñòàâèëà ñâîþ ïåðâóþ ïëàòó ñ 32-
ðàçðÿäíûì ARM-ïðîöåññîðîì. Ýòî áóäåò îòâå-
òîì íà òðåáîâàíèÿ ïîääåðæêè áîëåå ìîùíîé
ïåðèôåðèè. Íàïðèìåð, MakerBot Thing-O-
Matic ÿâëÿåòñÿ íàáîðîì äëÿ èçãîòîâëåíèÿ 3-D
ïðèíòåðà íà áàçå Arduino, íî ñ èñïîëüçîâàíè-
åì áîëåå áûñòðîãî ïðîöåññîðà îí ïîëó÷èò
áîëüøå ïðåèìóùåñòâ äëÿ ðåøåíèÿ áîëåå
ñëîæíûõ çàäà÷.
Î÷åðåäíîå óñêîðåíèå ïðîåêò ïîëó÷èë â
2011 ãîäó, êîãäà Google âûïóñòèë îñíîâàííûé
íà Arduino êîìïëåêò ðàçðàáîò÷èêà äëÿ ñâîåé
ñèñòåìû Android. Android ADK (âñïîìîãàòåëü-
íûé êîìïëåêò ðàçðàáîò÷èêà) îò Google ÿâëÿåò- Íåäàâíî êîìàíäà ïðåäñòàâèëà ìîäåëü Arduino
ñÿ ïëàòôîðìîé, ïîçâîëÿþùåé òåëåôîíó ñ ÎÑ Due, ïëàòó ñ 32-ðàçðÿäíûì ïðîöåññîðîì Cortex-
Android âçàèìîäåéñòâîâàòü ñ äâèãàòåëÿìè, M3 ARM, êîòîðûé ïðåäîñòàâëÿåò áîëüøå
âû÷èñëèòåëüíîé ìîùíîñòè äëÿ ðàçðàáîò÷è-
äàò÷èêàìè, è äðóãèìè óñòðîéñòâàìè. Âû ìîæå- êîâ, çàíÿòûõ ñëîæíûìè ïðîåêòàìè
òå ñîçäàòü ïðèëîæåíèå äëÿ Android, êîòîðîå
èñïîëüçóåò êàìåðó òåëåôîíà, äàò÷èêè äâèæå- êîòîðûå õîòÿò èìåòü ëþäè», – ãîâîðèò Ìåëëèñ,
íèÿ, ñåíñîðíûé ýêðàí, è èíòåðíåò-ñâÿçü, ÷òî- – «íî ïðè ýòîì íå ñäåëàòü ïðîäóêò ñëèøêîì
áû óïðàâëÿòü, íàïðèìåð, äèñïëååì èëè ðîáî- ñëîæíûì äëÿ íîâè÷êîâ».
òîì. Ýíòóçèàñòû ãîâîðÿò, ÷òî äîïîëíèòåëüíàÿ Ñåé÷àñ îíè íàñëàæäàþòñÿ ñâîåé ïîïóëÿð-
ïîääåðæêà Android îòêðûâàåò åùå áîëüøèå íîñòüþ. Ïîêëîííèêè ïðèåçæàþò èçäàëåêà
âîçìîæíîñòè äëÿ ïðîåêòîâ Arduino. ëèøü äëÿ òîãî, ÷òîáû âûïèòü â ïàáå ãîðîäêà
Íî ê âîïðîñó ÷ðåçìåðíîãî óñëîæíåíèÿ Èâðåà, â ÷åñòü êîòîðîãî ôåíîìåí ïîëó÷èë
Arduino êîìàíäà, âñå æå, ïîäõîäèò ñ êðàéíåé íàçâàíèå Arduino. Áàíöè ãîâîðèò: «Ëþäè ïðè-
îñòîðîæíîñòüþ. «Ïðîáëåìà çàêëþ÷àåòñÿ â õîäÿò â áàð è çàÿâëÿþò: «Ìû çäåñü èç-çà ïëàòû
òîì, ÷òîáû íàéòè ñïîñîá îáúåäèíåíèÿ íà Arduino». Íî òóò èìååòñÿ îäíà ïðîáëåìêà. Áàð-
îäíîé ïëàòôîðìå âñåãî ìíîæåñòâà âåùåé, ìåíû íå çíàþò ÷òî òàêîå ïëàòà Arduino».

ÐàäèîËîöìàí – íîÿáðü 2011


Îòêðûòàÿ ïëàòôîðìà Arduino
âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë
Lee Goldberg

Electronic Products

Âî ìíîãîì òàêèì æå îáðàçîì, êàê ìèð ïðî- êîìïàêòíàÿ ïëàòà, îñíîâíûé íà Ñ++ ÿçûê ïðî-
ãðàììèðîâàíèÿ ïåðåâåðíóëè îïåðàöèîííûå ãðàììèðîâàíèÿ è ñðåäà ïðîãðàììèðîâàíèÿ
ñèñòåìû ñ îòêðûòûì èñõîäíûì êîäîì GNU, ñâîåé óíèâåðñàëüíîñòüþ è ïðîñòîòîé èñïîëü-
Linux è äðóãèå, àïïàðàòíûå ïëàòôîðìû ñ
îòêðûòûì èñõîäíûì êîäîì, ïîääåðæèâàþùèå
Arduino, íà÷èíàþò âíîñèòü ñâîè èçìåíåíèÿ â
óñòîÿâøèåñÿ ïðàâèëà äëÿ ìíîãèõ âñòðàèâàå-
ìûõ ïðèëîæåíèé. Èçíà÷àëüíî ðàçðàáîòàííàÿ
äëÿ ñîîáùåñòâà ðàäèîëþáèòåëåé è óñòðîéñòâ
ôîðìàòà «ñäåëàé ñàì», ïëàòôîðìà ïðîòîòè-
ïèðîâàíèÿ ýëåêòðîííûõ óñòðîéñòâ ñ îòêðûòûì
èñõîäíûì êîäîì Arduino îñíîâàíà íà ãèáêîì,
ëåãêîì â èñïîëüçîâàíèè àïïàðàòíîì è ïðî-
ãðàììíîì îáåñïå÷åíèè. Îäíàêî äëÿ ìíîãèõ
êîììåð÷åñêèõ ðàçðàáîò÷èêîâ íåìàëîâàæíóþ
ðîëü èãðàåò íèçêàÿ ñòîèìîñòü ïëàòôîðìû è
áûñòðî ðàñòóùàÿ ýêîñèñòåìà áåñïëàòíîãî ÏÎ
è ïðèëîæåíèé. Â ýòîì êðàòêîì îáçîðå ìû ðàñ-
ñìîòðèì àïïàðàòíóþ è ïðîãðàììíóþ ÷àñòü
ïëàòôîðìû Arduino, à òàêæå íåêîòîðûå ïðèëî- Ðèñóíîê 1. Äåøåâûé, â ñðàâíåíèè ñ òðàäèöèîí-
æåíèÿ íà åå áàçå. íûìè ñòàíêàìè ñ ×ÏÓ, 3D ïðèíòåð
Thing-O-Matic êîìïàíèè MakerBot
èñïîëüçóåò ïðîöåññîðíóþ ïëàòó
Èñòîðèÿ Arduino Arduino äëÿ óïðàâëåíèÿ øàãîâûìè
Arduino – ýòî íå ñïåöèàëèçèðîâàííûé ïðî- äâèãàòåëÿìè, ïå÷àòàþùåé òåðìîãî-
äóêò èëè òåõíîëîãèÿ, ýòî ýêîñèñòåìà àïïàðàò- ëîâêîé è äðóãèìè ýëåêòðîìåõàíè÷åñ-
íîãî è ïðîãðàììíîãî îáåñïå÷åíèÿ, èíñòðóìåí- êèìè óñòðîéñòâàìè. Ýòîò ïðîäóêò
òîâ è ÷åëîâå÷åñêèõ ðåñóðñîâ, â öåíòðå êîòîðîé ïðåâðàùàåò íåäîðîãîé ÀÁÑ-ïëàñòèê
â ãîòîâûå îáúåêòû äëÿ ñîçäàíèÿ
8-ðàçðÿäíûå ìèêðîêîíòðîëëåðû ñåìåéñòâà ïðîòîòèïîâ èëè ìàëîòèðàæíûõ èçäå-
megaAVR. Âõîäÿùèå â ñîñòàâ ïëàòôîðìû ëèé ñ äîïóñêàìè ðàçìåðîâ 0.02 ìì.

ÐàäèîËîöìàí – äåêàáðü 2011


çîâàíèÿ âî ìíîãîì îáÿçàíû ïðîáíîé ïëàòôîð- ðîêîíòðîëëåðû ATmega ìîãóò èìåòü 4 èëè 8
ìå Wiring, ðàçðàáîòàííîé â 2003 ãîäó Ýðíàíäî ÊÁàéò âíóòðèñõåìíî ïðîãðàììèðóåìîé Flash-
Áàððàãàí (Hernando Barrag). Åãî öåëüþ áûëî ïàìÿòè, à òàêæå SRAM è EEPROM â ðàçëè÷íûõ
óïðîùåíèå ðàçðàáîòêè ýëåêòðîííûõ ñèñòåì êîìáèíàöèÿõ îáúåìà.
äëÿ ëþáèòåëåé, èññëåäîâàòåëåé è äðóãèõ Ïðîöåññîðíîå ÿäðî ìèêðîêîíòðîëëåðîâ
íåïðîôåññèîíàëîâ, îáåñïå÷èâàÿ ëåãêèé äîñ- îêðóæåíî ðàçíîîáðàçíîé ïåðèôåðèåé è óñòðî-
òóï êî âñåì âîçìîæíîñòÿì è ðåñóðñàì, êîòî- éñòâàìè ââîäà/âûâîäà. Õîòÿ íåêîòîðûå óñòðî-
ðûå íóæíû îïûòíûì ðàçðàáîò÷èêàì. Âûïîë- éñòâà ðàçëè÷àþòñÿ êîíôèãóðàöèåé, ìíîãèå èç
íåííûå íà áàçå ìèêðîê îíòðîëëåðîâ íèõ èìåþò:
ATmega1281 è ATmega 2561, êîìïàêòíûå è ! 23 ëèíèè ââîäà/âûâîäà îáùåãî íàçíà÷å-
íåäîðîãèå ïðîöåññîðíûå ïëàòû Wiring è íèÿ;
WiringMini èñïîëüçîâàëèñü äëÿ ðàçðàáîòêè
! 6- èëè 8-êàíàëüíûé 10-ðàçðÿäíûé ÀÖÏ;
èíòåðàêòèâíûõ èãðóøåê, ðîáîòîâ, èãðàþùèõ â
ôóòáîë è êîíòðîëëåðîâ äëÿ ñêàíèðóþùåãî ! øåñòü êàíàëîâ ØÈÌ;
ýëåêòðîííîãî ìèêðîñêîïà. ! ïîñëåäîâàòåëüíûé èíòåðôåéñ USART;
Ïëàòôîðìà Arduino áûëà ðàçðàáîòàíà â ! 2-ïðîâîäíîé áàéò-îðèåíòèðîâàííûé
Èòàëèè Ìàññèìî Áàíöè (Massimo Banzi) è ïîñëåäîâàòåëüíûé èíòåðôåéñ;
Äýâèäîì Êóàðòèëëüç (David Cuartielles) â 2005 ! ïîñëåäîâàòåëüíûé ïîðò SPI;
ãîäó êàê èíñòðóìåíò äëÿ ñòóäåí÷åñêèõ ïðîåê- ! òðè ãèáêèéõ òàéìåðà/ñ÷åò÷èêà;
òîâ. Ýòî ðàñøèðåíèå ïëàòôîðìû Wiring, ê êîòî-
ðîé äîáàâëåíû íåñêîëüêî íîâûõ âîçìîæíîñ- ! ñ÷åò÷èê ðåàëüíîãî âðåìåíè ñ îòäåëüíûì
òåé ïðîãðàììèðîâàíèÿ è ñòàíäàðòíàÿ ñèñòåìà ãåíåðàòîðîì;
ñîåäèíåíèé, ïîçâîëÿþùèå ïîäêëþ÷àòü ê ïðî- ! ïðîãðàììèðóåìûé ñòîðîæåâîé òàéìåð ñî
öåññîðíîé ïëàòå øèðîêèé êðóã âçàèìîçàìåíÿ- âñòðîåííûì ãåíåðàòîðîì.
åìûõ äîïîëíèòåëüíûõ ìîäóëåé.
Ôîðì-ôàêòîð íà ëþáîé ñëó÷àé
Àïïàðàòíàÿ ÷àñòü ïëàòôîðìû Ïëàòôîðìà ïîñòîÿííî ñîâåðøåíñòâóåòñÿ
Arduino è ïîïîëíÿåòñÿ íîâûìè ïðîöåññîðíûìè ïëàòà-
Êàê è åå ïðåäøåñòâåííèê, àïïàðàòíàÿ ïëàò- ìè, ðàçðàáîòàííûìè ïîä ñïåöèôè÷åñêèé
ôîðìà ñ îòêðûòûì èñõîäíûì êîäîì Arduino ôîðì-ôàêòîð èëè êîíêðåòíîå ïðèëîæåíèå.
îñíîâàíà íà óíèâåðñàëüíûõ ìèêðîêîíòðîëëå- Ìíîãèå ïðîåêòû ñíàáæåíû ñòàáèëèçàòîðîì
ðàõ Atmel ñåìåéñòâà ATmega. Ïðîöåññîðíîå íàïðÿæåíèÿ è íàáîðîì ðàçúåìîâ äëÿ äîñòóïà
ÿäðî AVR ìèêðîêîíòðîëëåðîâ ñ ìîäèôèöèðî- ê ñèãíàëàì è ëèíèÿì ââîäà/âûâîäà. Îäíîé èç
âàííîé Ãàðâàðäñêîé àðõèòåêòóðîé ñî÷åòàåò â ïîïóëÿðíûõ ïëàò, ñîçäàííûõ êîìàíäîé
ñåáå îáøèðíûé íàáîð èíñòðóêöèé ñ 32 ðàáî÷è- Arduino, ÿâëÿåòñÿ ïëàòà Arduino Uno (Ðèñóíîê
ìè ðåãèñòðàìè îáùåãî íàçíà÷åíèÿ. Âñå 32 2). Íà ïëàòå óñòàíîâëåí êâàðöåâûé ðåçîíàòîð
ðåãèñòðà íåïîñðåäñòâåííî ïîäêëþ÷åíû ê 16 ÌÃö, ðàçúåì èíòåðôåéñà USB, ðàçúåì ïèòà-
àðèôìåòèêî-ëîãè÷åñêîìó óñòðîéñòâó (ÀËÓ), íèÿ, ðàçúåì èíòåðôåéñà âíóòðèñõåìíîãî ïðî-
ïîçâîëÿÿ ïîëó÷èòü äîñòóï ê äâóì íåçàâèñè- ãðàììèðîâàíèÿ è êíîïêà ñáðîñà. Âñòðîåííûé
ìûì ðåãèñòðàì çà îäèí ìàøèííûé öèêë. Ìèê- ñòàáèëèçàòîð íàïðÿæåíèÿ ïîçâîëÿåò ïèòàòü

ÐàäèîËîöìàí – äåêàáðü 2011


Ðèñóíîê 4. Arduino Mini.
Ðèñóíîê 2. Ïðîöåññîðíàÿ ïëàòà Arduino Uno.

ïëàòó îò ñåòåâîãî àäàïòåðà èëè áàòàðåè, à


òàêæå îò èíòåðôåéñà USB.
Ñèãíàëû 14 öèôðîâûõ ëèíèé ââî-
äà/âûâîäà è 6 àíàëîãîâûõ âõîäîâ ïëàòû
Arduino Uno âûâåäåíû íà ðàçúåìû. Øåñòü
ëèíèé ââîäà/âûâîäà ìîãóò èñïîëüçîâàòüñÿ êàê
âûõîäû ØÈÌ, – óäîáíàÿ ôóíêöèÿ äëÿ ÷åãî
óãîäíî – îò äèììèðîâàíèÿ îñâåùåíèÿ äî
óïðàâëåíèÿ ýëåêòðîäâèãàòåëÿìè. Ýòè æå ðàçú-
åìû ïîçâîëÿþò ïîäêëþ÷àòü ìåçîíèííûå ïëà- Ðèñóíîê 5. Arduino Ethernet.
òû ðàñøèðåíèÿ (íàçûâàåìûå Arduino Shield),
êîòîðûå ìîãóò ñîäåðæàòü äîïîëíèòåëüíûå
ýëåêòðîííûå óñòðîéñòâà è ðàçúåìû ââî-
äà/âûâîäà.

Ðèñóíîê 3. Arduino Nano. Ðèñóíîê 6. Arduino LilyPad.

Arduino Nano – ÷óòü áîëåå êîìïàêòíàÿ ïëà- óñòàíîâêè íà ìàêåòíûå ïëàòû (Ðèñóíîê 3). Â
òà íà ìèêðîêîíòðîëëåðàõ ATmega328 èëè ïðèëîæåíèÿõ, äëÿ êîòîðûõ îáúåì èãðàåò ðåøà-
ATmega168, ðàçðàáîòàííàÿ ñïåöèàëüíî äëÿ þùóþ ðîëü, ìîæåò èñïîëüçîâàòüñÿ ïëàòà

ÐàäèîËîöìàí – äåêàáðü 2011


Arduino Mini (Ðèñóíîê 4). Äðóãèå äîñòóïíûå âàííîãî íà ÿçûêå ïðîãðàììèðîâàíèÿ
âàðèàíòû ïðîöåññîðíûõ ïëàò ñîäåðæàò P r o c e s s i n g è ï ð î å ê òå W i r i n g ê ð î ñ ñ -
íåáîëüøóþ îáëàñòü äëÿ ìàêåòèðîâàíèÿ èëè ïëàòôîðìåííîãî ïðèëîæåíèÿ, íàïèñàííîãî íà
âñòðîåííûå êîììóíèêàöèîííûå ñðåäñòâà, Java. Õîòÿ ïåðâîíà÷àëüíî îíî ñîçäàâàëàñü
òàêèå êàê Ethernet èëè Bluetooth (Ðèñóíîê 5). êàê ââåäåíèå â ïðîãðàììèðîâàíèå äëÿ íîâè÷-
Îäíèì èç óíèêàëüíûõ ïðåäñòàâèòåëåé ñåìå- êîâ, íå çíàêîìûõ ñ ðàçðàáîòêîé ÏÎ, Arduino
éñòâà Arduino ÿâëÿåòñÿ ïëàòà LilyPad, ðàçðàáî- IDE èìååò âîçìîæíîñòè ðàñøèðåíèÿ, ïîçâîëÿ-
òàííàÿ äëÿ ïðèìåíåíèÿ â «óìíîé» îäåæäå þùèå îïûòíûì ïðîãðàììèñòàì ðàáîòàòü
(Ðèñóíîê 6). Îíà ìîæåò áûòü çàøèòà â òêàíü è ñ áîëåå êîìôîðòíî è ïðîäóêòèâíî. Ðåäàêòîð
èñïîëüçîâàíèåì ïðîâîäÿùèõ íèòåé ñîåäèíå- êîäà âêëþ÷àåò â ñåáÿ òàêèå ôóíêöèè, êàê ïîä-
íà ñî âñòðîåííûìè èñòî÷íèêàìè ïèòàíèÿ, äàò- ñâåòêà ñèíòàêñèñà, ïîäñâåòêà ñêîáîê è àâòîìà-
÷èêàìè è èñïîëíèòåëüíûìè óñòðîéñòâàìè. òè÷åñêèé îòñòóï, à òàêæå èìååòñÿ ôóíêöèÿ
Ïëàòó äàæå ìîæíî ñòèðàòü. êîìïèëÿöèè è çàãðóçêè ïðîãðàììû â ìèêðîêîí-
Ïðîãðàììèðîâàíèå Arduino òðîëëåð îäèí ùåë÷êîì ìûøè.
Àïïàðàòíàÿ ïëàòôîðìà Arduino ïîääåðæè- Èíòåãðèðîâàííàÿ ñðåäà ðàçðàáîòêè âêëþ-
âàåòñÿ ïàêåòîì ïðîãðàììíîãî îáåñïå÷åíèÿ ñ ÷àåò áîëüøîé íàáîð áèáëèîòåê ôóíêöèé
îòêðûòûì èñõîäíûì êîäîì, â êîòîðûé âõîäèò Ñè/Ñè++, ïîääåðæèâàþùèõ áîëüøèíñòâî îïå-
èíòåãðèðîâàííàÿ ñðåäà ðàçðàáîòêè (IDE), ñòàí- ðàöèé ââîäà/âûâîäà. Ïîëíàÿ âåðñèÿ ñðåäû
äàðòíûé ÿçûê ïðîãðàììèðîâàíèÿ ñ êîìïèëÿ- ðàçðàáîòêè, êîëëåêöèÿ ðàñøèðåíèé è äåìî-
òîðîì è çàãðóç÷èê, çàïóñêàåìûé íåïîñðå- íñòðàöèîííûõ ïðèëîæåíèé, êîëëåêöèÿ ðàçíî-
äñòâåííî íà ïðîöåññîðíîé ïëàòå. îáðàçíûõ ó÷åáíûõ ïðîãðàìì – âñå äîñòóïíî
äëÿ ñâîáîäíîãî ñêà÷èâàíèÿ íà ñàéòå ñîîáùåñ-
Ðàçðàáîòêà ïðîãðàììíîãî îáåñïå÷åíèÿ òâà Arduino.
îñóùåñòâëÿåòñÿ ñ ïîìîùüþ Arduino IDE – îñíî-

ÐàäèîËîöìàí – äåêàáðü 2011


Îòêðûòàÿ ïëàòôîðìà Arduino
âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë.
Arduino Shields – ðàñøèðåíèå âîçìîæíîñòåé àïïàðàòíîé
ïëàòôîðìû

Arduino – ýòî íå ñïåöèàëèçèðîâàííûé ïðî- ëè÷íûõ ïðîèçâîäèòåëåé, ëèáî îäíîãî èç ïðåä-


äóêò èëè òåõíîëîãèÿ, ýòî ýêîñèñòåìà àïïàðàò- ñòàâëåííûõ íà ðûíêå íàáîðîâ äëÿ ñàìîñòîÿ-
íîãî è ïðîãðàììíîãî îáåñïå÷åíèÿ, èíñòðóìåí- òåëüíîé ñáîðêè ñîâìåñòèìûõ ïî âûâîäàì ïëàò
òîâ è ÷åëîâå÷åñêèõ ðåñóðñîâ, è â öåíòðå âñåãî ðàñøèðåíèÿ.
– 8-ðàçðÿäíûå ìèêðîêîíòðîëëåðû ñåìåéñòâà Îòêðûòàÿ ïëàòôîðìà Arduino óâëåêàåò êàê
megaAVR, à ñ íå äàâíåãî âðåìåíè è 32- ëþáèòåëåé, òàê è êîììåð÷åñêèõ ðàçðàáîò÷è-
ðàçðÿäíûé ARM ìèêðêîêîíòðîëëåð íà áàçå êîâ âñòðàèâàåìûõ ñèñòåì, â ðåçóëüòàòå ÷åãî
ÿäðà Cortex-M3. ïîÿâèëîñü ìíîæåñòâî ñïåöèàëèçèðîâàííûõ
Íàðÿäó ñ îñíîâíîé àïïàðàòíîé ïëàòôîð- ïëàò ðàñøèðåíèÿ, âêëþ÷àÿ ïëàòû ðåëå, ïëàòû
ìîé – ïðîöåññîðíîé ïëàòîé, íåìàëîâàæíóþ ÀÖÏ è ÖÀÏ âûñîêîãî ðàçðåøåíèÿ, ïëàòû êîí-
ðîëü èãðàþò ïëàòû ðàñøèðåíèÿ Arduino òðîëÿ ýëåêòðè÷åñêîé ñåòè, èñòî÷íèêîâ ïèòà-
Shields. Áëàãîäàðÿ ýòèì ïëàòàì è ìîäóëÿì íèÿ è ïðåîáðàçîâàòåëåé, ïëàòû äðàéâåðîâ
çíà÷èòåëüíî ðàñøèðÿåòñÿ îáëàñòü ïðèìåíå- ýëåêòðîäâèãàòåëåé. Arduino ëåãêî ïîäêëþ÷àåò-
íèÿ Arduino, à òàêæå îòêðûâàþòñÿ íîâûå âîç- ñÿ ê ïðîâîäíûì ñåòÿì, áëàãîäàðÿ íàëè÷èþ
ìîæíîñòè äëÿ ïðîñòûõ ðàäèîëþáèòåëåé è îôèöèàëüíîé ïëàòû Ethernet Shield, íåñêîëü-
êîììåð÷åñêèõ ðàçðàáîò÷èêîâ. êèõ êîììåð÷åñêèõ âàðèàíòîâ ïëàò Ethernet è
Ïðàêòè÷åñêè âñå ïðîöåññîðíûå ïëàòû ñîîòâòåòñòâþùèõ ïðîãðàììíûõ áèáëèîòåê.
Arduino áëàãîäàðÿ óíèâåðñàëüíîìó ôîðì-
ôàêòîðó ïîääåðæèâàþò ïîäêëþ÷åíèå ìîäóëåé
Îôèöèàëüíàÿ ïëàòà Arduino Ethernet
ðàñøèðåíèÿ, ìåçîíèííûõ ìîäóëåé è äîïîëíè- Shield
òåëüíûõ ïëàò, êîòîðûå ïðèñîåäèíÿþòñÿ ê Ñ ïîìîùüþ ïëàòû Arduino Ethernet Shield
øèíå ìèêðîêîíòðîëëåðà è ëèíèÿì ââî- ïîäêëþ÷èòü ïëàòôîðìó Arduino ê ñåòè Èíòåð-
äà/âûâîäà ïîñðåäñòâîì ñïåöèàëüíûõ øòûðå- íåò ìîæíî çà ñ÷èòàííûå ìèíóòû. Ïðîñòî ñîå-
âûõ ðàçúåìîâ ñ øàãîì 2.54 ìì. Óíèâåðñàëü- äèíèòå ìîäóëü ñ ïðîöåññîðíîé ïëàòîé, ïîä-
íàÿ ñèñòåìà ïîäêëþ÷åíèÿ çíà÷èòåëüíî óïðî- êëþ÷èòå ñåòåâîé êàáåëü ñ ðàçúåìîì RJ45 è
ùàåò ïðîöåññ âíåäðåíèÿ â ïðîåêòû ñõåì ðàñ- ñëåäóéòå íåñëîæíûì èíñòðóêöèÿì. Â èòîãå âû
øèðåíèÿ ñ èñïîëüçîâàíèåì ëèáî ïðîìûøëåí- ïîëó÷èòå âîçìîæíîñòü êîíòðîëèðîâàòü ñâîå
íûõ, ïðåäâàðèòåëüíî ñîáðàííûõ ïëàò îò ðàç- óñòðîéñòâî ÷åðåç Èíòåðíåò. Êàæäûé ýëåìåíò

ÐàäèîËîöìàí – ÿíâàðü 2012


ïëàòôîðìû (àïïàðàòíàÿ ÷àñòü, ïðîãðàììíàÿ # Âûñîêîýôôåêòèâíûé DC/DC ïðåîáðàçî-
÷àñòü è äîêóìåíòàöèÿ) äîñòóïåí áåñïëàòíî è âàòåëü
èìååò îòêðûòûé êîä. # Íàïðÿæåíèå èçîëÿöèè âõîä/âûõîä 1500 Â
! Âñòðîåííûé êîíòðîëëåð ñáðîñà.
Ðàáîòà ñ ïëàòîé ðàñøèðåíèÿ, à òàêæå ñ
êàðòîé ïàìÿòè îñóùåñòâëÿåòñÿ ñ ïîìîùüþ
ïðîãðàììíîé áèáëèîòåêè, ïîääåðæèâàþùåé
äî 4 îäíîâðåìåííûõ âõîäíûõ ïîäêëþ÷åíèé ïî
ïðîòîêîëàì TCP èëè UDP. Âñòðîåííûé ðàçúåì
RJ45 ñîäåðæèò èíòåãðèðîâàííûé ëèíåéíûé
òðàíñôîðìàòîð è ïîçâîëÿåò èñïîëüçîâàòü
ôóíêöèþ Power over Ethernet.

Îôèöèàëüíàÿ ïëàòà Arduino Motor


Shield
Ñèëîâîé ìîäóëü äëÿ óïðàâëåíèÿ ýëåêòðî-
Ïëàòà ðàñøèðåíèÿ Arduino Ethernet ñîâìåñòè- äâèãàòåëÿìè ïðåäíàçíà÷åí äëÿ óïðîùåíèÿ
ìà ñ ïðîöåññîðíûìè ïëàòàìè Arduino Mega è ðàçðàáîòêè ðîáîòîòåõíè÷åñêèõ óñòðîéñòâ è
Arduino Uno. ìîòîðèçèðîâàííûõ ñèñòåì.
Ìîäóëü âûïîëíåí íà áàçå ïîëíîìîñòîâîãî
Îñíîâíûå õàðàêòåðèñòèêè ïëàòû ðàñøèðå-
äðàéâåðà L298, ïðåäíàçíà÷åííîãî äëÿ óïðàâ-
íèÿ Ethernet Shield:
ëåíèÿ èíäóêòèâíîé íàãðóçêîé (ðåëå, ñîëåíîè-
! Òðåáóåòñÿ ïðîöåññîðíàÿ ïëàòà Arduino
! Ðàáî÷åå íàïðÿæåíèå 5 Â
! Ethernet êîíòðîëëåð Wiznet W5100 ñî âñòðî-
åííûì áóôåðîì 16 ÊÁàéò
! Ñêîðîñòü ïîäêëþ÷åíèÿ 10/100 Ìáèò/ñ
! Ïîäêëþ÷åíèå ê Arduino ïî èíòåðôåéñó SPI
! Óñòàíîâëåí ñëîò äëÿ êàðò ïàìÿòè microSD
! Ïîääåðæêà ïîäêëþ÷åíèÿ ìîäóëÿ PoE:
# IEEE802.3af ñîâìåñòèìûé
# Íèçêèå ïóëüñàöèè è øóìû âûõîäíîãî
íàïðÿæåíèÿ
# Äèàïàçîí âõîäíîãî íàïðÿæåíèÿ 36 … 57
Â
# Çàùèòà îò ïåðåãðóçêè è êîðîòêîãî çàìû- Îôèöèàëüíàÿ ïëàòà Arduino Motor Shield ìîæåò
êàíèÿ óïðàâëÿòü äâóìÿ ýëåêòðîäâèãàòåëÿì ñ êîí-
# Âûõîäíîå íàïðÿæåíèå 9 Â òðîëåì ñêîðîñòè è íàïðàâëåíèÿ âðàùåíèÿ.

ÐàäèîËîöìàí – ÿíâàðü 2012


Ïëàòû äëÿ áåñïðîâîäíûõ êîììó-
íèêàöèé
Íà ñåãîäíÿøíèé äåíü ïðèîáðåòàþò áîëü-
øóþ ïîïóëÿðíîñòü áåñïðîâîäíûå óñòðîéñòâà
(ñèñòåìû áåçîïàñíîñòè, óñòðîéñòâà óïðàâëå-
íèÿ è êîíòðîëÿ, äàò÷èêè è èñïîëíèòåëüíûå
ìåõàíèçìû), äåéñòâóþùèå ïî ðàçëè÷íûì áåñ-
ïðîâîäíûì ïðîòîêîëàì. Ïðîåêòû íà áàçå
Arduino èäóò â íîãó ñî âðåìåíåì, áëàãîäàðÿ
âîçìîæíîñòè ïðîñòîãî äîáàâëåíèÿ áåñïðî-
âîäíûõ ôóíêöèé. Êîììåð÷åñêèå ïëàòû ðàñøè-
ðåíèÿ è ìîäóëè, êîòîðûå ïîääåðæèâàþò
Ðàññ÷èòàííàÿ íà ðàáî÷åå íàïðÿæåíèå äî 30  è ZigBee, Bluetooth è IEEE 801.11 ïðîòîêîëû
ðàáî÷èé òîê äî 2.8 À, ýòà êîììåð÷åñêàÿ ïëàòà òàêæå äîñòóïíû äëÿ ïîëüçîâàòåëåé. Êðîìå
ïðåäíàçíà÷åíà äëÿ óïðàâëåíèÿ äâóìÿ ýëåêòðî- òîãî, èìååòñÿ íåñêîëüêî ïëàò, êîòîðûå ñîäåð-
äâèãàòåëÿìè ïîñòîÿííîãî òîêà è ìîæåò ïðè- æàò çàâåðøåííûå ñîòîâûå òðàíñèâåðû íà
ìåíÿòüñÿ â ðîáîòîòåõíèêå èëè äðóãèõ ìîòî-
ðèçèðîâàííûõ ïðèëîæåíèÿõ.
áàçå GSM ñ ïîääåðæêîé GPRS ñåðâèñà è ïîä-
êà÷àþòñÿ ê ïëàòôîðìå Arduino Uno è Mega ñ
ïèòàíèåì îò èíòåðôåéñà USB.
äû, äâèãàòåëè ïîñòîÿííîãî òîêà è øàãîâûå
äâèãàòåëè) è ïîçâîëÿåò ðàáîòàòü ñ äâóìÿ ýëåê-
òðîäâèãàòåëÿìè, êîíòðîëèðóÿ ñêîðîñòü è
íàïðàâëåíèå âðàùåíèÿ êàæäîãî íåçàâèñèìî.
Ìîäóëü ðàññ÷èòàí íà ðàáîòó òîëüêî îò âíåø-
íåãî èñòî÷íèêà ïèòàíèÿ.
Îñíîâíûå õàðàêòåðèñòèêè Arduino Motor
Shield:
! Îäíîâðåìåííîå óïðàâëåíèå äâóìÿ ýëåêòðî-
äâèãàòåëÿìè ïîñòîÿííîãî òîêà èëè îäíèì
øàãîâûì äâèãàòåëåì
! Íåçàâèñèìûé êîíòðîëü ñêîðîñòè è íàïðàâ-
ëåíèÿ äâèæåíèÿ
! Ðàáî÷åå íàïðÿæåíèå 5 … 12 Â
! Óñòàíîâëåí èíòåãðàëüíûé äðàéâåð óïðàâ-
Îôèöèàëüíàÿ ïëàòà ðàñøèðåíèÿ Arduino
ëåíèÿ èíäóêòèâíîé íàãðóçêîé L298 Wireless SD Shield èñïîëüçóåòñÿ äëÿ îðãàíèçà-
! Ìàêñèìàëüíûé òîê 2 À íà êàíàë, èëè îáùèé öèè áåñïðîâîäíîé ïåðåäà÷è äàííûõ ñ èñïîëüçî-
âàíèåì, â îñíîâíîì, áåñïðîâîäíûõ ìîäóëåé
ìàêñèìàëüíûé òîê 4 À Xbee. Îäíàêî âîçìîæíî èñïîëüçîâàíèå è äðóãèõ
! Âîçìîæíîñòü èçìåðåíèÿ òîêà, ïîòðåáëÿåìî- áåñïðîâîäíûõ ìîäóëåé ñ ñîîòâåòñòâóþùåé
ãî êàæäûì äâèãàòåëåì (1.65 Â/À). òîïîëîãèåé ïëàòû.

ÐàäèîËîöìàí – ÿíâàðü 2012


Îôèöèàëüíàÿ ïëàòà Arduino Wireless SD òåëüíîé îñîáåííîñòüþ ÿâëÿåòñÿ âîçìîæíîñòü
Shield äîáàâëÿåò âîçìîæíîñòü áåñïðîâîäíîãî ïðîãðàììèðîâàíèÿ ìèêðîêîíòðîëëåðà ïî áåñ-
îáìåíà ñ îòëàäî÷íîé ïëàòîé.  îñíîâíîì, ïëà- ïðîâîäíîìó èíòåðôåéñó.
òà ðàñøèðåíèÿ ðàññ÷èòàíà íà ïîäêëþ÷åíèå
ìîäóëåé XBee, îäíàêî âîçìîæíî èñïîëüçîâà-
íèå è äðóãèõ ìîäóëåé ñ ñîîòâåòñòâóþùåé òîïî-
ëîãèåé. Êðîìå òîãî, íà ïëàòå óñòàíîâëåí ñëîò
äëÿ êàðò ïàìÿòè SD, èìååòñÿ íåáîëüøàÿ
îáëàñòü äëÿ ìàêåòèðîâàíèÿ è ïåðåêëþ÷àòåëü,
êîòîðûé âûáèðàåò ðåæèì îáìåíà ñ áåñïðîâîä-
íûì ìîäóëåì.

Ïëàòà Arduino BT (Digi-Key) âûïîëíåíà íà ìèê-


ðîêîíòðîëëåðå ATmega168 è ìîäóëå Bluegiga
WT11.

Ñëåäóåò íàïîìíèòü, ÷òî âñå îôèöèàëüíûå


ïðîäóêòû Arduino èìåþò îòêðûòûé êîä, ò.å. äëÿ
ïîëüçîâàòåëåé äîñòóïíû ïðèíöèïèàëüíûå
ñõåìû ïëàò, ôàéëû òîïîëîãèè, ïðîãðàììíûå
áèáëèîòåêè è äåìîíñòðàöèîííûå ïðèëîæå-
íèÿ.
Âî ìíîãîì òàêèì æå îáðàçîì, êàê ïëàòôîð-
Ïëàòà ðàñøèðåíèÿ Xbee Shield (Digi-Key) ñ óñòà-
íîâëåííûì ðàäèîìîäóëåì.
ìà ñ îòêðûòûì èñõîäíûì êîäîì Linux ïîñòå-
ïåííî âíåäðÿëàñü â êîììåð÷åñêèé ðûíîê, íèç-
Ïëàòà Arduino BT (Digi-Key) – ýòî çàâåð- êàÿ ñòîèìîñòü è óíèâåðñàëüíîñòü Arduino íà÷è-
øåííàÿ ïëàòà íà áàçå ìèêðîêîíòðîëëåðà íàþò ïðèâëåêàòü ê ñåáå êîììåð÷åñêèõ ðàçðà-
ATmega168 è áåñïðîâîäíîãî ìîäóëÿ Bluetooth áîò÷èêîâ àïïàðàòíîãî îáåñïå÷åíèÿ è âñòðàè-
Bluegiga WT11, îáåñïå÷èâàþùàÿ îáìåí ïî âàåìûõ ñèñòåì. Õîòÿ ìíîãèå íà÷àëüíûå è áàçî-
ïðîòîêîëó Bluetooth. Îíà èìååò 14 öèôðîâûõ âûå ïðèëîæåíèÿ áûëè ðàçðàáîòàíû äëÿ ëþáè-
âõîäîâ/âûõîäîâ (6 èç êîòîðûõ ìîãóò èñïîëüçî- òåëåé è ñòóäåíòîâ, îæèäàåòñÿ, ÷òî òåõíîëîãèÿ
âàòüñÿ êàê ØÈÌ âûõîäû), 6 àíàëîãîâûõ âõî- Arduino, èñïîëüçóþùàÿñÿ äëÿ èõ ñîçäàíèÿ,
äîâ, êâàðöåâûé ðåçîíàòîð 16 ÌÃö, ðàçúåì áûñòðî ïðîëîæèò ñåáå äîðîãó ê ïðîìûøëåí-
âíóòðèñõåìíîãî ïðîãðàììèðîâàíèÿ. Îòëè÷è- íûì ïðîäóêòàì.

ÐàäèîËîöìàí – ÿíâàðü 2012


Àíàëîãîâûé ôóíêöèîíàë Arduino:
êàê èñïîëüçîâàòü åãî
â ñâîèõ ïðîåêòàõ
Lee Goldberg, Electronic Products

Áóäü âû èíæåíåð-ðàçðàáîò÷èê, èëè ïðîñòî  ñîîòâåòñòâèè ñ ïðèíÿòîé ôèëîñîôèåé –


ëþáèòåëü, âû ñìîæåòå ïîíÿòü è îöåíèòü ïðî- ñäåëàòü ïðèìåíåíèå öèôðîâûõ òåõíîëîãèé â
ñòîòó èñïîëüçîâàíèÿ àíàëîãîâûõ âõî- ðåàëüíîì ìèðå ìàêñèìàëüíî ïðîñòûì, – àïïà-
äîâ/âûõîäîâ îòêðûòîé àïïàðàòíîé ïëàòôîð- ðàòíàÿ ïëàòôîðìà Arduino áûëà ðàçðàáîòàíà
ìû Arduino â ïðèëîæåíèÿõ, ðàáîòàþùèõ ñ «ðå- òàêèì îáðàçîì, ÷òîáû îáåñïå÷èòü âîçìîæ-
àëüíûì ìèðîì». Êîìïàêòíûå àïïàðàòíûå íîñòü ïîëíîãî èñïîëüçîâàíèÿ àíàëîãîâûõ
ìîäóëè îáåñïå÷èâàþò ëåãêèé äîñòóï ê àíàëî- ôóíêöèé, âñòðîåííûõ â óíèâåðñàëüíûé 8-
ãîâûì âõîäàì è âûõîäàì ìèêðîêîíòðîëëåðà, ðàçðÿäíûé ìèêðîêîíòðîëëåð ATmega êîìïà-
êîòîðûå ìîãóò èñïîëüçîâàòüñÿ äëÿ èçìåðåíèÿ íèè Atmel. Âñå âàðèàíòû ìèêðîêîíòðîëëåðîâ,
è ìîíèòîðèíãà íàïðÿæåíèÿ, ÷òåíèÿ ðàçëè÷íûõ èñïîëüçóåìûõ â ïëàòôîðìå Arduino, îñíàùå-
òèïîâ àíàëîãîâûõ äàò÷èêîâ è ïðîñòûõ ñèãíà- íû âíóòðåííèì ìíîãîêàíàëüíûì ÀÖÏ, êîòî-
ëîâ. ðûé èìååò 10-áèòíîå ðàçðåøåíèå è ñïîñîáåí
Íåñìîòðÿ íà òî, ÷òî öèôðî-àíàëîãîâûé ïðîèçâîäèòü äî 15000 âûáîðîê â ñåêóíäó, ïðåä-
ïðåîáðàçîâàòåëü ìèêðîêîíòðîëëåðà èìååò ñòàâëÿÿ ðåçóëüòàòû â ôîðìå öåëûõ ÷èñåë îò 0
îòíîñèòåëüíî ñêðîìíîå ðàçðåøåíèå è ñêî- äî 1023. Îñíîâíîé ôóíêöèåé àíàëîãîâûõ âûâî-
ðîñòü ïðåîáðàçîâàíèÿ, îí âïîëíå ïîäõîäèò äîâ ìèêðîêîíòðîëëåðà ÿâëÿåòñÿ ÷òåíèå âõîä-
äëÿ ìíîãèõ ðàñïðîñòðàíåííûõ ïðèëîæåíèé, îò íûõ àíàëîãîâûõ çíà÷åíèé, íî ëþáîé èç íèõ
óïðàâëåíèÿ îñâåùåíèåì è ýëåêòðîäâèãàòåëÿ- ìîæåò áûòü ñêîíôèãóðèðîâàí êàê öèôðîâàÿ
ìè, äî ïåðåêëþ÷åíèÿ êîýôôèöèåíòîâ óñèëå- ëèíèÿ ââîäà/âûâîäà îáùåãî íàçíà÷åíèÿ.
íèÿ óñèëèòåëåé. Â ñòàòüå ìû ðàññìîòðèì àïïà- Õîòÿ íåêîòîðûå AVR ìèêðîêîíòðîëëåðû
ðàòíûå è ïðîãðàììíûå ðåñóðñû, êîòîðûå îáðà- îñíàùåíû öèôðî-àíàëîãîâûìè ïðåîáðàçîâà-
çóþò îñíîâó àíàëîãîâîãî ôóíêöèîíàëà ïëàò- òåëÿìè, â íûíåøíåì ïîêîëåíèè ïëàò Arduino
ôîðìû Arduino è ïîêàæåì, êàê èñïîëüçîâàòü èõ èñïîëüçóþòñÿ ïðåäñòàâèòåëè ñåìåéñòâà, àíà-
â ñâîèõ ïðîåêòàõ. ëîãîâûå ñèãíàëû íà âûõîäàõ êîòîðûõ ïîëó÷à-
Åñëè Âû åùå íå çíàêîìû ñ Arduino, îáðà- þòñÿ ñ ïîìîùüþ øèðîòíî-èìïóëüñíîé ìîäó-
òèòå âíèìàíèå íà ññûëêè â êîíöå ëÿöèè (ØÈÌ). Êîýôôèöèåíò çàïîëíåíèÿ
ñòàòüè. èìïóëüñîâ, èìåþùèõ ÷àñòîòó ïðèáëèçèòåëüíî
490 Ãö, ïðîãðàììèðóåòñÿ íà êàæäîì âûõîäå

ÐàäèîËîöìàí – ôåâðàëü 2012


ØÈÌ, ÷òî äàåò âîçìîæíîñòü ïîëó÷àòü ýêâèâà- ïðèäåðæèâàþòñÿ ñîãëàøåíèé, ïðèíÿòûõ äëÿ
ëåíòíîå äåéñòâóþùåå íàïðÿæåíèå â äèàïàçî- îôèöèàëüíûõ ïðîåêòîâ Arduino – Arduino Uno
íå îò 0 Â äî 5 Â ñ 8-áèòíûì ðàçðåøåíèåì (Ðè- (Ðèñóíîê 2), Mega è Nano.
ñóíîê 1). Íåñìîòðÿ íà íåêîòîðûå îãðàíè÷åíèÿ
â ñâîèõ âîçìîæíîñòÿõ, âûõîäû Arduino ìîãóò
áûòü èñïîëüçîâàíû äëÿ ìíîãèõ çàäà÷, òàêèõ
êàê óïðàâëåíèå ñâåòîäèîäàìè è ýëåêòðîäâèãà-
òåëÿìè.
Øèðîòíî-èìïóëüñíàÿ ìîäóëÿöèÿ
Êîýôôèöèåíò çàïîëíåíèÿ 0% – analogWrite(0)

Êîýôôèöèåíò çàïîëíåíèÿ 25% – analogWrite(64)



Ðèñóíîê 2. Àíàëîãîâûå âõîäû (A0 – A5) íà ïëàòå
0Â Arduino Uno (rev3) è âûõîäû ØÈÌ
Êîýôôèöèåíò çàïîëíåíèÿ 50% – analogWrite(127) (öèôðîâûå âûõîäû 3, 5, 6, 9, 10, 11)
5 ôèçè÷åñêè äîñòóïíû ÷åðåç ñòàíäàð-
òíûå îäíîðÿäíûå ðàçúåìû ïî êðàÿì
0Â ïëàòû.
Êîýôôèöèåíò çàïîëíåíèÿ 75% – analogWrite(191)
5Â Ðàçðàáîòêà ïðîãðàììíîãî êîäà äëÿ ôóíê-

öèé àíàëîãîâîãî ââîäà/âûâîäà òàêæå íåñëîæ-
íà, ò.ê. ñðåäà ðàçðàáîòêè Arduino IDE ñîäåðæèò
Êîýôôèöèåíò çàïîëíåíèÿ 100% – analogWrite(255)
íàáîð ñîîòâåòñòâóþùèõ ñîáñòâåííûõ êîìàíä.

Ýòè êîìàíäû ïîçâîëÿþò ñ÷èòûâàòü àíàëîãî-
0 âûå çíà÷åíèÿ, ãåíåðèðîâàòü âûõîäíîé ØÈÌ
Ðèñóíîê 1. Øèðîòíî-èìïóëüñíàÿ ìîäóëÿöèÿ ñèãíàë è êîíôèãóðèðîâàòü îïîðíîå íàïðÿæå-
ïîçâîëÿåò ïðåâðàòèòü öèôðîâûå íèÿ äëÿ ÀÖÏ.
ëèíèè ââîäà/âûâîäà îáùåãî íàçíà÷å-
íèÿ â àíàëîãîâûå âûõîäû Arduino. Àíàëîãî-öèôðîâîå ïðåîáðàçîâàíèå
è ÷òåíèå äàííûõ
Áîëüøèíñòâî ïëàò Arduino, êàê «îôèöèàëü-
íûõ», òàê è äðóãèõ èçãîòîâèòåëåé, ïðåäîñòàâ- Çàäà÷à èñïîëüçîâàíèÿ àíàëîãîâûõ âõîäîâ
ëÿþò ëåãêèé äîñòóï ê àíàëîãîâûì (è öèôðî- ïëàòôîðìû Arduino â ðåàëüíûõ ïðèëîæåíèÿõ
âûì) ñèãíàëàì ìèêðîêîíòðîëëåðà ïîñðå- äîâîëüíî ïðîñòà, íî òðåáóåò îïðåäåëåííîãî
äñòâîì ðàçúåìîâ ïî êðàÿì ïëàòû. Êîëè÷åñòâî âíèìàíèÿ ïðè âûáîðå íàäëåæàùåãî èñòî÷íèêà
àíàëîãîâûõ êàíàëîâ è èõ ôèçè÷åñêîå ñîîòâå- îïîðíîãî íàïðÿæåíèÿ äëÿ ÀÖÏ. ×òîáû îïðåäå-
òñòâèå âàðüèðóþòñÿ â çàâèñèìîñòè îò êîíêðåò- ëèòü âåðõíèé ïðåäåë äèàïàçîíà âõîäíîãî
íîãî èñïîëüçóåìîãî ìèêðîêîíòðîëëåðà è íàïðÿæåíèÿ ÀÖÏ, çäåñü ìîæíî èñïîëüçîâàòü
ôîðì-ôàêòîðà ïëàòû, íî ìíîãèå âàðèàíòû èñòî÷íèê îïîðíîãî íàïðÿæåíèÿ ïî óìîë÷àíèþ
(Default), âíóòðåííèé (Internal) èëè âíåøíèé

ÐàäèîËîöìàí – ôåâðàëü 2012


(External). Â ðåæèìå Default ìèêðîêîíòðîëëåð Ñîçäàíèå àíàëîãîâûõ âûõîäîâ ØÈÌ
â êà÷åñòâå îïîðíîãî èñòî÷íèêà èñïîëüçóåò Äëÿ ãåíåðàöèè àíàëîãîâîãî íàïðÿæåíèÿ íà
âûõîä óñòàíîâëåííîãî íà ïëàòå Arduino ñòàáè- îäíîì èç âûâîäîâ ØÈÌ ïëàòû Arduino òðåáó-
ëèçàòîðà íàïðÿæåíèÿ. Â çàâèñèìîñòè îò êîí- åòñÿ êîíôèãóðèðîâàíèå ýòîãî âûâîäà ñ
êðåòíîãî òèïà ïëàòû, ýòî ëèáî 5 Â, ëèáî 3.3 Â. ïîìîùüþ êîìàíäû pinMode(pin, mode) è
 ðåæèìå Internal èñïîëüçóåòñÿ âñòðîåí- ïîñëåäóþùåãî âûçîâà ôóíêöèè
íûé â ìèêðîêîíòðîëëåð ïðåöèçèîííûé èñòî÷- analogWrite(pin, value), ãäå
íèê îïîðíîãî íàïðÿæåíèÿ. Âûõîäíîå íàïðÿæå- pin – óêàçûâàåò íîìåð âûâîäà ØÈÌ íà ðàç-
íèå ýòîãî èñòî÷íèêà ðàçëè÷íî â ðàçëè÷íûõ úåìå ïëàòû Arduino,
ìèêðîêîíòðîëëåðàõ, è êàê ïðàâèëî ñîñòàâëÿåò value – çíà÷åíèå, çàäàþùåå âûõîäíîå
1.1  (äëÿ ATmega168 è ATmega328) èëè 2.56  íàïðÿæåíèå ØÈÌ (8-áèòíîå ÷èñëî â äèàïàçî-
(äëÿ ATmega8 è äðóãèõ èç ñåðèè mega). Ðåæèì íå 0-255).
External ïîçâîëÿåò ïîäêëþ÷èòü âíåøíèé Íà ñêîíôèãóðèðîâàííîì îäíàæäû âûõîäå
èñòî÷íèê îïîðíîãî íàïðÿæåíèÿ ê âûâîäó ìèê- áóäåò ïîñòîÿííî ïðèñóòñòâîâàòü ñèãíàë ØÈÌ
ðîêîíòðîëëåðà AREF ÷åðåç ðåçèñòîð íîìèíà- ÷àñòîòîé 490 Ãö ñ çàäàííûìè ïàðàìåòðàìè äî
ëîì 5 êÎì. Âûâîä AREF èìååò âíóòðåííèé ñëåäóþùåãî âûçîâà ôóíêöèè analogWrite()
çàùèòíûé ðåçèñòîð 32 êÎì, êîòîðûé ñîâìåñ- (èëè digitalRead(), èëè digitalWrite()) äëÿ ýòîãî
òíî ñ ðåçèñòîðîì 5 êÎì îáðàçóåò äåëèòåëü æå âûâîäà ìèêðîêîíòðîëëåðà.
íàïðÿæåíèÿ. Ýòî îçíà÷àåò, ÷òî ïðè íàïðÿæå- Ëèíèè ââîäà/âûâîäà ìèêðîêîíòðîëëåðà
íèè 2.5 Â, ïðèëîæåííîì ÷åðåç ðåçèñòîð, íà ñïîñîáíû îòäàâàòü â íàãðóçêó òîê äî 40 ìÀ,
âûâîäå AREF áóäåò 2.5 ´ 32 / (32 + 5) » 2.2 Â. ïîýòîìó îíè ïðèãîäíû äëÿ íåïîñðåäñòâåííîãî
×òåíèÿ àíàëîãîâûõ íàïðÿæåíèé ñ óïðàâëåíèÿ íåáîëüøèìè ìàññèâàìè ñâåòîäè-
ïîìîùüþ ÿçûêà ïðîãðàììèðîâàíèÿ Arduino îäîâ. Äëÿ óïðàâëåíèÿ áîëåå ìîùíûìè èñòî÷-
íèêàìè ñâåòà èëè ýëåêòðîäâèãàòåëÿìè àíàëî-
çàêëþ÷àåòñÿ â âûáîðå èñòî÷íèêà îïîðíîãî
ãîâûé âûõîä ìèêðîêîíòðîëëåðà ìîæíî ñîåäè-
íàïðÿæåíèÿ ñ èñïîëüçîâàíèåì êîìàíäû
íèòü ñ ìîùíûì òðàíçèñòîðîì èëè ìîñòîâîé
analogReference (type) è âûçîâà ôóíêöèè
ñõåìîé. Â ïðèëîæåíèÿõ áîëåå òðåáîâàòåëü-
analogRead(pin), ãäå íûõ ê êà÷åñòâó àíàëîãîâîãî ñèãíàëà (óñèëèòå-
pin óêàçûâàåò íà íîìåð âûâîäà ðàçúåìà ëè, èñòî÷íèêè òîêà) ìîãóò ïðèìåíÿòüñÿ ïðî-
ïëàòû. ñòûå RC ôèëüòðû.
Ïîñëå íàçíà÷åíèÿ èñòî÷íèêà îïîðíîãî Äîïîëíèòåëüíûå àíàëîãîâûå
íàïðÿæåíèÿ îí îñòàåòñÿ àêòèâíûì äî âûáîðà
ôóíêöèè
äðóãîãî èñòî÷íèêà. Íåñìîòðÿ íà òî, ÷òî ìèêðî-
Íåêîòîðûå ìèêðîêîíòðîëëåðû AVR (âêëþ-
êîíòðîëëåðû AVR ïîääåðæèâàþò ñêîðîñòü
÷àÿ ATmega8 è ATmega168) èìåþò àíàëîãîâûé
ïðåîáðàçîâàíèÿ äî 15000 âûáîðîê â ñåêóíäó,
êîìïàðàòîð, ïîçâîëÿþùèé ñðàâíèâàòü âõîä-
àïïàðàòíî-ïðîãðàììíàÿ ïëàòôîðìà Arduino, íîå íàïðÿæåíèå ñ äðóãèì âíåøíèì íàïðÿæå-
êàê ïðàâèëî, îãðàíè÷èâàåò ýòî çíà÷åíèå äî íèåì, êîòîðîå ìîæåò ïîñòóïàòü ñ âûõîäà ØÈÌ
10000 âûáîðîê. èëè îò âñòðîåííîãî èñòî÷íèêà îïîðíîãî íàïðÿ-

ÐàäèîËîöìàí – ôåâðàëü 2012


æåíèÿ ìèêðîêîíòðîëëåðà. Âûõîä êîìïàðàòîðà íåò, ìîæíî èñïîëüçîâàòü ñïåöèàëüíóþ ïëàòó
ìîæåò îïðàøèâàòüñÿ ìèêðîêîíòðîëëåðîì, äëÿ ïðîòîòèïèðîâàíèÿ (Ðèñóíîê 3).
èëè æå ìîæåò èíèöèèðîâàòü ïðåðûâàíèå. Íåñ-
ìîòðÿ íà äîïîëíèòåëüíûé ïðîãðàììíûé êîä,
ðàáîòà êîìïàðàòîðà ñ âûðàáîòêîé ïðåðûâà-
íèÿ ïîçâîëÿåò ïðîöåññîðó ðåàëèçîâàòü ôóíê-
öèè îïðåäåëåíèÿ ïîâûøåííîãî/ïîíèæåííîãî
íàïðÿæåíèÿ áåç ïîñòîÿííîãî ÷òåíèÿ àíàëîãî-
âûõ äàííûõ. Ýòà ôóíêöèÿ ìîæåò èñïîëüçî-
âàòüñÿ â äåòåêòîðàõ äâèæåíèÿ ñ ðåãóëèðóå-
ìûì ïîðîãîì è äàò÷èêàõ óäàðà â áèîìåäèöèí-
ñêîì ìîíèòîðèíãå.
Äëÿ ïëàò Arduino, ìèêðîêîíòðîëëåðû êîòî-
ðûõ íå èìåþò âñòðîåííîãî àíàëîãîâîãî êîìïà-
ðàòîðà, îòíîñèòåëüíî ëåãêî ìîæíî äîáàâèòü Ðèñóíîê 3. Ïëàòà äëÿ ïðîòîòèïèðîâàíèÿ ïîçâî-
âíåøíèé êîìïàðàòîð LM741, LM339N èëè ëèò ïîäêëþ÷àòü âàøè ñîáñòâåííûå
àíàëîãîâûå (èëè öèôðîâûå) ñõåìû
TLC3704, óñòàíîâèâ åãî â ìàêåòíîé îáëàñòè ââîäà/âûâîäà ê ñòàíäàðòíûì ïëà-
ïëàòû. Åñëè ñâîáîäíîãî ìåñòà íà âàøåé ïëàòå òàì Arduino.

Ññûëêè
1. «Ðàäèîëîöìàí», 2011, 11, ñòð. 13, «Êàê ñîçäàâàëè è ïðîäâèãàëè Arduino».
2. «Ðàäèîëîöìàí», 2011, 12, ñòð. 44, «Îòêðûòàÿ ïëàòôîðìà Arduino âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë».
3. «Ðàäèîëîöìàí», 2012, 01, ñòð. 34, «Îòêðûòàÿ ïëàòôîðìà Arduino âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë.
Arduino Shields – ðàñøèðåíèå âîçìîæíîñòåé àïïàðàòíîé ïëàòôîðìû».

ÐàäèîËîöìàí – ôåâðàëü 2012


Ñåòåâûå âîçìîæíîñòè
Arduino-ïðèëîæåíèé è ñèñòåì
Lee Goldberg
Electronic Products

Äîáàâëåíèå ñåòåâûõ êîììóíèêàöèîííûõ Åñëè âû åùå íå çíàêîìû ñ Arduino, îáðàòè-


âîçìîæíîñòåé ê îòêðûòîé àïïàðàòíî- òå âíèìàíèå íà ññûëêè â êîíöå ñòàòüè.
ïðîãðàììíîé ïëàòôîðìå Arduino ðåàëèçóåòñÿ Íà ñàìîì äåëå, ïðàêòè÷åñêè êàæäîå óñòðî-
ïðîñòî è îòíîñèòåëüíî äåøåâî, íî áëàãîäàðÿ éñòâî Arduino èìååò êàêèå-òî êîììóíèêàöèîí-
èì îòêðûâàåòñÿ ìèð íîâûõ ïðèëîæåíèé, êàê íûå âîçìîæíîñòè. Íà ñàìîì áàçîâîì óðîâíå
äëÿ ëþáèòåëåé, òàê è äëÿ èíæåíåðîâ è êîì- ïëàòôîðìà äîëæíà ïðåäîñòàâëÿòü íåêîòîðûå
ìåð÷åñêèõ ðàçðàáîò÷èêîâ (Ðèñóíîê 1). Èç ïðåä- ñðåäñòâà äëÿ ðàçðàáîòêè è çàãðóçêè êîäà ïðè-
ëàãàåìîé îçíàêîìèòåëüíîé ñòàòüè âû óçíàåòå, ëîæåíèÿ ñ èñïîëüçîâàíèåì ïåðñîíàëüíîãî
êàê äîáàâèòü Ethernet, Wi-Fi èëè èíòåðôåéñ êîìïüþòåðà, à òàêæå äîëæíà îáåñïå÷èâàòüñÿ
ñòàíäàðòà 802.15 â ñèñòåìó íà áàçå Arduino.
ïîääåðæêà îòëàäêè è òðàññèðîâêè. Ìíîãèå
ïëàòû Arduino (òàêèå êàê Uno, Mega2560) èìå-
þò èíòåãðèðîâàííûé ïîðò USB, èñïîëüçóåìûé
è â êà÷åñòâå êàíàëà ñâÿçè, è â êà÷åñòâå ìàëî-
ìîùíîãî èñòî÷íèêà ïèòàíèÿ.  íåêîòîðûõ ñïå-
öèàëèçèðîâàííûõ ïëàòàõ òàêàÿ ðîñêîøü êàê
ñîåäèíåíèå ïî USB îòñóòñòâóåò, è â íèõ
èñïîëüçóåòñÿ âîçìîæíîñòü ñâÿçè ïî ïîñëåäî-
âàòåëüíîìó èíòåðôåéñó RS-232 (èëè ýêâèâà-
ëåíòíîìó), ÷òî ïîçâîëÿåò èñïîëüçîâàòü äëÿ
îáìåíà ñ íèìè ïðàêòè÷åñêè ëþáîå óñòðîéñòâî
ñ ïîñëåäîâàòåëüíûì ïîðòîì.
 ïëàòôîðìå Arduino ïðåäóñìîòðåíû âîç-
ìîæíîñòè ïîñëåäîâàòåëüíîãî îáìåíà ñ äðóãè-
ìè ìèêðîñõåìàìè (ðàñïîëîæåííûìè íà îñíîâ-
Ðèñóíîê 1. Ðîáîò-èãðóøêà RobotShop Rover ïîä íîé ïëàòå, èëè íà îòäåëüíûõ ìîäóëÿõ) ïîñðå-
óïðàâëåíèåì Arduino, êîòîðûé ïðîãðàììèðóåòñÿ
è ïîëó÷àåò êîìàíäû îò ÏÊ ïî èíòåðôåéñó USB. äñòâîì èíòåðôåéñîâ SPI, I2C èëè TWI. Âî ìíî-
Ìîäóëü ïðèåìîïåðåäàò÷èêà XBee 2.4 ÃÃö ìîæåò ãèõ ñëó÷àÿõ ýòî ðåàëèçóåòñÿ íà îñíîâå ðåñóð-
èñïîëüçîâàòüñÿ äëÿ óäàëåííîãî óïðàâëåíèÿ è ñîâ ïëàòû èëè íåáîëüøèõ àäàïòåðîâ.
ïîëó÷åíèÿ äàííûõ îò ðîáîòà.

ÐàäèîËîöìàí – 2012
Äëÿ ìíîãèõ ñîâðåìåííûõ ïðèëîæåíèé òðå- ÷àëüíî ðàçðàáîòàííàÿ äëÿ ïîääåðæêè ìèêðî-
áóåòñÿ íàëè÷èå âîçìîæíîñòè ñåòåâîãî îáìå- êîíòðîëëåðîâ AVR ñåðèè ATmega êîìïàíèè
íà, ïîñðåäñòâîì êîòîðîãî ìîæíî îñóùå- Atmel (ìèêðîêîíòðîëëåðîâ ñ çàãðóç÷èêîì
ñòâëÿòü ëîêàëüíûé îáìåí äàííûìè ñ äðóãèìè Arduino Uno), ñ íåäàâíèõ ïîð ñðåàäà ðàçðàáîò-
ïëàòôîðìàìè Arduino èëè ÷åðåç Èíòåðíåò. êè ïîääåðæèâàåò âàðèàíòû ïëàò Uno è Mega
Øèíà CAN èëè èíòåðôåéñ I2C ÷àñòî èñïîëüçó- íà áàçå 32-ðàçðÿäíûõ ìèêðîêîíòðîëëåðîâ
þòñÿ äëÿ ïðîâîäíîãî M2M ñîåäèíåíèÿ Microchip ñåðèè PIC32MX.
(Machine-to-Machine – M2M – îáùåå íàçâàíèå
òåõíîëîãèé, ïîçâîëÿþùèõ ìàøèíàì îáìåíè- Ïðîãðàììíûå ñðåäñòâà – áàçîâûå
âàòüñÿ èíôîðìàöèåé äðóã ñ äðóãîì, èëè æå ïîíÿòèÿ
ïåðåäàâàòü åå â îäíîñòîðîííåì ïîðÿäêå), â òî Ïðîãðàììíûé êîìïëåêñ Arduino ñîñòîèò èç
âðåìÿ êàê ðàäèî÷àñòîòíûé 802.15-ñîâìåñ- èíòåãðèðîâàííîé ñðåäû ðàçðàáîòêè è ñîîòâå-
òèìûé èíòåðôåéñ (2.4 ÃÃö) î÷åíü ïîïóëÿðåí òñòâóþùèõ ïðîãðàììíûõ áèáëèîòåê. Ïðèëî-
äëÿ áåñïðîâîäíîé ïåðåäà÷è äàííûõ. Åñëè äëÿ æåíèÿ (ñêåò÷è) ïèøóòñÿ íà ÿçûêå Processing,
Âàøåãî ïðîåêòà òðåáóåòñÿ ñâÿçü ñ «âíåøíèì êîòîðûé, ôàêòè÷åñêè, ÿâëÿåòñÿ íàäñòðîéêîé
ìèðîì», åñòü öåëûé ðÿä àïïàðàòíûõ ìîäóëåé íàä Java. Ïðèëîæåíèÿ ïåðåä êîìïèëÿöèåé
ðàñøèðåíèÿ Arduino, êîòîðûå ìîãóò ïðåäîñòà- ïðåäâàðèòåëüíî îáðàáàòûâàþòñÿ äëÿ îïðåäå-
âèòü Ethernet, Wi-Fi èëè CDPD/GSM ñâÿçü. ëåíèÿ àïïàðàòíî-çàâèñèìûõ àñïåêòîâ öåëå-
âîé ïëàòû (èëè ëþáûõ ïëàò ðàñøèðåíèÿ, êîòî-
Àïïàðàòíûå ñðåäñòâà – áàçîâûå ðûå îíè èñïîëüçóåò).
ïîíÿòèÿ
Õàðàêòåðèñòèêè êàæäîé ïëàòû îïðåäåëåíû
Õîòÿ ïðîöåññîðíûå ïëàòû Arduino îòëè÷à- â ôàéëå ñ èìåíåì boards.txt ñ èñïîëüçîâàíèåì
þòñÿ äðóã îò äðóãà ôîðì-ôàêòîðàìè è âîçìîæ- íåñêîëüêèõ ïåðåìåííûõ ñ ñîîòâåòñòâóþùèì
íîñòÿìè, âñå îíè îòâå÷àþò íàáîðó òðåáîâàíèé ïðåôèêñîì. Ïëàòà îïèñûâàåòñÿ ïîñëåäîâà-
ê àïïàðàòíîé ïëàòôîðìå ñ îòêðûòûì èñõîä- òåëüíîñòüþ ïåðåìåííûõ ñ èìåíåì ñàìîãî
íûì êîäîì, ÷òî äåëàåò èõ ÷àñòè÷íî èëè ïàðàìåòðà, òèïà BOARD.name,
ïîëíîñòüþ ñîâìåñòèìûìè ìåæäó ñîáîé. Ê BOARD.build.f_cpu (íàïðèìåð, "ATmega328"
ïðèìåðó, âî ìíîãèõ ïëàòàõ Arduino èñïîëüçóåò- èëè "ATmega1280") è BOARD.build.core, êîòî-
ñÿ îäèíàêîâîå ðàñïðåäåëåíèå ñèãíàëîâ ïî ðûå ñîäåðæàò íåîáõîäèìûå äàííûå íåîáõî-
êîíòàêòàì ðàçúåìîâ, ïðåäîñòàâëÿþùèõ äîñ- äèìûå äëÿ êîìïèëÿòîðà è ïðèëîæåíèÿ.
òóï ê øèíå ìèêðîêîíòðîëëåðà è ëèíèÿì ââî- Ïðîöåññ êîìïèëÿöèè ñîáèðàåò âñå áàçî-
äà/âûâîäà, ÷òî óïðîùàåò ïîäêëþ÷åíèå ïëàò âûå è ïîëüçîâàòåëüñêèå áèáëèîòåêè, èñïîëü-
ðàñøèðåíèÿ Ethernet, ZigBee èëè èíûõ ñåòå- çóåìûå ïðèëîæåíèåì, âêëþ÷àÿ áèáëèîòåêó
âûõ ïëàò ðàñøèðåíèÿ. ïîääåðæêè ïîñëåäîâàòåëüíîãî èíòåðôåéñà,
 ñîîòâåòñòâèè ñ ýòîé ôèëîñîôèåé, ñðåäà êîòîðàÿ ñëóæèò äëÿ îáìåíà äàííûìè ìåæäó
ðàçðàáîòêè Arduino áûëà ðàçðàáîòàíà äëÿ ïëàòîé Arduino è ÏÊ èëè äðóãèì ìèêðîêîíòðîë-
ïîääåðæêè øèðîêîãî ñïåêòðà öåëåâûõ ïëàò ñ ëåðîì, ýìóëèðóÿ 9-êîíòàêòíûé ïîñëåäîâà-
ðàçëè÷íûìè ìèêðîêîíòðîëëåðàìè, ðàçëè÷íû- òåëüíûé ïîðò, êîòîðûé ÷àñòî âñòðå÷àåòñÿ â
ìè êîìïîíåíòàìè ââîäà/âûâîäà, ðàçëè÷íûìè êîìïüþòåðàõ. Ñîïóòñòâóþùàÿ áèáëèîòåêà
òàêòîâûìè ÷àñòîòàìè è çàãðóç÷èêàìè. Èçíà- ñåòåâûõ ôóíêöèé ïîçâîëèò ïëàòå Arduino íàëà-

ÐàäèîËîöìàí – 2012
äèòü îáìåí äàííûìè ÷åðåç Èíòåðíåò, à òàêæå
îðãàíèçîâàòü ôóíêöèè êëèåíò/ñåðâåð.
Íàáîð áàçîâûõ áèáëèîòåê òàêæå âêëþ÷àåò
â ñåáÿ ïîääåðæêó ñïåöèôè÷åñêèõ ñåòåâûõ
èíòåðôåéñîâ, âêëþ÷àÿ USB, SPI, TWI/I2C è
Ethernet. Äîïîëíèòåëüíûå, îòäåëüíî ïîñòàâ-
ëÿåìûå áèáëèîòåêè, ìîãóò èñïîëüçîâàòüñÿ
äëÿ ðåàëèçàöèè Web-èíòåðôåéñà, à òàêæå äëÿ
ïîääåðæêè äðóãèõ ïðîâîäíûõ è áåñïðîâîäíûõ Ðèñóíîê 2. Àäàïòåð Arduino USB Light adapter
ïðîòîêîëîâ. ìîæåò èñïîëüçîâàòüñÿ äëÿ ðåàëèçàöèè USB
èíòåðôåéñà íà ïëàòàõ Arduino.
Ñåòåâûå òåõíîëîãèè, äîñòóïíûå íà âèòü òàêîé àäàïòåð, êàê íà ìèêðîêîíòðîëëåðå
ïëàòôîðìå Arduino ATmega8U2, òàê è íà ñïåöèàëèçèðîâàííîé
Ðàññìîòðèì ïðèìåðû ñåòåâûõ òåõíîëîãèé, ìèêðîñõåìå FT232RL ïðîèçâîäñòâà êîìïàíèè
èìåþùèõñÿ â ýêîñèñòåìå Arduino. Ýòè ïðèìå- Future Technology.
ðû, êàê ïðàâèëî, êàñàþòñÿ «îôèöèàëüíûõ» Ethernet
ðåøåíèé, ïðåäëàãàåìûõ ñîîáùåñòâîì
Arduino, îäíàêî ñåé÷àñ ñóùåñòâóåò ìíîæåñòâî Ïëàòû Arduino Uno è Mega, à òàêæå ìíîãèå
àíàëîãè÷íûõ êîììåð÷åñêèõ è íåêîììåð÷åñêèõ èõ ïðîèçâîäíûå, ïîçâîëÿþò èñïîëüçîâàòü ñòàí-
âàðèàíòîâ, äîñòóïíûõ îò ðàçëè÷íûõ ïðîèçâî- äàðòíóþ ïëàòó ðàñøèðåíèÿ Ethernet Shield
äèòåëåé è ãðóïï ïîëüçîâàòåëåé. (Ðèñóíîê 3), ïîñòðîåííóþ íà áàçå 10/100
Ethernet êîíòðîëëåðà Wiznet W5100. Ïëàòà
USB
òàêæå èìååò óñòàíîâëåííûé ñëîò äëÿ êàðò
Ìíîãèå ïëàòû Arduino óæå ñîäåðæàò â ñåáå ïàìÿòè microSD, êîòîðàÿ ìîæåò èñïîëüçîâàòü-
èíòåðôåéñ USB, íî íåêîòîðûå, â êîìïàêòíîì
ôîðì-ôàêòîðå èëè áþäæåòíûå âàðèàíòû, åãî
íå èìåþò. Ñàìûé ïðîñòîé ñïîñîá äîáàâèòü
USB ê òàêèì ïëàòàì – èñïîëüçîâàíèå äîïîëíè-
òåëüíîãî àäàïòåðà USB Serial Light adapter
(Ðèñóíîê 2), âûïîëíÿþùåãî ôóíêöèþ ìîñòà
USB-UART (ïðåîáðàçóåò ñèãíàëû Rx è Tx
ïîñëåäîâàòåëüíîãî ïîðòà ìèêðîêîíòðîëëåðà
â ñèãíàëû èíòåðôåéñà USB).
 àäàïòåðå èñïîëüçóåòñÿ ìèêðîêîíòðîë-
ëåð ATmega8U2, çàïðîãðàììèðîâàííûé äëÿ
âûïîëíåíèÿ ôóíêöèé êîíâåðòåðà USB-UART.
Òàê êàê ÏÎ ìèêðîêîíòðîëëåðà èñïîëüçóåò ñòàí-
äàðòíûå äðàéâåðû USB COM, óñòàíîâêà âíåø- Ðèñóíîê 3. Ïëàòà ðàñøèðåíèÿ Arduino Ethernet
íèõ äðàéâåðîâ íå ïîòðåáóåòñÿ. Êðîìå òîãî, Shield, ïîääåðæèâàþùàÿ 10/100 Ìáèò/ñ Ethernet,
ïîëüçîâàòåëè ìîãóò ñàìîñòîÿòåëüíî èçãîòî- ìîæåò ðàáîòàòü ñîâìåñòíî ñ ìîäóëåì PoE.

ÐàäèîËîöìàí – 2012
ñÿ äëÿ õðàíåíèÿ ôàéëîâ, äîñòóï ê êîòîðûì ìîäåìíûõ AT êîìàíä äëÿ óïðàâëåíèÿ ïåðåäà-
âîçìîæåí ÷åðåç ñåòü. Arduino «îáùàåòñÿ» ñ ÷åé äàííûõ.
êîíòðîëëåðîì Ethernet è êàðòîé ïàìÿòè ïî Îäíîé èç ñàìûõ ïîïóëÿðíûõ ðåàëèçàöèé
èíòåðôåéñó SPI (ïîñðåäñòâîì ðàçúåìà ICSP). áåñïðîâîäíîé ïåðåäà÷è äàííûõ ÿâëÿåòñÿ ïëà-
Ïèòàíèå ïëàòà ìîæåò ïîëó÷àòü ïî ñåòåâîìó òà ðàñøèðåíèÿ XBee Shield, ðàçðàáîòàííàÿ
Ethernet êàáåëþ (òåõíîëîãèÿ Power-over- êîìïàíèåé Libelium â òåñíîì ñîòðóäíè÷åñòâå ñ
Ethernet), íî äëÿ ýòîãî òðåáóåòñÿ ñïåöèàëüíûé Arduino (Ðèñóíîê 4à è 4b). Ïëàòà âûïîëíåíà íà
ìîäóëü DC/DC ïðåîáðàçîâàòåëÿ. Îñíîâíàÿ áàçå ðàäèî ìîäóëåé XBee èëè XBee-Pro, ïðî-
Ethernet áèáëèîòåêà ñîäåðæèò ôàéëû, êîòî- èçâîäñòâà êîìïàíèè Digi. Ìîäóëè ïîääåðæèâà-
ðûå ïîçâîëÿþò ïëàòàì Arduino Uno è Mega þò ðàçëè÷íûå òîïîëîãèè ñåòè è ìîãóò èñïîëü-
èíèöèàëèçèðîâàòü êîíòðîëëåð Ethernet è ðàáî- çîâàòüñÿ â êà÷åñòâå áåñïðîâîäíîãî ìîñòà
òàòü ñ íèì, îðãàíèçîâàòü Êëèåíò èëè Ñåðâåð USB-Serial.
äëÿ ÷åòûðåõ îäíîâðåìåííûõ âõîäÿùèõ èëè CDPD/GSM ïåðåäà÷à äàííûõ
èñõîäÿùèõ ñîåäèíåíèé.
Äîáàâëåíèå ìîáèëüíîãî ñîòîâîãî ïîäêëþ-
802.15/XBee
÷åíèÿ â ïðîåêò Arduino ìîæåò áûòü âûïîëíåíî
Äëÿ Arduino äîñòóïíî ìíîæåñòâî ðàçëè÷- ñ ïîìîùüþ GSM ïëàòû ðàñøèðåíèÿ (CDPD –
íûõ îïöèé áåñïðîâîäíîé ïåðåäà÷è äàííûõ ïî öèôðîâàÿ ñîòîâàÿ ïàêåòíàÿ ïåðåäà÷à äàí-
ñòàíäàðòó IEEE 802.15.3 ÷àñòîòíîãî äèàïàçî- íûõ). Ïëàòà ðàñøèðåíèÿ Arduino GPRS/GSM
íà 2.4 ÃÃö. Â öåëîì, ñåòåâîé ïðîòîêîë ZigBee Shield âûïîëíåíà íà áàçå ðàäèî ìîäóëÿ
íå î÷åíü ïîïóëÿðåí èç-çà åãî òðåáîâàíèé ê Quectel M10, êîòîðûé óïðàâëÿåòñÿ AT êîìàí-
áîëüøîìó îáúåìó ïàìÿòè è âû÷èñëèòåëüíîé äàìè ïî ïîñëåäîâàòåëüíîìó èíòåðôåéñó. Äëÿ
ìîùíîñòè. Âìåñòî íåãî ïîëó÷èë äîñòàòî÷íî èäåíòèôèêàöèè ïîëüçîâàòåëÿ è ñèñòåìû â
øèðîêîå ðàñïðîñòðàíåíèå ZigBee-ïîäîáíûé ñîòîâîé ñåòè ïîòðåáóåòñÿ SIM êàðòà. Ìíîãî
ïðîòîêîë, íàçâàííûé XBee. Îí òàêæå ïîääåð- ïðîäóêòîâ äîñòóïíî è îò äðóãèõ ïðîèçâîäèòå-
æèâàåò çâåçäîîáðàçíóþ è ïîëíîñâÿçíóþ òîïî- ëåé, ê ïðèìåðó, CuteDigi, HW Kitchen è
ëîãèþ ñåòè è èñïîëüçóåò ñòàíäàðòíûé íàáîð Sparkfun, êîòîðûå èñïîëüçóþò â ñâîèõ ðåøåíè-
ÿõ 4-õ äèàïàçîííûé ðàäèî
ìîäóëü Spreadtrum
SM5100B.
Äðóãèå ïðèëîæåíèÿ
Ïëàòôîðìà Arduino
òàêæå âêëþ÷àåò â ñåáÿ ïëà-
òû ðàñøèðåíèÿ è ñïåöèà-
ëèçèðîâàííûå ïðîöåññîð-
íûå ïëàòû, ïîääåðæèâàþ-
Ðèñóíîê 4. Ïëàòû ðàñøèðåíèÿ Libelium XBee Shield ïîçâîëÿþò íåïîñðå- ùèå è äðóãèå ïðîâîäíûå è
äñòâåííî ïîäêëþ÷èòü ðàäèî ìîäóëè MaxStream ê ïîïóëÿðíûì ïëàòàì áåñïðîâîäíûå ñåòåâûå
Arduino. òåõíîëîãèè, âêëþ÷àÿ Wi-Fi,

ÐàäèîËîöìàí – 2012
CAN è ModBus. Êðîìå òîãî, ñóùåñòâóþò ðàñ- íàëüíûé èíòåðôåéñ 1-Wire. Îá ýòèõ âîçìîæ-
øèðåíèÿ äëÿ ïîääåðæêè ëîêàëüíûõ èíòåð- íîñòÿõ ìû ïîñòàðàåìñÿ ðàññêàçàòü â ïîñëåäó-
ôåéñîâ, òàêèõ êàê SPI è íèçêîñêîðîñòíîé ñèã- þùèõ ñòàòüÿõ.

Ññûëêè
1. «Ðàäèîëîöìàí», 2011, 11, ñòð. 13, «Êàê ñîçäàâàëè è ïðîäâèãàëè Arduino».
2. «Ðàäèîëîöìàí», 2011, 12, ñòð. 44, «Îòêðûòàÿ ïëàòôîðìà Arduino âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë».
3. «Ðàäèîëîöìàí», 2012, 01, ñòð. 34, «Îòêðûòàÿ ïëàòôîðìà Arduino âûñâîáîæäàåò òâîð÷åñêèé ïîòåíöèàë.
Arduino Shields – ðàñøèðåíèå âîçìîæíîñòåé àïïàðàòíîé ïëàòôîðìû».
4. «Ðàäèîëîöìàí», 2012, 02, ñòð. 41, «Àíàëîãîâûé ôóíêöèîíàë Arduino: êàê èñïîëüçîâàòü åãî â ñâîèõ ïðîåê-
òàõ».

ÐàäèîËîöìàí – 2012
Arduino Due
– îôèöèàëüíàÿ ïëàòà Arduino
íà ìèêðîêîíòðîëëåðå ARM
wired.com

Îòêðûòàÿ ïëàòôîðìà Arduino, áåçóñëîâíî, ãîêðàòíî âîçðîñøàÿ ïðîèçâîäèòåëüíîñòü è


ïîìîãàåò â ðåøåíèè ñàìûõ ðàçíûõ çàäà÷ ìíî- íàìíîãî áîëüøèé îáúåì ïàìÿòè.
æåñòâó ðàçðàáîò÷èêîâ è ëþáèòåëåé, òðåáóÿ Äîëãîæäàííàÿ Arduino Due òîëüêî âûõîäèò
îò íèõ ëèøü ìèíèìàëüíûõ ïðåäñòàâëåíèé îá íà ðûíîê. Â íåé 8-áèòíûé 16 ÌÃö ìèêðîêîí-
ýëåêòðîíèêå è ïðîãðàììèðîâàíèè. Ïëàòôîð- òðîëëåð AVR, èñïîëüçîâàâøèéñÿ â ïîïóëÿð-
ìà ñîäåðæèò âñå íåîáõîäèìîå – èíòåãðèðî- íîé ïëàòå Arduino Uno, çàìåíåí 32-
âàííóþ ñðåäó ðàçðàáîòêè, êîìïèëÿòîð, ïðî- ðàçðÿäíûì ïðîöåññîðîì ñ ðàáî÷åé ÷àñòîòîé
ãðàììàòîð è îòëàäî÷íóþ ïëàòó. Îãðîìíîå 84 ÌÃö, Êðîìå òîãî, óâåëè÷åíî êîëè÷åñòâî
êîëè÷åñòâî áèáëèîòåê è ïëàò ðàñøèðåíèÿ âõîäîâ è çíà÷èòåëüíî ðàñøèðåí ïåðå÷åíü
ïðî÷íî óêðåïèëî ëèäåðñòâî Arduino â ñîðåâ- âîçìîæíîñòåé (Ðèñóíîê 1).
íîâàíèè ñ äðóãèìè ïëàòôîðìàìè. Òåì íå Äëÿ ëþáèòåëåé, óâëå÷åííûõ ðàçðàáîòêîé
ìåíåå, èìååòñÿ íåìàëî ïðåòåíçèé â îòíîøå- ðîáîòîòåõíèêè è ýëåêòðîíèêè, ýòî âîëíóþ-
íèè ïðîèçâîäèòåëüíîñòè, ïàìÿòè è âîçìîæ- ùèé ìîìåíò. Íî îñòàëüíûì èç íàñ, ÷òî æå
íîñòåé Arduino, îñíîâàííîé íà ìèêðîêîí- ïðåäëîæèò íîâûé ìèêðîêîíòðîëëåð ïî ñðàâ-
òðîëëåðå AVR. Ñ ïîÿâëåíèåì Arduino Due íåíèþ ñ ïðåäøåñòâåííèêîì?
òàêîå ïîëîæåíèå âåùåé äîëæíî èçìåíèòüñÿ,
«Èìåÿ 32-áèòíûé ARM ïðîöåññîð, ðàáîòà-
ïî êðàéíåé ìåðå, â íåêîòîðûõ îáëàñòÿõ. Ïðàâ-
þùèé íà ÷àñòîòå 84 ÌÃö, ìîæíî âûïîëíÿòü
äà, íîâàÿ ïëàòà ñäåëàåò áåñïîëåçíûìè
íàìíîãî áîëüøå çàäà÷, è ãîðàçäî áûñòðåå», –
ñîçäàííóþ ñðåäó ðàçðàáîòêè è áîëüøèíñòâî
îáúÿñíÿåò ñîó÷ðåäèòåëü Arduino Ìàññèìî
áèáëèîòåê, íî êîìïåíñàöèåé çà ýòî áóäåò ìíî-
Áàíöè (Massimo Banzi) â ïèñüìå ïîðòàëó

Ðèñóíîê 1. Ñ ïîìîùüþ ïëàòû Arduino Due ñ ìèêðîêîíòðîëëåðîì Atmel


AT91SAM3X8E ìîæíî ñêîíñòðóèðîâàòü 3-D ïðèíòåð, èìåþùèé áîëåå âûñî-
êîå ðàçðåøåíèå.

ÐàäèîËîöìàí – ôåâðàëü 2013


Arduino DUO

Ðèñóíîê 2. Äëÿ óïðàâëåíèÿ êâàäðîêîïòåðîì èñïîëüçóåòñÿ ïëàòà Arduino Due.

Wired.com. – «Íàïðèìåð, ïðåäñòàâüòå ñåáå íàó÷íûå ïðèáîðû ñ îòêðûòîé äîêóìåíòàöèåé,


êâàäðîêîïòåðû (Ðèñóíîê 2), êîòîðûå ñòðîÿò èñïîëüçóÿ ïëàòó Arduino. Òåïåðü æå ñ Arduino
Êðèñ Àíäåðñîí (Chris Anderson) è åãî ñîîá- Due îíè ïîëó÷àò 12-ðàçðÿäíûå àíàëîãîâûå
ùåñòâî. Òàì íåîáõîäèìî ïîëó÷àòü äàííûå îò âõîäû è 12-ðàçðÿäíûå àíàëîãîâûå âûõîäû»,
ìíîæåñòâà äàò÷èêîâ íàñòîëüêî áûñòðî, – ãîâîðèò Áàíöè. Òåîðåòè÷åñêàÿ ñêîðîñòü
íàñêîëüêî âîçìîæíî, à çàòåì âñå ýòè äàííûå ïðåîáðàçîâàíèÿ óâåëè÷èëàñü êîëîññàëüíî –
îáðàáàòûâàòü äëÿ ôîðìèðîâàíèÿ ïðàâèëü- äî 1 ìèëëèîíà âûáîðîê â ñåêóíäó. Äëÿ ñðàâ-
íûõ êîìàíä óïðàâëåíèÿ. Ñ áûñòðûì ïðîöåñ- íåíèÿ, ïëàòû Arduino Uno, Leonardo è Mega
ñîðîì è òàêèì ïîëåçíûìè äîïîëíèòåëüíûìè 2560 èìåþò òåîðåòè÷åñêóþ ñêîðîñòü ïðåîá-
ôóíêöèÿìè, êàê, ñêàæåì, ïðÿìîé äîñòóï ê ðàçîâàíèÿ 15 òûñÿ÷ âûáîðîê â ñåêóíäó.
ïàìÿòè, ìîæíî ïîâûñèòü ñòàáèëüíîñòü, ðåàê- Due òàêæå ÿâëÿåòñÿ ïåðâîé â ñåìåéñòâå
òèâíîñòü è óïðàâëÿåìîñòü ýòèõ ëåòàòåëüíûõ Arduino ïëàòîé ñî âñòðîåííûìè öèôðî-
àïïàðàòîâ, ê òîìó æå èñïîëüçóÿ äëÿ ýòîãî àíàëîãîâûìè ïðåîáðàçîâàòåëÿìè, êîòîðûõ ó
ìåíüøå ÷èïîâ». Due äâà.  ýòîé ñâÿçè àíîíñèðîâàíû áèáëèî-
«Ñåðäöåì» Arduino Due ÿâëÿåòñÿ ìèêðî- òåêè àóäèî ôóíêöèé, ïîääåðæèâàþùèå çàëî-
êîíòðîëëåð Atmel SAM3X8E ñ ÿäðîì Cortex- æåííóþ â ïëàòó âîçìîæíîñòü âîñïðîèçâåäå-
M3. Ïî ôóíêöèîíàëüíûì âîçìîæíîñòÿì íèÿ wav-ôàéëîâ. Îäíîâðåìåííî ïîÿâèëèñü
ïëàòà àíàëîãè÷íà Arduino Leonardo, âûïó- ñëóõè îá èñïîëüçîâàíèè â Arduino Due êîäà
ùåííîé íà íåñêîëüêî ìåñÿöåâ ðàíüøå. OGG ïëååðà, ðàçðàáîòàííîãî Google.
Arduino Due èìååò äâà ïîðòà MicroUSB: îäèí Êîìàíäà Arduino ñîòðóäíè÷àëà ñ ðàçðà-
ïðåäíàçíà÷åí äëÿ ïðîãðàììèðîâàíèÿ è êîì- áîò÷èêàìè Google Android Developer Kit íà
ìóíèêàöèé, à âòîðîé ïîçâîëÿåò èñïîëüçîâàòü ïëàòôîðìå ADK 2012 (Android Accessory
Due â êà÷åñòâå êëèåíòà èëè Host-óñòðîéñòâà, Development Kit), êîòîðûå äëÿ ñâîåé ïëàòû
ïðåäîñòàâëÿÿ ïëàòå âîçìîæíîñòü ïîääåðæè- èñïîëüçîâàëè âåðñèþ Due. Íî, íåñìîòðÿ íà
âàòü ïîäêëþ÷åíèå USB êëàâèàòóðû èëè îáùóþ ïîïóëÿðíîñòü Android, Áàíöè âèäèò
ìûøè, èëè æå ñàìîé âûñòóïàòü â ðîëè ýòèõ ìíîãî âîçìîæíîñòåé ðîñòà â ñîîáùåñòâå ðàç-
óñòðîéñòâ. «Â ïîñëåäíèå ãîäû èíòåðôåéñ ðàáîò÷èêîâ ADK.
USB Host âîñòðåáîâàí ïîëüçîâàòåëÿìè, è ýòî «Ê ñîæàëåíèþ, ìû âèäåëè ñîâñåì íåìíîãî
íîâîââåäåíèå ïîçâîëèò ðàñøèðèòü ñôåðó ïðèëîæåíèé, ðàçðàáîòàííûõ ñîîáùåñòâîì»,
ïðèìåíåíèÿ ïëàòôîðìû», – óòâåðæäàåò Ìàñ- – ãîâîðèò îí. – «ß äóìàþ, ÷òî Google äîëæíà
ñèìî Áàíöè. óäåëÿòü áîëüøå âíèìàíèÿ ñîòðóäíè÷åñòâó ñ
Áëàãîäàðÿ âîçìîæíîñòÿì íîâîãî ìèêðî- ñîîáùåñòâîì ADK, ÷òîáû ñîçäàâàòü õîðîøèå
êîíòðîëëåðà Atmel ïëàòôîðìà Arduino Due ðóêîâîäñòâà, ó÷åáíèêè, äîêóìåíòàöèþ, è òåì
ñäåëàëà ãèãàíòñêèé ñêà÷îê âïåðåä â ÷àñòè ñàìûì ïðèâëå÷ü ïîëüçîâàòåëåé. Åñëè âäó-
õàðàêòåðèñòèê àíàëîãî-öèôðîâîãî ïðåîáðà- ìàòüñÿ, Apple èìååò àíàëîãè÷íóþ òåõíîëî-
çîâàòåëÿ, è ïîçâîëèëà ðàçðàáîò÷èêàì ðàñøè- ãèþ, êîòîðàÿ ÿâëÿåòñÿ åå ñîáñòâåííîñòüþ,
ðèòü ãðàíèöû ñâîèõ òâîðåíèé. «Äî ñèõ ïîð çàùèùåíà ñîãëàøåíèåì î íåðàçãëàøåíèè è
ìíîãèå ëþäè ñîçäàâàëè èíòåðåñíåéøèå òðåáóåò èñïîëüçîâàíèÿ ñïåöèàëèçèðîâàííî-

ÐàäèîËîöìàí – ôåâðàëü 2013


ãî ÷èïà, îäíàêî ýòî íå ïðåïÿòñòâóåò ðàçðà- ×òî êàñàåòñÿ çàäåðæêè ñ âûïóñêîì Arduino
áîòêå ìíîæåñòâà àïïàðàòíûõ àêñåññóàðîâ Due, Áàíöè îáúÿñíÿåò ýòî áîëåçíÿìè ðîñòà.
äëÿ iPhone/iPad. Íàïðîòèâ, Android ðåàëèçî- «Â ïîñëåäíèå äâà ãîäà ìû âûíóæäåíû áûëè
âàíà êàê õîðîøàÿ ïëàòôîðìà ñ îòêðûòûì ïåðåéòè îò ïðàêòèêè ïîäêëþ÷åíèÿ ê ïðîåêòàì
èñõîäíûì êîäîì, íî òàêîãî ðàçâèòèÿ îíà äî ñâîáîäíûõ ãðóïï ëþäåé ê ôîðìèðîâàíèþ
ñèõ ïîð íå èìååò». êîìïàíèé, ñïîñîáíûõ âûïîëíÿòü âåñü ñïåêòð
Ïðè ýòîì ïëàòôîðìà Due ïðîäîëæàåò ïîä- äåëîâûõ ôóíêöèé», – ãîâîðèò îí. – «Ñåé÷àñ
äåðæèâàòü ïðîòîêîë ADK 2.0, ÷òî äåëàåò åå ïî âñåìó ìèðó âû ìîæåòå âñòðåòèòü äâåðè ñ
ñîâìåñòèìîé ñ áèáëèîòåêàìè Google è íåêî- òàáëè÷êîé «Arduino» (èëè «Officine Arduino»),
òîðûìè êîäàìè, íàïèñàííûìè äëÿ ADK 2012. çà êîòîðûìè âûïîëíÿåò ñâîþ ðàáîòó ïðîôåñ-
Ïëàòà Due âûïîëíåíà â ñòàíäàðòíîì äëÿ ñèîíàëüíàÿ êîìàíäà. Ðîñò èíîãäà çàìåäëÿåò
Arduino ôîðì-ôàêòîðå, ïîýòîìó ñ íåé áóäóò ðàáîòó».
ðàáîòàòü âñå ïëàòû ðàñøèðåíèÿ è ñõåìû, Ïëàòà Arduino Due, îôèöèàëüíî ïðåäñòàâ-
íàïðèìåð, äàò÷èêè äâèæåíèÿ è ìàòðèöû ñâå- ëåííàÿ â îêòÿáðå 2012 ãîäà, ïðîäàåòñÿ ïî
òîäèîäîâ, ÷òî ñîîòâåòñòâóåò Ðåâèçèè 3 îôè- öåíå $49. ÐË
öèàëüíîé ïëàò. Îäíàêî, Due èìååò íàïðÿæå-
íèå ïèòàíèÿ 3.3 Â, â òî âðåìÿ êàê ïëàòû íà Òåõíè÷åñêèå õàðàêòåðèñòèêè
ìèêðîêîíòðîëëåðàõ AVR ðàáîòàþò ïðè Arduino Due
íàïðÿæåíèè ïèòàíèÿ 5 Â. Ýòî îçíà÷àåò, ÷òî
íåêîòîðûå íåîôèöèàëüíûå ïëàòû ðàñøèðå-
Ìèêðîêîíòðîëëåð AT91SAM3X8E
íèÿ, íå îòâå÷àþùèå ñïåöèôèêàöèè Ðåâèçèè Flash-ïàìÿòü 512 Êáàéò
3, ìîãóò áûòü íåñîâìåñòèìû ñ Due. Ðàçðàáîò-
ÎÇÓ 96 Êáàéò
÷èêè, êîòîðûå çàõîòÿò èñïîëüçîâàòü Arduino (64 + 32 Êáàéò)
Due â ñóùåñòâóþùèõ ïðèëîæåíèÿõ, äîëæíû Òàêòîâàÿ ÷àñòîòà 84 ÌÃö
ó÷èòûâàòü ýòî îáñòîÿòåëüñòâî, ÷òîáû èçáå- Íàïðÿæåíèå ïèòàíèÿ 3.3 Â
æàòü ïîâðåæäåíèÿ ñâîåé ïëàòû. Âõîäíîå íàïðÿæåíèå
7…12 Â
(ðåêîìåíäîâàííîå)
Êîìàíäà Arduino òàêæå çàâåðèëà, ÷òî èçìå-
Âõîäíîå íàïðÿæåíèå (ìèí./ìàêñ.) 6…20 Â
íåíèÿ â èíòåãðèðîâàííîé ñðåäå ðàçðàáîòêè
Öèôðîâûå ëèíèè ââîäà/âûâîäà 54 (èç íèõ
Arduino IDE ñäåëàþò åå êðîññïëàòôîðìåí- 6 âûõîäû ØÈÌ)
íîé. Êîäû (ñêåò÷è), íàïèñàííûå äëÿ ïëàò- Àíàëîãîâûå âõîäû 12
ôîðìû Uno, èëè äðóãîé ïëàòôîðìû íà ìèê- Àíàëîãîâûå âûõîäû (ÖÀÏ) 2
ðîêîíòðîëëåðå AVR, ñìîãóò âûïîëíÿòüñÿ è íà Îáùèé ïîñòîÿííûé âûõîäíîé òîê 130 ìÀ
Due. Êîíå÷íî æå, ïîä êàïîòîì âû óâèäèòå íà âñåõ ëèíèÿõ ââîäà/âûâîäà
ðàçëè÷èÿ â òîì, êàê êîìïèëèðóþòñÿ Âàøè Ïîñòîÿííûé òîê äëÿ âûâîäà 3.3  800 ìÀ
ïðîãðàììû, íî ñíàðóæè âñå áóäåò ãëàäêî è Ïîñòîÿííûé òîê äëÿ âûâîäà 5  800 ìÀ
(òåîðåòè÷åñêè äî 1 À)
áåñïðîáëåìíî äëÿ ïîëüçîâàòåëÿ.
Îòëàäî÷íûé èíòåðôåéñ JTAG/SWD
Íåñìîòðÿ íà óâåëè÷åíèå âû÷èñëèòåëüíîé
ìîùíîñòè è âîçìîæíîñòåé, íà÷èíàþùèå
ïîëüçîâàòåëè, âåðîÿòíî, áóäóò îòäàâàòü ïðåä-
ïî÷òåíèå êëàññè÷åñêîé ïëàòôîðìå Uno. «Áà-
çîâûå ïëàòû Arduino, òàêèå êàê Uno è Ññûëêè ïî òåìå
Leonardo, îñòàþòñÿ ñàìûìè ëó÷øèìè äëÿ 1. «Êàê ñîçäàâàëè è ïðîäâèãàëè Arduino». Ðàäè-
èçó÷åíèÿ», – ãîâîðèò Áàíöè. – «Îíè èñêëþ÷è- îËîöìàí, 2011, íîÿáðü, ñòð. 13.
òåëüíî ïðîñòû, ñòàáèëüíû â ðàáîòå, è äëÿ 2. «Îòêðûòàÿ ïëàòôîðìà Arduino âûñâîáîæäàåò
íèõ óæå åñòü îãðîìíîå êîëè÷åñòâî ïðèìåðîâ òâîð÷åñêèé ïîòåíöèàë». ÐàäèîËîöìàí, 2011,
è áèáëèîòåê». äåêàáðü, ñòð. 44.

ÐàäèîËîöìàí – ôåâðàëü 2013


ÐàäèîËîöìàí.Æóðíàë
www.rlocman.ru/magazine
Îôèöèàëüíûå âåðñèè òîëüêî çäåñü: áåç ðåãèñòðàöèè è
íàçîéëèâîé ðåêëàìû, ñ âûñîêîé ñêîðîñòüþ ñêà÷èâàíèÿ.

ÐàäèîËîöìàí.Ôîðóì
www.rlocman.ru/forum
Îáñóæäàéòå ñòàòüè è íîâîñòè, îáùàéòåñü!
Ïðèãëàøàåì ïðîôåññèîíàëîâ.

ÐàäèîËîöìàí.Öåíû
www.rlocman.ru/price
Ïîäáåðèòå îïòèìàëüíîãî ïîñòàâùèêà
ýëåêòðîííûõ êîìïîíåíòîâ, èçìåðèòåëüíîé è ýëåêòðîííîé òåõíèêè.
Öåíû, óñëîâèÿ ïîñòàâêè è äîñòàâêè.

ÐàäèîËîöìàí.Ñîö.Ñåòè
Îáíîâëåíèÿ â ïðèâû÷íîì ôîðìàòå.

vk.com/rlocman
facebook.com/rlocman
odnoklassniki.ru/rlocman
twitter.com/rlocman
google.com/+RlocmanRuPlus

È åùå ìíîãîå äðóãîå íà ïîðòàëå:

ÐàäèîËîöìàí. ...
www.rlocman.ru
Arduino.ru http://arduino.ru/

Материалы по программированию Arduino переведены с официального сайта проекта


Ардуино — http://arduino.cc
и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.

Arduino?

Arduino — это электронный конструктор и удобная


платформа быстрой разработки электронных устройств для
новичков и профессионалов. Платформа пользуется огром-
ной популярностью во всем мире благодаря удобству и
простоте языка программирования, а также открытой
архитектуре и программному коду. Устройство програм-
мируется через USB без использования программаторов.

Arduino позволяет компьютеру выйти за рамки


виртуального мира в физический и взаимодействовать с
ним. Устройства на базе Arduino могут получать инфор-
мацию об окружающей среде посредством различных
датчиков, а также могут управлять различными испол-
нительными устройствами.

Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino
(основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимо-
действовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользова-
телем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи
схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.

Почему Arduino?

Существует множество микроконтроллеров и платформ для осуществления «physical computing». Parallax Basic Stamp, Netmedia's
BX-24, Phidgets, MIT's Handyboard и многие другие предлагают схожую функциональность. Все эти устройства объединяют разроз-
ненную информацию о программировании и заключают ее в простую в использовании сборку. Arduino, в свою очередь, тоже
упрощает процесс работы с микроконтроллерами, однако имеет ряд преимуществ перед другими устройствами для преподавателей,
студентов и любителей:

Низкая стоимость – платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля
Arduino может быть собрана в ручную, а некоторые даже готовые модули стоят меньше 50 долларов.

Кросс-платформенность – программное обеспечение Arduino работает под ОС Windows, Macintosh OSX и Linux. Большинство
микроконтроллеров ограничивается ОС Windows.

Простая и понятная среда программирования – среда Arduino подходит как для начинающих пользователей, так и для опытных.
Arduino основана на среде программирования Processing, что очень удобно для преподавателей , так как студенты работающие с
данной средой будут знакомы и с Arduino.

Программное обеспечение с возможностью расширения и открытым исходным текстом – ПО Arduino выпускается как инструмент,
который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие
понять технические нюансы, имеют возможность перейти на язык AVR C на котором основан C++. Соответственно, имеется возмож-
ность добавить код из среды AVR-C в программу Arduino.

Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA8 и


ATMEGA168 являются основой Arduino. Схемы модулей выпускаются с лицензией Creative Commons, а значит, опытные инженеры
имеют возможность создания собственных версий модулей, расширяя и дополняя их. Даже обычные пользователи могут разработать
опытные образцы с целью экономии средств и понимания работы.
Справочник языка Ардуино

1. Операторы
setup() Целочисленные константы
loop() Константы с плавающей запятой

Управляющие операторы Типы данных


if boolean
if...else char
for byte
switch case int
while unsigned int
do... while word
break long
continue unsigned long
return float
goto double
string - массив символов
Синтаксис String - объект класса
; (semicolon) массив (array)
{} (curly braces) void
// (single line comment)
/* */ (multi-line comment) Преобразование типов данных
char()
Арифметические операторы byte()
= (assignment) int()
+ (addition) long()
- (subtraction) float()
* (multiplication)
/ (division) Область видимости переменных и квалификаторы
% (modulo)
Область видимости
Операторы сравнения static
== (equal to) volatile
!= (not equal to) const
< (less than)
> (greater than) 3. Функции
<= (less than or equal to)
>= (greater than or equal to)
Цифровой ввод/вывод
pinMode()
Логические операторы digitalWrite()
&& (И) digitalRead()
|| (ИЛИ)
! (Отрицание)
Аналоговый ввод/вывод
analogRead()
Унарные операторы analogReference()
++ (increment) analogWrite()
-- (decrement)
+= (compound addition)
Дополнительные фунции ввода/вывода
-= (compound subtraction)
tone()
*= (compound multiplication)
noTone()
/= (compound division)
shiftOut()
pulseIn()
2. Данные
Работа со временем
Константы millis()
HIGH | LOW micros()
INPUT | OUTPUT delay()
true | false
delayMicroseconds() 4. Библиотеки Arduino

Математические функции Servo — библиотека управления сервоприводами.


min() EERPOM — чтение и запись энергонезависимой памяти
max() микроконтроллера.
abs()
SPI — библиотека, реализующая передачу данных через
constrain()
map() интерфейс SPI.
pow() Stepper — библиотека управления шаговыми двигателями.
sq()
sqrt() 5. Примеры

Тригонометрические функции Изменяем яркость светодиода — плавное изменение яркости


sin() светодиода функцией analogWrite().
cos()
tan() Мигаем светодиодом — пример подключения светодиода к
Arduino и работы с ним
Генераторы случайных значений
randomSeed() Тактовая кнопка — считывание состояния кнопки
random()
Мигаем светодиодом без delay() - еще один, более
Внешние прерывания практичный способ мигать светодиодом
attachInterrupt()
detachInterrupt()
Управление сервой фоторезистором - угол зависит от
освещения
Функции передачи данных
Serial
СТАТЬИ и ПРОЕКТЫ

Начало работы с Arduino в Windows Проекты на Arduino


Данный документ разъясняет, как подключить плату Arduino
к компьютеру и загрузить ваш первый скетч. OLED дисплей + ChipKit MAX32
Необходимое железо — Arduino и USB-кабель
Программа — среда разработки для Arduino О производстве Arduino
Подсоедините плату
Установите драйвера Arduino в руках художников. Простая и очень красивая
инсталляция на базе Arduino
Запустите среду разработки Arduino
Откройте готовый пример
Оправка смс через Siemens S45 c помощью Arduino, а также
Выберите вашу плату Zyxel Keenetic 4G, Arduino и датчика температуры ds18b20
Выберите ваш последовательный порт
Загрузите скетч в Arduino Робот, балансирующий на шаре
Программирование Ардуино
Базовые и полезные знания, необходимые для успешного Двухколесный балансирующий робот на Arduino
программирования под платформу Arduino:
Начало работы с Arduino в Windows Анализатор спектра звука на Arduino
Работа с Arduino Mini
Цифровые выводы Робот, управляемый по Wi-Fi, на базе роутера и Arduino

Аналоговые входы
Оригами лампа с емкостным сенсором
Широтно-импульсная модуляция
Память в Arduino
Роботизированная рука под управлением Arduino
Использование аппаратных прерываний в Arduino
Перепрошивка контроллера Atmega8U2 для Arduino Uno и
Arduino и RGB светодиодная матрица 8х8
Mega2560
Переменные
Пишем в воздухе светодиодами
Функции
Создание библиотек для Arduino
Остановить мгновение. Фототриггер на Arduino
Использование сдвигового регистра 74HC595 для увеличения
количества выходов
Управление фотовспышкой с помощью Arduino контроллера
Прямое управления выходами через регистры микроконтрол-
лера Atmega
RoboCraft.ru http://robocraft.ru/

Роботы? Это просто! RoboCraft - это сообщество/коллективный блог любителей робототехники,


электроники и программирования (а также, команда для изучения и разработки робототехнических
проектов).
Здесь Вы можете:
почитать новости робототехники;
ознакомиться с различными технологиями и примерами их использования;
опубликовать свои заметки, идеи и наработки;
задавать вопросы и искать ответы на форуме;
приобрести необходимые модули в нашем магазине.
Цели проекта:
делиться своими идеями и наработками друг с другом; найти единомышленников; сделать будущее
ближе!

Arduino http://robocraft.ru/page/summary/ http://robocraft.ru/tag/Arduino/

СТАТЬИ и ПРОЕКТЫ

Введение OneWireSlave - библиотека эмуляции устройства 1-Wire


Arduino - введение TimerOne - библиотека для работы с таймером МК
Ардуино - что это и зачем? Wire - библиотека для работы с I2C
Что за язык программирования используется для Arduino? GLCD - библиотека для работы с графическими LCD
ХоумМейд Arduino - как сделать Arduino своими руками
Arduino как фреймворк Дополнительно
КМБ для начинающих ардуинщиков Arduino/CraftDuino и PROTEUS
Состав стартера (точка входа для начинающих ардуинщиков) Arduino/CraftDuino и WinAVR - программируем на чистом С
Как адаптировать библиотеки для Arduino 1.0
Разновидности плат Arduino, а также про клоны, оригиналы и Статьи по практическому программированию
совместимость Arduino/CraftDuino
Подготовка к работе с Arduino/CraftDuino
Статьи по программированию Arduino/CraftDuino Ошибки Arduino
1. Программирование Arduino - введение 0. Начало
2. Структура программы, константы 1. Цифровой ввод - кнопка
3. Цифровой ввод/вывод 2. Аналоговый вывод - Fading
4. Аналоговый ввод/вывод 3. Аналоговый ввод – потенциометр
5. Дополнительные функции ввода/вывода 4. Аналоговый ввод – осциллограф
6. Работа со временем 5. Генерация звука – пьезоизлучатель.
7. Математические функции 6. Фоторезистор
8. Псевдослучайные числа 7. Сенсор на светодиоде
9. Последовательная передача данных 8. Общение с Arduino - программирование работы с COM-портом
10. Прерывания 9. Аналоговый датчик температуры – LM335
11. EEPROM 10. Подключаем к Arduino мышку PS/2
12. Cоздание своей библиотеки Протокол 1-Wire и iButton
Blink без delay Arduino и эмулятор iButton
Arduino и температурный 1-Wire датчик DS18S20
Библиотеки Arduino и драйвер двигателей L293D (Простой мотор-шилд)
Ethernet library – библиотека для работы с Ethernet Сборка мощного моторшилда (на базе L298)
Servo library – библиотека для работы с сервомашинками Arduino и сервомашинка
Firmata library – библиотека, реализующая протокол Firmata Как с помощью Arduino/CraftDuino можно управлять
устройствами на 220В
Подключаем LCD-дисплей на базе HD44780 к Arduino Программирование Arduino - Физика процесса.
(Графический экран WG12864B (и ему подобные на
Про фьюзы
ks0107/ks0108))
Хаки Arduino - Экономим RAM
ИК-датчик препятствий для Arduino на базе фототранзистора
ATmega - использование памяти
Датчик измерения расстояния SHARP-GP2Y0A02YK0F
Fritzing - САПР для Arduino.
Ультразвуковой датчик измерения расстояния HC-SR04
VirtualBreadboard - эмулятор Arduino
Игра "Жизнь" на Arduino
SPI и Arduino
Самодельный датчик цвета
Теория, вывод, ввод
Подключаем кучу устройств к Arduino по 5 проводам
Интерфейсы
Делаем ISP-программатор из Arduino
1-Wire
Каскад входных сдвиговых регистров
SPI
Bluetooth-модуль HC-05
Интерфейс I2C
Энкодер и шкала
Датчики Холла
Arduino и ...
TC15-11 - матрица сетодиодная 8х8
Arduino и Processing
CraftDuino и RFID-модуль RC522
Arduino и Matlab
Arduino и LabVIEW
Сервы
Arduino и Scratch (S4A)
Сервы
Arduino и openFrameworks
Сервы 2. Взгляд под корпус (SG-5010)
Подключение сервомашинок к Arduino
Статьи
Хаки сервомашинок. Переделка в серву постоянного
вращения Управляемая веб-камера
Мозги для робота
CraftDuino Новогоднее исследование ADSL-роутера на базе Linux -
введение
Описание CraftDuino и её отличий от Arduino
Робософт - обзор существующих решений
Управление роботом-пылесосом iRobot Roomba с помощью
Дополнительные материалы
Arduino
Шпаргалка по Arduino.
Исследование Wi-Fi-роутера TP-LINK TL-MR3020
Книги про Arduino
Выводы Arduino и Arduino pin mapping
Нейронная сеть
Блок питания Arduino из зарядки сотового телефона
Нейронная сеть - введение
Обучение ИНС с помощью алгоритма обратного
Программаторы распространения
Прошивка бутлоадера
Все проекты с Arduino http://arduino-projects.ru/

Из Arduino можно сделать много всего разного. Действительно много и действительно разного.
Собрать все проекты вместе под одной крышей — это и есть цель каталога arduino-projects.ru. Здесь
вы найдёте пополняемую подборку из более, чем 350 проектов. Сможете найти самые интересные
устройства, получить вдохновение, перейти к подробностям сборки, добавить ссылку на свой
собственный проект и поделиться им с друзьями.

ПРОЕКТЫ (отсортированы по «крутости»)

Светодиодный куб 8×8×8 Plotclock - нарисованное время


Замок открывающийся на секретный стук Z-RoboDog - робопёс
Управление отоплением в загородном доме через GSM Миниатюрный квадрокоптер
Лазерная арфа Магнитобот
Дверь в общаге v2.0 Skube
Радиоуправляемый вертолёт + Kinect + Arduino Nebulophone — мини-синтезатор на Arduino
Инъекция света Рука-робот InMoov
Jazari — музыкальная группа одного человека Симулятор кокпита самолета Baron B58
Fire Hero Back to the Spectrum
Автоматическая турель из Portal 3D mapping
Шарикоподшипниковый секвенсор Doodle Bot
Простой Bluetooth Tank Умная лампа
LED-куб 16х16х16 The DIWire — принтер, печатающий проволоку
Аэрохоккей с 3D-принтером RoboWars (Android ADK)
Подсветка лестницы с помощью Arduino Кнопочные ковбои 2.0
exTouch Рисующий тостер
Марио на светодиодной панели 8×8 Èlka
Disco Planet Музыкальные дисководы
3D сканер своими руками. Старомодный принтер твитов
Football Hero MaKey MaKey
Шкатулка с GPS-секретом Прокачай свой велик
Часы на скетч-доске Квадрокоптер на печатной плате
R2D2 на Arduino Робот-паук ArduSpider
Программируемый танковый бой Dingoo A320 с джойстиком SNES
Фольга и Arduino Магнитная левитация
Воздушная ударная установка Обучающаяся роборука
Открывай дверь одним пальцем! Робот "Inchworm"
Кормёжка собаки через Твиттер Высокоскоростная фотография
Arduino-туча Многофункциональный кодовый замок на Arduino
Усовершенствование дверного звонка Морской бой
Автоматический полив растения Крылья Архангела
IRIS Резинки заряжай! Товсь!..
Автономная турель-часовой Электронная система управления подвеской
Квадракоптер Музыка и желе
Поворотный стол для 3D макросъемки на Arduino Система отслеживания движения глаз
Wifi Ardu Spy Tank Arduino-ороситель лужайки
Spazzi: танцор на соленоидах NES Keytar. Восьмибитная гитара
Самоуничтожающийся стул Pong часы
Аквариум контроллер LED-змейка
Hexy Песчаный архитектор
Metatron ADK Arduino LedMatrix
Терменвокс на Arduino Фрезерный станок на Arduino
Particles Робо-лодка
Biofeedback-контроллер Светофор на Arduino
Автономная печатная машинка Светодиодный куб 4х4х4
Игра Ping Pong Робот-барабанщик
Умный аквариум Автономный металлодетектор
Будильник поливающий водой Диско-шар
Контроллер для Angry Birds Счётчик расхода воды с выводом в интернет
Сборка LED-куба Переливающийся столик
Счётчик пчёл Погодная метеостанция на ардуино
Дверной молоточек, повторяющий стук Solar Tracker
Термохромные часы на Arduino Рисующая робо-рука
Игра "Скалолаз" Lightplot — световой принтер
Психоделичные коты от Random Studio Трикоптер
RFID-кофемашина Juraduino Таблично-волновой синтезатор на Arduino
Arduino тыква Artbot
Плавучий змий Sneel SITWAY
Arduino + Социальные сети + Алкоголь Робот, рисующий граффити.
Face tracking Tree-Climbing Robot
GPS-ботинки Пульт для составления музыкальных плэй-листов
ArduSat: Arduino в космосе Робот для игры в Rock Band на iPhone
WiSpyBot GMail-нотификатор
Moppy Маяк, светильник и книжный шкаф
Генератор мыльных пузырей Дешифратор перфоленты (код ISO-7 Bit)
Yahoo-ферма Робот-платформа с манипулятором
Модель тяжелого бластерного пистолета DL-44 Динамическая фоновая подсветка для монитора
Робот-древолаз Рентгеновский сканер
Элкетрогитара - клавиатура Термостат
Destroyer 3000 Матричный генератор звуков

amperka.ru
Амперка
Паяльник http://cxem.net/

СМИ "Сайт Паяльник" посвящен радиоэлектронике. Здесь вы найдете большое количество


радиоэлектронных схем, статей для начинающих, программ, он-лайн калькуляторов, обзоры и
адреса магазинов радиодеталей, сможете общаться на форуме и многое другое, т.е. все то, что
необходимо радиолюбителю или профессионалу. Основной целью сайта является популяризация
современной радиоэлектроники в мировом сообществе. На сайте любой желающий может
опубликовать свою авторскую статью или добавить видео. За публикацию материалов мы
выплачиваем гонорары и выдаем свидетельства о публикации в СМИ.

Arduino http://cxem.net/tags/Arduino/ http://cxem.net/arduino/arduino.php

СТАТЬИ и ПРОЕКТЫ

Управление светодиодной лентой с помощью ТВ-пульта и Nanino - самодельная Arduino


Ардуино
Управление iRobot Create с помощью беспроводного геймпада
Розетка, активируемая звуком через Arduino
Светодиодный диско-пол на Arduino Емкостная сенсорная Midi клавиатура
Простой индикатор радиации на Arduino Текстовой дисплей для удаленной связи с офисом на базе
Arduino Uno
4-канальный вольтметр с ЖК-индикатором на базе Arduino
Настройка модуля часов реального времени RTC для Arduino
Запрограммируйте Arduino с помощью Android устройства!
Проигрывание WAV-файлов при помощи Arduino
Светодиодные часы на Ардуино
Светодиодная матрица 24x6
Музыкально-световой клавесин на Intel Galileo
Поющее растение на базе Arduino
Измеритель индуктивности на базе Arduino
Метеостанция на Arduino и MR3020 для народного
EGYDuino – клон Arduino своими руками
мониторинга
Сигнализатор замерзших труб на Arduino
Радиочастотное (RFID) управление доступом с помощью
Умный дом с Arduino Arduino UNO и модуля EM-18
Умный магнит для холодильника на базе Arduino Ошейник для кота с GPS навигацией на базе
микроконтроллера TinyDuino
Вендинговый разменный автомат на Arduino
Необычный кодовый замок на Arduino
Сейф, который распознает цвета
Объект String в Arduino и команды через последовательный порт
Измерение освещенности на Arduino и вывод на дисплей
Nokia 5110 Голосовое управление радиорозетками UNIEL
Аудио спектроанализатор на RGB-ленте WS2812 Система контроля параметров комнатных растений
Управляем любой ДУ техникой дома по ИК с веб-страницы Пульт дистанционного управления ПК на микроконтроллере
ATtiny85
Контроль положения контактов 3-х позиционного
переключателя с помощью Ардуино Компания Microchip представила новую макетную плату,
совместимую с Arduino™
GSM охранная система для дома на базе Arduino
Arduino Yun интегрирует архитектуру Arduino с открытым
Отладочная плата для устройств на МК Atmega8/48/88/168/328
кодом с ОС Linux
Arduino Uno. Подключение ИК-приемника
Cервер домашней метеостанции на Arduino - виджет для OS X
Метеостанция + построение графика + C#
Новая плата расширения для Raspberry Pi
Тетрис на базе Arduino и двухцветных светодиодных матриц
Простой анализатор спектра на микросхеме MSGEQ7
Делаем сами Arduino Uno Mini
Изготовление электронной нагрузки постоянного тока и
Подключение GPS приемника EB500 к Arduino UNO мощности на Arduino
Аргентина - Ямайка 5:0 BASCOM-AVR и Arduino
Автоматический контроллер температуры и влажности для Управление камерой, приборами и данные с датчиков на
домашних питомцев на базе Arduino экране телевизора
Часы на Ардуино Процессор Sitara AM335x ARM Cortex-A8 интегрирован на Arduino
Прием сигнала от нескольких передатчиков 433МГц на Arduino Тюнер гитары на контроллере Arduino
Подключение модуля датчика газа MQ-2 и Arduino CxemCAR на Arduino - Bluetooth управление машинкой с
Arduino, датчик движения и релейный модуль Android

Робот-платформа с манипулятором на ATmega CxemCAR 2 - управление роботом и просмотр real-time видео


с Android-смартфона
ИК-термометр своими руками Arduino: спасибо и прощай
Поворотное устройство для антенны/web-камеры на Поворотная вебкамера на Arduino
ATmega8/Arduino
ATX блок питания управляемый Arduino
Контроллер кнопок для игры Что? Где? Когда?
Блок питания для Arduino из ATX
Измерение тока потребления устройств при помощи токовых
AC диммер на Arduino
датчиков серии ZXCT
Apple Remote Shield на Arduino
Робот-паук на сервоприводах + ИК-управление
Светодиодный куб 4х4х4 на Arduino
Подключение монетоприемника к Arduino
Цифровой вольтметр на Arduino с подключением к ПК через
Мониторинг параметров компьютера на Arduino
последовательный порт
LCD осциллограф на Arduino
TV-выход на Arduino
Brute Force BIOS'а ПК при помощи Arduino
Пробуждение ПК по сети на Arduino
RGB-ночник управляемый руками
Простой тестер емкости Li-ion аккумуляторов
Голосовое управление освещением X10. Части 1 - 5
Часы на Arduino с использованием стандартного индикатора
Cервер домашней метеостанции на Arduino + Виджет на
Arduino лазертаг
Android. Добавление датчика BMP085
Устройство мониторинга сейсмоактивности
Новая платформа Embedded Pi включает в себя Raspberry Pi,
Arduino и 32-битные встроенные ARM Измеритель ёмкости аккумуляторов (Li-Ion/NiMH/NiCD/Pb)
Arduino представила Arduino GSM Shield Анализатор спектра звука
Cервер домашней метеостанции на Arduino + Виджет на USB MIDI контроллер на Arduino
Android для вывода данных 3D интерфейс ввода на Arduino
pcDuino - мощная плата разработчика на процессоре 1ГГц Система распознавания и слежения за лицами на Arduino
ARM Cortex A8 совместимая с Arduino шилдами
Ambilight своими руками
Игровая ТВ-приставка на Arduino. Части 1, 2
Мониторинг электроэнергии на LabView
Робот-танк, управляемый акселерометром
Динамическая подсветка ТВ
Робот, следующий по линии на Arduino
Подключение PS/2 клавиатуры
Сенсорная панель управления
Shell на Arduino
Информационный экран для iPod
Солнечный трекер
Обзор FEZ Panda II
Запись/чтение на SD-карту с Arduino
Немного о FEZ и .NET Micro Framework
Недорогой тепловизор своими руками
Подключение I2C EEPROM к Arduino
Передача MIDI данных от Arduino в компьютер
Интервалометр с LCD для Sony NEX
Считываем показания датчика DS18B20
Тахометр на Arduino
DDS-генератор синусоидального сигнала
VGA на Arduino
Инфракрасный датчик движения (PIR сенсор)
Передача данных по Bluetooth между Android и Arduino
Электронный барометр своими руками
Arduino и Bluetooth
Парктроник своими руками
Генератор сигналов на Arduino
Счетчик расхода воды
Arduino своими руками с USB портом
RGB LED Pixels
Велосипедный спидометр на Arduino
Ножная Midi педаль на Arduino
Arduino IDE - введение (видеоурок)
Lo-Fi гитарная педаль на Arduino
Arduino UNO урок 1 - Мигание LED
Устройство вокальных звуковых эффектов на Arduino
Arduino UNO урок 2 - Управление сервоприводом
Arduino-синтезатор
Arduino UNO урок 3 - Тайминг
Шторы с электроприводом и ПДУ
Arduino UNO урок 4 - Бегущий огонь
Тестер АА аккумуляторов
Arduino UNO урок 5 - Fade-эффект
Геркулес – машинка управляемая Android телефоном
Arduino UNO урок 6 - Энкодер
Простой робот SPROT
Arduino UNO урок 7 - Пьезоизлучатель
Робот Боб 2.0
Arduino UNO урок 8 - Ночник
Автономный танк на Arduino
Arduino UNO урок 9 - Нагрузка
Робот, проходящий лабиринты
Arduino UNO урок 10 - LCD
CARduino – самодельный робот на Arduino
Arduino UNO урок 11 - Serial LCD
Четвероногий робот на основе Arduino
Arduino UNO урок 12 - Джойстик
Машинка 4x4 на Arduino с управлением по WiFi с Android
Arduino UNO урок 13 - драйвер двигателя L298N
Плавающий робот из бутылок своими руками
Arduino UNO урок 14 - цифровой компас HMC5883L
Лодка на Arduino с датчиками
Световой диммер управляемый Arduino
Автономный робот с авто навигацией на Arduino
Android и Arduino. Обмен данными
Drawbot
Android и Arduino. Привет Android из Arduino
FijiBot
Android и Arduino. Программное обеспечение
Робот, лазающий по деревьям
Android и Arduino. Введение в ADK
Хабрахабр http://habrahabr.ru/

«Хабрахабр» (или «Хабр») — крупнейший в Европе ресурс для IT-специалистов с ежемесячной


аудиторией более 10 млн уникальных пользователей. В «Хабрахабр» заложена уникальная модель
совместного творчества, позволяющая людям собирать и структурировать информацию, выделяя из
неё наиболее полезную и ценную. Используя заложенные в проект механизмы, пользователи
самостоятельно наделяют правами друг друга, давая или ограничивая возможности.
Глобальная цель проекта — помогать людям развивать профессиональные навыки и
информировать друг друга о происходящем в индустрии информационных технологий.

Arduino http://habrahabr.ru/hub/Arduino/

СТАТЬИ

Знакомство с Arduino. Введение Трех-степенной манипулятор на Arduino


Подготовка и запуск "Hello, World!" Непрерывный мониторинг радиационного фона в Москве
Arduino Duemilanove Робот «Inchworm» на базе Arduino Nano
Как сделать библиотеку для Arduino? (пример прилагается) Open Call или 10 Android/Arduino идей для Google Developer
Day 2011
Старые друзья шиворот-навыворот, или как светодиод может
быть фотодатчиком Универсальный триггер для фотокамеры
Chronulator: вторая версия на микроконтроллере Atmel O'Bakas одночипный Arduino
ATmega168V
Orbduino — механическая рука управляемая через интернет
Панк-рок — на два метра левее
Arduino? – Нет! IDuino – Да!
Шпаргалка по Arduino
Контроллер для домашней пивоварни Mega Brewery
Индикация о новом сообщении Gmail через Arduino
Siri отпирает дверь
Arduino: первое знакомство
Arduino в Visual Studio
Знакомство с Arduino, часть 2. Морзе-клавиатура: альфа-
Очередной проект на Arduino: «хищный» дисплей
версия
Шести-степенная жизнь на хвосте питона
Знакомство с Arduino, часть 3. Морзе-клавиатура: бета-
версия Простые бинарные часы с будильником на Arduino
Робот радуется сообщениям в твиттере :) «Бегущая строка» — динамическая индикация на примере
светодиодной матрицы RL-M2388 и Arduino Mega
Удобный регулятор громкости для ПК
И снова Arduino: принтер, следящий за Twitter-каналом
Ethernet термометр на основе Arduino
пользователя
Touchscreen от Nintendo DS и Arduino
Новые Arduino: апаратный USB в контроллере, ARM-
Получение и вывод GPS координат на Arduino архитектура и WiFi
FTDI анонсировала платформу на основе Vinculum-II Простой синтезатор на Arduino
Scratch и визуальное программирование Arduino Teagueduino — новая альтернатива Arduino «для чайников»
Обновления проекта Arduino Самодельный расходомер для автомобиля
Самодельный стабилизатор для цифровых камер BlackBerry PlayBook защитит ваше молоко от пришельцев
Toolduino Обзор книги «Программирование микроконтроллерных плат
Arduino/Freeduino»
Arduino-терминал
Релиз IDE Arduino 1.0!
Квадрокоптер своими руками: Части I и II
Рисунки на Etch-a-Sketch с помощью игрового контроллера
ArduIMU — коптер на Arduino
на основе Arduino
Сверхточный электронный компас и датчик положения
Самый нужный шилд для Arduino!
yet another serial protocol, для людей
Arduino по-китайски или штангенциркуль по-Ардуински
Работа с Arduino из AVR Studio 4
Metaboard на проволочках, или Arduino Skeleton
Добавление метода ввода к Arduino
«Камера» из светодиодов
Самодельный SD Card Shield для Arduino
Копируем данные с CD/DVD на жесткий диск при помощи
Перчатка SudoGlove: управление машиной движениями LEGO и Arduino
пальцев
Использование инерциальной навигационной системы (ИНС)
Настройка Eclipse для работы с Arduino Uno с несколькими датчиками на примере задачи стабилизации
высоты квадрокоптера
Программируем на С/С++ в Visual Studio под Arduino
Ловим горизонт с Arduino Механический дисплей на Arduino — работа над ошибками
Обновляем скетч по воздуху Оригинальный замок для двери на основе Arduino и
ёмкостного датчика
Уведомление о непрочитанном входящем письме с помощью
Arduino Управляем чайником из браузера или как я интернет-розетку
делал
Управление Arduino с телефона
Subaru и Arduino: протокол SSM1. Рукопожатие
Arduino в кофейном автомате
Mozilla запускает Codebender — среду разработки для
Duck Hunt на основе Arduino
программинга микроконтроллеров
Сверхдешёвая камера с управлением — своими руками
Счетчик скорости вращения колеса белкой
Механический дисплей из Лего и Arduino
Sparkfun.com FREE day или *как вы относитесь к recaptcha*
Подключение светового пистолета через Arduino
Master-key для замков Onity на Arduino в обычном маркере
Мозги моего робота — Arduino, первый опыт
Многоканальный программный ШИМ в AVR
Ну очень недорогой робот телеприсутствия на основе
ИК пульт для ПК и розеток. Часть 1
ноутбука и мото-тележки. Продолжение
Альтернатива Wiring для Arduino — BASCOM-AVR
Ускоряем свою Arduino
Недорогая альтернатива Arduino. Дадим шанс?
Автоматизированное копирование 3.5" дискет на основе
Arduino Делаем сами Single-Side Arduino c COM-портом на борту
Шкатулка с музыкальным замком Автоматическая газель на Arduino
AVRDudeR — встраиваем avrdude в IDE Создание робота телеприсутствия
Bluetooth термометр Самодельная подсветка на квадрокоптер
Бюджетный Serial to Ethernet адаптер за один вечер Светодиодная новогодняя ёлка на Arduino за один вечер
Arduino LCD Informer Разработчик конструкторов Arduino названа
предпринимателем года в США
Распознаём изображение с токена при помощи камеры
Заказ производства печатных плат на заводе — step by step
Автоматическая подсветка лестницы с помощью Arduino
Arduino Esplora
Использование радио модулей RF-2400 от Inhaos
ЛУТ на виниле или домашняя Arduino Mini
Наглядный мониторинг большого числа обьектов (например,
каналы IPTV) с помощью Arduino Свежий взгляд на микроконтроллеры
Простой робот с ультразвуковым дальномером Роботизированная лампа в стиле Pixar на основе Arduino
Панорамы: быстро или качественно? И то и другое! Роботизированный бас на Atmel ATMega328 и Arduino IDE
Zyxel Keenetic 4G, Arduino и датчики температуры ds18b20 Работа с Arduino
Практическое использование термистора с Arduino Arduino <> Firmata <> Visual Basic .NET
Онлайн-шахматы на реальной доске на основе Arduino Простое устройство мониторинга энергопотребления
Заклинатели «змейки» на Nokia 6110i и Arduino Arduino: Робо-рука на двух сервоприводах
Hexy — сборный робот на основе Arduino Теория и практика пассивных пироэлектрических датчиков
или как сделать индикатор направления движения
Олли — автономный рободирижабль
Arduino: настройка при помощи DHCP
Дистанционный пульт DSLR для ночной фотосъёмки
Оптимизация преобразования HSV в RGB для
Трикоптер на Crius MultiWii контроллере
микроконтроллеров
Подключение сенсора освещения от Mac Book Pro к Arduino
Ford выпустил SDK для своих автомобилей
Использование Arduino UNO в качестве программатора
Управление декоративной подсветкой на Arduino с телефона
Оптический выключатель со звуковым эффектом на Arduino
Arduino&Oregon или погодная станция своими руками
Виноградный мультитач
Радар на Arduino
Соединение Raspberry Pi и Arduino
Конструктор для сборки сотового телефона
Arduino в снековом автомате
Бейсболка-сонар для слабовидящих
Альтернатива Arduino от Texas Instruments за $4.30
Программирование Arduino из консоли, gentoo-way, ничего
Подключаем джойстики от Dendy к PC через Arduino лишнего
Google I/O — Презентация ADK 2012 Самодельный тепловизор на базе Arduino менее чем за 100$
Программируемый выключатель света с дистанционным Программирование Arduino из Linux, gentoo-way, быстрый
управлением старт
Контроль температуры воды в газ. колонке 10 девайсов, которые вы можете проапгрейдить, немного
поковырявшись с электроникой
Я презираю Arduino
Ethernet метеостанция
О полетном контроллере MultiWii (коптеры, самолеты и
вертолеты) Включите мой комп!
Arduino в космосе. Осталось 23 дня, чтобы заказать 3 суток Rainbow Cube — куб с RGB диодами
аренды спутника за 325$
Проект GPS-автомаяка с открытым кодом
Как считать сигнал с аналоговых входов Teensy++ и вывести
Домашний мини-климат-контроль своими руками
их на экран
Хилый укроп и рукотворное солнце
leOS — многозадачное ядро для Arduino
Arduino: Автоматическая подсветка лестницы
Arduino будильник управляемый из браузера
Используем Twitter по назначению
Как рождаются Arduino
Где разработчики настолько суровы, что в хакатоне
Управляем самодельными железяками по воздуху при
побеждает проект массой в 100 кг?
помощи Open Sound Control
Arduino Robot: открытая платформа для сборки роботов
Поддержка C++ на avr в gcc
Искусственный интеллект на базе Arduino
Вышла новая версия Energia
Из пункта А в пункт Б
Биометрическая идентификация по рисунку вен ладони (mini
How To)
CubieBoard дорого, Raspberry Pi слабовато, или где взять SoC Зубочистка-детектив раскрывает секрет радиопротокола
с GPIO помощней да подешевле
Прибор измерительный температуры и влажности ПИ-ТВ-2
Arduino Yún — Wi-Fi и Ethernet при нём
Arduino в руках дизайнеров
Замкнутая экосистема по-русски
Визитка на Arduino с «Тетрисом» на борту
Arduino watchdog или автоматический RESET в случае
Светомузыка Processing + Arduino + RGB
зависания
Термостатирование в доме
Как не переплачивать за Arduino и модули к нему
Блок дистанционный сервисный многофункциональный БДС-М
Беспроводной Arduino c радиусом действия более километра
Мощный лабораторный блок питания
STM32 vs Arduino
Погодная станция с Ethernet и планшетом в качестве
Разгон Arduino. Под жидким азотом. 20 ⇒ 65.3Mhz @ -196 °C
устройства отображения
Unreal LED, или управление нагрузкой из Unreal Tournament
Управляем Intel Galileo через облако
Мигающая строка из светодиодов для стоп-сигнала на Arduino
Погодная станция на Ethernet (HTTP+Modbus) с питанием по
Pro Mini
POE
Работа с сенсорным экраном на Arduino DUE
Альтернативные аркады на GDC: галерея сумасбродных
Scratch for Arduino делает программирование под Arduino контроллеров домашнего производства
более наглядным
Управляем машинкой через Bluetooth с планшета или
Работа с TFT дисплеем на ARDUINO DUE телефона под Android
Опыт постройки коптера: WLtoys V949 + MultiWii 2.0 Зрение для Arduino, или как работать с видео имея 2,5 кб
оперативной памяти
Биопринтер своими руками
Катаемся на флоппике и изучаем перспективный роутер. (В
Microduino — что если всё взять и поделить?
этой статье не пострадал ни один TP-Link MR3020 и TL-
CodeBender.cc — программирование Arduino из браузера WR703N, и отделался легким испугом HAME MPR A100 (A2))
Создание автономного робота Frank. Части 1 - 3 Arduino. Лучшая книга по мнению читателей
Делаем автоспуск почти для любого фотоаппарата Arduino: ИК-управление бытовой техникой (применение
девайса)
«Achtung!», или Мониторим состояние сборки проекта
Отладка кода Ардуино в кристалле
Новогоднее поздравление от робота
Arduino: ИК-управление бытовой техникой
Первая передача текстового сообщения с помощью запаха
Автомат для сортировки по цвету M&M's и Skittles на Arduino Arduino и аквариум
Uno Как нас било током на 1 апреля
Делаем елочные игрушки из светодиодных лент Краткий обзор 6 бюджетных колесных платформ для роботов
с Ebay
Здание превратили в работающий «Кубик Рубика» при
помощи Arduino Уменьшаем количество проводов в Arduino — I2C LCD экран и
RTC часы по двум проводам
Чертежи для самостоятельной сборки мобильного телефона
Йогуртница на основе Arduino
Беспроводные коммуникации «умного дома». Часть вторая,
практическая Установка и сборка образа Angstrom Linux для платы
TechNexion Thunder
Galileo — первый Arduino-совместимый микрокомпьютер на
платформе Intel. Уже в продаже! Настройка Intel Galileo с нуля и до установки полной версии
Debian
Аналог ambilight из LED ленты WS2812, Arduino и киндер-
сюрприза Как гироскопом на руле машину измеряли
Управляем веб-камерой с помощью джойстика Автоматическая кормушка для птиц
Аппарат кормления котов управляемый, пассивный АКК-УП-1 Обзор роботов для настольных игр
Контроллер центральный домашний, всемогущий КЦД-В-2-12 Cubietruck & Raspberry Pi & Arduino
Делаем автополив комнатного цветка на Arduino за 15 минут Измеритель радиоактивности (радиометр) с Глонасс
приемником и передачей данных по Wi-Fi
Мой удобный дом
DIY: Универсальный Ambilight для домашней мультимедиа
Arduino ли единым
системы — Атмосвет
Визуализация с RGB-полоской
Обзор домашнего робота ver 0.3
Робот на базе: Android, Arduino, Bluetooth. Начало
Испытания домашнего робота версия 0.3.1
Робот на базе: Android, Arduino, Bluetooth. Рефлексный. Часть 2
Прошивка Arduino Pro Mini через Nano
Вывод звука на Arduino Due
Arduino управляет промышленным грузовым лифтом
x86-compatible, часть 3: «86Duino наносит ответный удар»
Создание робота балансера на Arduino
Опыт создания робота
Arduino UNO играет в 2048 с размером поля 8х8
Автомат света и музыки АСИМ-АУ-2-6
Photopizza — открытый проект поворотного предметного
Радиоуправляемый выключатель своими руками. Часть 1 — стола для 3D-фото
Hardware
Игрушка на Arduino: Тук-тук шкафчик
Радиоуправляемый выключатель своими руками. Часть 2 —
Работа с инфракрасным дальномером Sharp
Тестирование и подготовка
Управление двигателями через Wifi Bee от Seeedstudio
Радиоуправляемый выключатель своими руками. Часть 3 —
Software выключателя Резистор изгиба своими руками
Радиоуправляемый выключатель своими руками. Часть 4 — Управление RGB лентой с помощью Arduino и драйвера L298N
«Центр управления»
Основа для умной комнаты, или как Arduino в общежитии
Как я стал преподавать Arduino живёт
Fish on Wheels: самоходный аквариум с золотой рыбкой на Как я сделал Wi-Fi весы, ниоткуда не уволился, а про жизнь
основе Arduino + Beagleboard вообще молчу
«Заводим» радиоуправляемые розетки без пульта Как сделать робота за 24 часа
Робот для игры в воздушный хоккей из частей для 3D Модельно-ориентированное проектирование на коленке,
принтера идентификация систем в MATLAB/Simulink
Комнатная метеостанция на Arduino Хочешь вкусного пива, Arduino в помощь
Метеостанция: от идеи до реализации STM32 Nucleo. Подключаем TFT LCD на базе чипа ILI9341
Ethernet метеостанция 2 – Продолжение… Воскрешаем FTDI в картинках
Автоматизация смыва унитаза на Arduino + Z-Wave Подключаем датчики к Raspberry Pi без проводов и с Arduino
Педалируем Vim Ардуино на службе здоровья
Спидометр для скейта. Безысходность Arduino на службе здоровья — 2
Самодельный велокомпьютер, или как Arduino на улицу Безынерционное измерение температуры воздуха
попал ультразвуком
Простое удалённое управление с компьютера роботом Arduino, модуль Nokia 5110 LCD и кириллица
Хитрая канистра Безопасное использование ножки RESET на Arduino
Программируемый робот Brownie версия 0.4 Питание Raspberry Pi с использованием Arduino
Астротрекер за два вечера Спутник на балконе
Программируем квадрокоптер на Arduino Бинарные часы с будильником и таймером на Arduino Uno
Применение самодельного тепловизора на базе Arduino в Слежение за статистикой в WoT c помощью Arduino
исследованиях экономии электроэнергии
Строим роботанк с управлением по Wifi, камерой, пушкой,
Диафильмы на шарманке: грабли, шишки и подводные камни блекджеком и т.д.
Загрузка скетчей в Arduino через Bluetooth Реле с дистанционным ИК управлением на ATtiny13A
Как скрестить конструктор «Знаток» и Arduino своими руками Управление микроклиматом на Arduino
Расширяем интеграцию Arduino в детский конструктор Знаток Контроль температуры в серверных шкафах с помощью
Ардуино
Музыкальный дверной звонок в стиле Star Wars на Arduino
Белый Куб на страже чистоты воздуха, части 1, 2
Прошивка и программирование ATtiny13 при помощи Arduino
Простейший кардиограф на Arduino
Управление яркостью подсветки 7-ми дюймового TFT LCD
Приставка MIDI для синтезатора (taptempo)
Запустите Windows 8 на своем Intel Galileo
Электронный тортик в кармане: дневник разработки
Светодиодный «смайлик». Технология мультиплексирования
методом «Чарли» Зимовка кактусов с онлайн контролем температуры
Дверной замок. RFID Разработка Электрофокусера на базе отладочной платы
Arduino Uno, части 1 - 3
Автоматизация снятия показаний со счетчиков воды
Простой встраиваемый усилитель НЧ на микросхеме с FM
Удаленное управление VLC player’ом при помощи Arduino и
приемником на основе Arduino
Python
Альтернативная среда программирования для Arduino —
Управляем розеткой по SMS
FLProg
Модифицирование преобразователя USB-UART на чипе
FLProg – альтернативная среда программирования Arduino.
CP2102 для использования в качестве программатора Arduino
Описание проекта
Станция слежения OpenDNS дата центров
FLProg.ru – лицо программы FLProg в интернете
Как я логгер собирал на SD card Shield V2.0
FLProg и пингвины
Идет сбор средств на закупку тепловизионного модуля Flir
Бесплатная отправка SMS из Arduino без GSM модуля
Lepton
Светильник декоративный бытовой СДБ-З «Евлампия»
Обзор Makeblock Starter Robot Kit V2.0. Распаковываем
Arduino за 1$
Как мы заняли второе место на соревнованиях MATEC ROV
2014 в США Программирование Arduino с помощью ISP программатора
Пара костылей для Notepad++ Arduino IDE (для Чайников) Robotale: радиоуправляемая машинка с Arduino и Bluetooth,
которая поможет изучить основы работы с Arduino и не только
Выставка 3D PrintShow в Лондоне. Индустрия — золотая жила
или охота за привидениями? Новый Год, гирлянда, Arduino
FTDI наносит ответный удар Плоттер на основе конструктора Makeblock
Ввод пароля или похитители времени Превращаем Arduino в полноценный AVRISP программатор
Автоматический перебор комбинаций в механических Попытка подружиться с STM32
сейфовых замках
Считывание данных с помощью Arduino и Processing.
PcDuino3 Nano, серьезный конкурент Raspberry Pi B+, за $39 Обработка с помощью R
Программирование Arduino с помощью ArduBloсk на примере Программно регулируемая люстра на Arduino
робота, движущегося по полосе
Программирование Arduino в CLion
Проект Dronecode: свободная платформа для беспилотных
YACTL: Ещё одна ёлочная гирлянда
аппаратов
Школьный звонок на .NET Micro Framework с удаленным
Брутфорсим EFI с Arduino
управлением
Перепрошивка сетевого хранилища NS-2502 от Edimax через
SuperDuino: миниатюрная плата с цветным дисплеем и
консольный кабель
акселерометром, совместимая с Arduino
Маленький Hello World для маленького микроконтроллера — в
Домашний тир на Raspberry
24 байта (и чужое решение в 12 байт)
Домашняя автоматизация с openHAB: освещение и удаленное
Подключаем Arduino к счетчику электроэнергии
управление обогревателями. Часть 1Maker — ваш DIY-
Термокоса под управлением Arduino и LabVIEW справочник по продуктам Intel
Электронный «шар судьбы» на ATtiny13 Как подружить OpenHAB и Arduino
Как программисты решают проблемы
KAZUS.RU http://kazus.ru/

С октября 2003 года наш сайт предоставляет своим читателям объективную, полную,
оперативную и самую интересную информацию о мире электроники и электронных компонентов.
Благодаря своей независимости, сайт KAZUS.RU является одним из авторитетных сетевых изданий
в области электроники и IT-индустрии.

Arduino http://kazus.ru/shemes/list_pages_categories/1/0/1.html

СТАТЬИ и ПРОЕКТЫ

Arduino UNO урок 1 - Мигание светодиодом Блок питания для Arduino из ATX
Arduino UNO урок 2 - Управление сервоприводом Запись/чтение на SD-карту с Arduino
Arduino UNO урок 3 - Тайминг Калибровка аналогового датчика для Arduino
Arduino UNO урок 4 - Бегущий огонь Подключаем датчик температуры DS18S20/DS18B20 к Arduino
Arduino UNO урок 5 - Fade-эффект Подключение 12 светодиодов к Arduino Mega
Arduino UNO урок 6 - Энкодер Подключение I2C EEPROM к Arduino
Arduino UNO урок 7 - Пьезоизлучатель Подключение LCD HD44780 к Arduino Uno
Arduino UNO урок 8 - Ночник Подключение PS/2 клавиатуры к Arduino
Arduino UNO урок 9 - Нагрузка Подключение монетоприемника к Arduino
Arduino UNO урок 10 - Подключаем LCD Пробуждение ПК по сети на Arduino
Arduino UNO урок 11 - Serial LCD Светодиодный куб 3х3х3 на Arduino
Arduino UNO урок 12 - Подключение джойстика Светодиодный куб 4х4х4 на Arduino
Arduino UNO урок 13 - драйвер двигателя L298N Светодиодный куб 5х5х5 на Arduino
Arduino UNO урок 14 - цифровой компас HMC5883L Старинные часы-метеостанция
Arduino своими руками с USB портом Часы DS1302 для Arduino Uno с ЖК экраном BTHQ 22005VSS
ATX блок питания управляемый Arduino Часы реального времени для Arduino
digitrode.ru http://digitrode.ru/

Привет всем интересующимся современной электроникой, цифровой техникой, встраиваемыми


системами и их программированием!
На этом сайте выкладывается познавательный и обучающий материал, который поможет
новичкам в освоении электронной техники, а опытные инженеры, возможно, подчерпнут из него
что-то новое для себя.
Arduino – это потрясающая электронная платформа для создания радиолюбительских проектов.
Она проста в использовании и намного дешевле профессиональных отладочных плат.

Arduino http://digitrode.ru/tags/Arduino/

СТАТЬИ и ПРОЕКТЫ

Arduino своими руками Управляем вентилятором с помощью Arduino


Музыкальный инструмент на основе Arduino и желе MiniPirate – управляем Arduino с помощью командной строки
Управляем реле с помощью Arduino Простой таймер на Arduino
Библиотеки Arduino: подключение Робот на основе Arduino:
Датчик температуры TMP36 и его подключение к Arduino Часть I – управление двигателями
Питание Arduino от источника напряжения 3.3 В Часть II – шасси, средства передвижения и питание
Arduino и четырехразрядный семисегментный индикатор Часть III – подключение, программирование и пробный пуск
Расширяем количество портов Arduino за счет чарлиплекси- Часть IV – ультразвуковой датчик HC-SR04
рования
Arduino и шаговый двигатель BYJ48 Внешний монитор последовательной передачи данных ESM

Система слежения за солнцем на Arduino Разблокировка компьютера с помощью NFC

Ardubracelet – браслет на Arduino, позволяющий играть в Tetris Простой Arduino-счетчик на 7-сегментном индикаторе

Погодная станция на основе Arduino и Wi-Fi модуля ESP8266 Звуковая сигнализация на Arduino

Подключение оптического энкодера к Arduino Очередной клон Flappy Bird. Теперь на Arduino!

Домашняя система безопасности с GSM на основе Arduino Вольтметр на Arduino

Arduino и RFID-считыватель JTAG-адаптер для Arduino Micro

Arduino и светодиодная матрица 8x8 Дистанционное управление для Arduino

Управляем светодиодами WS2812 с помощью Arduino Сигнализация на Arduino, оповещающая об исчезновении


напряжения сети
Подключаем к Arduino акселерометр MMA7361
Управляем квадрокоптером с помощью Arduino
Эмулятор процессора 6502 и Commodore 64 на Arduino
Elektor Labs http://www.elektor-labs.com/

Arduino site:www.elektor-labs.com
https://duckduckgo.com/?q=Arduino+site%3Awww.elektor-labs.com&ia

PROJECTS

Arduino Expander I-Board - poor man's T-board


Connect 2 non stackable Arduino
shields to one arduino. Wiring the Arduino prototype board
Attachments: 0 photos | 1 to the flatcableconnector is straight
schematics | 1 PCB(s) | 0 software forward, with 1 exception: the wires
files | 0 other You have to be logged for I/O 9 .. 13 are "crossed".
in to open attachments . Because there is no software you
9130102822 . Arduino Expander. will not find anything here.
Please ...
An Arduino'd Radiation Meter Banc de test pour sondes de
These days no one marvels at température
seeing an Arduino board in just Banc de test pour sondes de
about any application. Arduino's température. Proposal; Tweet .
ease of use makes it perfect to Author: Castor01 | Project status:
quickly develop DIY measuring Proposal | 0 contributions | 1
instruments. This article shows how members | 0 ... Arduino's duties:
to build a simple meter for PID regulation of the temperature's
radioactive levels, ... plate measuring of: reference
Tacho/RPM for CNC etc using temperature, plate temperature,
Arduino Micro and OLED Display device under test sending on USB ...
I needed a tacho/RPM display for a LP Gas (propane) Fuel Injection
CNC spindle. I decided to use an for Single Cylinder Engines
Arduino Micro and OLED display with
a reflective LED/Photo transistor as This is a finished project and comes
a sensor. with details of hardware, software
and simple Arduino based
Wi-Fi / Bluetooth / USB shield electronics to convert a single
for Arduino & Platino cylinder 4 stroke engine to a gas
Hello community, I am working on fuel injection system.
an Arduino shield on which you can
either mount a Wi-Fi module or a T-Board - uController
Bluetooth module controlled through Prototyping Simplified
a serial port.
As hobbyists and enthusiasts start
PIC dev board (with hitting the physical constraints of
programmer) boards like the Arduino, we need
An arduino is a little board with a take the giant leap into developing
microcontroller on it (usualy 2, 1 for our own microcontroller-based
programming and 1 for for learning boards. The easiest way to
/developing/etc). Most pic transition is onto a breadboard, ...
development board need an external
8x8 2-Color Led Matrix with
programmer, ATmega328P
CC2A humidity sensor BOB 8x8 2-Color Led Matrix with
We decided to use the more ATmega328P (Arduino compatible)
affordable Chipcap2 humidity [130146-I] arduino; LED; matrix;
sensors from Amphenol for this. ... arduino; Finished; prototyping;
this is why its VCC power supply pin laboratory & development; Tweet .
must be connected to an Arduino Author: Ruben van Leeuwen |
digital output (PB0) pin, which is
controlled by software. In this Elektor Wifi RGB Ledstrip
sketch two constants are defined:
3D Pad - Control Without Since Koen used an ATMega328 I
Touching ported the code to the Arduino Uno.
Arduino shield for controlling When I have fully working Arduino
something without touching the code I will de-Arduino it. For the
controller. Great for Touchless moment it only relies on the Arduino
Gesture User Interface experiments, Serial port class and the analogWrite
artistic expression and game function.
controllers. Based on capacitive
sensing techniques.
Voltage-level shifter for 3-state 3D printed Arduino housing
output
Fortunately, Arduino boards have a Yes, my Arduino is always in danger
3.3V regulated output that can be to catch fire because of so many
used to power the 23K256 chip. It is cables and wires on the bench. What
also quite easy to adapt the SS, I need is a proper housing to make it
SCLK and MOSI signals with simple safe. So here it is, my new Arduino
2-resistor voltage dividers, as they Safeguard. The Arduino Uno is in use
are 2-state Arduino -> 23K256 for my beginner's course.
signals.
Yet Another Button Cell Charger IV-3 VFD shield for Arduino
That controller should be a This Arduino shield is capable of
ATMEGA328P, the heart of the driving 4 Russian IV-3 7 segment
Arduino UNO. Eight: if possible the VFD tubes. 4 3mm LEDs provide
whole proposal is to be realized on a background lighting for the tubes.
holes- or strips-print, avoiding high The design is completely based on
costs for a dedicated PCB. Hardware through hole components, no SMD
First I discuss the universal button components were used.
cell placeholder.
Numitron Arduino Clock and Arduino Nunchuk Shield
Thermometer
If the concept of Arduino powered An Arduino shield to connect 4
proper projects as a next step for Nintendo (TM) WII Nunchuks . In
Arduino fans (and AVR fans) is of V0.8 there was a Bug. The supply for
interest, I have 5 or 6 other projects the Nunchuk must not be connected
that follow the same format (Proper to 5V!
project but Arduino IDE
programmed) and I'll be happy to
publish those too. 12V DC Model Train Arduino
controller simulating momentum
Home automation with Arduino I found some research papers about
and Raspberry Pi real world train controller maths, but
I'm again working on a project for the maths would be too much for the
school. But this time I'm not Arduino I guess ;-) I have not yet
uploading it when it's finished, we're hooked up an Oscilloscope but I have
still working on it and for some parts seen other clever clogs complaining
we could still use some help. the the H-Bridge LM298 output might
Arduino Experimenting, not be the best for a 12V DC motor.
Evaluation and Expansion Shield IoT Learning Platforms
This shield can be used with an
Arduino Yun board, but there are
connectors on the Yun that require Arduino Uno + cellphone shield code
the shield to be mounted a bit for triggering vibration motor. Go
higher. The most simple solution is to here. *Note that the cellphone code
buy an extra set of Arduino Stackable works with an Arduino 0022 dev
headers (e.g. Sparkfun order code environment but has not been ported
PRT-11417) ... to 1.0 as of yet! Arduino Uno +
3D Printer Head and Mat Sparkfun geophone code. Go here.
Temperature controller - using
Arduino
Usb modules - Arduino like board
Affordable and easy to build - Using
& soft
standard Arduino, piggy backed onto
My projet : - Boards with arduino like
PCB negates the need for SMD skills
connector for FTDI modules (FT2232,
and tools. Easy to use - turn a knob
FT232 ....) - Netbeans templates
and temperature is set. Visual
projets for the programming of those
feedback on parameters.
modules in C++.
Hack n Mod http://hacknmod.com/

Arduino Hacks http://hacknmod.com/tag/arduino/


http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/

IDEAS and PROJECTS

How to: Super Simple Self- Tour of the Arduino Manufacturing


Balancing Robot Tutorial Facility

Since the introduction of the segway, Have you ever wondered where all
DIYers have been building their own those magical Arduinos come from?
self-balancing transportation devices. Surprise! They come from Torino,
Before you go off and build a full-size Italy. The video below will walk you
version, here's a simple project to help through the PCB manufacuring and
you learn the basics of control system assembly process. A quick history
design (the... lesson for you: this revolutionary...
Epic Doomsday Device Build Start your Car from Afar using
Arduino
Inspired by science fiction movies, this
DIYer created a doomsday device prop This DIYer had a 1st generation iPhone
complete with pull-pin, epic LED lying around, so he decided to put it to
lighting, and countdown timer. When good use. You can use any phone to
his microwave broke, he salvaged its accomplish this, even a $10 prepaid
innards to build this device. Overall, phone. An SMS to the iPhone goes
this project is a... through an Arduino ...
iPad App Blends Virtual Warfare &
Real-World Characters DIY Dazzling Laser Light Party Ball

This project is a basic proof of concept Here's a challenge for you: stuff over a
dozen red lasers and a rechargeable
of creating a "physical" video game
lithium ion battery inside a tennis ball.
using real-world characters. For this
Oh, and also a microcontroller and
project, a tank and robot duke it out
infrared port to control patterns from
with the help of an Arduino, iPad, and
afar. To make...
wifi. Essentially, when the tank's
targeting system... DIY Capacitive Touch Made Easy
Epic DIY Replica of Disneyland's
Electrical Light Parade Capacitive touch allows electronics to
sense when your finger is within a few
Every night at Disneyland, an Electrical millimeters of a surface to simulate a
Light Parade illuminates the darkness button "press" without the use of an
by featuring vehicles draped in a actual mechanical button. You'll notice
fantastic array of multicolored lights. the feature on the new Xbox 360 Slim.
One enthusiastic fan (who had Here's a...
already...
DIY Doorbell Video Security System Psychedelic Sphere of LEDs

Ever wonder who comes to your door The friend of a performer created this
during the day while you're gone? optical light display of 256 LEDs that
Here's a simple DIY project to answer can be programmed to create some
that question. Every time someone fascinating displays. The ball has 16
rings your doorbell, you’ll receive a text panels, which are not only the circuit
message containing a photo of the boards, but the structural support of
person. The system... the ball as well....
How to: Build a Giant POV Light
Incredible RGB LED Cube Tutorial
Tube
We've seen our fair share of LED light
With this POV light painter, you can
cubes before, but what makes this one
paint the town red or any other color
different is its incredibly detailed, step-
that suits your fancy. The LightScythe
by-step tutorial. The creator of this
is a 2-meter long POV tube made up of
light show previously made a one color
multi-color LED strips. POV stands for
LED light cube and shared the trials,...
describes...
Interactive Magic Mirror Controlled Electric Mountain Board with
via Android Wireless Control

We've seen some neat interactive As though an electric mountain board


mirror projects in the past, and here's isn’t cool enough for zipping around,
one which integrates bluetooth and this industrious inventor just added
multiple external devices. It's control- wireless control. We previously
led by IOIO (pronounced yo-yo), an featured Andres Guzman's mountain
Arduino-type microprocessor. It runs board which, at the time, was
several different apps... controlled via a PlayStation...
Impressive Tree Climbing Robot Arduino Wireless Animatronic Hand
Project
This DIY build uses pointed feet and
moves up the tree something like an This DIY Robotic hand mimics the
inchworm. Two, separated platforms motions of a human counterpart. The
are connected toa retractable spine that controls lie in a special glove which has
alternately grip the tree to move the flex sensors wired to an Arduino which
device upward. The device has an is connected to an XBee radio which
Arduino Uno for a brain... wirelessly interfaces with a computer
DIY Sonar for the Blind and controls the...
Arduino Powered, Chess Playing
This is one of those simple concepts Robot
which makes you think "Why didn't I
think of that?" The entire sonar unit is Arduino DIY-ers have built another
attached to a wearable glove and as the superb project. This chess board looks
user sweeps their arm back and forth, like any chess board except the chess
the device can detect anything from pieces are metallic and moved by a
one inch to 10 feet... magnet below the board controlled by a
Fully Autonomous Arduino Airsoft robotic arm. The microcontroller
Tank controls stepper motors and...
DIY LED Matrix Pong Clock
This fully autonomous airsoft tank uses
an Arduino along with a Lego NXT Don't Miss: Dirt Cheap, Epic DIY Pong
module to control motor and detect Clock This neat LED clock mimics the
targets. It navigates its surroundings display of the Pong video game to show
using an ultrasonic sensor to avoid the time as two paddles play back and
obstacles. Fitted... forth. The game plays on automatically
Arduino Device Mutes Celebrities and updates the time by scoring a
on TV point. It also...
DIY Open Source 'Paper Thin'
Learn how to program the Arduino to Multitouch Trackpad
turn it into an intelligent "celebrity
screener" using some keywords and OpenMT project is an Open Source
Arduino. The appropriately named initiative that has the noble aim of
"Enough Already" mutes the TV by helping out DIYers who want to create
decoding the closed captioning their own thin and flexible pressure
transcription track, which is ... sensitive multi-touch panel. Unlike lot
Use Google Voice Search through of camera based multi-touch projects
Arduino & Bluetooth we have seen, The Open...
Customize your Car's Electronics
With the launch of Google’s new Voice using Arduino
Search feature on the Chrome browser,
you can trust the DIY community to Vehicles these days come with a lot of
come up with some cool hacks. The electronics but you can learn from our
Verbalizer is an Open Source collection of car hacks to add your own
development board based on Arduino custom features. For example, take
which wirelessly communicates with... the Jeep Wrangler and put in a couple
DIY Bluetooth Camera Shutter of Arduinos, an LCD display, shift s,...
Release Arduino-Based Snail Mail Alert for
Your Smartphone
If you're into photography, you may be
wishing for a way to activate your Since we're so focused on our email
camera shutter from a distance. and text nowadays, we often neglect to
Making use of an Arduino Uno bluetooth check our snail mail. Now, with the
transceiver and an Android help of an Arduino, you can easily setup
smartphone, this DIYerallace created a notifications and alerts for just about
fairly simple way to send signals... anything. This project uses an Arduino,
DIY LED Glass Wall a...
DIY New Year's Eve LED Ball
BlinkM is a smart LED that displays
various shades of light effects by With the New Year rapidly approaching,
fading or changing color. You can buy learn how to build this LED New Year's
them for about $15, but this DIYer ball to add some unique and superb
assembled his own for about $4 to decor to your party. It uses six high
build an LED wall. The result is this power RGB LED arrays, six LED
11x11 matrix of light to an I2C... controllers, and an Arduino. The ball
DIY Sound Localization Sensor itself is bade from about...
with Arduino Build a Glossy Black Word Clock
with Arduino
We have covered loads of motion
detection projects, but what about For a unique addition to your living
sound? A sound localization sensor space, the word clock is a novel new
helps you to identify the location or way to tell the time. The inspiration
origin of a detected sound and find out for this black and sleek clock comes
its direction and distance. Our ears do the previously mentioned DIY Arduino
it for us, but building an... Word Clock. Yes, it's more difficult...
Incredible Light Painting with an Build an LED Cube Using an
Arduino Arduino

Long exposure shots can create some Learn how to make a stunning LED
pretty interesting effects. Light cube using an Arduino. Although the
painting takes this idea and morphs it image above looks a bit plain, you can
into innovative examples of control the colors and patterns of the
‘illuminated’ art. If you experiment with 64 LEDs. Also, if you're looking for a
different light sources and treat them unique soldering challenge, this is a
as ‘brushes’, the... great projec to start...
DIY Dorm Room Keypad Lock with Control Electronics using an
Arduino Arduino and Infrared LEDs

Who doesn't want a unique way to open Learn how to use infrared LEDs to send
their dorm room? We've seen loads of signals to your TV and other electronic
different ways, including RFID locks and devices via an Arduino. First, the
even laser surveillance security Arduino will interpret IR pulses sent
systems. Don't Miss: Our collection of out by the TV remote, save them to
DIY Security projects We've seen a memory, then "replay" them upon the
similar example of... user's command. ...
Back to the Future 'Auto-Lace' Superb DIY Retro Lighting Design
Sneakers
Sometimes, your inventions don't have
If the Nike Wiis aren't an extreme to have a practical function. Take for
enough shoe mod for you, check out example, this epic looking decorative
these self-tying Power Laces. Inspired lamp. Dubbed 'Coachella', this eye-
by the Back to the Future films, the catching device was named for an
Power Laces Prototype features a motor annual music and arts festival.
and an Arduino microcontroller. When Although it has a steampunk...
your foot hits the... Wi-Fi Enabled Coil Gun with iPhone
DIY Fiber Optic Fabric using RGB App
LEDs
We've covered loads of airsoft, nerf,
By weaving fiber optic strands as if and gun projects, and here's another
they were yarn, this team of DIYers superb pr0ject to add to our collection.
created a fiber optic "fabric" of sorts It's a coil gun placed on a turret which
which features a few dozen RGB LEDs is triggered via Wi-Fi. Additionally, it
and reacts to the outside world via uses remote targeting and shooting
Twitter. Currently, they're raising... through...
Secret Knock Detecting Door + Control a Robot Arm over the Web
Mechcanical Iris = Awesome! using Arduino

Here's a superb DIY project which We've seen some neat internet-based
comes two outstanding hacks we've remote control projects including the
covered previously. It's a steampunk Ethernet Enabled Christmas Bells
mechanical iris combined with the project. Here's another neat project to
secret knock detecting door to create add to our collection. The Orbduino is a
this unique garage door opener. The robotic arm which can can be controlled
brassy mechanical iris hides... entirely...
Laser Tripwire takes a Photo, DIY Arduino Helicopter with
Uploads it to Twitter Obstacle Avoidance

The laser tripwire project is superb Here's another neat Arduino helicopter
project for both experienced and brand project featuring four infrared sensors
new Arduino enthusiasts. It combines and one ultrasonic sensor for obstacle
both hardware, software, and avoidance. We've seen an Arduino
communicating between the two. The powered helicopter with four rotors and
simple project captures a snapshot of even one with six rotors too. This
an unauthorized entry and... quadcopter,...
Incredible DIY Daft Punk Helmet Twitter Based Mood Light using
Project Arduino

We've covered some downright superb By monitoring a stream of tweets


daft punk projects in the past, but this coming through Twitter, this mood light
helmet is one of the best so far. It took changes color based upon the
17 long months to build and was frequency of words such as "angry,
documented fairly well in the project's happy, or sad." The system uses an
build notes. The video below is a great Arduino which collects data from
walkthrough of... Twitter using a WiFly module. After...
Giant LED Matrix Controlled via the How To: DIY Arduino Balancing
Web Surface

What do you get when you combine Here's another superb Arduino project
five LED enthusiats, a free weekend, an using just a few simple components
Arduino and hundreds of LEDs? The (which are available in our DIY projects
LED wall, which is a massive pegboard store). It's a pretty simple setup using
(size - 53" x 31") fitted with a matrix of a laptop, webcam, servos, and an
350 LEDs. The matrix of LEDs can be Arduino to monitor and balance a ball
controlled by... bearing on a flat...
Add Internet to your Arduino (for Build a Self-Balancing Segway
half the price!) Skateboard

Imagine being able to control your This low cost self-balancing skateboard
Arduino projects from anywhere... Yes, project is a mix between the Segway-
this is possible by simply adding an like scooter and Electric Segway
ethernet shield to your Arduino, but Skateboard we've covered before. Add
you'd have to sacrifice the an Arduino microcontroller, a motor,
programming board. Instead of and some sensors to a standard
sacrificing the entire Arduino, just... skateboard and you get a...
100% Software-Based Arduino Arduino Powered Remote Control
Simulator! Lawnmower

Some software developers don't get We've seen loads of great Arduino
into hardware because they enjoy the projects and even a few RC lawn
instant gratification of seeing their mowers, but we've never seen the two
work displayed on screen. They don't combined until now. This project
want to fuss with soldering or hooking walks you through the entire build
up components. Now, however, they process step by step and includes a
can't complain since... thorough guide for creating remote...
Arduino Based LED Alarm Clock HacknMod's Most Popular DIY
Projects of 2009
Making an accurate microcontroller
clock can be a little tricky but you can Another year behind us! HacknMod
learn how it's down by building your will turn 4 this June and we're still
own Arduino alarm clock using LED growing strong. We've nearly trippled
Matrices and a coffee can housing. All our traffic in the last year and we're
of the electronics are based on glad to have you along for the ride.
Wisedino (Arduino with timing... Oh! You can show your HacknMod...
Twitter Controlled LED IKEA Table Ethernet Enabled Christmas Bells -
using Bluetooth Create a Tune in Real Time!

An ever-changing LED display makes Here's a superb project which allows


for an interesting show. An LED table you to create a Christmas jingle using
powered by tweets makes the light a flash interface in your browser.
show that much more exciting. This Then, you're redirected to a webcam
Twitter-enabled device builds on a where you can see your tune played in
previous project which had uses 81 real time! Awesome! The project
RGB LED modules in a 9x9 grid... uses the Arduino...
War Torn District 9 PC Case Mod DIY Batman Signal Spotlight using
Arduino
District 9 was a popular film which has
spawned numerous DIY project such as We've covered tons of batman projects
the District 9 rifle we featured on Hack N Mod previously and here's
previously. The latest we have come another superb build. The final result
across is the superb PC case mod looks fantastic, allowing you to project
above which started with a stock ATX any image you'd like using an Arduino
case which was fabricated with... and RGB LEDs. Full project build...
How to: LED Hard Drive Clock using iPhone Controlled Tank using
Arduino Arduino

Ah...the Arduino. The super powerful, Here's a neat project featuring an


easy to program microcontroller brings iPhone controlled tank which has an
us another fantastic DIY project. Arduino for a brain. The data is
We've seen a few hard drive LED clocks transferred wirelessly to Processing and
in the past, but this one looks then to the Xbee wireless serial
outstanding and is easier to create. It communication module. Oh, and did
uses POV... we mention it's solar...
Interactive, Portable "Magic Make a DIY Sonar System using
Mirror" Arduino Project Arduino

Using an old suitcase, a laptop, X10 Learn how to build a robot with built in
home automation parts and an Arduino visual sonar using sensors, an arduino,
set-up, this guy managed to build a and Processing. The author supplies
fully-functional magic mirror suitcase. the code for Processing, an easy to
Basically, it's an interactive mirror learn programming tool for
which reacts to it's environment using visualization. Processing gathers the
various... sonar data from the...
Superb Reverse-Geocaching Gift Make a DIY Arduino Word Clock
Idea
Find out how to build your own 'Word
Geo-Caching works by finding a Clock' using the power of Arduino. It's
"treasure" at a certain longitude and definitely unique and eye-catching clock
latitude. This box on the other hand which literally tells you the time unlike
opens only when it is brought to a your standard digital clock. The
certain location so it's perfect to give to instructions are really easy to
someone as a surprise gift or romantic understand and well...
occasion. We've... Secret Knock Detecting Door Lock
Arduino Powered Helicopter with
Four Rotors Here's a fantastic project using an
arduino, a motor, and a piezo sensor
We've seen loads of superb Arduino which allows you to both record and
projects, but few which involve complex detect knocking patterns to unlock a
aeronautics. Here we have the door. The video below does a fantastic
"quadrocopter" - an arduino powered, job of demonstrating how it works: It's
remote control helicopter with four completely mobile...
rotor blades. It's a superb build GhostBusters DIY Halloween
overall with the finished... Costume (Arduino Powered)
Exercise Bike Xbox 360 Controller
For your DIY Halloween costume this
Need help with your New Year's year, Learn how to make your own
resolution? Burn off the calories while Ghostbusters Proton Pack equipt with
playing your favorite racing games. red and green lasers (above). There is
The faster you pedal, the faster your a full tutorial on how to build your own
vehicle travels. Learn how to build along with a detailed photogallery of
your own Excite Bike video game the proton...
controller. The... DIY Football Hero Using the
Touchpad Built With an Arduino Arduino
and Infrared
We've seen plenty of guitar hero
We've seen a few multitouch projects projects and even a laser harp hero,
including a 5 minute dirt cheap pad and but now we have a football hero
the more complex flexible multitouch (Soccer for us Americans). Made for
display. This multi-touch device (the the music industry, the director pulled
TRKBRD) is basically is a finger tracking together a team of DIYers and football
sensor. By the looks of it, it does... players to make the game a...
Top 5 Custom LED Beer Pong Cornell's Newest Microcontroller
Tables Projects

Beer Pong...The sport of choice of Cornell has released their latest batch
college students. While we would of microcontroller electronics projects
never, ever support over consumption ranging from a 3D scanner to infrared
of alcohol, we must admire the laser harps. All of the projects use
engineering and creativity of these Atmel ATmega chips (the same chips
outstanding illuminated tables. If Arduino uses) to accomplish their
you're new to LEDs, check out... tasks. All 42...
Incredible $100 Arduino-Based CNC DIY Midi Drums using an Arduino
Machine
Using some piezo sensors, this DIYer
CNC machines allow you to mill just created some DIY midi drums for the
about any shape or design you'd like Arduino. All it takes is a handful of the
using X, Y and Z axis. Typcailly they sensors and a few resistors to put
cost serveral thousand dollars, but this together. He's already assembled the
man built his own CNC machine and soruce code, parts kit and detailed
wrote up a tutorial on how you can ... instructions so you...
The Webcycle for the Internet Top 30 Wiimote Hacks of the Web
Junkie
Nintendo's Wii remote (or wiimote) has
Is your desire/addiction the web strong proven to be an incredibly hackable
enough to pull you away from the device. This is mainly because of its
information superhighway onto an bluetooth connectivity and assortment
exercise bike in order to keep you of sensors which make it a great
plugged in? The webcycle is a bicycle interface for controlling DIY electronics
which controls your internet speed ... projects. So, for...
Remote Controlled Camera Trigger New Arduino Mega & Interview
Arduino Project with Tom Igoe

Controlling the shutter of a camera As you should know by now, Arduino is


remotely has several uses. The most a fantastic microcontroller platform
important catching a photo at exactly featuring a simple data input and
the right time. Many top of the line outputs along with an easy to learn
digital cameras come with remotes. programming environment. ‚ Now the
But what if you wanted to build one for boys over at tinker.it have come out
your average... with the Arduino's big...
Make a DIY Open Source PSP with How to Connect Multiple Arduino
an Arduino Microcontrollers with I2C
Here’s another fantastic tutorial from Use I2c to connect several Arduinos
our Open Source Arduino master, Matt. together to combine their power. ‚ I2C
See all of our Arduino projects. In the stands for the Inter Integrated Circuits
spirit of the open source gameboy (#5 and ‚ is one of the best Multi Master
on the Top 40 Arduino Projects of the Serial Computer Bus technologies used
Web), Matt's latest project uses a few in different systems to connect the...
Arduino... Make your Own 21st Century
Build a Sensory Robot with Arduino Sundial
and Processing
If you thought sundials were a thing of
An infrared proximity sensor on a robot the past, think again. The only
can give it eyesight to make sense of difference is that this time around
the real world. Cory Barton has used an things are much more high tech. Over
inexpensive Sharp distance sensor, an at 5volt there is a fantastic tutorial
Arduino and the open source Processing demonstrating how to build your own
language to build his robotics... laser sundial. The great...
RFID Enabled Mp3 Player Hack Arduino & NunChuck create Real
using Arduino Time DIY Pan & Tilt Camera

This is a fantastic, unique project which Learn to create your own DIY pan and
uses RFID tagged pictures to select and tilt camera which is controllable (in
play album. The system utilizes the basically real time) by using a Wii
easy to use arduino microcontroller nunchuck and the Arduino. By moving
platform along with an RFID reader and and rotating the nunchuck, two servo
is also ethernet enabled. See more ... motors match your movements
Incredible, Colorful RGB LED Light allowing you to control your...
Strip Twitter Robot makes Popcorn,
starts a Movie
This incredible, RGB LED light strip
allows you to address each and every Imagine this... On your way home from
LED individually, creating splendid color work, you send the Twitter command.
patters. If you were challenged by the Your robot reads the command, waits
Open Source POV Bicycle Wheel for a bit, pops some corn and starts a
Animation project we covered last week movie. ‚ Build your own twitter
or were thinking of... powered...
DIY Internet Enabled Arduino Magnetic Levitation using the
Messenger Arduino

Is there anything that the Arduino This great project uses a soleniod's
microcontroller can’t do? Just look at magnetic coil, a Hall sensor, and
the vast assortment of applications in Arduino to perfectly levitate a magnet.
Top 40 Arduino Projects of the Web The Hall sensor detects the field of the
we've covered earlier. Here's another permanent magnet and uses that
awesome arduino project by Hans information to modulate the magnetic
Scharler. Hans uses an... field of the...
Hack Twitter to Control Electronics Make a Mini Segway Using the
Arduino
Twitter has become one of the most
popular social media sites, but its uses Using the Arduino, and a couple LEGO
extend far beyond the world of the motors and sensors, build your own self
internet. By, interfacing physical balancing segway-like robot. We
hardware with Twitter these projects recently saw a similar balancing robot
have created fantastic hacks allowing using a far more simple design. There
electronics to react to... aren't too many details posted about
Automatic Head Tracking with the...
Arduino RC Car Controlled Via the Web

We've seen some infrared head Strap on a standard Linksys router to


tracking before and now it has been an RC car and you can wirelessly
accomplished using the Arduino. The control it through the web from up to
demo video above shows its 1640 feet away. It's also equipt with a
interactivity with a flight simulator. webcam and operates through a brain
Some modification to the code... comprised of PIC microcontrollers or
Use the Wii and iPhone to Control the Arduino's...
an RC car DIY iPhone Controlled RC Car

This fantastic video demonstrates the Combine the power of the Arduino with
use of the wiimote, wii balance board, the iPhone and you're bound to end up
and iPhone to control an RC car. For with an outstanding project. Learn how
data transmission, an Arduino is used to control an RC car using the
to communicate between devices. multitouch and tilt sensing features of
Learn how to do this yourself in a ... the iPhone. The data is basically sent
Make a UAV Spyplane Using the from the iPhone...
Arduino DIY Magnetic Strip Card Decoder

With a handful of servos, battery pack, Using a magnetic strip reader


GPS unit, and the Arduino programmer incorporated with, of course, an
you can build your own unmanned Arduino, you can scan what those strips
aerial vehicle (UAV) drone. It's an and see the data stored on it. ‚ A bit
absolutely outstanding project more hacking and you could also write
complete with a detailed, 22 page data back onto the card and create
tutorial to guide you through the... duplicates as well. If...
Gmail and RSS Notifiers using the Website Visitor Blinker
Arduino
I already wrote my first Arduino
By programming the Arduino and program. It's really simple but fun :)
having it communicate to the web What it does is that every time
through your computer's serial port, somebody visits my website, a LED
you can create your own physical light blinks once in my room, and I get
notifier which alerts you when you a warm feeling of a visitor ;) You can
receive email or when an RSS news... test it by opening a new...
Electronics Filled, Arduino Powered Create Techno with a Laser Harp
Room
Ever wanted to make your own techno
Using sensors, an old PC, LCD screen, music, but are tired of the standard
lots of sensors and few X10 home midi controller? Well, you could build a
automation parts, one man built a mini- harp (of all instruments) out of lasers
house in his backyard packed full of and then play it by breaking the beams
electronics. The house also features a of light. See how it's done. The harp is
flickering LED fireplace and a... connected...
Arduino Keypad Security System Make an LED Gmail Notifier

Using the endless powers of the Using an Arduino, you can program any
Arduino, one man built a keypad entry device to turn on, illuminate, spin, fly,
security system using the Arduino and whatever you want when you receive
some servo motors. The project also an email. In this tutorial, the author
uses a speaker to verify the door is used an LED Cube with an embedded
locked. ‚ Luckily, the project has RBG color cycle. If you don't happen to
detailed build... have a glowing...
Рюмик С. М.

Микроконтроллеры DUINO.
Сборка 1…7

— ж. "Радиоаматор", 2010, № 2…9, 11. — Цикл статей.

Считается, что каждые 5-7 лет радиолюбитель должен проходить заочные курсы повышения
квалификации. Зачем? Чтобы не отставать от жизни и следить за новостями. Чтобы держать себя в
тонусе и быть компетентным. Чтобы разбираться в свежих технологиях и не пасовать перед
знатоками. Наконец, чтобы не ослабевал интерес к любимому хобби.
Очередной цикл статей будет посвящен одному из новомодных течений в микроконтроллерной
технике, получившему большую популярность благодаря проекту «Arduino».
Листинги, НЕХ-коды и другие дополнительные материалы размещены на сайте журнала
"Радиоаматор" http://www.ra-publish.com.ua/

СОДЕРЖАНИЕ

Сборка 1 Сборка 5
Постановка задачи Тонкости тестирования и поиска неисправностей
Философия платформы «Open» Полный отказ «Arduino»
Проект «Arduino» Частичный отказ «Arduino»
Особенности «Arduino» Тестовый стенд для проверки «Arduino»
Структурные схемы Программное обеспечение стенда
Электрические схемы Среда визуального программирования HiAsm
Если внимательно приглядеться...
Сборка 6
Сборка 2 Философия разработок на основе «Arduino»
Функциональная схема базового модуля «Arduino» «Гаджеты»
Состав сигналов «Arduino» Дверные звонки
Конструкция «Arduino» Внешний вид дверных кнопок
Разводка печатной платы Электрические схемы
KiCad: порядок действий Пояснения к листингам
Важный нюанс
Сборка 3
История короля Ардуина Сборка 7
Arduino-совместимые проекты Измеритель времени «дребезга» контактов
Среда программирования «Arduino-0018» Алгоритм функционирования программы «Knopka.exe»
«Arduino» и WinAVR Программа для прошивки МК ATmega168
Калибровка измерителя времени
Сборка 4 Подведение итогов
«Беспаечные» платы
Программа «Fritzing»
Логика работы управляемого светофора
Алгоритмический язык Wiring
Структурная схема типовой Wiring-программы
Рюмик С. М.

Конструкции с Arduino.
Часть 1…5

— ж. "Радиоаматор", 2011, № 3, 6, 8, 10, 12. — Цикл статей.

«В одну реку нельзя войти дважды» - так древнегреческий философ Гераклит образно охаракте-
ризовал простую житейскую мудрость. В нашем случае первый подход к тематике «Arduino»
состоялся в 2010 г. Второй подход (нынешний) будет отличаться от первого большей практич-
ностью. Иными словами, теоретический курс пройден, наступило время для разработки и показа
конкретных конструкций.
Платформа Arduino находится в постоянном развитии. Появляются новые разновидности плат,
совершенствуется программное обеспечение, генерируются свежие идеи относительно применения
Arduino в повседневной практике.
Но для начала следует вспомнить о «средствах производства». На сегодняшний день официаль-
ная линейка «Arduino» состоит из 12 фирменных модулей: Uno, Uno SMD, Nano, Mini, LilyPad, Fio,
Mega-2560, BX Pro, Pro Mini, Serial, Serial Single-Sided. Любой из них можно использовать для
экспериментов, хотя желательно, чтобы микроконтроллер (МК) был посвежее, в частности,
ATmega328P.
Собрать конструкцию с применением микроконтроллерного модуля Arduino - это полдела. Не
менее важно разобраться в методике получения результата, исследовать разные сферы
применения, научиться не останавливаться на одном варианте решения проблемы.
Листинги, НЕХ-коды и другие дополнительные материалы размещены на сайте журнала
"Радиоаматор" http://www.ra-publish.com.ua/

СОДЕРЖАНИЕ

Часть 1 Часть 4
Минимум миниморум Что такое Japanino?
Минимальный «Arduino» Arduino и резистивные датчики
Оптоизолированный «Arduino» Знакопеременное напряжение

Часть 2 Часть 5
Arduino UNO Ассемблер, Си или Wiring?
Разновидности UNO Среда программирования Scratch для Arduino
Аналоги UNO Порядок действий
Порядок установки программного обеспечения Электромузыкальные инструменты на основе Arduino
Тестирование UNO Список использованных источников и литературы
Arduino и терменвокс

Часть 3
Сигнализатор землетрясений
Проект «The Seismic Reflector»
Модельные эксперименты с программой «Quake»
Управляющая программа на базе HiAsm
GSM-сигнализатор землетрясений
Massimo Banzi. Getting Started with Arduino
— O’Reilly Media, Inc., 2008. — 128 с.: ил.
ISBN 978-0-596-15551-3

Массимо Бан и. Знaкомство с Arduino

Пер. с англ.
Интернет-ресурс: http://arduino.shopium.ua/pages/arduino-getting-started/

От переводчика:
• Если вы доселе не держали в руках Arduino, вам стоит это прочесть!
• Текст взят из файла Getting Started with Arduino.chm, гуляющего по интернету.
• В книге описана работа с платой Arduino Duemilanove, но вы вожете применять примеры с любой
из плат Arduino, просто внимательно читайте описание выводов вашей платы.
• Перевод не литературный, не было стилистической правки, возможно шероховатости. Если вы
хотите улучшить текст, присылайте исправления и замечания, буду рад!
От автора:
Эта книга была создана для того чтобы начинающие поняли преимущества, которые они могут
получить от изучения возможностей применения, а также для того, чтобы они поняли её
философию.
Эта книга была написана для "настоящих" пользователей Arduino: дизайнеров и художников.
Поэтому она пытается объяснять вещи таким образом, который может свести некоторых инженеров
с ума. Вообще-то, один из них назвал вступительные главы моего первого проекта отстоем. В этом-
то и дело. Посмотрим правде в глаза: большинство инженеров не в состоянии объяснить то, что они
делают другим инженерам, не говоря уже об обычных людях. После того, как Arduino начала
становиться популярной, я понял что экспериментаторы, люди с хобби и хакеры всех видов начали
использовать её для создания прекрасных и безумных вещей. Я понял, что вы все художники и
создатели в собственном праве, так что эта книга для вас.

СОДЕРЖАНИЕ

Глaвa1. Введение 5. Продвинутый ввод-вывод


1.1 Целевaя aудитория 5.1 Пробуем другие дaтчики включения-выключения
1.1.1 Дизaйн взaимодействия - это дизaйн любого опытa 5.1.1 Выключaтели
взaимодействия 5.1.2 Термостaты
1.2 Что тaкое физические вычисления? 5.1.3 Мaгнитные переключaтели, тaкже известные кaк
"герконы"
Глaвa 2. Путь Arduino 5.1.4 Ковровые переключaтели
2.1 Прототипировaние 5.1.5 Дaтчики нaклонa
2.2 Сaмоделкины 5.2 Упрaвление светом при помощи ШИМ
2.3 Смешивaние 5.3 Использовaние фотодaтчикa вместо кнопки
2.4 Искaжение схем 5.4 Анaлоговый ввод
2.5 Хaки клaвиaтуры 5.5 Попробуйте другие aнaлоговые дaтчики
2.6 Мы любим мусор! 5.6 Последовaтельнaя связь
2.7 Хaкaйте игрушки 5.7 Упрaвление большими нaгрузкaми (электродвигaтели,
2.8 Сотрудничество лaмпы и тому подобное)
5.8 Сложные сенсоры
Глaвa 3. Плaтформa Arduino
3.1. Аппaрaтное обеспечение Arduino Глaвa 6. Рaзговоры с облaкaми
3.1.1 14 контaктов цифрового вводa-выводa (контaкты 0-13) 6.1 Цифровой вывод
3.1.2 6 контaктов aнaлогового входa (контaкты 0-5) 6.1.1 Цифровой вывод
3.1.3 Контaкты aнaлогового выходa (контaкты 3, 5, 6, 9, 10 и 6.1.2 Анaлоговый вывод
11) 6.1.3 Цифровой ввод
3.2 Интегрировaннaя средa рaзрaботки (IDE) 6.1.4 Анaлоговый ввод
3.3 Устaновкa Arduino нa вaш компьютер 6.1.5 Последовaтельнaя связь
3.4 Устaновкa дрaйверов: Macintosh 6.2 Плaнировaние
3.5 Устaновкa дрaйверов: Windows 6.3 Прогрaммировaние
3.6 Идентификaция портa: Macintosh 6.4 Сборкa схемы
3.7 Идентификaция портa: Windows 6.5 Кaк собрaть лaмпу

Глaвa 4. Знaкомство с Arduino - теперь точно! Глaвa 7. Устрaнение неполaдок


4.1 Анaтомия интерaктивного устройствa 7.1 Понимaние
4.2 Сенсоры и aктюaторы 7.1.1 Понимaние
4.3 Мигaние светодиодом 7.1.2 Упрощение и рaзделение
4.4 Передaйте мне пaрмезaн 7.1.3 Исключение и уверенность
4.5 Arduino не остaновить 7.2 Проверкa плaты
4.6 Нaстоящие сaмоделкины пишут комментaрии 7.3 Проверкa схемы нa мaкетной плaте
4.7 Код, шaг зa шaгом 7.4 Выделение проблемы
4.8 Что мы будем создaвaть 7.5 Проблемы с IDE
4.9 Что тaкое электричество? 7.6 Кaк получить помощь онлaйн
4.10 Использовaние кнопки для упрaвления светодиодом
4.11 Кaк это рaботaет? Приложение A. Мaкетнaя плaтa
4.12 Однa схемa, тысячa применений Приложение B. Мaркировкa резисторов и конденсaторов
Brian W. Evans

Arduino Programming Notebook


Блокнот программиста Arduino

— перевод с англ. В.Н. Гололобова — 40 с.

Интернет-ресурс: http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf

Этот блокнот следует рассматривать, как удобное, лёгкое в использовании руководство по


структуре команд и синтаксису языка программирования контроллера Arduino. Для сохранения
простоты, были сделаны некоторые исключения, что улучшает руководство при использовании
начинающими в качестве дополнительного источника информации - наряду с другими web-сайтами,
книгами, семинарами и классами. Подобное решение, призвано акцентировать внимание на
использовании Arduino для автономных задач и, например, исключает более сложное
использование массивов или использование последовательного соединения.

CONTENTS

Предисловие while
структура do...while
setup() цифровой ввод/вывод
loop() pinMode (pin, mode)
функции digitalRead (pin)
{} фигурные скобки digitalWrite (pin, value)
; точка с запятой analogRead (pin)
* ... */ блок комментария analogWtite (pin, value)
однострочный комментарий время и математика
переменные delay (ms)
объявление переменных millis()
границы переменных min (x, y)
byte max (x, y)
int случайные числа
long randomSeed (seed)
float random (max)
массивы random (min, max)
арифметика последовательный обмен
смешанное присваивание Serial.begin (rate)
операторы сравнения Serial.println (data)
логические операторы приложение
константы цифровой выход
true/false цифровой ввод
high/low сильноточный выход
input/output pwm выход
управление программой вход с потенциометра
if вход от переменного резистора
if...else серво вывод
for
John Nussey

Arduino For Dummies


Arduino для «чайников»

— Publisher: John Wiley & Sons, Ltd., 2013. — 446 pages


— Series: For Dummies

ISBN-10: 1118446372
ISBN-13: 978-1118446379

Быстрый и простой способ, чтобы прыгнуть в захватывающий мир физических явлений. Начните
создание очередной крутой штуковины с Arduino и этой книги.

CONTENTS

Foreword Variables
Introduction Functions
About This Book Setup
Foolish Assumptions Loop
How This Book Is Organized Blinking Brighter
Icons Used In This Book Tweaking the Sketch
Where to Go from Here
Part II: Getting Physical with Arduino
Part I: Getting to Know Arduino
Chapter 5: Tools of the Trade
Chapter 1: What Is Arduino and Where Did It Come From? Finding the Right Tools for the Job
Where Did Arduino Come From? Breadboard
Learning by Doing Jump wires
Patching Needle-nose pliers
Hacking Multimeter
Circuit bending Using the Multimeter to Measure Voltage, Current, and
Electronics Resistance
Inputs Measuring voltage (in volts) in a circuit
Outputs Measuring current (in amps) in a circuit
Open Source Measuring resistance (in ohms) of a resistor
Measuring resistance (in ohms) of a variable resistor
Chapter 2: Finding Your Board and Your Way Around It Checking the continuity (in bleeps) of your circuit
Getting to Know the Arduino Uno R3
The Brains: ATmega328 microcontroller chip Chapter 6: A Primer on Electricity and Circuitry
Header sockets Understanding Electricity
Digital pins Using Equations to Build Your Circuits
Analog in pins Ohm’s Law
What about analog out? Calculating power
Power pins Joule’s Law
USB socket Working with Circuit Diagrams
External power jack A simple circuit diagram
Reset button Using a circuit diagram with an Arduino
Discovering Other Arduino Boards Color Coding
Official Arduino boards Datasheets
Contributed (Approved) Arduinos Resistor Color Charts
Shopping for Arduino
Official Arduino Store Chapter 7: Basic Sketches: Inputs, Outputs, and
Distributors in the United Kingdom Communication
Distributors in the United States Uploading a Sketch
Amazon Using Pulse Width Modulation (PWM)
Electronics distributors The LED Fade Sketch
Kitted Out: Starting with a Beginner’s Kit Understanding the fade sketch
Preparing a Workspace Tweaking the fade sketch
The Button Sketch
Chapter 3: Downloading and Installing Arduino Understanding the Button sketch
Installing Arduino Tweaking the Button sketch
Installing Arduino for Windows The AnalogInput Sketch
Installing Arduino for Mac OS X Understanding the AnalogInput sketch
Installing Arduino for Linux Tweaking the AnalogInput sketch
Surveying the Arduino Environment Talking Serial
The DigitalReadSerial Sketch
Chapter 4: Blinking an LED Understanding the DigitalReadSerial sketch
Working with Your First Arduino Sketch The AnalogInOutSerial Sketch
Finding the Blink Sketch Understanding the AnalogInOutSerial sketch
Identifying your board
Configuring the software Chapter 8: More Basic Sketches: Motion and Sound
Uploading the sketch Working with Electric Motors
Congratulate yourself! Discovering Diodes
What just happened? Spinning a DC Motor
Looking Closer at the Sketch The Motor sketch
Comments Understanding the Motor sketch
Declarations Changing the Speed of Your Motor
The MotorSpeed sketch Chapter 11: Get ting Clever with Code
Understanding the MotorSpeed sketch Blinking Better
Controlling the Speed of Your Motor Setting up the BlinkWithoutDelay sketch
The MotorControl sketch Understanding the BlinkWithoutDelay sketch
Understanding the MotorControl Sketch Taking the Bounce Out of Your Button
Tweaking the MotorControl sketch Setting up the Debounce sketch
Getting to Know Servo Motors Understanding the Debounce sketch
Creating Sweeping Movements Making a Better Button
The Sweep sketch Setting up the StateChangeDetection sketch
Understanding the Sweep sketch Understanding the StateChangeDetection sketch
Controlling Your Servo Smoothing Your Sensors
The Knob sketch Setting up the Smoothing sketch
Understanding the Knob sketch Understanding the Smoothing sketch
Making Noises Calibrating Your Inputs
Piezo buzzer Setting up the Calibration sketch
The toneMelody sketch. Understanding the Calibration sketch
Understanding the sketch
Making an Instrument Chapter 12: Common Sense with Common Sensors
The PitchFollower sketch Making Buttons Easier
Understanding the sketch Implementing the DigitalInputPullup sketch
Understanding the DigitalInputPullup sketch
Part III: Building on the Basics Exploring Piezo Sensors
Implementing the Knock sketch
Chapter 9: Learning by Example Understanding the Knock sketch
Skube Utilizing Pressure, Force, and Load Sensors
How it works Implementing the toneKeyboard sketch.
Further reading Understanding the toneKeyboard sketch
Chorus Sensing with Style
How it works Implementing the CapPinSketch sketch
Further reading Understanding the CapPinSketch sketch
Push Snowboarding Tripping Along with Lasers
How it works Implementing the AnalogInOutSerial sketch
Further reading Understanding the AnalogInOutSerial sketch
Baker Tweet Detecting Movement
How it works Implementing the DigitalReadSerial sketch
Further reading Understanding the DigitalReadSerial sketch
The National Maritime Museum’s Compass Lounge and Compass Measuring Distance
Card Implementing the MaxSonar sketch
How it works Understanding the MaxSonar sketch
Further reading Testing, Testing . Can Anybody Hear This?
The Good Night Lamp Implementing the AnalogInOutSerial sketch
How it works Understanding the AnalogInOutSerial sketch
Further reading
Little Printer Part IV: Unlocking Your Arduino’s Potential
How it works
Further reading Chapter 13: Becoming a Specialist with Shields and
Flap to Freedom Libraries
How it works Looking at Shields
Further reading Considering combinations
Reviewing the field
Chapter 10: Soldering On Staying current
Understanding Soldering Browsing the Libraries
Gathering What You Need for Soldering Reviewing the standard libraries
Creating a workspace Installing additional libraries
Choosing a soldering iron Obtaining contributed libraries
Solder
Third hand (helping hand) Chapter 14: Sensing More Inputs and Controlling More
Adhesive putty Outputs
Wire cutters Controlling Multiple LEDs
Wire strippers Implementing the AnalogWriteMega sketch
Needle-nosed pliers Understanding the AnalogWriteMega Sketch
Multimeter Tweaking the AnalogWriteMega sketch
Solder sucker Controlling Lots of LEDs by Shifting Out
Solder wick Implementing the shiftOutCode, Hello World sketch
Equipment wire Understanding the shiftOutCode, Hello World sketch
Staying Safe while Soldering Tweaking the shiftOutCode, Hello World sketch
Handling your soldering iron Doing more with the same cirduit
Keeping your eyes protected
Working in a ventilated environment Chapter 15: Multiplying Your Outputs with I2C
Cleaning your iron What Is I2C?
Don’t eat the solder! Assembling the I2C PWM/Servo Driver
Assembling a Shield Using the I2C PWM/Servo Driver
Laying out all the pieces of the circuit Understanding the I2C PWM/Servo Driver Sketch
Assembly Buying Servo Motors
Header pins Other Uses for I2C
Acquiring Your Soldering Technique
Building Your Circuit Part V: Sussing Out Software
Knowing your circuit
Laying out your circuit Chapter 16: Getting to Know Processing
Preparing your wire Looking Under the Hood
Soldering your circuit Installing Processing
Cleaning up Taking a look at Processing
Testing your shield Trying Your First Processing Sketch
Packaging Your Project Drawing shapes
Enclosures Changing color and opacity
Wiring Playing with interaction
Securing the board and other elements
Chapter 17: Processing the Physical World
Making a Virtual Button Friends, Colleagues, and Workshops
Setting up the Arduino code
Setting up the Processing code Chapter 19: Ten Great Shops to Know
Understanding the Processing PhysicalPixel sketch Shops in the United Kingdom
Understanding the Arduino Physical Pixel sketch SK Pang
Drawing a Graph Technobots
Setting up the Arduino code Proto-PIC
Setting up the Processing code Oomlout
Understanding the Arduino Graph sketch RoboSavvy
Understanding the Processing Graph sketch Active Robots
Sending Multiple Signals Shops around the World
Setting up the Arduino code Adafruit (U.S.)
Setting up the Processing code Arduino Store (Italy)
Understanding the Arduino SerialCallResponse sketch Seeed Studio (China)
Understanding the Processing SerialCallResponse sketch SparkFun (U.S.)

Part VI: The Part of Tens . Chapter 20: Ten Places to Find Parts and Components
RS Components (World)
Chapter 18: Ten Places to Learn More about Arduino Farnell (World)
Arduino Blog Rapid (World)
Hack a Day Digi-Key (World)
SparkFun eBay (World)
MAKE Maplin (U.K.)
Adafruit RadioShack (U.S.)
Bildr Ultraleds (U.K.)
Instructables EnvironmentalLights.com (U.S.)
YouTube Skip/Dumpster Diving (World)
Hackerspaces
Forum Index
Brock Craft

Arduino Projects For Dummies


Arduino проекты для «чайников»

— Publisher: John Wiley & Sons, Ltd., 2013. — 404 pages


— Series: For Dummies

ISBN-10: 1118551478
ISBN-13: 978-1118551479

Узнайте все удивительные вещи, которые вы можете сделать с Arduino.


Arduino – это плата, которую используют все: от ученых, программистов и аппаратных хакеров,
до художников, дизайнеров, любителей и инженеров для того, чтобы добавить интерактивности
объектам и проектам и экспериментировать с программированием и электроникой. Эта легкая для
понимания книга – идеальна для того, чтобы узнать больше об обширных возможностях Arduino.

CONTENTS

Introduction Reading parts placement diagrams


Understanding Sensing and Actuating
Why Arduino? Reading datasheets
Foolish Assumptions Understanding and using sensors
Safety and Arduino Projects Understanding and using actuators
How This Book Is Organized Making Projects Work
Part I: Getting Started with Arduino Projects Moving from your breadboard to your project box
Part II: Basic Arduino Projects Learning soldering basics
Part III: The Interactive Home and Garden
Part IV: Advanced Arduino Projects Part II: Basic Arduino Projects
Part V: The Part of Tens
The Companion Website Chapter 4: The All-Seeing Eye
Icons Used in This Book Selecting Your Parts
Building the Circuit
Part I: Getting Started with Arduino Projects Understanding How the Code Works
All in good time
Chapter 1: Exploring the World of Arduino Setting up the code
About Arduino The main event
Discovering Who Uses Arduino Stepping up and stepping down
Arduino in education Understanding How the Hardware Works
Arduino in the corporate world The Potential of a Potentiometer
Making and hacking communities
Understanding Microcontrollers Chapter 5: Making a Light Pet
Using tiny computers to do useful stuff Selecting Your Parts
Getting Started Building the Circuit
Understanding How the Code Works
Chapter 2: Setting Up Your Workspace and Tools Making moods
Preparing to Bui ld Cranking out the code
Setting up your workspace Blending light
Selecting Basic Tools Fooling your eyes with pulse-width modulation
Selecting and using your multimeter Testing the code
Selecting and using a power supply Upload and go
Understanding electricity and safety Tweaking it!
Working with breadboards, stripboards, and perfboards Understanding How the Hardware Works
Choosing Your Soldering Iron and Accessories
Selecting Project Boxes and Housings Chapter 6: Making a Scrolling Sign
Choosing Your Arduino or Arduino Kit Selecting Parts
Getting to know Arduino shields Building the Circuit
Setting Up Your Arduino on Your Computer Understanding How the Code Works
Installing the Arduino IDE Summoning a sprite
Installing drivers on Windows computers Animating sprites
Installing Arduino drivers on Linux Displaying scrolling text
Understanding How the Hardware Works
Chapter 3: Understanding the Basics Troubleshooting
Understanding Key Concepts Getting creative
Connecting your Arduino
Programming your Arduino using the IDE Chapter 7: Building an Arduino Clock
Extending your reach with libraries It’s About Time!
Powering your Arduino Selecting and Preparing Your Parts
Understanding Basic Electronics Assembling your RTC module
Voltage (V) Adding and testing your LCD display
Current (I) Displaying the time
Resistance (R) Adding your input buttons and a switch
Ohm’s Law Adding your alarm
So what?
Identifying Electronic Components
Reading schematic diagrams
Part III: The Interactive Home and Garden Selecting Your Parts
Building Your Project
Chapter 8: Building a Keypad Entry System Assembling and testing the GPS shield
Selecting and Preparing Your Parts Programming your data logger
Selecting an electric lock mechanism Testing your data logger
Prototyping your keypad and display Making the enclosure
Coding and testing your keypad Collecting and Plotting GPS Data
Adding and testing your relay Tracking your path
Assembling and Installing Your System Plotting your data

Chapter 9: Building an RFID Tag Reader Chapter 14: Building a Remote-Controlled Car
Understanding RFID Selecting and Preparing Your Parts
About passive RFID Building Your Detector and Drive
About active RFID Building your circuit on the breadboard
RFID frequencies and protocols Coding the detector
Building an ID-Innovations RFID Reader Reading your remote control codes
Selecting your parts Coding the drive motors
Assembling your RFID reader Testing the drive motors
Programming your RFID reader Building Your Chassis
Testing and Setting Your RFID Reader
Chapter 15: Building an LED Cube
Chapter 10: Building an Automated Garden Selecting Your Parts
Creating a Watering System Building Your Cube
Selecting Your Parts Assembling the LED matrix
Building Your System Fabricating the enclosure
Building your moisture sensor Programming Your Cube
Building your reservoir Variable declarations
Running the water supply Setup
Building the breadboard circuit The main loop
Coding, Calibrating, and Testing Using the LED Cube Pattern Designer
Defining the setup Part V: The Part of Tens
Running the main loop
Calibrating the sensor and flow rate Chapter 16: Ten Great Arduino Resources
Adding more valves Websites
Arduino.cc and related forums
Chapter 11 : Building a Tweeting Pet Door Fritzing
Selecting Your Parts Hack-a-day
Testing Your Circuit Instructables
Preparing Your Twitter Account Learn.adafruit.com
Crafting Your Code Make:
Specifying your tweets element14
Adding libraries for Ethernet and Twitter YouTube
Adding your program logic Books and eBooks
Modifying Your Pet Door Arduino For Dummies
The Arduino Cookbook
Chapter 12: Building a Home Sensing Station Making Things Talk
Building Your Sensor Probes
Selecting your parts Chapter 17: Ten Troubleshooting Tips
Building and testing your circuit Troubleshooting Your Hardware
Building your sensor probes Checking Your Connections
Building your sensor shield Confirming Your Power Is Correct
Creating a Xively Account Hunting for Odors and Hot Components
Programming Your Sensing Station Test Your Outputs on External Devices
Understanding the code Testing Your Digital Pins
Understanding the main loop Troubleshooting Your Software
Making sense of your sensor readings Checking Your Syntax
Using the Serial Monitor
Part IV: Advanced Arduino Projects Checking Your Inputs and Outputs
Using a Simulator or an Emulator
Chapter 13: Building a GPS Data Logger When All Else Fails ...
Understanding GPS
Simon Monk

30 Arduino Projects for the Evil Genius


30 проектов на Arduino для Злого Гения

— Publisher: McGraw-Hill/TAB Electronics — Series: Evil Genius


— 1 edition 2010 — 208 p. ISBN-10: 007174133X ISBN-13: 978-0071741330
— 2 edition 2013 — 224 p. ISBN-10: 0071817727 ISBN-13: 978-0071817721

Это руководство покажет, как программировать и собирать разнообразные проекты с платой


Arduino. Вы узнаете, как подключить плату Arduino к компьютеру, запрограммировать её, чтобы
создать свои собственные хитрые устройства.

CONTENTS

Introduction
6. Light Projects
1. Quickstart Project 14 Multicolor Light Display
Powering Up Seven-Segment LEDs
Installing the Software Project 15 Seven-Segment LED Double Dice
Configuring Your Arduino Environment Project 16 LED Array
Downloading the Project Software LCD Displays
Project 1 Flashing LED Project 17 USB Message Board
Breadboard Summary
Summary
7. Sound Projects
2. A Tour of Arduino Project 18 Oscilloscope
Microcontrollers Sound Generation
What’s on an Arduino Board? Project 19 Tune Player
The Arduino Family Project 20 Light Harp
The C Language Project 21 VU Meter
Summary Summary

3. LED Projects 8. Power Projects


Project 2 Morse Code S.O.S. Flasher Project 22 LCD Thermostat
Loops Project 23 Computer-Controlled Fan
Arrays H-Bridge Controllers
Project 3 Morse Code Translator Project 24 Hypnotizer
Project 4 High-Brightness Morse Code Translator Servo Motors
Summary Project 25 Servo-Controlled Laser
Summary
4. More LED Projects
Digital Inputs and Outputs 9. Miscellaneous Projects
Project 5 Model Traffic Signal Project 26 Lie Detector
Project 6 Strobe Light Project 27 Magnetic Door Lock
Project 7 S.A.D. Light Project 28 Infrared Remote
Project 8 High-Powered Strobe Light Project 29 Lilypad Clock
Random Number Generation Project 30 Evil Genius Countdown Timer
Project 9 LED Dice Summary
Summary
10. Your Projects
5. Sensor Projects Circuits
Project 10 Keypad Security Code Components
Rotary Encoders Tools
Project 11 Model Traffic Signal Using a Rotary Encoder Project Ideas
Sensing Light
Project 12 Pulse Rate Monitor Appendix: Components and Supplies
Measuring Temperature Suppliers
Project 13 USB Temperature Logger Starter Kit of Components
Summary
Simon Monk

Arduino + Android Projects for the Evil Genius: Control


Arduino With Your Smartphone or Tablet
Arduino + Android проекты для Злого Гения:
управление Arduino с помощью смартфона или планшета

— Publisher: Tab Books, 2011. —197 pages


— Series: Evil Genius

ISBN-10: 007177596X
ISBN-13: 978-0071775960

Эта книга покажет, как создать устройства Ардуино и управлять ими со смартфонов и планшетов
на базе Android. Даётся информация по Android (ADK), USB и объясняется, как использовать их с
основной платформой Arduino. А также методы связи между Android и Arduino, которые не требуют
ADK, включая звук, Bluetooth и Wi-Fi / Ethernet.

CONTENTS

Acknowledgments PART TWO. Home Automation


Introduction
7. Home Automation Controller
PART ONE. Android Peripherals The Sound Link Module
Android Software
1. Bluetooth Robot Internet Access
Construction Theory
Theory Summary
Summary
8. Power Control
2. Android Geiger Counter Power Control Electronics
Google Open Accessory Constructing the Power Control Module
Construction Adding It to the Home Automation Controller
Theory Setting Up Your Home
Summary Theory
Summary
3. Android Light Show
Construction: The Droid Accessory Base 9. Smart Thermostat
Construction: The Light Show Project Construction
Using the Project Using the System
Theory Theory
Summary Summary

4. TV Remote 10. RFID Door Lock


Construction Construction
Using the Project Using the System
Theory Theory
Summary Summary

5. Temperature Logger 11. Signaling Flags


Construction Construction
Using the Project Theory
Theory Summary
Summary
12. Delay Timer
6. Ultrasonic Range Finder Construction
Construction Theory
Using the Project Summary
Theory
Summary Appendix: Open Accessory Primer
Learning Android Programming
Arduino Programming
The Example
On the Arduino
Android
Conclusion
Simon Monk

Programming Arduino Next Steps: Going Further with


Sketches
Следующие шаги в программировании Arduino:
погружаемся в скетчи

— Publisher: McGraw-Hill/TAB Electronics, 2013. — 288 pages


— Series: Tab

ISBN-10: 0071830251
ISBN-13: 978-0071830256

В этом практическом руководстве автор раскрывает профессиональные секреты програм-


мирования Arduino: использование прерываний, управление памятью, программирование для
Интернета, применение интерфейсов I2C, 1-Wire, SPI и многое другое.

CONTENTS

Introduction 4. Making Arduino Faster


How Fast Is an Arduino?
1. Programming Arduino Comparing Arduino Boards
What Is Arduino? Speeding Up Arithmetic
Installation and the IDE Do You Really Need to Use a Float?
Installing the IDE Lookup vs. Calculate
Blink Fast I/O
A Tour of Arduino Basic Code Optimization
Power Supply Bytes and Bits
Power Connections ATmega328 Ports
Analog Inputs Very Fast Digital Output
Digital Connections Fast Digital Input
Arduino Boards Speeding Up Analog Inputs
Uno and Similar
Big Arduino Boards 5. Low Power Arduino
Small Arduino Boards Power Consumption of Arduino Boards
LilyPad and LilyPad USB Boards Current and Batteries
Unofficial Arduinos Reducing the Clock Speed
Programming Language Turning Things Off
Modifying the Blink Sketch Sleeping
Variables Narcoleptic
If Waking on External Interrupts
Loops Use Digital Outputs to Control Power
Functions
6. Memory
Digital Inputs
Arduino Memory
Digital Outputs
Minimizing RAM Usage
The Serial Monitor
Use the Right Data Structures
Arrays and Strings
Be Careful with Recursion
Analog Inputs
Store String Constants in Flash Memory
Analog Outputs
Common Misconceptions
Using Libraries
Measure Free Memory
Arduino Data Types
Minimizing Flash Usage
Arduino Commands
Use Constants
Remove Unwanted Trace
2. Under the Hood
Bypass the Bootloader
A Brief History of Arduino
Static vs. Dynamic Memory Allocation
Anatomy of an Arduino
Strings
AVR Processors
C char Arrays
ATmega328
The Arduino String Object Library
ATmega32u4
Using EEPROM
ATmega2560
EEPROM Example
AT91SAM3X8E
Using the avr/eeprom.h Library
Arduino and Wiring
EEPROM Limitations
From Sketch to Arduino
Using Flash
AVR Studio
Using SD Card Storage
Installing a Bootloader
Burning a Bootloader with AVR Studio and a Programmer 7. Using I2C
Burning a Bootloader with the Arduino IDE and a Second Arduino I2C Hardware
The I2C Protocol
3. Interrupts and Timers The Wire Library
Hardware Interrupts Initializing I2C
Interrupt Pins Master Sending Data
Interrupt Modes Master Receiving Data
Enabling Internal Pull-Up I2C Examples
Interrupt Service Routines TEA5767 FM Radio
Volatile Variables Arduino-to-Arduino Communication
ISR Enabling and Disabling Interrupts LED Backpack Boards
Timer Interrupts DS1307 Real-Time Clock
8. Interfacing with 1-Wire Devices Ethernet Examples
1-Wire Hardware Physical Web Server
The 1-Wire Protocol Using a JSON Web Service
The OneWire Library The WiFi Library
Initializing 1-Wire Making a Connection
Scanning the Bus WiFi Specific Functions
Using the DS18B20 WiFi Example

9. Interfacing with SPI Devices 13. Digital Signal Processing


Bit Manipulation Introducing Digital Signal Processing
Binary and Hex Averaging Readings
Masking Bits An Introduction to Filtering
Shifting Bits Creating a Simple Low-Pass Filter
SPI Hardware Arduino Uno DSP
The SPI Protocol Arduino Due DSP
The SPI Library Filter Code Generation
SPI Example The Fourier Transform
Spectrum Analyzer Example
10. Serial UART Programming Frequency Measurement Example
Serial Hardware
Serial Protocol 14. Managing with One Process
The Serial Commands Making the Transition from Big Programming
The SoftwareSerial Library Why You Don’t Need Threads
Serial Examples Setup and Loop
Computer to Arduino over USB Sense Then Act
Arduino to Arduino Pause Without Blocking
GPS Module The Timer Library

11. USB Programming 15. Writing Libraries


Keyboard and Mouse Emulation When to Make a Library
Keyboard Emulation Using Classes and Methods
Keyboard Emulation Example Library Example (TEA5767 Radio)
Mouse Emulation Define the API
Mouse Emulation Example Write the Header File
USB Host Programming Write the Implementation File
USB Host Shield and Library Write the Keywords File
USB Host on the Arduino Due Make the Examples Folder
Testing the Library
12. Network Programming Releasing the Library
Networking Hardware A Parts
Ethernet Shield Arduino Boards
Arduino Ethernet/EtherTen Shields
Arduino and WiFi Components and Modules
The Ethernet Library Suppliers
Making a Connection
Setting Up a Web Server Index
Making Requests
John Baichtal, Matthew Beckler, Adam Wolf

LEGO and Arduino Projects: Projects for extending


MINDSTORMS NXT with open-source electronics
LEGO и проекты Arduino: проекты для расширения
«MINDSTORMS NXT» c open-source электроникой

— Publisher: Maker Media, Inc, 2012. — 328 pages

ISBN-10: 1449321062
ISBN-13: 978-1449321062

Делайте удивительных роботов и невероятные гаджеты, с двумя самыми распространенными


«сделай сам» технологиями: LEGO и Arduino. С этим руководством Вы изучите, как создавать
устройства с Lego Mindstorms NXT 2.0, Arduino и некоторыми другими компонентами.

CONTENTS

Foreword. 6 Basic Electronic Theory


Basic Concepts in Electricity
Preface Know Your Electronic Components
Sensors 101
1 Project: Drawbot Further Study
Parts List
Assembly Instructions 7 Gripperbot
Program the Robot Parts List
The Next Chapter Building Instructions
Assembling the Gripperbot’s Electronics
2 Anatomy of Lego Robotics Programming the Gripperbot
Mindstorms The Next Chapter
Expanding on the Mindstorms Set
Programming Your Brick 8 Project: Keytar
The Next Chapter Parts List
Assembly Instructions
3 Arduino Interlude Program the Keytar
History of the Arduino Project Play Some Music!
What Is OSHW? The Next Chapter
Anatomy of the Uno
The Arduino Ecosystem 9 Project: Lamp
Arduino Resources Parts List
The Next Chapter Assembly Instructions
Program the Lamp
4 Project: Clock The Next Chapter
Parts List
Assembly Instructions 10 Advanced Techniques
Program the Robot Wiring Up Bricktronics Equivalents
Setting the Clock Mounting PCBs to Legos
The Next Chapter Adding Molex Connectors to Lego Wires
All About Motors
5 Project: Chocolate Milk Maker. Powering Your Robot
Parts List NXT to Arduino Communication
Assembly Instructions XBee Wireless Modules
Program the Robot Epilogue
The Next Chapter
Index
Emily Gertz, Patrick Di Justo

Environmental Monitoring with Arduino: Building Simple


Devices to Collect Data About the World Around Us
Экологический мониторинг с Arduino: создание простых
устройств для сбора данных о мире вокруг нас

— Publisher: Maker Media, 2012. — 100 pages

ISBN-10: 1449310567
ISBN-13: 978-1449310561

После разрушительного цунами в 2011г. самодельщики Японии создали свои собственные


устройства для мониторинга уровня радиации, а затем выложили их конструкции в Интернете.
Прямо сейчас тысячи людей во всём мире отслеживают условия окружающей среды с устройствами
контроля, которые они создали сами. Вы можете сами повторить их конструкцию с платой Arduino.

CONTENTS

Preface How to Take a Reading


Things to Try
1 - The World’s Shortest Electronics Primer
What Is Arduino? 6 - New Component: Ethernet Shield
Electronic Circuits and Components Using the Ethernet Shield
Programming Arduino The Ethernet Port44
First Sketch: Make an LED Blink The MAC Address44
Parts The IP Address
Install the IDE6 The SD Card Slot
Breadboard the Circuit6 Testing the Ethernet Shield
Write the Code Parts49
Things to Try Assembly
Testing the SD Card Slot50
2 - Project: Noise Monitor - LED Bar Output Parts
Measuring Noise: The Microphone Assembly
The LED Bar Things to Try
Make the Gadget
Parts 7 - Project: Humidity, Temperature & Dew Point - 4Char
Breadboard the Circuit14 Display
Write the Code You Don’t Have to Be a Weatherman to Measure the Weather
Things to Try Getting Usable Measurements
First Electronic Sensor: The DHT-2254
3 - New Component: 4Char Display Using Code Libraries
Test Project20 Make the Gadget55
Parts Parts
Breadboard the Circuit Breadboard the Circuit
Write the Code Write the Code
Things to Try Things to Try

4 - Detecting Electromagnetic Interference (and making 8 - Real-Time, Geo-Tagged Data Sharing with Pachube
bad music) Test Project: Connecting and Uploading Data to Pachube
Detecting EMI Sources in the Environment Parts64
Make the Gadget27 Open a Pachube Account
Parts Write the Code
The 8-Ohm Speaker Things To Try
Construct the EMI Monitor
Write the Code 9 - Project: Radiation Counter - Sharing Data on the
Run the Sketch31 Internet
Powering the Gadget in Mobile Mode What’s a Geiger Counter?
What Are We Measuring with This Gadget? Make the Gadget70
Things to Try Parts
Breadboard the Circuit
5 - Project: Water Conductivity - Numerical Output Write the Code72
What Is Conductivity, and Why Do I Care? What Are We Measuring with This Gadget?
Make the Gadget35 Failure Mode Analysis77
Parts Things to Try
Construct the Probe36
Breadboard the Circuit 10 - Casing the Gadget
Write the Code
Emily Gertz, Patrick Di Justo

Atmospheric Monitoring with Arduino: Building Simple


Devices to Collect Data About the Environment
Атмосферный контроль с Arduino: создание простых устройств
для сбора данных об окружающей среде

— Publisher: Maker Media, 2012. — 90 pages

ISBN-10: 1449338143
ISBN-13: 978-1449338145

Производители во всём мире создают недорогие устройства для контроля окружающей среды.
С этим практическим руководством вы тоже сможете это сделать. Вы изучите, как создать гаджеты
для исследования качества нашей атмосферы, используя Arduino и несколько недорогих датчиков.

CONTENTS

Preface How Are We Using LEDs in the LED Photometer?

1 - The World’s Shortest Electronics Primer 4 - Gadget: LED Sensitivity Tester


What Is Arduino? Mission: Inputtable
Electronic Circuits and Components Build the Gadget
Programming Arduino
First Sketch: Make an LED Blink 5 - Gadget: LED Photometer
Parts Build the Gadget
Install the IDE Load the Sketch
Breadboard the Circuit Calibrate the Gadget: Air Mass, Atmospheric Optical Thickness,
Write the Code and
Things to Try Extraterrestrial Constant
Calculating Atmospheric Optical Thickness
2 - Gadget: Tropospheric Gas Detector Things to Try
How Gas Sensors Work Detecting “Ozone Holes”: Measuring the Ozone Layer
Which Gases Can We Monitor? Add an Accelerometer
How This Gadget Works
Transistorized! 6 - Using the LED Photometer
Build the Gadget Atmospheric Aerosols
Load the Sketch Photosynthetically Active Radiation (PAR)
Displaying and Storing Your Data Water Vapor (WV)
Liquid Crystal Displays Extracting Data from the LED Photometer
Reading Data Off EEPROM Graphing Data in a Spreadsheet
Reading Data from an SD Card Sending Data to COSM
Things to Try
Other Sensors 7 - Doing Science: How to Learn More from Your
Solar Powered Atmospheric Data
GSM The Scientific Method
Do Not Deploy Your Gadget in Public Without Official Permission Steps in the Scientific Method
Get Official Permission Observe Something in the World
Get Your Community Involved Ask an Answerable Question
Formulate a Hypothesis
3 - A Brief Introduction to LEDs Compare the Predicted to Actual Results, Considering the Results
What Is a Diode? Ask Another Question
What Is a Light Emitting Diode?
Tom Igoe

Making Things Talk: Practical Methods for Connecting Physical


Objects
Устанавливаем связь:
практические методы подключения физических объектов

— Publisher: Maker Media, 2007. — 432 pages


— 1 edition

ISBN-10: 0596510519
ISBN-13: 978-0596510510

Эта книга идеально подходит для людей с незначительной технической подготовкой, но большим
интересом к теме. На практике показано как связать между собой различные датчики и
исполнительные механизмы используя ZigBee, Bluetooth и Интернет.

CONTENTS

Preface Project 9: Radio Transmitter-Receiver Pair


Who This Book Is For Project 10: Duplex Radio Transmission
What You Need To Know An XBee Serial Terminal
Contents of This Book Project 11: Bluetooth Transceivers
On Buying Parts What About Wi-Fi?
Using Code Examples Buying Radios
Using Circuit Examples Conclusion
Acknowledgments
We’d Like to Hear from You Chapter 7: The Tools
Look, Ma: No Microcontroller!
Chapter 1: The Tools Who’s Out There? Broadcast Messages
It Starts with the Stuff You Touch Project 12: Reporting Toxic Chemicals in the Shop
It’s About Pulses Directed Messages
Computers of All Shapes and Sizes Project 13: Relaying Solar Cell Data Wirelessly
Good Habits Conclusion
Tools
Using the Command Line Chapter 8: How to Locate (Almost) Anything
It Ends with the Stuff You Touch Network Location and Physical Location
Determining Distance
Chapter 2: The Simplest Network Project 14: Infrared Distance Ranger Example
Layers of Agreement Project 15: Ultrasonic Distance Ranger Example
Making the Connection: The Lower Layers Project 16: Reading Received Signal Strength Using XBee Radios
Saying Something: The Application Layers Project 17: Reading Received Signal Strength Using Bluetooth
Project 1: Monski Pong Radios
Flow Control Determining Position Through Trilateration
Project 2: Wireless Monski Pong Project 18: Reading the GPS Serial Protocol
Project 3: Negotiating in Bluetooth Determining Orientation
Conclusion Project 19: Determining Heading Using a Digital Compass
Project 20: Determining Attitude Using an Accelerometer
Chapter 3: A More Complex Network Conclusion
Network Maps and Addresses
Clients, Servers, and Message Protocols Chapter 9: Identification
Project 4: A Networked Cat Physical Identification
Conclusion Project 21: Color Recognition Using a Webcam
Project 22: 2D Barcode Recognition Using a Webcam
Chapter 4: Look Ma! No Computer Project 23: Reading RFID Tags in Processing
Introducing Network Modules Project 24: RFID Meets Home Automation
Project 5: Hello Internet! Network Identification
An Embedded Network Client Application Project 25: IP Geocoding
Project 6: Networked Air Quality Meter Project 26: Email from RFID
Serial-to-Ethernet Modules: Programming and Troubleshooting Conclusion
Tools Appendix A: And Another Thing
Conclusion Other Useful Protocols
Proxies of All Kinds
Chapter 5: Communicating in (Near) Real Time Mobile Phone Application Development
Interactive Systems and Feedback Loops Other Microcontrollers
Transmission Control Protocol: Sockets & Sessions New Tools
Project 7: A Networked Game
Conclusion Appendix B: Where to Get Stuff
Hardware
Chapter 6: Wireless Communication Software
Why Isn’t Everything Wireless? Appendix C: Program Listings
Two Flavors of Wireless: Infrared and Radio
Project 8: Infrared Transmitter-Receiver Pair Index
Tom Igoe

Making Things Talk: Using Sensors, Networks, and Arduino to


see, hear, and feel your world
Устанавливаем связь: использование датчиков, сетей и Arduino,
чтобы видеть, слышать и чувствовать окружающий мир

— Publisher: Maker Media, 2011. — 496 pages

ISBN-10: 1449392431
ISBN-13: 978-1449392437

На 33-х простых проектах будет показано, как соединить различные датчики и исполнительные
механизмы с платой Arduino. Вы научитесь обрабатывать принятые данные, отображать их и т.п.

CONTENTS

Who This Book Is For Chapter 7: Sessionless Networks


Using Code Examples Supplies for Chapter 7
Using Circuit Examples Sessions vs. Messages
Acknowledgments for the First Edition Who’s Out There? Broadcast Messages
Project 13: Reporting Toxic Chemicals in the Shop
Chapter 1: The Tools
Directed Messages
It Starts with the Stuff You Touch
Project 14: Relaying Solar Cell Data Wirelessly
It’s About Pulses
Conclusion
Computers of All Shapes and Sizes
Good Habits Chapter 8: How to Locate (Almost) Anything
Tools Supplies for Chapter 8
Using the Command Line Network Location and Physical Location
Using an Oscilloscope Determining Distance
It Ends with the Stuff You Touch Project 15: Infrared Distance Ranger Example
Project 16: Ultrasonic Distance Ranger Example
Chapter 2: The Simplest Network
Project 17: Reading Received Signal Strength Using XBee Radios
Supplies for Chapter 2
Project 18: Reading Received Signal Strength Using Bluetooth
Layers of Agreement
Radios
Making the Connection: The Lower Layers
Determining Position Through Trilateration
Project 1: Type Brighter
Project 19: Reading the GPS Serial Protocol
Project 2: Monski Pong
Determining Orientation
Flow Control
Project 20: Determining Heading Using a Digital Compass
Project 3: Wireless Monski Pong
Project 21: Determining Attitude Using an Accelerometer
Project 4: Negotiating in Bluetooth
Conclusion
Conclusion
Chapter 9: Identification
Chapter 3: A More Complex Network
Supplies for Chapter 9
Supplies for Chapter 3
Physical Identification
Network Maps and Addresses
Project 22: Color Recognition Using a Webcam
Project 5: Networked Cat
Project 23: Face Detection Using a Webcam
Conclusion
Project 24: 2D Barcode Recognition Using a Webcam
Chapter 4: Look, Ma, No Computer! Microcontrollers on Project 25: Reading RFID Tags in Processing
the Internet Project 26: RFID Meets Home Automation
Supplies for Chapter 4 Project 27: Tweets from RFID
Introducing Network Modules Network Identification
Project 6: Hello Internet! Project 28: IP Geocoding
An Embedded Network Client Application Conclusion
Project 7: Networked Air-Quality Meter
Chapter 10: Mobile Phone Networks and the Physical
Programming and Troubleshooting Tools for Embedded Modules
World
Conclusion
Supplies for Chapter 10
Chapter 5: Communicating in (Near) Real Time One Big Network
Supplies for Chapter 5 Project 29: CatCam Redux
Interactive Systems and Feedback Loops Project 30: Phoning the Thermostat
Transmission Control Protocol: Sockets & Sessions Text-Messaging Interfaces
Project 8: Networked Pong Native Applications for Mobile Phones
The Clients Project 31: Personal Mobile Datalogger
Conclusion Conclusion

Chapter 6: Wireless Communication Chapter 11: Protocols Revisited


Supplies for Chapter 6 Supplies for Chapter 11
Why Isn’t Everything Wireless? Make the Connections
Two Flavors of Wireless: Infrared and Radio Text or Binary?
Project 9: Infrared Control of a Digital Camera MIDI
How Radio Works Project 32: Fun with MIDI
Project 10: Duplex Radio Transmission Representational State Transfer
Project 11: Bluetooth Transceivers Project 33: Fun with REST
Buying Radios Conclusion
What About WiFi?
Appendix: Where to Get Stuff
Project 12: Hello WiFi!
Supplies
Conclusion
Hardware
Software
Tero Karvinen, Kimmo Karvinen

Arduino Bots and Gadgets: Six Embedded Projects with Open


Source Hardware and Software
Arduino роботы и гаджеты: шесть проектов для встраиваемых
систем с открытым аппаратным и программным обеспечением

— Publisher: Maker Media, Inc, 2011. — 296 pages


— Series: Learning by Discovery

ISBN-10: 1430238828
ISBN-13: 978-1430238829

Создавать с Arduino собственные полезные устройства, роботы, гаджеты легко даже для
новичков. Встраиваемые системы есть везде - в автомобилях, детских игрушках и мобильных
телефонах. Эта книга научит вас основам встраиваемых систем и поможет построить свой первый
гаджет всего за несколько дней.

CONTENTS

1. Introduction Displaying a Picture


Building Philosophy Scaling an Image to Full Screen
Reusing Parts Changing Images with Button Control
Buying Components Gesture-Controlled Painting in Full Screen
Useful Tools Animating the Sliding Image
Electronic Circuit Theory Review Connecting Arduino with Processing
Processing Code for the Painting
2. Arduino: The Brains of an Embedded System The Finished Painting
Why Arduino? Creating an Enclosure
Starting with Arduino Building a Frame
Hello World with Arduino
Structure of “Hello World” 6. Boxing Clock
Arduino Uno What You’ll Learn
Arduino Nano Tools and Parts
Android Software Installation
3. Stalker Guard Creating a Boxing Clock in Android
What You’ll Learn What’s Next?
Tools and Parts
Solderless Breadboard 7. Remote for a Smart Home
Jumper Wire What You’ll Learn
Ping Ultrasonic Sensor Tools and Parts
Vibration Motor The Relay: A Controllable Switch
Combining Components to Make the Stalker Guard Hacking the Remote Control
Making the Motor Vibrate Controlling the Arduino from the Computer
Providing Power from a Battery Creating a Graphical User Interface
What’s Next? The Finished Remote Control Interface
Making an Enclosure Creating an Enclosure

4. Insect Robot 8. Soccer Robot


What You’ll Learn What You Will Learn
Tools and Parts Tools and Parts
Servo Motors Continuous Rotation Servos
Constructing the Frame Modding a Standard Servo into a Continuous Rotation Servo
Programming the Walk Connecting the Arduino to the Bluetooth Mate
Avoiding Obstacles Using Ultrasound Testing the Bluetooth Connection
What’s Next? Building a Frame for the Robot
Programming the Movements
5. Interactive Painting Controlling Movement from a Computer
What You’ll Learn Steering with an Android Cell Phone
Tools and Parts The Accelerometer
Resistors An Easier Approach to Bluetooth
LEDs Controlling the Robot with Cell Phone Motion
Detecting Motion Using Ultrasonic Sensors Completing the Soccer Robot
Moving Images What’s Next?
Installing Python
Hello World in Python A. tBlue Library for Android
Communicating over the Serial Port
Tero Karvinen, Kimmo Karvinen

Make a Mind-Controlled Arduino Robot:


Use Your Brain as a Remote
Создайте разумного робота на Arduino:
используйте свой мозг удалённо

— Publisher: aker Media, 2011. — 90 pages


— Series: Creating With Microcontrollers Eeg, Sensors, and Motors

ISBN-10: 1449311547
ISBN-13: 978-1449311544

Создание робота, который реагирует на электрические возмущения в вашем мозге — это просто
и забавно. Эта книга покажет, как построить робота, который издаёт звуки, мигает светом и
реагирует на сигналы от электроэнцефалограммы головного мозга. Вы найдете полные инструкции
для создания простого шасси робота с сервомоторами, колесами, датчиками, светодиодами и
динамиком.

CONTENTS

Preface Calibrate Stopping Point


Full Speed Forward
1 - Building the Chassis Other Ways to Control Servos
Tools and Parts Line Avoidance
Parts Connect the Reflection Sensor
Tools Hello Reflection
Servo Motors Don’t Cross the Black Line
Attaching Servos Battery, No Strings Attached
Chassis Choosing Rechargeable Batteries
Making Holes Connecting the Battery and Power Key
Painting the Chassis Bells and Whistles
Attaching Servos to the Chassis Red, Green, and Blue LED
Attaching the Line-Detecting Sensor Beeping Piezo
Wheels Setting Threshold with a Potentiometer
Attaching the RGB LED to Chassis Everything But Your Mind
Attaching the Power Switch to the Chassis Code Structure
Attaching Arduino Measuring Your Brains with MindWave
Battery Holder Hack MindWave Dongle
Attaching Solderless Breadboard Level Conversion with Resistors
ScrewShield Holds Wires in Place Hello Attention!
NeuroSky Protocol
2 - Coding Complete Mind-Controlled Robot
Moving
Connect Servos Appendix: Building the ScrewShield
Hello Servo
James Floyd Kelly, Marc de Vinck

MintDuino: Building an Arduino-Compatible Breadboard


Microcontroller
MintDuino: создание Arduino-совместимой макетной платы
микроконтроллера

— Publisher: Maker Media, 2011. — 58 pages

ISBN-10: 1449307663
ISBN-13: 978-1449307660

Эта практическая книга покажет вам как разработать полный проект MintDuino от начала до
конца. Изучите как собрать микроконтроллер на «макетке» (пайка не требуется) и сразу начать
программировать его.

CONTENTS

Preface 4 - Subtask 2: Randomly Light an LED


The Game Takes Shape
1 - Build a Mintronics: MintDuino
Build the Power Supply 5 - Subtask 3: Light an LED with a Pushbutton
Power the Microcontroller Light the LED
Getting Ready to Program
6 - Subtask 4: Add Buttons and LEDs
2 - The MintDuino Reflex Game Light LEDs for Each Player

3 - Subtask 1: Light an LED 7 - Subtask 5: Program the Game


Start Building The Final Sketch
Upload Your First Sketch Conclusion
Dale Wheat

Make an Arduino−Controlled Robot


Создаём Arduino−управляемого робота

— Publisher: Maker Media, Inc, 2012. — 256 pages


— Series: Make: Projects (Book 2314)

ISBN-10: 1449344372
ISBN-13: 978-1449344375

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

CONTENTS

Who This Book Is For Driver Installation


How This Book Is Organized Connecting the Arduino Board
What Was Left Out Using the IDE
Code Style (About the Code) Uploading and Running the Blink Sketch
Arduino Hardware and Software Using Tabs
Conventions Used in This Book Installing Third-Party Libraries
Using Code Examples
Safari® Books Online Chapter 6. Testing the Robot’s Basic Functions
How to Contact Us Hardware Required
Acknowledgments Software Prerequisites
Sketches Used in This Chapter
Chapter 1. Introduction to Robot Building Load and Run helloRobot.ino
Why Build a Robot? About the Sketch
How Robots Move Troubleshooting
Tools Making the Sketch Easy to Enhance

Chapter 2. Building the Electronics Chapter 7. Controlling Speed and Direction


Hardware Required Hardware Required
Construction Techniques Sketches Used in This Chapter
Soldering Types of Motors
Building the Motor Controller Motor Controllers
Soldering the Reflectance Sensors Controlling Motor Speed
Making a Line Sensor Mount How Motor Speed Is Controlled
Next Steps Code for Motor Control
Calibrating Rotation and Tracking
Chapter 3. Building the Two-Wheeled Mobile Platform Software Architecture for Robot Mobility
Hardware Required Functions to Encapsulate Robot Movements
Mechanical Assembly Core Movement Code
Lay Out the Chassis Parts Additional Core Functions
Motor Assembly Functions to Rotate the Robot
Assemble the Chassis Components Higher-Level Movement Functions
Attaching the Control Electronics
Mounting the IR sensors Chapter 8. Tutorial: Introduction to Sensors
Mounting the IR Sensors for Edge Detection Hardware Discussed
Mounting the IR Sensors for Line Following Software
Next Steps Infrared Reflectance Sensors
Sonar Distance Sensors
Chapter 4. Building the Four-Wheeled Mobile Platform Maxbotix EZ1 Sonar Distance Sensor
Hardware Required Sharp IR Distance Sensor
Mechanical Assembly Proximity Sensor
Lay Out the Chassis Parts Sound Sensor
Motor Assembly Arduino Cookbook
Assemble the Chassis Components
Solder the Power and Motor Connections Chapter 9. Modifying the Robot to React to Edges and
Connecting the Battery Pack and Power Switch Lines
Building the Optional Trickle Charger Hardware Required
Assemble the Chassis Sketches Used in This Chapter
Mounting Arduino and Connecting Wires to the Shield The Look Code
Mounting the IR sensors Edge Detection
Mounting the IR Sensors for Edge Detection Line Following
Mounting the IR Sensors for Line Following Seeing Sketch Data
Next Steps
Chapter 10. Autonomous Movement
Chapter 5. Tutorial: Getting Started with Arduino Hardware Required
Hardware Required Sketches Used in This Chapter
Arduino Software Mounting a Ping Distance Sensor
Arduino Hardware Making a Mount for the Ping Sensor
Installing the Integrated Development Environment (IDE) Mounting the Ping Sensor in a Fixed Position
Installing Arduino on Windows Mounting the Ping Sensor on a Servo
Installing Arduino on OS X Letting the Robot Wander
Installing Arduino on Linux Adding Scanning
Appendix B. Using Other Hardware with Your Robot
Chapter 11. Remote Control Alternative Motor Controllers
Hardware Required Ardumoto
Sketches Used in This Chapter Continuous Rotation Servos
Design of the Remote Control Code
Controlling the Robot with a TV Type IR Remote Appendix C. Debugging Your Robot
Installing the IR Decoder Chip Identify the Symptoms and Localize the problem
The IR Remote Software Seeing What the Robot Is Doing

Appendix A. Enhancing Your Robot Appendix D. Power Sources


Planning Monitoring Battery Voltage
Think Before You Code Trickle Charging
Avoid Feature Bloat
Don’t Reinvent the Wheel Appendix E. Programming Constructs
Structure to Reflect Functionality Digital I/O
Use Clear Names for Functions and Variables Analog I/O
Implementing a Complex Project Math functions
Test Often Other Functions and Constructs
Simplify
If It Is Awkward, Start Over Appendix F. Arduino Pin and Timer Usage
Don’t Confuse Activity with Progress Handling Resource Conflicts
Experiment Modifying a Library to Change Timer Allocation
Be Tenacious Writing Code That Avoids the Use of a Timer
Have Fun Pin and Timer Tables
Don Wilcher

Basic Arduino Projects:


26 Experiments with Microcontrollers and Electronics
Простые проекты на Arduino:
26 экспериментов с микроконтроллерами и электроникой

— Publisher: Maker Media, Inc, 2014. — 260 pages

ISBN-10: 1449360661
ISBN-13: 978-1449360665

В этой книге представлено 26 четко описанных проектов, которые Вы можете собрать с Arduino -
включая многокрасочные сигнальные огни, таймеры, инструменты для тестирования схем,
звуковых эффектов, блока управления приводом и устройств на датчиках.

CONTENTS

Preface 9. Multicolor RGB Flasher


Parts List
1. The Trick Switch Circuit Theory
Parts List The RGB Flasher
Let’s Build a Trick Switch Something to Think About
Trick Switch with On/Off Indicators
Something to Think About 10. The Magic Light Bulb
Parts List
2. Sunrise-Sunset Light Switch Let’s Build a Magic Light Bulb
Parts List Upload the Magic Light Bulb Sketch
Let’s Build a Sunrise-Sunset Light Switch Circuit Theory
Circuit Theory Something to Think About
Sunrise-Sunset Detector with Serial Monitor
Something to Think About 11. Metal Checker: The Electronic Switch
Parts List
3. Tilt Sensing Servo Motor Controller Let’s Build a Metal Checker
Parts List Upload the Metal Checker Sketch
Let’s Build a Tilt Sensing Servo Motor Controller Circuit Theory
Upload the Tilt Sensor Sketch Something to Think About
A Simple Animatronic Controller Using the Serial Monitor
Circuit Theory 12. The Theremin
Something to Think About Parts List
Let’s Build a Theremin
4. Twin LEDs Upload the Theremin Sketch
Parts List Circuit Theory
Circuit Theory Something to Think About
Twin LED Flasher
Build the Adjustable Twin LED Flasher 13. An Arduino Ohmmeter
It’s Alive! Build a FrankenBot Toy Parts List
Something to Think About Let’s Build an Arduino Ohmmeter
Upload the Arduino Ohmmeter Sketch
5. The Opposite Switch Circuit Theory
Parts List Something to Think About
Circuit Theory
The Opposite Switch (aka the NOT Logic Gate) 14. The LCD News Reader
Build an Arduino NOT Logic Gate Parts List
Upload the Arduino NOT Logic Gate Sketch Let’s Build the LCD
Something to Think About Upload the LCD News Reader Sketch
Circuit Theory
6. The AND Logic Gate Something to Think About
Parts List
Circuit Theory 15. A Logic Tester (with an RGB LED)
The Arduino AND Logic Gate Parts List
Upload the Arduino AND Logic Gate Sketch Let’s Build a Logic Tester
Something to Think About Upload the Logic Tester Sketch
Circuit Theory
7. The OR Logic Gate Something to Think About
Parts List
Circuit Theory 16. A Logic Tester (with an LCD)
The Arduino OR Logic Gate Parts List
Upload the Arduino OR Logic Gate Sketch Let’s Build a Logic Tester
Something to Think About Upload the Logic Tester Sketch
Circuit Theory
8. Tilt Flasher Something to Think About
Parts List
Circuit Theory 17. The Amazing Pushbutton (with Processing)
The Up-Down Sensor Parts List
Something to Think About Let’s Build an Amazing Pushbutton
Upload the Amazing Pushbutton Sketch
Download and Install Processing Notes 22. Electronic Cricket
Let’s Visualize Digital Data with Processing Parts List
Troubleshooting Tips for Processing Let’s Build an Electronic Cricket
Something to Think About Upload the Electronic Cricket Sketch
Something to Think About
18. The Terrific Tilt Switch (with Processing)
Parts List 23. A Pocket Stage Light
Let’s Build a Terrific Tilt Switch Parts List
Upload the Terrific Tilt Switch Sketch Let’s Build a Pocket Stage Light
Let’s Visualize Digital Data with Processing Upload the Pocket Stage Light Sketch
Something to Think About Something to Think About

19. The Rocket Launching Game (with Processing) 24. Electronic Pixel
Parts List Parts List
Let’s Build a Rocket Game Let’s Build an Electronic Pixel
Upload the MultiDigital4 Sketch Upload the Electronic Pixel Sketch
The Rocket Launcher with Processing Something to Think About
Something to Think About
25. The Metronome
20. Temperature Indicator (with Processing) Parts List
Parts List Let’s Build a Metronome
Let’s Build a Temperature Indicator Upload the Metronome Sketch
Upload the Temperature Indicator Sketch Something to Think About
The Negative Temperature Coefficient (NTC) Sensor with
Processing 26. The Secret Word Game
Something to Think About Parts List
Let’s Build a Secret Word Game
21. Sweeping Servo Upload the Secret Word Game Sketch
Parts List Rules for the Secret Word Game
Let’s Build a Servo Motor Tester Something to Think About
Upload the Sweeping Sketch
Something to Think About Index
Rick Anderson, Dan Cervo

Pro Arduino
Arduino профи

— Publisher: Apress, 2013. — 316 pages


— Series: Technology in Action

ISBN-10: 1430239395
ISBN-13: 978-1430239390

Итак, вы создали несколько проектов на Arduino, и теперь пришло время, чтобы шагнуть на
ступеньку выше. Куда вы идёте дальше? С "Arduino Профи" Вы узнаете о новых инструментах,
методах и механизмах, чтобы создавать еще более продвинутые, новаторские проекты.

CONTENTS

About the Authors Creating Pages


About the Technical Reviewer Using Markdown
Acknowledgments Code Blocks
Introduction Linking to files.
Headings
Chapter 1: Arduino 1.0.4 Core Changes Lists
Changes to the Arduino IDE Ordered lists
Changes to Sketches Unordered lists
API Updates Linking to Images
pinMode Normal Text
Return Types Contributing to Arduino Development
uint_8 Forking Your Own Copy of Arduino
Arduino API Core 1.0.4 How to build the Arduino IDE from source
Arduino.h Community Resources
Updated Serial Object Summary
Updated Stream Class
Constructor Chapter 3: openFrameworks and Arduino
Member Functions Getting Started
Print Arduino Code
New Printable Class Verifying the Code
Updated String Library Arduino Serial Functions
Wire Library Updates openFrameworks Setup
HardwareSerial Updates Connecting to the Arduino from openFrameworks
Physical Board Updates and USB Compatibility Verifying the Code
Avrdude Update openFrameworks Serial Functions
The New Arduino Leonardo Board Coding Once Using Firmata and ofArduino
Board Variants Setting Up Firmata
Variants Files Controlling the Arduino with openFrameworks
Variant Types and Naming Verifying the Code
Uploader Options Renamed to Programmers Key Constants Used by ofArduino
New Bootloaders ofArduino Reference of Class Functions
USB Firmware for 16u2 Expanding on the Idea
Summary Changing Code
Verifying the Code
Chapter 2: Arduino Development and Social Coding More Ideas to Work With
Components of Social Coding and Project Management Summary
What Is a Project and How Is It Organized?
Overview of Version Control Chapter 4: Android ADK
Overview of Issue Tracking Android Devices
Documentation What to Check For
Project Management for Social Coding Known Working Devices
Version Control with Git and GitHub Modding
What Is Git ? Arduino IDE Setup
Installing Git Android Application Creation
GitHub Tools The Arduino Sketch
Version Control, Basic Workflow The Android ADK Application
Creating Your Own Project AndroidManifest.xml
Editing Code and Checking for Changes res/xml/accessory_filter.xml
Work process res/layout/main.xml
View changes res/values/strings.xml
Saving and committing changes src/CH4.example.proArduino/CH4ExamplesActivity.java
Workflow Summary: Creating Your Own Project Verifying the Code
Workflow Summary: Forking Another Project Completing the Framework
Creating a Pull Request Completing the Application
Creating a Pull Request Arduino
How To Merge a Pull Request Verifying the Code
What is issue management ? SPI and ADK
Issue management with Github Summary
Connecting Version Control with Issue Management
Documentation Chapter 5: XBees
Github wiki Buying XBees
Simple Setup
Transparent (AT Command) Mode Chapter 10: Multiprocessing: Linking the Arduino for More
Module Configuration Power
Arduino Setup I2C
Verifying the Code Serial Peripheral Interface
API Mode Connecting Two Devices
Module Configuration Setting Up a Master SPI Device
API Packet Construction Verifying the Code
Sending Commands Interrupting Vectors
Sending Data SPI by the Registers
Request Packets Verifying the Code
Reply Packets Multiple Slaves
Arduino Data Echo Master in Register
Endpoint Firmware Verifying the Code
Summary Symmetric Architecture Bipolar Bus
SABB by the Code
Chapter 6: Simulating Sensors Verifying the Code
Analog Sensors Connecting SABB to SPI
Analog Sensor Reader Conversion to Mega
RC Low-Pass Filter Physical Best Practices
Verifying the Code Summary
Resistor Ladder
Verifying the Code Chapter 11: Game Development with Arduino
Digital Sensors Games Suitable for the Arduino
PWM A Simple Game
Gray Code Proof of Concept
Outputting Gray Code Coding Stop It
Verifying the Code Verifying the Code
Serial Sensors Dirty Little Tricks,
Outputting Serial Data Adding Better Displays and Graphics
Verifying the Code Gameduino Library
I2C A New Stop It
The TWCR Register Art
The TWAR Register Coding Stack It
The TWDR Register Verifying the Code
The TWSR Register Making Sounds
Outputting I2C Data Adding a Bit of Splash
Verifying the Code Programming the Game to Play Itself
Summary The Finishing Polish
Arcade and Game Resources
Chapter 7: PID Controllers Summary
The Mathematics
The Proportional Statement Chapter 12: Writing Your Own Arduino Libraries
The Integral Statement What you need to know to write your own libraries
The Derivative Statement Creating a simple library
Adding It All Up Making a Motor Library
Time The anatomy of an Arduino library folder
PID Controller Setup Examples Folder
Wiring the Hardware License
Verifying the Code keywords.txt
PID Tuner Installing Arduino Libraries
Comparing PID, DEAD BAND, and ON/OFF Controllers Using Arduino Libraries
PID Can Control Arduino Objects and Library Conventions
Tuning Summary
PID Library
PID Library Functions Chapter 13: Arduino Test Suite
Other Resources Installing the Arduino Test Suite
Summary Getting Started with Testing
Arduino Test Result Format
Chapter 8: Android Sensor Networks Test Result Section Format Details
Setting Up a Sensor Network Test-Naming Structure
openFrameworks Test Status Options
The Arduino Test Summary
The Android Application Arduino Test Suite Basic Functions
Summary ATS_begin
ATS_PrintTestStatus
Chapter 9: Using Arduino with PIC32 and ATtiny Atmel ATS_end
Chips Using the Basic Functions
Arduino and Nonstandard Environments Arduino Test Suite Built-In Tests
The MPIDE and chipKIT PIC32 Strategies for Testing Your Own Arduino Derivative
Example: Object Detection using the Task Manager service Memory Testing
Arduino Support for the ATtiny Family Example: Testing for a Memory Leak
ATtiny 85/45/25 Testing Libraries
ATtiny 84/44/24 SPI.transfer() Test
ATtiny 4313 and 2313 setBitOrder() Test
Using the Arduino as an ISP Programmer setClockDivider() Test
Project: Secret Knock Box setDataMode() Test
What the Device Does SPI Test Results
Bill of Materials
Summary Summary
Charles Bell

Beginning Sensor Networks with Arduino and Raspberry Pi


Введение в сенсорные сети с Arduino и Raspberry Pi

— Publisher: Apress, 2013. — 372 pages


— Series: Technology in Action

ISBN-10: 1430258241
ISBN-13: 978-1430258247

Эта книга научит вас, как создавать сенсорные сети с Arduino, Raspberry Pi и радиомодулями
XBee, а также покажет, как превратить Ваш Raspberry Pi в сервер баз данных MySQL, чтобы хранить
данные принятые с датчиков.

CONTENTS

About the Author Project: Building an Arduino Temperature Sensor


About the Technical Reviewer Hardware Setup
Acknowledgments Software Setup
Writing the Sketch
Introduction Test Execution
Project: Using an Arduino as a Data Collector for XBee Sensor
Chapter 1: Introduction to Sensor Networks Nodes
Anatomy of a Sensor Network XBee Sensor Node
Examples of Sensor Networks Arduino with XBee Shield
The Topology of a Sensor Network Testing the Final Project
Communication Media For More Fun
Wired Networks Component Shopping List
Wireless Networks
Hybrid Networks Chapter 4: Raspberry Pi-based Sensor Nodes
Types of Sensor Nodes What Is a Raspberry Pi?
Basic Sensor Nodes Noble Origins
Data Nodes Models
Aggregator Nodes A Tour of the Board
Sensors Required Accessories
How Sensors Measure Recommended Accessories
Storing Sensor Data Where to Buy
Examples of Sensors Raspberry Pi Tutorial
Getting Started
Chapter 2: Tiny Talking Modules: An Introduction to XBee Installing a Boot Image
Wireless Modules Booting Up
What Is an XBee? GPIO Pin Mapping
XBee Primer Required Software
Choosing XBee Modules Project: Hardware “Hello, World!”
Interacting with an XBee-ZB Module Hosting Sensors with Raspberry Pi
Pin Layout Project: Building a Raspberry Temperature Sensor Node
Configuring Modules Hardware Setup
For More Information Testing the Hardware
An XBee Wireless Chat Room Software Setup
Loading the Firmware for the Modules Testing the Sensor
Capturing Serial Numbers For More Fun
Configuring the Coordinator Project: Building a Raspberry Barometric Pressure Sensor Node
Configuring the Router Hardware Setup
Let the Chat Begin Testing the Hardware
For More Fun Software Setup
Building an XBee-ZB Mesh Network Testing the Sensor
Loading the Firmware for the Modules For More Fun
Configuring the XBee Modules Project: Creating a Raspberry Pi Data Collector for XBee Sensor
Forming Test Messages Nodes
Testing the Network XBee Sensor Node
For More Fun Hardware
Component Shopping List Software
Troubleshooting Tips and Common Issues Testing the Final Project
Things to Check For More Fun
Common Issues Component Shopping List

Chapter 3: Arduino-Based Sensor Nodes Chapter 5: Where to Put It All: Storing Sensor Data
What Is an Arduino? Storage Methods
Arduino Models Local Storage Options for the Arduino
Arduino Clones Nonvolatile Memory
So, Which Do I Buy? SD Card
Where to Buy Project: Saving Data in Nonvolatile Memory
Arduino Tutorial Project: Writing Data to an SD Card
Learning Resources Local Storage Options for the Raspberry Pi
The Arduino IDE Project: Writing Data to Files
Project: Hardware “Hello, World!” Remote Storage Options
Hosting Sensors with Arduino Storing Data in the Cloud
Storing Sensor Data in a Database Software Setup
Component Shopping List Setting Up the Sensor Database
Writing the Code
Chapter 6: Turning Your Raspberry Pi into a Database Test Execution
Server For More Fun
What Is MySQL? Project Example: Inserting Data from Variables
Getting Started with MySQL Project Example: How to Perform SELECT Queries
How and Where MySQL Stores Data Displaying a Result Set in the Serial Monitor
The MySQL Configuration File Writing Your Own Display Method
How to Start, Stop, and Restart MySQL Example: Getting a Lookup Value from the Database
Creating Users and Granting Access Component Shopping List
MySQL and Python—MySQL Utilities
Building a Raspberry Pi MySQL Server Chapter 8: Building Your Network: Arduino Wireless
Partitioning and Formatting the Drive Aggregator + Wireless
Setting Up Automatic Drive Mounting Sensor Node + Raspberry Pi Server
Project: Installing MySQL Server on a Raspberry Pi Data-Aggregate Nodes
Advanced Project: Using MySQL Replication to Back Up Your Local-Storage Data Aggregator
Sensor Data Project: Data-Aggregate Node with Local Storage
Component Shopping List Remote-Storage Data Aggregator
Project: Arduino Data-Aggregate Node with Database Storage
Chapter 7: MySQL and Arduino: United at Last! Project: Raspberry Pi Data-Aggregate Node with Database
Introducing Connector/Arduino Storage
Hardware Requirements Component Shopping List
What About Memory?
How to Get MySQL Connector/Arduino Chapter 9: Planning Wireless Sensor Networks
Limitations Sensor Networks Best Practices
Building Connector/Arduino-Enabled Sketches Considerations for Data-Aggregate Nodes
Database Setup Considerations for Sensor Network Databases
Setting Up the Arduino Other Considerations
Starting a New Sketch Choosing Sensor Nodes
Testing the Sketch Wired Or Wireless?
Troubleshooting Connector/Arduino Arduino or Raspberry Pi?
MySQL Server Configuration Alternative Hosts
MySQL User Account Problems Project: Home Temperature-Monitoring Network
Networking Configuration Planning Considerations
Connector Installation Planning the Nodes
Other Cost Considerations
None of These Solved My Problem—What Next? What About Implementation?
A Tour of the MySQL Connector/Arduino Code Conclusion
Library Files For More Fun
Field Structure Optional Component Shopping List
Public Methods
Example Uses Appendix: Shopping List
Project: Building a MySQL Arduino Client
Hardware Setup Index
Mario Bohmer

Beginning Android ADK with Arduino


Введение в Android ADK с Arduino

— Publisher: Apress, 2012. — 316 pages


— Series: Technology in Action

ISBN-10: 1430241977
ISBN-13: 978-1430241973

Если Вы новичок в Arduino и разработчик приложений для Android, эта книга для Вас. Теперь,
когда Google выпустила комплект для Android (Android ADK), сопряжение Android с Arduino для
создания собственных гаджетов стало еще проще.
Вы изучите: как различные платы работают с ADK; как создать ваш первый проект; как работать
со светом и звуком; как работать с сервомоторами и электродвигателями постоянного тока; как
работать с фоторезисторами и терморезисторами; и многое другое.

CONTENTS

About the Author The Setup


About the Technical Reviewer The Software
Acknowledgments
Preface Chapter 5: Sounds.
Project 5: Generating Sound with a Piezo Buzzer.
Chapter 1: Introduction The Parts
What Is the ADK? The Setup
Hardware Development Boards The Software
The Google ADK Project 6: Sensing Sound with a Piezo Buzzer
The Arduino ADK The Parts
The IOIO The Setup
The Seeeduino ADK Main Board The Software
More ADK Possibilities
Which Board Should You Use? Chapter 6: Light Intensity Sensing.
Supported Android Devices Project 7: Sensing Light Intensity with a Photoresistor
Setting Up the Development Environment The Parts
The Java Development Kit The Setup
The Android SDK The Software
The Eclipse IDE Bonus: Measure Illuminance in Lux with Android
The Arduino IDE
Installing Hardware Drivers Chapter 7: Temperature Sensing
The ADK Reference Package Project 8: Sensing the Temperature with a Thermistor
Fritzing (Optional Software) The Parts
Ready, Set, Go The Setup
The Software
Chapter 2: Android and Arduino: Getting to Know Each n Chapter 8: A Sense of Touch
Other Project 9: DIY Capacitive Touch Game Show Buzzer
Hello Arduino The Parts
Hello Android The Setup
Getting To Know Each Other The Software
Extending Hello World for Arduino Bonus Practical Example: The ADK Paper Piano
Extending Hello World for Android
Let’s Talk Chapter 9: Making Things Move
Processing Commands for Arduino Project 10: Controlling Servos
Processing Commands for Android The Parts
The Setup
Chapter 3: Outputs The Software
Project 1: Toggle an LED Project 11: Controlling DC Motors
The Parts The Parts
The Setup The Setup
The Software The Software
Project 2: Dim an LED
The Parts Chapter 10: Alarm System
The Setup Project 12: SMS Alarm System with Tilt-Switch
The Software The Parts
The Setup
Chapter 4: Inputs The Software
Project 3: Reading the State of a Button Project 13: Camera Alarm System with IR Light Barrier
The Parts The Parts
The Setup The Setup
The Software The Software
Project 4: Adjusting Analog Input with a Potentiometer
The Parts Index
Brian Evans

Beginning Arduino Programming: Writing Code for the Most


Popular Microcontroller Board in the World
Введение в программирование Arduino: пишем код для самых
популярных микроконтроллерных плат в мире

— Publisher: Apress, 2011. — 272 pages


— Series: Technology in Action

ISBN-10: 1430237775
ISBN-13: 978-1430237778

Книга позволит быстро развить свои навыки программирования, поможет научиться основам
разработки кода для Arduino, в том числе, написания функций и библиотек, необходимых для
создания будущих проектов.

CONTENTS

About the Author Making Decisions


About the Technical Reviewer Project 3: Tilt Blink
Acknowledgments Hooking It Up
Introduction Uploading the Source Code
Who This Book is For Source Code Summary
Reading This Book Comparative and Logical Operators
Downloading the Code Control Statements
If
Getting Started For
Arduino is for Makers While
The Arduino Ecosystem Do
The Arduino Platform Switch
Open-Source Hardware Break
Community Continue
Arduinoland Summary
Arduino is C… Mostly
What’s Needed Digital Ins and Outs
Getting Up and Running Arduino I/O Demystified
Installing the Software Project 4: Noisy Cricket
Connecting the Arduino Hooking It Up
Opening a Sketch Uploading the Source Code
Selecting the Board and Serial Port Source Code Summary
Uploading a Sketch Digital Functions
Summary pinMode()
digitalWrite()
Sketching in Code digitalRead()
What is Sketching in Code? State Changes
Project 1: RGB Blink Toggle
Hooking It Up Counting
Uploading the Source Code Modality
Source Code Summary Summary
The Structure of Arduino C
Using Comments Analog In, Analog Out
Basic Functions Analog Demystified
Statements and Syntax Project 5: Telematic Breath
Verifying and Uploading Hooking It Up
Verifying Uploading the Source Code
Saving Source Code Summary
Uploading Analog Functions
Common Errors analogRead()
Summary analogWrite()
analogReference()
Working with Variables Analog Serial Monitor
Project 2: 7-Color Blink Reading Analog Values
Hooking It Up Using the Serial Monitor
Uploading the Source Code How It Works
Source Code Summary Mapping Values
What’s a Variable? map()
Declaring Variables constrain()
Variable Names Summary
Data Types
Variable Qualifiers Advanced Functions
Predefined Constants Timing Functions
Variable Scope delay()
Using Operators delayMicroseconds()
Arithmetic Operators: +, -, *, / millis()
Compound Operators: ++, --, +=, -=, *=, /= micros()
Order of Operations Random Functions
random()
randomSeed() Serial and I2C
Project 6: Ambient Temps Using Hardware Serial
Hooking It Up Project 9: Serial to Servo
Uploading the Source Code Hooking It Up
Source Code Summary Uploading the Source Code
Writing Functions Source Code Summary
Declaring Functions Serial Library
Calling Functions begin()
Function Returns available()
Function Parameters read()
Project 7: HSB Color Mixer print()
Hooking It Up println()
Uploading the Source Code write()
Source Code Summary Project 10: RFID Reader
Hardware Interrupts Hooking It Up
attachInterrupt() Uploading the Source Code
detachInterrupt() Source Code Summary
Summary SoftwareSerial Library
SoftwareSerial()
Arrays and Memory begin()
Project 8: Decision Machine flush()
Hooking It Up strncmp()
Uploading the Source Code Project 11: Serial Time Clock
Source Code Summary Hooking It Up
Arrays Uploading the Source Code
Declaring Arrays Source Code Summary
Using Arrays Wire Library
Character Arrays begin()
Multidimensional Arrays beginTransmission()
Arduino Memory endTransmission()
Checking Free RAM write()
Using Program Memory requestFrom()
Using EEPROM read()
Summary Summary

Hardware Libraries Continuing On


Using Libraries Build More Projects
Creating an Instance Bonus Project 1: Make Something Tweet
Initializing the Library Bonus Project 2: Make Something Move
LiquidCrystal library Bonus Project 3: Mega-Size Something
Example Code: Arduino Haiku Learn Another Language
LiquidCrystal() Firmata
begin() Processing
print() PureData
clear() Contribute to the Community
setCursor() Participate in Online Forums
Example Code: Symbols and Characters() Publish Your Project
write() Summary
createChar()
Example Code: Fish Tank Animation Beginning Electronics
scrollDisplayLeft() and scrollDisplayRight() Basic Electronics
Servo Library Circuits
Example Code: Reminder Bell Electricity
Servo Common Components
attach() Resistors
write() Capacitors
Stepper Library Diodes
Example Code: 60-Second Sweep Transistors
Stepper Switches
setSpeed() Motors
step() Reading Schematics
SD Library Prototyping
Example Code: SD Logger Breadboards
File Soldering
SD.begin() Summary
SD.open()
close() Resources
write() Additional Resources
print() Forums
Example Code: SD Flicker Tutorials
available() Other Stuff
read() Selected Suppliers
Summary Parts Used in This Book
Brian Evans, Emery Premeaux

Arduino Projects to Save the World


Проекты Arduino для сохранения окружающей среды

— Publisher: Apress, 2011. — 256 pages

ISBN-10: 143023623X
ISBN-13: 978-1430236238

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

CONTENTS

About the Authors Assembly


About the Technical Reviewer Prepare the Solar Panels
Acknowledgments Wire the Power Supply Subsytems
Preface Mount the Battery Case and Connect the Supplies
Install the Sensors
Chapter 1: Saving the World… Build the Clock Circuit
It’s All About Sensors Software
Arduino’s Analog to Digital Converter (ADC) Libraries
Conversion Process Code
Changing the Voltage Reference Testing It Out
Voltage Dividers Put It in a Case
A Strategy for Prototyping Sensor Systems Resources
Understand the Sensor
Figure Out the Equations Chapter 4: Telesensation
Write a Sample Serial Sketch Getting the Lay of the Land
Put the Sensor Through its Paces Planning the Message Flow and Hardware
Integrate the Code into the Project by Building Sensor Functions A Simple Network
Consider Power Saving Whenever Possible A Complex Network
Supplies and Tools Needed A Look at Available Radio Options
Building the BreadboardShield Serial AM/FM Radio
Summary Bluetooth UART/Serial Modems
Zigbee and Xbee
Chapter 2: Spider Temps Freakduino
The Hardware Antenna Considerations
Parts List Building the Two-Node Sensor Network
Optional Freakduino-Chibi Version Hardware
Building It Xbee version Hardware (Stalker version 2.0)
Mechanical Build Processing umm… Processes!
Determining Temperature Equations Adding Logging Features
Test Code Reading Data into a Spreadsheet
Basic SpiderTemps Code Conclusion
Test It Out Resources
SpiderTemps, Take Two: Calibration
Adding a Display Chapter 5: Contributing to the Hive Mind
Battery Powered? Introduction to Online Data Aggregation Services
Boxing It Up Pachube.com
Making Mods Google.com/powermeter
Conclusion Sensorpedia.com
Open.Sen.se
Chapter 3: Jungle Power Taking a Closer Look at Pachube
Diverse Power Sources Terminology and Account Limitations
Solar Power Pachube, Meet Arduino
Wind Power Getting Started
Water Power Install Processing and Various Libraries.
Energy Harvesting The Build
Three Sides to Every (Power) Story Setting Up a Feed on Pachube
Input (Batteries, Charge Controllers, and Free Energy) Arduino Sketch: Firmata
Regulation Options PC Side: Processing and EEML
Selecting Your Sensor Node Arduino Putting it All Together .
Tips to Optimize Your System for Longer Battery Life Going Further
Lower the Operating Voltage Conclusion .
Using a Zener Diode to Drive Aref References
Putting the Arduino to Sleep
Get Rid of LEDs Wherever Possible Chapter 6: The Mass Effect
The Build The Data .
Parts The Project .
Build Process Seismograph Technology .
Measuring Current Draw How MEMS Accelerometers Work
Determining Operational Duty Cycle (Arduino Takes a Nap) The Build .
More about Batteries Building the Prototype Hardware
Choosing Solar Panels Software
Arduino Code Current and Voltage Sensing
Processing Connecting the Display
Building the Final Transducer System Building the Cable
Transducer Considerations Finishing it Up
Cabling Considerations Energy Monitor Code
Parts List Constants
Getting Prepared setup() and loop()
A System of Three Systems . calculatePower()
Testing and Assembly displayPower()
Installation . Calibrating
Going Further Current Settings
References Voltage Settings
Entering the Constants
Chapter 7: Staying Current Wrapping it Up
What Is Alternating Current? Going Further
Energy Monitor Hardware Energy Monitor SD Code
Split-Core Current Transformer Code Summary
AC/AC Adapter Further Still?
Liquid Crystal Display Conclusion
Three-Wire Extension Cord References
Parts List
Building it Index
Jon Lazar

Arduino and LEGO Projects


Проекты Arduino и LEGO

— Publisher: Apress, 2013. — 212 pages

ISBN-10: 1430249293
ISBN-13: 978-1430249290

Все мы знаем как удивителен LEGO. И все больше людей обнаруживает сколько удивительных
вещей можно сделать с Arduino. В этой книге показывается как объединить Arduino и LEGO, чтобы
собрать забавные гаджеты.

CONTENTS

About the Author Chapter 5: Animating the TARDIS


About the Technical Reviewer Doctoring the TARDIS
Acknowledgments Coding the Wave Shield
The Chameleon Circuit: Building the TARDIS
Chapter 1: LEGO, Arduino, and The Ultimate Machine Building the Walls
Introducing the Arduino Securing the Walls
Your First Arduino Program Building the Windows
Programming the Ultimate Machine Installing the Windows
Assembling the Arduino and Motor Adding the Arduino
Programming the Arduino Back to the Body
Building the Ultimate Machine Creating Labels
Selecting the Dimensions Building the Roof
Building the Brick Walls
Adding The Arduino Chapter 6: Controlling LEGO Trains with Arduino
Adding LEGO Arms and a Switch Arduino Train Controls
Raising the Walls Programming the Train Controls
Building the Lid Building the Train Station
Building a LEGO Train
Chapter 2: Using Sensors with the Android Adding Wheels
The Ultrasound Sensor Adding the Battery Pack
Adding Additional Sensors Adding the IR Receiver
Building the Android
Start with the Foundation Chapter 7: Building a Light-Sensitive Box
Building a Harness for the Arduino The Box's Mechanics
Adding a Level for the Power Plug Programming the Box
Building the Body Building the Box
Adding Arms and Sensors Adding the Arduino
Separating the Body from the Head Adding the Motor
Building the Head Adjusting the Wall Height
Creating the Legs Adding Hinges
Building the Arms Adding a Lid
Building the Antenna
Appendix A: Parts List
Chapter 3: Twitter PetI
Connecting the Arduino to the Internet Chapter 1: LEGO, Arduino, and the Ultimate Machine
Building The Twitter Pet Chapter 2: Using Sensors with the Android
Building the Base Chapter 3: Twitter Pet
Setting the Arduino in Place Chapter 4: RFID and the Crystal Ball
Covering the Arduino Chapter 5: Animating the TARDIS
Adding Rings Chapter 6: Controlling LEGO Trains With Arduino
Adding the Eyes and Nose Electronics
Adding the Head LEGO for Train Station
LEGO for Train
Chapter 4: RFID and the Crystal Ball.i Chapter 7: Building a Light Sensitive Box
Arduino and RFID Electronics
Generating Magic with Code LEGO
Building the Crystal Ball
Building the Base
Building the Lid
Building the Sphere Index
Building the Magic Wand
Michael McRoberts

Beginning Arduino
Arduino для начинающих

— Publisher: Apress, — Series: Technology in Action


— 1 edition 2010 — 472 p. ISBN-10: 1430232404 ISBN-13: 978-1430232407
— 2 edition 2013 — 424 p. ISBN-10: 143025016X ISBN-13: 978-1430250166

В книге на примере 50-и интересных проектов вы узнаете всё о популярной платформе Arduino.

CONTENTS

About the Author Enter the Code


About the Technical Reviewer Project 9 – LED Fire Effect – Code Overview
Acknowledgments Project 10 – Serial Controlled Mood Lamp
Introduction Enter the Code
Introduction Project 10 – Serial Controlled Mood Lamp – Code Overview
How to Use This Book Summary
What You Will Need
What Exactly is an Arduino? Simple Sounders and Sensors
Getting Started Project 11 – Piezo Sounder Alarm
Windows XP Installation Parts Required
Windows 7 & Vista Installation Connect It Up
Mac OSX Installation Enter the Code
Board and Port Selection Project 11 – Piezo Sounder Alarm – Code Overview
Upload Your First Sketch Project 11 – Piezo Sounder Alarm – Hardware Overview
The Arduino IDE Project 12 – Piezo Sounder Melody Player
Enter the Code
Light ’Em Up Project 12 – Piezo Sounder Melody Player – Code Overview
Project 1 – LED Flasher Project 13 – Piezo Knock Sensor
Parts Required Parts Required
Connecting Everything Connect It Up
Enter the Code Enter the Code
Project 1 – LED Flasher – Code Overview Project 13 – Piezo Knock Sensor – Code Overview
Project 1 – LED Flasher – Hardware Overview Project 14 – Light Sensor
Project 2 – S.O.S. Morse Code Signaler Parts Required
Project 2 – S.O.S. Morse Code Signaler – Code Overview Connect It Up
Project 3 – Traffic Lights Enter the Code
Parts Required Project 14 – Light Sensor – Hardware Overview
Connect It Up Summary
Enter the Code Subjects and Concepts covered in Chapter 4:
Project 4 – Interactive Traffic Lights
Parts Required Driving a DC Motor
Connect It Up Project 15 – Simple Motor Control
Enter the Code Parts Required
Project 4 – Code Overview Connect It Up
Project 4 – Interactive Traffic Lights Hardware Overview Enter The Code
Logic States Project 15 – Simple Motor Control – Code Overview
Pull-Down Resistors Project 15 – Simple Motor Control – Hardware Overview
Pull-Up Resistors Transistors
The Arduino’s Internal Pull-Up Resistors Motors
Summary Diodes
Project 16 – Using an L293D Motor Driver IC
LED Effects Parts Required
Project 5 – LED Chase Effect Connect It Up
Parts Required Enter the Code
Connect It Up Project 16 – Using an L293D Motor Driver IC – Code Overview
Enter the Code Project 16 – Using an L293D Motor Driver IC – Hardware
Project 5 – LED Chase Effect – Code Overview Overview
Project 6 – Interactive LED Chase Effect Summary
Parts Required Subjects and concepts covered in Chapter 5
Connect It Up
Enter The Code Binary Counters
Project 6 – Interactive LED Chase Effect – Code Overview Project 17 – Shift Register 8-Bit Binary Counter
Project 6 – Interactive LED Chase Effect – Hardware Overview Parts Required
Project 7 – Pulsating Lamp Connect It Up
Parts Required Enter The Code
Connect It Up The Binary Number System
Enter the Code Project 17 – Shift Register 8-Bit Binary Counter Hardware
Project 7 – Pulsating Lamp – Code Overview Overview
Project 8 – RGB Mood Lamp Project 17 – Shift Register 8-Bit Binary Counter – Code Overview
Parts Required Bitwise Operators
Connect It Up Bitwise AND (&)
Enter the Code Bitwise OR (|)
Project 8 – RGB Mood Lamp – Code Overview Bitwise XOR (^)
Project 9 – LED Fire Effect Bitwise NOT (~)
Parts Required Bitshift Left (<<), Bitshift Right (>>)
Connect It Up Project 17 – Code Overview (continued)
Project 18 – Dual 8-Bit Binary Counters Project 30 – Line Following Robot – Code Overview
Parts Required Summary
Connect It Up Subjects and Concepts covered in Chapter 10
Enter the Code
Project 18 Code & Hardware Overview Pressure Sensors
Summary Project 31 – Digital Pressure Sensor
Subjects and Concepts covered in Chapter 6 Parts Required
Connect It Up
LED Displays Enter the Code
Project 19 – LED Dot Matrix Display – Basic Animation Project 31 – Digital Pressure Sensor – Code Overview
Parts Required SPI – Serial Peripherals Interface
Connect It Up Project 31 – Digital Pressure Sensor – Code Overview (cont.)
Enter the Code Project 32 – Digital Barograph
Project 19 – LED Dot Matrix – Basic Animation – Hardware Parts Required
Overview Connect It Up
Multiplexing Enter the Code
Project 19 – LED Dot Matrix – Basic Animation – Code Overview Project 32 – Digital Barograph – Code Overview
Project 20 – LED Dot Matrix Display – Scrolling Sprite Summary
Enter the Code Subjects and Concepts covered in Chapter 11
Project 20 – LED Dot Matrix – Scrolling Sprite – Code Overview
Project 21 – LED Dot Matrix Display – Scrolling Message Touch Screens
Parts Required Project 33 – Basic Touch Screen
Connect It Up Parts Required
Enter the Code Connect It Up
Project 21 – LED Dot Matrix – Scrolling Message – Hardware Enter the Code
Overview Project 33 – Basic Touch Screen – Hardware Overview
Project 21 – LED Dot Matrix – Scrolling Message – Code Project 33 – Basic Touch Screen – Code Overview
Overview Project 34 – Touch Screen Keypad
Project 22 – LED Dot Matrix Display – Pong Game Parts Required
Parts Required Connect It Up
Connect It Up Enter the Code
Upload the Code Project 34 –Touch Screen Keypad – Code Overview
Project 22 – LED Dot Matrix – Pong Game Project 35 – Touch Screen Light Controller
Summary Parts Required
Subjects and concepts covered in Chapter 7: Connect It Up
Enter the Code
Liquid Crystal Displays Project 35 – Touch Screen Controller – Code Overview
Project 23 – Basic LCD Control Summary
Parts Required Subjects and Concepts covered in Chapter 12
Connect It Up
Enter The Code Temperature Sensors
Project 23 – Basic LCD Control – Code Overview Project 36 – Serial Temperature Sensor
Project 23 – Basic LCD Control – Hardware Overview Parts Required
Project 24 – LCD Temperature Display Connect It Up
Parts Required Enter the Code
Connect It Up Project 36 – Serial Temperature Sensor – Code Overview
Enter The Code Project 37 – 1-Wire Digital Temperature Sensor
Project 24 – LCD Temperature Display – Code Overview Parts Required
Summary Connect It Up
Subjects and Concepts Covered in Chapter 8 Enter the Code
Project 37 – 1-Wire Digital Temperature Sensor – Code
Servos Overview
Project 25 – Servo Control Summary
Parts Required Subjects and Concepts covered in Chapter 13
Connect It Up
Enter The Code Ultrasonic Rangefinders
Project 25 – Servo Control – Code Overview Project 38 – Simple Ultrasonic Rangefinder
Project 25 – Servo Control – Hardware Overview Parts Required
Project 26 – Dual Servo Control Connect It Up
Parts Required Enter the Code
Connect It Up Project 38 – Simple Ultrasonic Range Finder – Code Overview
Enter The Code Project 38 – Simple Ultrasonic Range Finder – Hardware
Project 26 – Dual Servo Control – Code Overview Overview
Project 27 – Joystick Servo Control Project 39 – Ultrasonic Distance Display
Parts Required Parts Required
Connect It Up Connect It Up
Enter The Code Enter the Code
Project 27 – Joystick Servo Control – Code Overview Project 39 – Ultrasonic Distance Display – Code Overview
Summary Project 40 – Ultrasonic Alarm
Subjects and Concepts Covered in Chapter 9 Parts Required
Connect It Up
Steppers and Robots Enter the Code
Project 28 – Basic Stepper Control Project 40 – Ultrasonic Alarm – Code Overview
Parts Required Project 41 – Ultrasonic Theremin
Connect It Up Enter the Code
Enter the Code Project 41 – Ultrasonic Theremin – Code Overview
Project 28 – Basic Stepper Control – Code Overview Summary
Project 28 – Basic Stepper Control – Hardware Overview Subjects and Concepts covered in Chapter 14
Project 29 – Using a Motor Shield
Parts Required Reading and Writing to an SD Card
Connect It Up Project 42 – Simple SD Card/Read Write
Enter the Code Parts Required
Project 29 – Using a Motor Shield – Code Overview Connect It Up
Project 29 – Using a Motor Shield – Hardware Overview Enter the Code
Project 30 – Line Following Robot Project 42 – Simple SD Card Read/Write – Code Overview
Parts Required Project 43 – Temperature SD Datalogger
Connect It Up Parts Required
Enter the Code Connect It Up
Enter the Code Communicating over Ethernet
Project 43 – Temperature SD Datalogger – Code Overview Project 46 – Ethernet Shield
Project 43 – Temperature SD Datalogger – Hardware Overview Parts Required
Summary Connect It Up
Subjects and Concepts covered in Chapter 15 Enter the Code
Project 46 – Ethernet Shield – Code Overview
Making an RFID Reader Project 47 – Internet Weather Display
Project 44 – Simple RFID Reader Enter the Code
Parts Required Project 47 – Internet Weather Display – Code Overview
Connect It Up Project 48 – Email Alert System
Enter the Code Enter the Code
Project 44 – Simple RFID Reader – Hardware Overview Project 48 – Email Alert System – Code Overview
Project 45 – Access Control System Project 49 – Twitterbot
Parts Required Enter the Code
Connect It Up Project 49 – Twitterbot – Code Overview
Enter the Code Project 50 – RSS Weather Reader
Project 45 – Access Control System – Code Overview Enter the Code
Summary Project 50 – RSS Weather Reader – Code Overview
Subjects and Concepts covered in Chapter 16 Summary
Subjects and Concepts covered in Chapter 17
Enrique Ramos Melgar, Ciriaco Castro Diez

Arduino and Kinect Projects: Design, Build, Blow Their Minds


Проекты Arduino и Kinect: замысел, сборка, программирование

— Publisher: Apress, 2012. — 416 pages


— Series: Technology in Action

ISBN-10: 1430241675
ISBN-13: 978-1430241676

В книге собрано десять увлекательных проектов для связки Arduino и Kinect.

CONTENTS

About the Authors Processing Variables


About the Technical Reviewer Structure of a Processing Sketch
Acknowledgments draw() Function
Introduction Processing Libraries
The Structure of This Book Simple-OpenNI
The Content of the Chapters Installing Simple-OpenNI
Installation on Linux
Arduino Basics Accessing the Depth Map and RGB Image
What is Arduino? The Third Dimension
A Brief History of Arduino Processing in 3D
Installing Arduino Camera Control Libraries
Installation on Mac OS X KinectOrbit Example
Installation on Windows Kinect Space
Installation on Linux Linear and Two-Dimensional Arrays
Testing the Arduino Coloring the Point Cloud
Arduino Hardware NITE Functions
Arduino Input and Output Pins Hand Tracking
Pull-Up Resistors Skeleton Tracking
Arduino Shields Summary
Arduino IDE
Serial Monitor Arduino and Kinect: “Hello World”
Arduino Language Parts List for Hello World
The setup() Function Serial Communication
The loop() Function Serial-Controlled LED
Variables Writing Your Own Communication Protocol
Your First Arduino Project Serial-Controlled LEDs
Breadboard Kinect-Controlled LEDs
Building the Circuit Feedback from Arduino
Programming the Arduino Summary
Circuit Diagrams
Fritzing Kinect Remote Control
Electronic Symbols Parts List for Kinect Remote Control
Electricity Hacking a Remote Control
AC/DC Connecting the Remote to Arduino
Ohms Law Assembling the Prototype Shield
Joule’s Law Testing the Circuit
Summary Kinect Hand Tracking and Gesture Recognition
Libraries and Setup
Kinect Basics NITE Callbacks
A Brief History of the Kinect Draw Loop and Other Functions
Hacking the Kinect Connecting the Processing Sketch to Arduino
Official Frameworks Summary
The Kinect Sensor
Positioning your Kinect Kinect Networked Puppet
Kinect Capabilities The Puppet
RGB Image Servos
IR Image Building the Stage
Depth Map Building the Puppet
Hand and Skeleton Tracking Building the Circuit
Kinect Drivers and Frameworks Testing the Servos
OpenKinect: Libfreenect Drivers Setting the Servos to the Starting Position
PrimeSense: OpenNI and NITE Skeleton Tracking On-Screen
Microsoft Kinect for Windows Simple-OpenNI Events
Kinect Theory Angle Calculation
Structured-Light 3D Scanning Network Communication
Converting the Light Coding Image to a Depth Map Communicating Within a Local Network
Kinect Alternative: ASUS Xtion PRO Communicating over the Internet
Summary Server Applet: Sending the Angles over a Network
Client Applet: Controlling the Puppet
Processing Final Arduino Code
Processing Language Summary
Installing Processing
Processing IDE Mood Lamps
A First Processing Sketch RGB Color Space
Arduino Nano Using the Weight Data
Building the Circuit Implementing the Biometric Recognition
Resistors Imports and Variable Declaration
Understanding Resistor Color Codes Setup Function
Testing the Circuit User Interface
XBee Wireless Module Draw Function
Arduino Programming Additional Functions
The Lamp Class Summary
Object-Oriented Programming
User Control Sketch 3D Modeling Interface
Variable Declaration The Interface
Setup() Function Arduino LilyPad
Draw() Function Flex Sensors
User Control Sewing the Circuit
Data Storage and Retrieval Testing the Circuit
Serial Communication Arduino Serial Sender
Display Functions Processing Glove Data Receiver
Simple-OpenNI Callbacks Going Wireless
Summary LilyPad XBee
SoftwareSerial Library
Kinect-Driven Drawing Robot Wireless Arduino Code
Building the Robot Implementing the Modeling Interface
Part 1 The GloveInterface Class
Part 2 Geometric Classes
Part 3 Modeling Interface Main Program
The Base Summary
Building the Circuit
Testing the Circuit Turntable Scanner
Firmata and the Arduino Library for Processing The Theory
Servo Test Building a Turntable
Robot Simulation Connecting the Gears
Angle Measuring Program Building the Circuit
Robot Simulation Program Arduino Code
Driving the Physical Robot Processing Code
Kinect: Tangible Table Interface Variable Declaration
Calibrating the Point Cloud Setup and Draw Functions
Virtual Robot Model Additional Functions
Polishing the Input Exporting the Point Cloud
The Drawing Robot in Action The exportPly Function
Summary Surface Reconstruction in Meshlab
Summary
Kinect Remote-Controlled Vehicles
Electrical Motors and the H-Bridge Kinect-Controlled Delta Robot
Hacking a Car About This Project
Building the Circuit The Delta Robot
Testing the Circuit Building a Delta Robot
Arduino Testing Sketch The Legs
Proximity Sensors The Base
XBee and Wireless The Effector
Kinect RC Interface The Gripper
Setup Function Hanging the Robot
Draw Function Building the Circuit
Other Functions Delta Robot Simulation Software
Summary Inverse Kinematics
DeltaRobot Class
Biometric Station deltaLeg Class
Hacking a Bathroom Scale Driving the Delta Robot Simulation with the Mouse
Seven-Segment LCD Kinect-Controlled Delta Robot
Hacking the LCD Gripper Control
Acquiring the LCD Signal Sending the Data to Arduino
Reading the LCD Signal Arduino Code
Sending the Signal to Processing
Decoding the LCD Signal Summary
Tony Olsson

Arduino Wearables
«Носимый» Arduino

— Publisher: Apress, 2012. — 336 pages


— Series: Technology in Action

ISBN-10: 1430243597
ISBN-13: 978-1430243595

Вы, наверное, видели футболки и шляпы cо световым LED оформлением, и возможно другие
электронные гаджеты, встроенные в одежду, но с Arduino вы можете научиться делать свои
собственные носимые электронные творения. Каждая глава покажет весь путь от идеи до готового
проекта. Даже если у вас нет опыта работы с Arduino, эта книга поможет вам настроить всё
программное обеспечение и оборудование, которое требуется. Вы освоите простые проекты, а затем
приступите к более сложным.

CONTENTS

About the Author Variables


About the Technical Reviewer The Basic Structure of a Program
Acknowledgments Basic Commands
Preface Setting pinMode
Writing a Pin’s State
Chapter 1: Introduction Adding a Delay
Wearables. Summary
World, Say Hello to Arduino
Sharing is Caring Chapter 3: Hardware
Talking the Talk The Arduino Hardware
Wearables A Closer Look
Wearable Computing On the Inside
Inflatables Board Layout
Moveables USB Connector
Haptics Digital Pins
Embedded Technology Analog Pins
E-textile Power Pins
Conductive Materials External Power
Hacking Electricity
Prototyping Voltage, Current, and Resistance
Techno Fashion Batteries
Interactivity Battery Connectors
DIY Testing the Hardware
High and Low Tech Summary
Critical Design
Physical Computing Chapter 4: Smart Materials and Tools
Work Process Materials
The Idea Thermochromic Ink
Researching Kanthal Wire
Design Conductive Foam.
Building and Testing Conductive Thread
Where to Buy Stuff Conductive Textile
SparkFun Electronics Conductive Velcro
Adafruit Industries Conductive Paint
RS Components Smart Wire
Farnell Nitinol Wire
Robot Italy Tools
PlugHouse Alligator Clips
Seeed Studio Breadboard
Squarebit Multimeter
electro:kit Camera
Arduino Store Helping Hands
LessEMF Needle-nose Pliers
Further Reading Soldering Iron
Wire Cutters
Chapter 2: Software Summary
Installing the IDE
Installing the IDE on Windows Chapter 5: LED Bracelets
Installing the IDE on Mac OS X Materials and Tools Needed
Installing the FTDI Driver on OS X Soft Bracelet
Running the IDE Hard Bracelet
Examining the File Menu Using Multimeters
Examining the Edit Menu. Conductivity
Examining the Tools Menu Measuring Resistance
Examining the IDE Buttons Measuring Voltage
What Is Software? Using LEDs
How We Write Code Serial vs. Parallel
Basic Schematic for Parallel LED Bracelet Circuit millis()
Soft Bracelet Stereo vs. Mono
Step 1-5 Final Stitching
Hard Bracelet Wrapping Up
Step 1-3
Finishing Up Chapter 10: Sunshine Umbrella
Materials and Tools Needed
Chapter 6: Solar-Powered Glow-in-the-Dark Bag Getting Started
Materials and Tools Needed Multiplexing
Solar Panels Sensing Water
Power Diode Constructing the Umbrella
Resistors Stitching the Water Sensor
Making a Battery Charger Soldering the Matrix
Making the Bag Hooking Everything Up
LDR Sensor Switch Writing the Code
Adding the Solar Panel LED Test Code
Adding the EL Panels Random Rain
Putting Everything Together Pin Point Control
The Final Bag Wrapping Up
Wrapping Up
Chapter 11: Beat Dress
Chapter 7: Piano Tie. Tool and Materials Needed
Tools and Materials Needed Getting Started
Making Sounds with Piezos The Little Dress Design
Cutting the Tie Cutting the Dress
Adding the Buttons Reenter the Matrix
Stitching the Schematic Dress Stitching and LED Poking
Checking the Layout Hooking Up the Arduino and Microphone
Writing the Code Writing the Code
Testing the Buttons Lightning Beat
Making Sound Dress Texting
Piecing the Code Together Wrapping Up
Piano Code
Synthesizing Chapter 12: Shape Memory Flower
Tone and noTone Materials and Tools Needed
Piano Tie Code Using tone and noTone Shape Memory Alloy
Finishing the Tie Generating Heat
Wrapping Up Testing the Wire
Notes and Frequencies Creating the Flower
Connecting the Flower to a LilyPad
Chapter 8: Bag Alarm Programming the Flower
Tool and Materials Needed Using Booleans.
Cutting the Shape Adding the Light Sensor
Analog Sensors Reprogramming the Wire
Making an Analog Zipper Sensor Wrapping Up
Theory Behind the Zipper
Testing the Zipper Chapter 13: EL Wire Dress
Serial Communication Materials and Tools Needed
Test Code EL Wire
Making the Circuit The Dress Design
Stitching the Bag Making the Electronic Belt
Making the Button Hole EL Components
Sounding the Alarm Adding Power to the Sequencer
Bag Alarm Code Programming the Dress
Using && Random Blinking
Breaking into the Bag Adding Randomness to the Blinking
Bag of Fun Fading the Wires with PWM
Using Arrays Finalizing the Dress
Storing the Notes and Making Melodies Wrapping Up
Wrapping Up
Chapter 14: Making Things Tiny
Chapter 9: Beatbox Hoodie Materials and Tools Needed
Tools and Materials Needed The ATtiny
Making a Hoodie Libraries and Programming the ATtiny
Stitching Things Adding a Library
Skin Buttons Tiny Speed
Button Arm and Hoodie Lining Programming the ATtiny
Completing the Circuit The Tiny Chip That Could
Connecting the Speakers Three Tiny Projects
The Microphone Skin Sound Bracelet
Battery Pack The Angry Rabbit
Arm Buttons Tiny Boards
Coding the Sequencer Wrapping Up
The Code
Time Is the Key Index
Jonathan Oxer, Hugh Blemings

Practical Arduino. Cool Projects for Open Source Hardware


Arduino на практике.
Отличные проекты для оборудования с открытым исходным кодом

— Publisher: Apress, 2009. — 456 pages


— Series: Technology in Action

ISBN-10: 1430224770
ISBN-13: 978-1430224778

Создайте свои собственные конструкции на Arduino. Научитесь языку программирования,


создавая практические проекты на базе Arduino, которые можно реализовать в домашних условиях.

CONTENTS

About the Author


About the Technical Reviewers Virtual USB Keyboard
Acknowledgments Parts Required
Instructions
Introduction Populate Prototyping Shield
Fundamentals Prepare the UsbKeyboard Library
Sharing Your Work Compile and Upload Sketch
Practical Electronics for Software Developers Variations
Current, Voltage, and Power Chording Keyboard
Mains Is Nasty
Reading Schematics PS/2 Keyboard or Mouse Input
Resistance and Resistors Parts Required
Ohm’s Law and Current Limiting Instructions
Choosing Wire PS/2 Connections
Diodes Recycled 6-Pin Mini-DIN Sockets
Power Supplies 6-Pin Mini-DIN Panel Sockets
USB Power PS/2 Extension Cable
Batteries Keyboard Software
Wall Warts/Plugpacks Mouse Software
Capacitance and Capacitors Variations Barcode Reader for a Stock Control System
Fundamentals Resources
Capacitor Types
Power Supply Bypass Security/Automation Sensors
ESD Precautions Parts Required
Tools Instructions
Parts Security Sensor Basics
Further Reading Assemble Four-Channel Alarm Sensor Shield
Install End-of-Line Resistors on Sensor
Appliance Remote Control Load Test Program
Parts Required PIR Placement
Instructions Variations
Test and Investigate Appliance Remote Visual Display Written in Processing
Assemble Reed Relay Shield Home Security System
Connect Reed Relay Shield to Remote Control Multiple Buttons on One Input
Create Reed Relay Control Program
ApplianceRemoteControl Online Thermometer
ApplianceRemoteControlCompact Parts Required
Test Reed Relay Shield and Sketch Instructions
Variations Mount PCB Plugs on Shield
Wireless Link Connect Data Lines
Automatic Trigger Assemble Sensors
Socket Connections Load Program
Variations
Time-Lapse Camera Controller
Parts Required Touch Control Panel
Instructions Parts Required
Assemble Prototyping Shield Instructions
Connect Camera Shutter Release How Resistive Touch Screens Work
Remote Shutter Release Connector Basic Touch Screen Connection Test
Infrared Remote Control Arduino TouchScreen Library
Modify Camera Controlling a “Processing” Program
Configure Camera Construct Hardware for Home Automation Control Panel
Calculate Photo Interval Calibrate Hot Zones
Configure and Load Sketch Mount Arduino
Check Memory Capacity
Set Up Your Shoot Speech Synthesizer
Process the Images Parts Required
Linux Instructions
Windows Speech Output Signal
Macintosh Beginning Assembly
Variations SpeakJet PWM "Audio" Output
Quick Test Indicator LEDs
Fit Status Indicators Manual Release Button
Making a Line-Level Output Cable Assemble the ID-12 Reader Module
On-Board Amplifier Assemble the RDM630 Reader
Speech Synthesizer Software Simple Stand-Alone Sketch
Create Your Own Messages Install the Strike Plate
Variations Install the Reader
Read SpeakJet Status Install the Arduino
Resources Variations
Extensible Read Head
Water Flow Gauge Speech Synthesizer Feedback
Parts Required Intelligent Desk Pad
Instructions Resources
Replace Sensor Connector
Prepare Prototyping Shield Vehicle Telemetry Platform
Prepare LCD Module Parts Required
Fit LCD to Case Instructions
Fit Arduino in Case Check the Vehicle Interface
Determine Scaling Factor Obtain a USB/OBD-II or RS-232 Adapter
Configure, Compile, and Test Sketch Test the USB/OBD-II Adapter
Hardware Interrupts Understanding OBD-II Modes and Parameters
Volatile Variables Prepare the USB/OBD-II Adapter
Flow Gauge Sketch Assemble the OBD-II Cable
Install Flow Sensor Prepare the GPS Module
Variations Assemble the Power Supply on the Shield
Online Logging Fit the Serial Connections on the Shield
Multiple Sensors Prepare the VDIP1 Module
Resources The LCD Module
Logging Control Button and Status LEDs
Oscilloscope/Logic Analyzer Mount in Sub-Assemblies in the Case
Parts Required OBDuino Mega Sketch
Instructions OBDuinoMega.pde
Assemble the Case LCD.pde
Fit the Prototyping Shield GPS.pde
Make Test Probes VDIP.pde
How Successive Approximation ADC Works Host.pde
Connection to Circuit under Test PowerFail.pde
Install Software in Arduino Using the OBDuinoMega Sketch Menu Buttons
Analog Read Version Running Logging
Digital Read Version Generate Google Earth Track
Digital Read Sketch with Optimized Communications Format Generate Charts of Parameters
Install Processing and Run Visualization Program Variations
Variations Mobile Internet Connection
Input Voltage Prescaler Vehicle Control
Resources Speech Synthesizer Output
3D Accelerometer
Water Tank Depth Sensor Digital Compass
Parts Required “Knight Rider”–Style Alarm Status
Instructions Battery Condition Check
Assemble the Shield Resources
Determine Sensor Installation Method
Assemble the Sensor Housing Resources
Assemble the Arduino Housing Simple Voltage Regulators
Install the WiShield Library and Driver Power Dissipation
Load the Tank-Level Sketch Dropout Voltage
Prettier Web Interface Efficiency
Calibrating the “Empty Tank” Level Driving LEDs
Install the Sensor and Arduino Multiplexing
Calibrating the “Full Tank” Level Charlieplexing
Variations Output Circuitry and Isolation
Upload Data to Pachube Semiconductor and Mechanical Switches
Control Pumps or Irrigation Reed Relays
Local Level Display Relays
Reading Multiple Tanks Bipolar Transistors
Transistor Arrays
Weather Station Receiver FETs
Parts Required Optocouplers
Instructions Solid State Relays
Test and Install the Weather Station Digital Input/Output Expansion
Understanding the Circuit Shift Registers As Outputs
Assemble the Receiver Shield Shift Registers As Inputs
Weather Station Receiver Program Input Conditioning
Twitter Weather Updates Voltage Dividers and Nonisolated Input Conditioning
Variations Isolated Input Conditioning
Private Online Weather Station Inexpensive DIY Prototyping Shields
Writing an Arduino Library
RFID Access Control System Develop Functionality As a Sketch
Parts Required Create the Library Header File
Instructions Create the Library Class File
Assemble the Prototyping Shield Create the Example Sketch
Power Supply Create Supporting Files
RFID Serial Connection Platform-Specific Variations
Relay Output Summary
Jack Purdum

Beginning C for Arduino: Learn C Programming for the


Arduino
Знакомство с Си для Arduino:
обучение программированию на Cи для Arduino

— Publisher: Apress, 2012. — 280 pages


— Series: Technology in Action
ISBN-10: 1430247762
ISBN-13: 978-1430247760

Книга написана для тех, кто не имеет опыта работы с микроконтроллерами и их


программированием, но хотел бы учиться и экспериментировать. Она знакомит вас с языком
программирования Cи, на простых примерах программирования плат Arduino. Автор использует
привлекательный стиль обучения, чтобы привить хорошие приёмы программирования, которые
были отточены за время его 25-летнего преподавания в университете.

CONTENTS

About the Author The int Data Type


About the Technical Reviewer The word Data Type
Acknowledgments The long Data type
Introduction The float and double Data Types
Assumptions About You Floating Point Precision
Resources The string Data Type
String Data Type
Chapter 1: Introduction The void Data Type
Assumptions About You The array Data Type
What You Need Defining versus Declaring Variables
An Atmel-Based Microcontroller Card Symbol Tables
Breadboard lvalues and rvalues
Miscellaneous Parts The Bucket Analogy
Verifying the Software Using the cast Operator
Verifying the Hardware Summary
Attaching the USB Cable Exercises
Selecting Your
c Board in the Integrated Development Environment Chapter 4: Decision Making in C
Port Selection Relational Operators
Loading and Running Your First Program The if Statement
The Blink Program A Modified Blink Program
Running the Blink Program Code The Circuit
Compiling the Blink Program Code The Program Code
Uploading the Blink Program The if-else Statement
Summary Cascading if Statements
The Increment and Decrement Operators
Chapter 2: Arduino C Two Types of Increment Operator (++)
The Building Blocks of All Programming Languages Two Flavors of the Decrement Operator (--)
Expressions Precedence of Operators
Statements The switch Statement
Statement Blocks The goto Statement
Function Blocks Getting Rid of Magic Numbers
The Five Program Steps The C Preprocessor
1. Initialization Step Heads or Tails
2. Input Step Initialization Step
3. Process Step Input Step
4. Output Step Process Step
5. Termination Step Output Step
The Purpose of the Five Program Steps Termination Step
A Revisit to the Blink Program Something to Think About
Program Comments Summary
Data Definition Exercises
The setup() Function
The loop() Function Chapter 5: Program Loops in C
Summary The Characteristics of Well-Behaved Loops
Exercises Condition 1: Variable Initialization
Condition 2: Loop Control Test
Chapter 3: Arduino C Data Types Condition 3: Changing the Loop Control Variable’s State
Unknown Using a for Loop
Keywords in C The while Loop
Variable Names in C The do-while Loop
The boolean Data Type The break and continue Keywords
The char Data Type The break Statement
Binary Data The continue Statement
The char Data Type and Character Sets A Complete Code Example
Generating a Table of ASCII Characters Step 1. Initialization
The byte Data Type Step 2. Input
Step 3. Process A Small Improvement
Step 4. Output How Many Dimensions?
Step 5. Termination Two-Dimensional Arrays and Pointers
Listing 5-1 is Sorta Dumb Code Treating the Two-Dimensional Array of chars as a String
Loops and Coding Style Pointers to Functions
Summary Arrays of Pointers to Functions
Exercises enum Data Type
The Right-Left Rule
Chapter 6: Functions in C Summary
The Anatomy of a Function Exercises
Function Type Specifier
Function Name Chapter 10: Structures, Unions, and Data Storage
Function Arguments Structures
Function Body Declaring a Structure
Function Signature Defining a Structure
What Makes a “Good” Function Accessing Structure Members
Functions Use Task-Oriented Names Returning a Structure from a Function Call
The Function Should Be Cohesive Using Structure Pointers
Functions Should Avoid Coupling Initializing a Structure
Writing Your Own Functions Arrays of Structures
Function Design Considerations Unions
Argument List EEPROM Memory
Function Body Using EEPROM
Logical Operators Data Logging
Logical AND Operator (&&) Other Storage Alternatives
Logical OR (||) Shields
Logical NOT (!) Other Uses for Secure Digital Storage
Writing Your Function Summary
The IsLeapYear() Function and Coding Style Exercises
Arguments versus Parameters
Why Use a Specific Function Style? Chapter 11: The C Preprocessor and Bitwise Operations
Leap Year Calculation Program Preprocessor Directives
Passing Data Into and Back From a Function #undef
Pass by Value #line
Summary #if, Conditional Directives
Exercises #include
Parameterized Macros
Chapter 7: Storage Classes and Scope Bitwise Operators
Hiding Your Program Data Bitwise Shift Operators
Statement Block Scope Using Different Bases for Integer Constants
Local Scope Parameterized Macros...continued
Name Collisions and Scope Summary
Global Scope Exercises
Global Scope and Name Conflicts
Scope and Storage Classes Chapter 12: Arduino Libraries
The auto Storage Class Libraries
The register Storage Class Arduino Libraries
The static Storage Class Other Libraries
The extern Storage Class Writing Your Own Library
The volatile keyword The Library Header File
Summary The Library Code File (Dates.cpp)
Exercises Setting the Arduino IDE to Use Your Library
A Sample Program Using the Dates Library
Chapter 8: Introduction to Pointers Adding the Easter Program to the IDE
Defining a Pointer The keywords.txt File
Pointer Name Keyword Coloring (theme.txt)
Asterisk Summary
Pointer Type Specifiers and Pointer Scalars Exercises
Using a Pointer
The Indirection Operator (*) Appendix A: Suppliers and Sources
Using Indirection Suppliers
Summary of Pointer Rules Seeedino Studio
Why Are Pointers Useful? Diligent Inc
Pointers and Arrays OSEPP
The Importance of Scalars Tinyos Electronics
Summary Cooking Hacks
Exercises Sources
Software
Chapter 9: Using Pointers Effectively
Relational Operations and Test for Equality Using Pointers Appendix B: Electronic Components for Experiments
Pointer Comparisons Must be Between Pointers to the Same Microcontroller Board
Data Solderless Breadboard
Pointer Arithmetic Electronic Components
Constant lvalues Online Component Purchases
Two-Dimensional Arrays Experiment!
Harold Timmis

Practical Arduino Engineering


Практическое конструирование с Arduino

— Publisher: Apress, 2011. — 328 pages


— Series: Technology in Action

ISBN-10: 1430238852
ISBN-13: 978-1430238850

Платы Arduino произвели впечатление на хакеров и профессиональных инженеров. Если ли Вы


человек, увлеченным своим хобби, или профессионал, то Arduino позволит вам продвинуться
дальше туманной идеи и макетной платы. Это важно для правильного проектирования приборов и,
действительно, полного тестирования ваших проектов перед изготовлением.
Книга объясняет в общих чертах процесс разработки: от основных требований и предвари-
тельного проекта - к анализу прототипа и тестированию. Каждая глава иллюстрирует этот процесс и
демонстрирует, как вы можете получить прибыль от реализации технических идей — независимо от
того, играете ли вы просто в своем подвале или хотите предать гласности и продать ваши
разработки.

CONTENTS

About the Author Configuring the Hardware


About the Technical Reviewers Writing the Software
Acknowledgments Project 3-5: Controlling Motors with Serial Commands
Preface Requirements Gathering
Gathering the Hardware
The Process of Arduino Engineering Outlining the Software Requirements
Gathering Your Hardware Configuring the Hardware
Gathering Your Tools Writing the Software
Understanding the Engineering Process Debugging the Arduino Software
Requirements Gathering Troubleshooting the Hardware
Creating the Requirements Document Finished Prototype
Gathering the Hardware Summary
Configuring the Hardware
Writing the Software Adding Complexity to the Robot: Working with LCDs
Debugging the Arduino Software Configuring a Color LCD Shield
Troubleshooting the Hardware Introducing the Monochrome and Color LCD Shields
Finished Prototype Working with the LiquidCrystal and ColorLCDShield (Epson or
Summary Phillips) Libraries
Using the LiquidCrystal Library
Understanding the Arduino Software ColorLCDShield Library
Getting Started with setup() and loop() Exploring the Basics of LCD Control
Initializing Variables Project 4-1: Displaying Multiple Sensor Values
Writing Conditional Statements Gathering the Hardware
Working with Loops Configuring the Hardware
Communicating Digitally Writing the Software
Communicating with Analog Components Project 4-2: Creating a Menu on the Monochrome LCD
Serial Communication Gathering the Hardware
Using Arduino Libraries Configuring the Hardware
NewSoftwareSerial Writing the Software
TinyGPS Project 4-3: Creating a Slot Machine with the Color LCD Shield
ColorLCDShield Library Gathering the Hardware
Putting Together the Arduino Language Basics Configuring the Hardware
Summary Writing the Software
Project 4-4: Using a Keypad to Communicate with the Color LCD
Robot Engineering Requirements: Controlling Motion Gathering the Hardware
Hardware Explained: The H-bridge Configuring the Hardware
Gathering the Hardware for this Chapter Writing the Software
Understanding the Basics of Motor Control Project 4-5: Creating the Customer’s Robot
Project 3-1: Turning on a Motor with a Switch Requirements Gathering and Creating the Requirements
Gathering the Hardware Document
Configuring the Hardware Gathering the Hardware
Writing the Software Configuring the Hardware
Project 3-2: Controlling the Speed of a Motor with a Writing the Software
Potentiometer Debugging the Arduino Software
Gathering the Hardware Troubleshooting the Hardware
Configuring the Hardware Finished Prototype
Writing the Software Summary
Project 3-3: Controlling Multiple Motors with the Arduino
Gathering the Hardware Robot Integration Engineering a GPS Module with the
Configuring the Hardware Arduino
Writing the Software Hardware Explained: microSD Shield
Project 3-4: Controlling Speed and Direction Understanding NMEA Protocol
Gathering the Hardware Libraries Explained: TinyGPS and SdFat Libraries
TinyGPS Hardware for This Project
SdFat Library Configuring the Hardware
The Basics of GPS Communication with the Arduino Writing the Software
Project 5-1: Writing Raw GPS Data to the Serial Monitor Project 7-3: Solar Controller
Hardware for This Project Hardware for This Project
Configuring the Hardware Configuring the Hardware
Writing the Software Writing the Software
Project 5-2: Writing GPS Data to a Monochrome LCD Requirements Gathering and Creating the Requirements
Hardware for This Project Document
Configuring the Hardware Hardware
Writing the Software Software
Project 5-3: Creating a Car Finder Configuring the Hardware
Hardware for This Project Writing the Software
Configuring the Hardware Debugging the Arduino Software
Writing the Software Troubleshooting the Hardware
Project 5-4: GPS Data Logger Finished Prototype
Hardware for This Project Summary
Configuring the Hardware
Writing the Software Mature Arduino Engineering: Making an Alarm System
Requirements Gathering and Creating the Requirements Using the Arduino
Document Hardware Explained: PIR
Hardware Basic Security System
Software Project 8-1: Door Alarm
Configuring the Hardware Hardware for This Project
Writing the Software Configuring the Hardware
Debugging the Arduino Software Writing the Software
Troubleshooting the Hardware Requirements Gathering and Creating the Requirements
Finished Prototype Document
Summary Hardware
Software
Interlude: Home Engineering from Requirements to Configuring the Hardware
Implementation Writing the Arduino Software
Understanding the Voltage Divider Debugging the Arduino Software
Hardware Explained: Sensors Troubleshooting the Hardware
Photoresistor Finished Prototype
Tilt Sensor Summary
Flex Sensor
Force Sensitive Resistor (FSR) Error Messages and Commands: Using GSM Technology
Digital Temperature and Humidity Sensor with Your Arduino
Digital Temperature Sensor (I2C) Hardware Explained: Cellular Shield
Libraries Explained: Wire Library and DHT22 Library Understanding the AT Command Set
Wire Library The Basics of GSM Communication
DHT22 Library Project 9-1: Sending a Text Message
Understanding the Basics of Sensors Hardware for This Project
Project 6-1: Flower Pot Analyzer Configuring the Hardware
Gathering the Hardware Writing the Software
Configuring the Hardware Project 9-2: Door Alarm with SMS Messaging
Writing the Software Hardware for This Project
Project 6-2: Using a FSR Sensor Configuring the Hardware
Gathering the Hardware Writing the Software
Configuring the Hardware Requirements Gathering and Creating the Requirements
Writing the Software Document
Project 6-3: Using a Flex Sensor Hardware
Hardware for this Project Software
Configuring the Hardware Configuring the Hardware
Writing the Software Writing the Software
Project 6-4: Digital Level Debugging the Arduino Software
Gathering the Hardware Troubleshooting the Hardware
Configuring the Hardware Finished Prototype
Writing the Software Summary
Project 6-5: Using a DHT22 Sensor with a Monochrome LCD
Gathering the Hardware Control and Instrumentation: The Xbox Controller and the
Configuring the Hardware LabVIEW Process
Writing the Software Introduction to the LabVIEW Environment
Project 6-6: Wireless Temperature Monitor The Front Panel
Requirements Gathering and Creating the Requirements The Controls Palette
Document The Block Diagram
Gathering the Hardware The Functions Palette
Outlining the Software Requirements The Tools Palette
Configuring the Hardware LabVIEW Functions Explained
Writing the Software The While Loop
Debugging the Arduino Software The Case Structure
Troubleshooting the Hardware The Sequence Structure
Final Prototype Numerical Functions
Summary String Functions
Comparison Functions
Robot Perception: Object Detection with the Arduino Serial Functions
Hardware Explained: Ultrasonic Sensor, Servo, and Buzzer Input Device Control Functions
Ultrasonic Sensor Gathering Requirements and Creating the Requirements
Servo Document
Buzzer Hardware
Libraries Explained: The Servo Library Software
Basics of the Ultrasonic Sensor and the Servo Configuring the Hardware
Project 7-1: Digital Ruler Writing the Software
Hardware for this Project Getting Started
Configuring the Hardware Designing the GUI
Writing the Software Programming the Application
Project 7-2: Object Alarm Adding Serial Functions
Completing the While Loops Condition Gathering Software
Adding a Merge Errors Function Configuring the Hardware
Adding a SubVI Soldering the Headers
Error Handling Pins and Beyond
Uploading the Code to the Arduino Configuring the Chassis and Arduino
Operation Writing the Software
Debugging the LabVIEW Software Reviewing the Arduino Software
Troubleshooting the Hardware Uploading the Software and Attaching the Bluetooth Shield
Finished Prototype Operating the Robot
Summary Debugging the Software
Troubleshooting the Hardware
Controlling Your Project: Bluetooth Arduino Finished Prototype
Gathering Requirements and Creating the Requirements Summary
Document
Gathering Hardware Hardware and Tools
James Floyd Kelly, Harold Timmis

Arduino Adventures: Escape from Gemini Station


Приключения с Arduino: побег со станции Близнецов

— Publisher: Apress, 2013. — 332 pages

ISBN-10: 1430246057
ISBN-13: 978-1430246053

«Приключения с Arduino: побег со станции Близнецов» − это забавное знакомство с


микроконтроллером Arduino. Вы попадёте в действие научно-фантастического приключенческого
романа, окажетесь свидетелем того как Кейд и Элли исследуют станцию Близнецов — орбитальный
музей, созданный для сохранения и совместного использования технологии на протяжении веков.
Шаг за шагом на простых примерах книга знакомит читателя с платформой Arduino. От простого
мигающего светодиода, до более сложных проектов по управлению роботом. После изучения
материала книги вы сможете реализовать любой вид электронно-управляемого устройства, которое
сможете вообразить, используя потрясающе популярную плату Arduino.

CONTENTS

About the Authors What’s Next?


About the Technical Reviewers
Acknowledgments Chapter 8: Challenge 2: Examining the Software
Introduction Functions Explained
The Challenge 2 Sketch
Chapter 1: Trouble at Gemini Station Solve Challenge #2
Trouble Begins
On the Level, or Not? Chapter 9: Feeling The Heat
Andrew 5.0 On a Pedestal
Boom! Chutes and Ladders
Escape, or Not Green-eyed Hatches
A Plan
Chapter 10: Challenge 3: Fun Stuff to Know
Chapter 2: Challenge 1: Fun Stuff to Know Looking at the Temperature Sensor
What Is an Arduino? Ready to Build Something?
Giving an Arduino a Job to Do
Installing the Software Chapter 11: Challenge 3: Examining the Hardware
Things to Watch for on Windows What Is a Sensor?
The Development Environment Let’s Build Gizmo 3!
Ready to Build Something?
Chapter 12: Challenge 3: Examining the Software
Chapter 3: Challenge 1: Examining the Hardware The Conditional If-Else Statement
Locating the Parts You’ll Need The Challenge #3 Sketch
Potentiometer Solve Challenge #3
Solderless Breadboard
The Arduino Uno Chapter 13: Uninvited Guest
Wire Upward
Let’s Build Gizmo #1 Spooky?
What’s Next? Urgency!
Danger!
Chapter 4: Challenge 1: Examining the Software Bucket
The Arduino IDE
The Challenge #1 Sketch Chapter 14: Challenge 4: Fun Stuff to Know
Beginning the Sketch Looking at the Bucket Mover
Con?guring the Serial Port Understanding the ICs
Listening on the Serial Port Ready to Build Something?
Translating the Input into Digits
Displaying the Result Chapter 15: Challenge 4: Examining the Hardware
Solving Challenge #1 New Hardware
Let’s Build Gadget #4
Chapter 5: Damage Assessment
The Face of Andrew Chapter 16: Challenge 4: Examining the Software
An Embarrassed Cade The Challenge 4 Sketch
The Unlocking Breaking It Down
Solve Challenge 4
Chapter 6: Challenge 2: Fun Stuff to Know
Let’s Look at a Battery Chapter 17: Hide and Seek
And Now a Circuit The Crossing
Current Flow Five Minutes!
Ready to Build Something? Run!
Walk
Chapter 7: Challenge 2: Examining the Hardware
The Push Button Chapter 18: Challenge 5: Fun Stuff to Know
The Light Emitting Diode Let’s Look at the Challenge 5 Gizmo
The Resistor Ready to Build Something?
Let’s Build Gizmo #2
Chapter 19: Challenge 5: Examining the Hardware A Closer Look at a Photoresistor
A Closer Look at the PIR Sensor Let’s Build the Challenge 7 Gizmo
Let’s Build The Challenge 5 Gizmo Chapter 28: Challenge 7: Examining Software
The Challenge #7 Sketch
Chapter 20: Challenge 5: Examining the Software Solve Challenge #7
Thinking Through the Solution
Understanding the Tone Function Chapter 29: Off the Station
The Challenge #5 Sketch The Hulk
Solve Challenge #5 Launch Problem
The Final Fix
Chapter 21: Carousel Ride
Close Call Chapter 30: Challenge 8: Fun Stuff to Know
Nothing To See Here The Basic Components
An Engineering Problem Let’s Look at the Challenge 8 Chassis
Ready to Build Something?
Chapter 22: Challenge 6: Fun Stuff to Know Chapter 31: Challenge 8: Examining the Hardware
Let’s Look at the Challenge 6 Gizmo New Hardware
Ready to Build Something? Let’s Build Gizmo #8

Chapter 23: Challenge 6: Examining the Hardware Chapter 32: Challenge 8: Examining Software
A Closer Look at a Servo Motor Functions Explained
Let’s Build the Challenge 6 Gizmo The Challenge #8 Sketch
Solve Challenge #8
Chapter 24: Challenge 6: Examining the Software You’re Not Done!
Servo Library Explained
The Challenge #6 Sketch Chapter 33: Epilogue
Solve Challenge #6 Three Weeks Later

Chapter 25: Push the Button Appendix A: Parts List


Backup Plan Challenge 1: Potentiometer
Control Center Challenge 2: LED Flashlight
Crazy Plan Challenge 3: Temperature Detector
The Flashlight Challenge 4: Motor Control
Challenge 5: Motion Detector
Chapter 26: Challenge 7: Fun Stuff to Know Challenge 6: Servo Motor Control
Let’s Look at the Challenge 7 Gizmo Challenge 7: Light-Sensing Motor Control
Ready to Build Something? Challenge 8: Build Your Own Robot

Chapter 27: Challenge 7: Examining the Hardware Tools


Alan Trevennor

Practical AVR Microcontrollers: Games, Gadgets, and Home


Automation with the Microcontroller Used in the Arduino
Микроконтроллеры AVR на практике: игры, гаджеты и домашняя
автоматизация с микроконтроллером, используемым в Arduino

— Publisher: Apress, 2012. — 416 pages


— Series: Technology in Action

ISBN-10: 1430244461
ISBN-13: 978-1430244462

Вы изучите, как использовать микроконтроллер AVR, чтобы сделать собственные изящные


проекты и гаджеты. В первой части вы начнёте с установки среды разработки, узнаете чем "голый"
AVR отличается от Arduino, и далее, вы приобретёте опыт, переходя от простых проектов к более
сложным.

CONTENTS

Foreword Chapter 4: Moving On!


About the Author Making Things That Move
About the Technical Reviewer The Servo Motor
Acknowledgments Giving a Servo Motor a Testing Time
Introduction The Gem Light
Drive On!
Part 1: The Basics MOS-What?
Relays
Chapter 1: A Brief History of Microcontrollers Solenoids
A Microcontroller Timeline Motors (Non-Servo)
Why Microcontrollers? Sensing Movement
Why Should You Learn About Microcontrollers? Sensor Switches
What Can You Do with a Microcontroller? Active Sensors
Why AVR? Summary
Summary Coming Up Next
Coming Up Next
Chapter 5: Smarten Up!
Chapter 2: Building Our AVR Test Bed Intelligent Devices
Test Bed Details Increased Functionality
Test Bed Ingredients Adaptive Behavior
A Desktop Computer Increased Efficiency
Summary List of Other Parts Improved Problem Management
Toolkit: Required Items Capacity for Repurposing
Toolkit: Optional Items Greener Products
Piece Parts Support from the Mother Ship
AVR ISP Programmer Embedded Intelligence Benefits
Other Programmers Downsides of Intelligent Devices
AVR ISP Programming Adaptor and Pin Headers The Anatomy of a Smart Device
Assembling the Programming Adaptor Summary
Test Bed Software—Installation and Setup Coming Up Next
Choosing the Software: Why Arduino?
Test Bed Testing Chapter 6: Digitally Speaking
TTL Level Serial Port When Intelligent Devices Speak
Summary Communications Channel Types
Coming Up Next Error Checking
Microcontroller KISS Communications
Chapter 3: Arduino and the Naked AVR The RS-232 Connection
Comparing Approaches RS-232 or Direct Logic Level Connection?
AVR Pulls Ahead Designing the Time-Getter Protocol
Go AVR! Talking Tokens
Putting All the Pieces in Place Object Models
The AVR Type Implementing a Tokenized Object Model on AVR
Arduino’s Configuration Files: Summary of Object Models and Tokenization
AVR Out of the Box Summary
Using an External Crystal Coming up
The AVR and Its Fuses
AVRDude Part 2: The Projects
The Trouble with AVRDude’s Terminal Mode
AVRDude: Getting Started Chapter 7: Introduction to the Projects Section
Arduino and the AVR ID Problem Project Bases
Pin Name Translations Project Chapter Formats
AVR: Speak to Me! Project Scope and Difficulty
Terminal Emulators
Summary Chapter 8: Project 1: Good Evening, Mr. Bond: Your Secret
Coming Up Next Panel
Summary A Life Ruined by Movies and TV
Making It Real
The Fireline Fiasco Moire Wheel Software
Thinking Again Summary
Racking Up a Success Coming Up Next
Hiding the Button
Position Sensors Chapter 13: Smart Home Enablers
The Secret Compartment Is Your Home Smart?
The Electronics Socket Cracking
Sliding Panel Electronics Troubleshooting On the Radio: The Un-wired Home
Software Commentary Radial or Wiring Needs
All Together Now! Back to Basics
Summary Low-Cost Wireless Communication
Coming up Next Smart Home Using a Mixed Network
A Simple HomeHelp Protocol
Chapter 9: Project 2: Crazy Beams—Exercise Your Pet! Using a Low-Cost Smart Home Wireless Node
The Project Door Sensor Circuit Diagram
Sourcing the Lasers Door Sensor Sender Software
Project Build Door Sensor Receiver Software
Assembly Door Sensor Summary.
The Electronics Remotely Commandable Light Stand
Crazy Beams—The Software Light Stand Electronics
Summary Light Stand: RGB Values Sender
Coming Up Next Light Stand Software: Receiver
The Light Stand in Action
Chapter 10: Project 3: WordDune Summary
How Much Do You Really See? Coming Up Next
The Hardware
WordDune: The Build Appendix A: Common Components
WordDune Gameplay Resistors
WordDune: Game Software Setup Resistor Specifications
WordDune Commands Resistor Types and Packagings
General Software Structure Capacitors
WordDune Sketch Code Walk Measuring Capacitance
WordDune: Declarations Section Time for a Capacitance
setup() Capacitor Shapes and Sizes
loop() Light-Emitting Diodes
format_EEPROM()
addToDictionary() Appendix B: A Digital Electronics Primer
dumpEEPROMToSerialChannel() The Highs and the Lows
dumpDictToSerialChannel() I Count—In Denary?
Summary Deciding, Logically
Coming Up Next General Gates
AND Gate
Chapter 11: Project 4: The Lighting Waterfall NAND Gate
The Passageway Light OR Gate
Proving Circuit NOR Gate
Waterfall Lights Software XOR Gate
Moving to Making It Understanding the Specifications of Gates
Waterfall Lights Mark II Real Live Gates
Mark II Electronics
Take-Two Circuit Diagram Appendix C: Breadboards
Summary
Coming Up Next Appendix D: Serial Communications
Data Transfer Basics
Chapter 12: Moving to Mesmerize Binary Me!
Duck Shooter Game The Byter Bit
The Duck Shooter Circuit The Trouble with Parallel
Making Duck Shooter into a Keeper Tear It Down, Ship It Out!
Building Duck Shooter Asynchronous Data Transmission.
Going Further Stop Bits
Duck Shooter Software Word Length
MCU Shadow Puppets Parity Checking and Error Detection
Building the Shadow Puppets Protocol Overhead
The Shadow Puppet Circuit Okay, So Tell Me About RS-232 and RS-485
Shadow Puppets Software Are There Other Types of Serial Data Interface?
The Moire Wheel
Waterslide Decals Index
Building the Moire Wheel Project
John-David Warren, Josh Adams, Harald Molle

Arduino Robotics
Роботы Arduino

— Publisher: Apress, 2011. — 628 pages


— Series: Technology in Action

ISBN-10: 1430231831
ISBN-13: 978-1430231837

Эта книга покажет Вам, создать различных роботов, в основе управления которых находится
плата Arduino.

CONTENTS

About the Authors Building a Robot


About the Technical Reviewers Hardware
Introduction Basic Building Tools
Materials
CHAPTER 1 The Basics Work Area
Electricity
Electrical Analogy CHAPTER 2 Arduino for Robotics
Electrical Basics Interfacing Arduino
Circuits Relays
Measuring Electricity Types of Relays
Multi-Meters Relay Configurations
Measuring Voltage Uses
Measuring Amperage Calculating Current Draw
Measuring Capacitance Back-EMF Considerations
Measuring Resistance Solid-State switches
Calculating Resistor Power Using Ohm’s Law Transistors
Oscilloscope Bipolar Junction Transistor (BJT)
Loads Mosfets
Inductive Loads Logic-Level vs. Standard
Resistive Loads Mosfet Capacitance
Electrical Connections On-State Resistance—Rds(On)
Series Connections Calculating heat using Rds(On) and amperage of DC motor
Parallel Connections Parallel Mosfets
Series and Parallel Connection Photo-Transistors
Electronics Interfacing a Motor-Controller
Semi-Conductors Motor-controller ICs
Datasheets Electronic Speed Controllers (ESCs)
Integrated Circuits User Control
Packages Tethered (Wired) Control
Through-Hole Components Infrared Control (IR)
IC Sockets Radio Control Systems
Surface-Mount Components (SMT or SMD) Amplitude Modulation (AM)
Arduino Primer Frequency Modulation (FM)
Arduino Variants Spread Spectrum 2.4gHz
Standard Arduino Xbee
Arduino Mega Sensor Navigation
Clones Contact Sensing
Arduino IDE Bump Switch
The Sketch Distance and Reflection Sensing
Variable Declaration IR Sensor
The Setup Function Ultrasonic Range Finder
The Loop Function Laser Range Finder
Signals Orientation (Positioning)
Digital Signals Accelerometer
Digital Inputs Gyroscope
Digital Outputs Inertial Measurement Unit (IMU)
Special Case: External Interrupts Global Positioning Satellite (GPS)
Analog Signals Real Time Kinetic (RTK) GPS
Analog Inputs Non-Autonomous Sensors
Analog Outputs (PWM) Camera
Duty-Cycle Current Sensor
Frequency
Homemade PWM Example CHAPTER 3 Let’s Get Moving
Building Circuits Electric Motors
Circuit Design Brushed DC Motor (Permanent Magnet Type)
Schematics Brushless Motors
Prototyping Stepper Motors
Breadboard Gear Motors
Perforated Prototyping Board (Perf-Board) Servo Motors
Printed Circuit Boards Continuous Rotation
Soldering Linear Actuators
Soldering Shortcuts Calculating Power
Driving Testing
Finding the Right Motor
The H-Bridge CHAPTER 7 The Bug-Bot
Generating a Brake Reading a Switch with Arduino
Implementation How the Bug-bot Works
Method 1: Simple Switches Antennae Sensors
Method 2: DPDT Relay with Simple Bumper Sensors
Method 3: P-Channel and N-Channel Mosfets Parts List for the Bug-bot
Method 4: N-Channel H-Bridge The Motors
H-Bridge ICs Modifying the Servo Motors
Changing PWM Frequencies Controlling the Servo Motors
Back EMF Converting the Pulse Value to Degrees
Current Sensing Mounting the Wheels to the Servos
Commercial H-Bridges (Motor-Controllers) Building the Frame
Small (Up to 3amps) Marking the PlexiGlass
Medium (Up to 10amps) Cutting the PlexiGlass
Large (Over 10amps) Mounting the Motors
The Open Source Motor Controller (OSMC) Mounting the Caster Wheels
Batteries Mounting the Arduino
Nickel Cadmium (NiCad) Installing the Battery
Nickel Metal Hydride (NiMH) Making the Sensors
Lithium Polymer (LiPo) The Front Antennae Sensors
Lead-Acid The Rear Bump Sensors
Charging Making Wire Connections
Materials Loading the Code
Wood, Metals Creating a Delay
Nuts and Bolts Variables
Plastics The Code
Chain and Sprockets Making a Top Hat
Wheels
CHAPTER 8 Explorer-Bot
CHAPTER 4 Linus the Line-Bot How the Explorer-Bot Works
Parts List for Linus R/C Control
How Linus Works Powerful Motors
The Track Current Sensing
Building the IR Sensor Board Video-Enabled
Modifying a Servo for Continuous Rotation Xbee-Enabled
Method 1: Direct DC Drive with External Speed Controller Parts List for the Explorer-Bot
Method 2: Servo Pulse Drive with Internal Motor Driving Building the Frame
Circuitry Specs
Fitting the Drive wheels Adding Battery Bracket
Making a Frame Cut Top Frame Brackets
Making Connections Cut Top Frame Braces
Installing Batteries Cut and Bend Main Frame Piece
Install Power Switch Add Crossbar and Mount Caster Wheel
Loading the Code Plexiglass Deck (Optional)
Making the Track Building the Motor Controller
Testing Current Sensing and Limiting
Add-ons H-bridge Design
LED Lights Setting Up the Arduino
Painting Connecting the H-Bridges
Adding Speed Regulator (Potentiometer) Setting Up Xbee
Testing the Xbees
CHAPTER 5 Wally the Wall-Bot Adding a Camera
How Wally Works Pan and Tilt
Parts List for Wally Make First Bracket
The Motor-Controller Make Second Bracket
The High-Side Switches Loading the Code
The Low-Side Switches
Building the Circuit CHAPTER 9 RoboBoat
Building the Frame Some Words in Advance
Installing the Sensors Parts List for the RoboBoat
Installing the Battery and Power Switch Polystyrene Foam
Installing a Power Switch Epoxy Resin
The Code Gloves
Code Objectives Fiberglass Fabric
Glue
CHAPTER 6 Making PCBs Styrofoam Cutter and Razor Knife
PCB Basics Miscellaneous
What You Need to Get Started The RoboBoat Design
Circuit Design Assembling the Boat
Searching for Open-Source Designs The Templates
Making Your Own Designs Gluing the Templates on the EPS/XPS Board
Schematics Cutting Out the Segments
Board Layouts Gluing the Segments Together
Working with the Schematic Editor Inserting the Foam Anchors
Working with the Board Editor The Coating
Transferring the Design Applying the Finish
Let’s Make an Arduino Clone: the Jduino The Fins
Making the Transfer Painting
Etching The Deck
Measuring the Solution Completing the Assembly
Etching: Method 1 The Propulsion Assembly
Etching: Method 2 The Baseplate
Removing the Toner The Pivot
Drilling, Soldering The Tube
Building the Arduino Clone The Rudder Horns
Building the BJT H-Bridge The Motor
The Servo Selecting the Right Sensors
The Pushrods 3.3v Power
Electronics Accelerometer
The Heart of the System: The ArduPilot PCB Gyroscope
The GPS Module Cycle Time
The Electronic Speed Controller (ESC) Gyro Starting Point
The Motor Gyroscope Drift
The Rudder Servo Gyroscope Versus Accelerometer Summary
The Battery Pack Filtering the Angle
Assembling the Electronics Weighted Average
The Programming Adapter Making the IMU Adapter Board
Software and Mission Planning Selecting the Motors
GPS Receivers Electric Brake Removal
The Software Motor Mounting Position
AP_RoboBoat Module Selecting the Motor Controller
Debug Module SoftwareSerial Library
Init Module Sabertooth Simplified Serial
Navigation Module The Batteries
PID_control Module Sealed Lead-Acid
Servo_control Module Charging
Header Files 12v Supply
Installing the Software The Frame
Installing the Arduino IDE Frame Design
Configuring the Arduino IDE Building the Frame
Compiling and Uploading the Code Inputs
Customizing the Code Steering
Customizing the Rudder Control Gain
Customizing the PID Constants Engage Switch
Customizing the Motor Speed Level-Start
Customizing the Waypoint Timeout Mounting the Inputs to the Frame
Customizing the Waypoint Radius Installing the Electronics
Customizing the Rudder Extents Soldering the Inputs
Mission Planning Wiring the Connections
Employing Google Earth for the Coordinates Reviewing the Code
Putting It All Together Checking the Angle Readings
Integrating the System The read_pots() Function
Ships Ahoy! The auto_level() Function
Troubleshooting The update_motor_speed() Function
The Thrust of the Motor/Propeller Is Not Sufficient The time_stamp() Function
The Motor Does Not Start The serial_print_stuff() Function
The Full Code
CHAPTER 10 Lawn-Bot 400 Testing
How the Lawn-bot 400 Works Summary
Lawn Mower Deck References
High-Capacity Batteries
Steel Frame CHAPTER 12 The Battle-Bot
Dump-Bucket Robotic Combat Is Born
Pneumatic Tires Battle-Bot Rules and Regulations
Headlights No Price Limit!
Failsafe Is This Going to Be Expensive?
Tools and Parts List Parts List for the Battle-Bot
Lawnmower Input Control
Parts Lists Fly Sky CT-6: The $32, 5-ch*, 2.4GHz Radio Alternative
The Wheels Attention Hackers
Front Caster Wheels The Electronics
Rear Drive Wheels The Arduino
Installing Sprockets The Motor Controllers
The Frame The Frame
The Drive-Train To Buy or Build?
Motor Mount Brackets Modifying the Wheels
Installing the Chain Building the Frame
The Motor Controller The Drive Train
Buying a Motor Controller Gearing
Sabertooth 2x25 Calculating Gear Ratio
Cooling Fans Modifications
Motor Controller feedback Chain Tensioning Nut
Current sensor IC Threading Sequence
The Arduino Measuring the Chain
Securing Connections for a Bumpy Ride Adding Spacers
Building a Breakout Board Batteries
The Failsafe Securing Electronics
R/C Toggle Switch Protecting Your Brains
Power Relays Making Connections
Avoiding an R/C Failsafe The Code
Making Connections Armor
The Code Weapons
Adding Cosmetics and Accessories Additional Information
Painting
Headlights CHAPTER 13 Alternate Control
Dump Bucket Using Processing to Decode the Signals
Lawnmower Kill-Switch Parts List for Alternate Control
Selecting the Input
CHAPTER 11 The Seg-Bot Processing Prerequisites
How the Seg-Bot Works Following Protocol
Inertial Measurement Unit Examining the Processing Sketch
Steering and Gain Explanation
Engage Switch Testing Processing
Parts List for the Seg-Bot Examining the Arduino Sketch
Dale Wheat

Arduino Internals
Arduino изнутри

— Publisher: Apress, 2011. — 392 pages


— Series: Technology in Action

ISBN-10: 1430238828
ISBN-13: 978-1430238829

Автор делится своими глубокими знаниями плат Arduino. Книга проведет вас в самое сердце
плат Arduino.

CONTENTS

About the Author General Purpose Input/Output (I/O)


About the Technical Reviewers External Interrupts
Acknowledgments Timer/Counters
Preface USART
Intended Audience Two-Wire Serial Interface (TWI), a.k.a. I2C
What This Book Isn't Analog Inputs
Chapter Overview Summary
Summary
Supporting Hardware
Hardware Schematic Diagrams
What Is an Arduino? Component Types
The Arduino Uno Reference Designators
Processor Component Values
Serial Port Component Value Tolerances
Power Supply Other Component Parameters
Expansion Connectors The Connections
Shields Getting Power to the Board
The Arduino Mega 2560 The Barrel Connector
Previous Hardware Input Power Conditioning
Arduino Serial Voltage Regulator
Arduino USB Power Circuit Evolution
Arduino Extreme Serial Interface
Arduino Nuova Generazione (New Generation) RS-232 Interface
Arduino Diecimila The Processor
Arduino Duemilanove Power Consumption
Arduino Mega I/O Drive Capability
Who Makes Arduinos? The -RESET Signal
Officially Licensed Products The Time Base
Everybody Else Decoupling Capacitors
Build Your Own Blinky Lights
Arduino Printed Circuit Boards Room for Expansion
Breadboard Arduinos The Mechanical Form Factor
Summary Universal Serial Bus (USB): Signals Plus Power
Summary
Software
Hosts and Targets Arduino Software
Step by Step Open Source Software
Step 1: Write Some Code Multiplatform Support
Step 2: Compile the Code The Arduino Heritage
Step 3: Program the Device Installing the Software
Step 4: Test and Debug The Process, or “How to Arduino”
Step 5. Repeat A Tour of the User Interface
Semiautomatic The File Menu
Blinking in C The Edit Menu and the Edit Context Menu
Going Further The Sketch Menu
Summary The Tools Menu
The Help Menu
Atmel AVR Summary
Origins
AVR Device Families Optimizations
When in Doubt: Product Datasheets How Will You Know It Worked?
Device Packaging Shrink Blink
Through-Hole DIPs How Blink Works
Surface-Mount Devices (SMDs) Measuring Space-Saving Optimizations
Extra Pins Code Analysis
Pin Descriptions Life Without pinMode()
Power Pins Abbr. & Shrtcts
AVR Core Binary Notation
Clock Sources Further Analysis
Address Spaces Easy Toggling
Instruction Set Further Reduction
Internal Peripherals Wasting Time More Efficiently
Using Lower-Level Code Project-Hosting Web Sites
Saving Space with Simple Serial Communication Licensing Your Work
What “Hello, world!” Does Patents and Trademarks
Writing to Configuration Registers Copyright
Transmitting Data Open Source
A String of Characters The Public Domain
Printing Numbers Summary
Saving SRAM
Measuring SRAM Requirements Hardware Design
The Bare Minimum Learning About Hardware
Memory Sections Things You Must Have
Where Variables Live Things You Want
Using the Appropriate Data Type Infrared Proximity Sensor
Strings of Characters, Revisited A Modest Prototype
Low Power or High Speed? Some Modest Improvements
Electronic Measurements Printed Circuit Boards
The Arduino as Test Equipment PCB Layout Techniques
As Fast As Possible A First Attempt
Slowing It Down A More Compact Version
Further Power Reductions Making the Connection
Summary Your Own Custom Arduino
Compatibility with Existing Arduinos and Shields
Hardware Plus Software Power Supply Options
Available Peripherals Processor Selection
Serial Port(s) Anything Else?
General-Purpose Digital Inputs and Outputs Design Software
Timers and Counters CadSoft EAGLE
Pulse-Width-Modulation (PWM) Outputs EAGLE Tips
Analog Inputs Summary
External Interrupts
Interrupt Reference Software Design
Summary Advanced Topics Within Arduino
Writing Arduino Libraries
Example Projects Alternate Cores
Beyond the Blinking LED: Starting Simply And Without Arduino
Slow Enough The Bare Metal, Revisited
Mostly Optimized Six-Channel Dimmer Other Development Environments
It’s Dim, Alright Summary
Other Uses for a Blinking LED
Infrared Remote Control Networking
TV-B-Gone Point-to-Point Networking
A Lot of Blinking LEDs Talking Over the Serial Port
A Direct-Drive Example Arduino to Arduino
Direct-Drive with LED Drivers MIDI: Musical Instrument Digital Interface
Multiplexing Techniques The Internet
A Digital Clock Summary
Accuracy
User Interface More Example Projects
Additional Features An Autonomous Robot
Summary Power Supply
Motion Control
Project Management Electric Motors and Actuators
Documentation Sensors
Source-Code Comments Light Sensors
Whitespace Touch Sensors
Code What You Mean, Mean What You Code Noncontact Sensors
Automated Documentation Audio Sensors
Writing For Your Audience Indicators, Controls, and Other Forms of Communication
Hardware Documentation Control Systems
Going Further Open-Loop Systems
Teamwork and Collaborative Development Closed-Loop Systems
Blogs Example Robot Projects
Forums A Practice Robot
Wikis The Next Robot
Revision Control Systems Your Ultimate Robot
A Note About Revisionor Version-Numbering
Don Wilcher

Learn Electronics with Arduino


Учитесь электронике с Arduino

— Publisher: Apress, 2012. — 280 pages


— Series: Technology in Action

ISBN-10: 1430242663
ISBN-13: 978-1430242666

С этой книгой вы научитесь электронике при построении забавных и практических устройств и


гаджетов на основе Arduino.

CONTENTS

Chapter 1: Electronic Singing Bird The 2N2222 Transistor Pinout


Parts List The Motor Speed Control Software
What Is Physical Computing ? Light Detection Input Control
How It Works Final Testing of the Devices
Pulse Width Modulation Basics Further Discovery Methods
Transistor Basics
Transformer Action Chapter 5: Motion Control with an Arduino: Servo and
The Voltage Divider Stepper Motor Controls
Light Detection Circuits with a Photocell Parts List
Testing the Light Detection Circuit with a Voltmeter and an Remixing Motion Controls
Oscilloscope How It Works
Using a Voltmeter Experimenting with a Servo Motor
Using an Oscilloscope Fritzing Software
Assembly of the Electronic Singing Bird Circuit on a Breadboard Try It!
Creating the Interactive Control Software Physical Computing: A Servo Motor with a Potentiometer
What Is a Sketch ? Physical Computing: A Servo Motor with a Joystick
Final Testing of the Electronic Singing Bird Physical Computing: A Servo Motor with a FlexiForce Sensor
Further Discovery Methods Motion Control Basics
The Darlington Transistor
Chapter 2: Mini Digital Roulette Games The Unipolar Stepper Motor
Parts List A Multisim Digital Controller Model for a Unipolar Stepper Motor
How It Works Build an Arduino Unipolar Stepper Motor Controller
Forward Biasing a LED Adding a Speed Control Function
LED Circuit Analysis Final Testing of the Servo and Stepper Motor Controllers
The LED Bar Display Further Discovery Method Suggestions
Mini Roulette Game, Version 1
Adding the Game Software Chapter 6: The Music Box
The Seven-Segment LED Display Basics Parts List
Testing the Seven-Segment LED Display Remixing Physical-Computing and Driver Interface Circuits
Build an Arduino-based Seven Segment LED Display Flasher- How It Works
Tester Experimenting with PWM
The 7447 BCD-to-Decoder IC Basics Building and Testing a Basic Music Box Controller
Build a BCD-to-Decimal Circuit with Seven Segment LED Display Try It!
Assembly of the Final Circuit on the Breadboard Driving a Speaker
Adding the Mini Digital Roulette Game Software Physical Computing and the Music Box Controller
Final Testing of the Mini Digital Roulette Game What Is a PMOSFET ?
Further Discovery Method Suggestions A PMOSFET Multisim Circuit Model
Sketch for the Interactive Music Box Controller
Chapter 3: An Interactive Light Sequencer Device Building and Testing a Basic Music Box Controller with a Keypad
Parts List Final Testing of the Music Box Controllers
Remix Revisited Further Discovery Methods
How It Works
The Potentiometer Chapter 7: Fun with Haptics
Measurement Setup Procedure Parts List
How to Drive Multiple LEDs with a Microcontroller Remixing Physical Computing and Driver Interface Circuits
Building the Remixed Interactive LED Sequencer Device How It Works
Creating the Sequential-Switching Software Experimenting with a Vibration Motor
Final Testing of the Interactive Light Sequencer Device Physical Computing: A Vibration Motor
Further Discovery Methods Try It Out
Keypad Haptics
Chapter 4: Physical Computing and DC Motor Control Mechatronics and Haptics
Parts Lists FlexiForce Sensor Haptics
Remixing Revisited A Robot End Effector Test Stand
How It Works Final Testing of Haptics Controllers
A Base Biasing Transistor Driver Circuit Further Discovery Method Suggestions
D1: Flyback Diode
Experimenting with a Transistor Relay Driver DC Motor Control Chapter 8: LCDs and the Arduino
Circuit Parts List
Electromechanical Relay Preparation Remixing Physical-Computing Input Interface Circuits
The Basics of Physical Computing with Electric Motors How It Works: The LCD Test Jig
Achieving Motor Speed Control with Physical Computing The Real “Hello World”: Arduino and the LCD
Potentiometer Input Control Try It Out!
The Vanishing Message Chapter 10: Man, It’s Hot: Temperature Measurement and
Building an Evaluation Board Control
Further Discovery Methods Parts List
What Is a Precision Centigrade Temperature Sensor ?
Chapter 9: A Logic Checker How It Works
Parts List Building an Electronic Thermometer
Input Interface Circuits A Computer Thermometer
How It Works Final Completion of Computer Thermometer
Testing a NAND Gate Try It Out!
The Seven-Segment LED Display and the Arduino An LCD Electronic Thermometer
Building a Smart Logic Probe A Temperature Controller
Building an Improved Smart Logic Probe Further Discovery Method
Further Discovery Methods Final Thoughts and Suggestions
Alasdair Allan

iOS Sensor Apps with Arduino: Wiring the iPhone and iPad
into the Internet of Things
Подключение датчиков к устройствам на iOS при помощи Arduino

— Publisher: O'Reilly Media, 2011. — 128 pages

ISBN-10: 1449308481
ISBN-13: 978-1449308483

Превратите свой iPhone или iPad в центр распределенной сети датчиков с помощью
микроконтроллера Ардуино. С этим кратким руководством Вы изучите, как соединить датчики с
устройством на iOS, и сделайте так, чтобы они обменивались друг с другом через Ардуино. Вы
также создадите приложение для iOS, которое проанализирует значения, получаемые с датчиков, и
графически изобразит результаты измерений в режиме реального времени.

CONTENTS

Preface 4. Using External Sensors from the iPhone


The LV-MaxSonar-EZ1
1. Introduction to the Arduino Analog Output
The Arduino Pulse Width Output
Powering the Board RS-232 Serial Output
Input and Output MaxSonar Range Finder for iPhone
Communicating with the Board Adding the Serial Library
Installing the Software The CorePlot Library
Connecting to the Board Building the User Interface
Blinking an LED Building the Backend
Uploading the Sketch Writing the Arduino Sketch
Making a Serial Connection Putting It All Together
Summary Turning Things On and Off
Connecting Directly to the Cable
2. Connecting the iPhone to the Arduino
The Apple MFi Program 5. Connecting to an XBee Network
The Redpark Serial Cable XBee Modules
Testing the Cable Series 1 or Series 2?
Connecting to the Arduino Regular Versus Pro?
Connecting to an iOS Device 802.15.4 or ZigBee?
A Simple Serial Application Which Aerial?
Adding the Redpark Serial Library How to Configure an XBee Series 1 Radio
Connecting the Arduino Connecting the XBee to Your Mac
Sending Data Back to the Arduino XBee Addressing
Log Messages Configuring Two XBee Radios
Summary Connecting an XBee to an Arduino
Connecting an XBee to an iOS Device
3. Controlling the Arduino from the iPad XBee to RS-232 Serial
An Arduino on Your iPad Going Further
Adding the Serial Library
Building the User Interface 6. Other Ways to Connect
Integrating the Serial Library Using the Network
Listening for Messages on the Arduino Using Ethernet
Putting It All Together Using WiFi
Going Further Using a Soft Modem
Adding a Log Window Switch Science Board
Summary HiJack Board
Using the MIDI Protocol
The HIDDUINO
Summary
Alasdair Allan, Kipp Bradford

Distributed Network Data


Распределённая сеть передачи данных

— Publisher: O'Reilly Media, 2013. — 170 pages


— Series: Technology in Action
0
ISBN-10: 1449360262
ISBN-13: 978-1449360269

Постройте свою собственную распределенную сеть датчиков, чтобы собрать, проанализировать, и


отобразить данные в реальном времени об окружающем нас мире − включая уровень шума, температуру,
и т.п. С этой книгой Вы сможете превратить Вашу идею в рабочее устройство, используя легко
изучаемую плату Arduino и стандартные датчики.

CONTENTS

Preface The Protoboard


Octopus Arms or Helping Hands
1. Introduction to Arduino Let the Solder Flow
Saying Hello in the Old World
The Arduino 6. Simplifying the Design
The Board Arduino Proto Shields
Powering the Board Fritzing Revisited
Input and Output Power and Ground
Communicating with the Board Cleaning up the Fritzing Diagram
Installing the Software Rules for Pin Power and Ground
Connecting to the Board Saving Power
Blinking an LED
Uploading the Sketch 7. Building Point-to-Point XBee Networks
Making a Serial Connection XBee Modules
Series 1 or Series 2?
2. Getting Started Regular vs Pro?
The Breadboard 802.15.4 or Zigbee?
The Sensor Which Antenna?
The DHT-22 How to Configure an XBee Series 1 Radio
Wiring the Breadboard Connecting the XBee to your Mac
Writing the Software XBee Addressing
The DHT Library Configuring Two XBee Radios
Arduino Sketch Connecting an XBee to an Arduino
Running the Software Going Wireless with XBees

3. Adding Another Sensor 8. Building Many-to-Point XBee Networks


The Sensor Addressing for Multiple XBees
PIR Sensor Addressing the Arduino
Wiring the Breadboard Individual Call and Response
Modifying the Software Switching to Mesh Networks
Running the Software
9. Visualizing with Processing
4. Finishing the Breadboard Processing
The Sensor Installing the Software
Electret Microphone Reading Data From a File
Wiring the Breadboard Reading Data Directly From the Serial Port
Modifying the Software Plotting Temperature in Real Time
Running the Software
Adding Some LEDs 10. Visualizing with LabVIEW
Modifying the Software LabVIEW
Running the Software Installing the Software
Making the Output Machine-Readable Simple LabVIEW with Arduino
Communicating with Python Graphing the Data

5. Moving from Breadboard to Prototype 11. Going Further


The Prototype Arduino
Fritzing XBee Networking
Installing the Software Fritzing
Building a Fritzing Circuit EAGLE
Cleaning up the Fritzing Diagram Processing
Dropping Breadboard Crumbs ProcessingJS
Making the Board Permanent LabVIEW
Solder Data Visualization
Soldering Irons
Robert Faludi

Building Wireless Sensor Networks: with ZigBee, XBee,


Arduino, and Processing
Создание беспроводных сенсорных сетей:
с ZigBee, XBee, Ардуино и их обработкой

— Publisher: O'Reilly Media, 2011. — 322 pages

ISBN-10: 0596807732
ISBN-13: 978-0596807733

Книга научит создавать системы распределенных датчиков и интеллектуальные интерактивные


устройства, используя протокол беспроводных сетей ZigBee и XBee. Изучив практическое
руководство, вы создадите ряд полезных проектов, включая полную беспроводную сеть ZigBee,
которая передаёт данные от удалённых датчиков.

CONTENTS

Preface XBee Connections


Doorbell Introduction
1. Getting Ready Switch Input...
Buying an XBee Radio ...and Buzzer Output
Hardware Configure Your XBees
Antennas Program the Arduino Doorbell
Vendors Feedback Doorbell
Buying an Adapter Feedback Light
Digi Evaluation Board Program the Arduino Feedback Doorbell
USB Adapters Extra: Nap Doorbells and More
Breakout Boards
Arduino Board Adapter Hack 4. Ins and Outs
What Are All Those Pins? The Story of Data
Choosing a Terminal Program Direct, Indirect, Subtext
Firmware Update Software I/O Concepts
Terminal Software for Configuring Settings Why XBee Direct?
Summary XBee Direct Limitations
XBee I/O Features
2. Up and Running AT Configuration I/O Commands
Radio Basics Advanced I/O Commands
Electromagnetic Spectrum Romantic Lighting Sensor
Inverse Square Law Basic Romantic Lighting Sensor
Introduction to ZigBee Prepare the Sensor Board
Network Topology Prepare the Base Station
Addressing Basics Romantic Lighting Sensor with Feedback
PAN Addresses API Ahead
Channels
All Together Now 5. API and a Sensor Network
XBee Firmware Updates What’s an API?
Reading Current Firmware and Configuration Protocols
Configuring XBee Humans
Settings Computers
Connecting from Windows XBee API Protocol
Connecting from Macintosh Start Delimiter
Command Mode and Transparent Mode Length Bytes
AT Commands (Are Your Friend) Frame Data Bytes
Using AT Commands Checksum
Basic ZigBee Chat API Frame Types
Parts AT Commands
Addresses AT Responses
Coordinator ZigBee Transmit Request
Router ZigBee Transmit Status
Two Computers ZigBee Receive Packet
One Computer I/O Data Sample Rx Indicator
Chat Remote AT Command Request
Troubleshooting Remote Command Response
Success! Using What You Need
Libraries
3. Build a Better Doorbell Simple Sensor Network
ZigBee and Arduino Parts
About Arduino Prepare Your Coordinator Radio
Arduino Basics Prepare Your Router Radios
Connecting to Arduino Prepare the Sensor Boards
Doorbell Projects Prepare the Base Station
Parts Program the Base Station
Prepare Your Radios Yay!
Connect Power from Arduino to Breadboard
XBee Breakout Board
6. Sleeping, Then Changing the World XBee Internet Gateway (XIG)
Sleep Mode Installing and Configuring XIG
End Devices Testing XIG
Configuring Sleep XIG Example
Easy Sleeping Twitter Reader
Simple Sensor with Sleep Project Parts
Parts Prepare Your ConnectPort with XBee Internet Gateway
Prepare Your End Device Radios Prepare Your Router Radio
Configure Your End Device XBees Configure Your Router Radio
Direct Actuation Prepare the Twitter Reader Board
Direct Actuation Example Program the Arduino
Parts Moving Forward
Prepare Your Coordinator Radio
Prepare Your Router Radios 8. More to Love
Prepare the Actuator Boards Advanced ZigBee
Configure Your Router XBees ZigBee Stack Layers
Prepare the Base Station Application Support Layer
Simple Actuator Node Code in Processing Routing
Summary Security
ZigBee Protocol References
7. Over the Borders Serial Flow Control
Gateways RTS and CTS
XBee as Embedded Gateway Sharing Data
Other Embedded Gateways Pachube
Internet Gateways Simple Sensor Network with Pachube
Internet Media API Key
Computers Versus Dedicated Devices Build the Simple Sensor Network in Chapter 5
ConnectPorts Program the Base Station
Selecting a ConnectPort Simple Sensor Network Pachube Code in Processing
Setting Up a ConnectPort The Future of ZigBee
Configuring a ConnectPort Next Steps for You
Remote Management Making Stuff
iDigi Connectivity Server Sharing Your Work
iDigi Features
Adding a ConnectPort Appendix: Resource Guide
Viewing Configurations
Firmware Updates and Remote Reboot Index
Viewing an XBee Network
Tom Igoe, Don Coleman

Beginning NFC: Near Field Communication with Arduino,


Android, and PhoneGap
Введение в NFC:
Near Field Communication для Arduino, Android и PhoneGap

— Publisher: O'Reilly Media, 2014. — 246 pages

ISBN-10: 1449372066
ISBN-13: 978-1449372064

Войдите в мир NFC (беспроводная высокочастотная связь малого радиуса действия) − быстро-
развивающаяся технология, которая позволяет устройствам в непосредственной близости
обмениваться данными, используя радиосигналы. С большим количеством примеров (примеры кода,
упражнений и проектов) это практическое руководство покажет вам, как создать приложения NFC
для Android, Arduino и устройств на Linux.

CONTENTS

1. Introduction PhoneGap-NFC NDEF Helper Functions, Summarized


Who This Book Is For Conclusion
Recommended Reading
What’s Covered in This Book 5. Listening for NDEF Messages
What You’ll Need PhoneGap-NFC’s Event Listeners
Hardware An NDEF Reader Application
Software Listening for Multiple Events
Other Useful NFC Apps Reading the NDEF Messages
Conventions Used in This Book Filtering Tags Using Record Types
Using Code Examples Filtering Using MIME-Types
Safari® Books Online Android’s Tag Dispatch System
How to Contact Us Types of Intents
Acknowledgments Android Application Records
Conclusion
2. NFC and RFID
What’s RFID? 6. An NFC Application in Practice
What’s NFC? The User Interaction
How RFID Operates Getting to Know Hue, Getting to Know All About Hue
RFID Standards The Hue Data Format
How NFC Operates The Hue’s REST API
NFC Data Exchange Format (NDEF) The Android Shell
The Architecture of NFC The PhoneGap Media API
NFC Tag Types The User Interface
Where to Get Tags The Application Code
Device-to-Tag Type Matching Housekeeping Functions
What You Can Do with NFC Global Event Handlers
Conclusion Hub Communication Functions
Lighting User Interface Event Handlers
3. Getting Started with PhoneGap and the PhoneGap-NFC Music User Interface Event Handlers
Library NFC Event Handlers
Why Android? Enabling Background Dispatch
Hello, World! Your First PhoneGap App Conclusion
Setting Up the Development Environment
Creating a PhoneGap Project 7. Introduction to Arduino and NFC
The Important Files Digital Meets Physical: Arduino
A Simple Locator App The Hardware Heart of NFC
PhoneGap Meets NFC: NFC Reader The Arduino Development Environment
Installing the NFC Plug-In Serial Communication
Writing the NFC Reader App Installing Arduino Libraries
Troubleshooting The Arduino NDEF Library
Conclusion Reading NDEF in Arduino
Writing NDEF in Arduino
4. Introducing NDEF A Microcontroller NFC Application: Hotel Key Cards
NDEF Structure The Interaction and Data Format
Type Name Format The Arduino NDEF Writer Device
Payload Type The Arduino NDEF Reader and Door Lock Device
Payload Identifier A Browser Interface for the Arduino NDEF Writer Device
Payload Node.js Application Specification: package.json
Record Layout The Client-Side Code
Record Header The Server-Side Code
How Big Can an NDEF Message Be? Conclusion
Record Chunking
Additional Info 8. Peer-to-Peer Exchange
NDEF in Practice Sending Peer-to-Peer Messages in PhoneGap
A Tag Writer Application: Foursquare Check-In Receiving Peer-to-Peer Messages in PhoneGap
Writing an NDEF Record to a Tag Handover
Writing Different Record Types Static Handover
Sending Handover Messages in PhoneGap Installing the Tools for NFC
Peer-to-Peer Using Arduino Installing the Libusb Compatibility Library
Card Emulation Installing libnfc
Conclusion Testing the Installation on Raspberry Pi or BeagleBone
Installing libfreefare
9. NFC on Embedded Systems Libnfc and Libfreefare Command Line Tools
Introduction to Embedded Linux Devices and Package Managers NDEF Reading and Writing in Node.js
Network, USB, and NFC Web Interface for Tag Writer
NFC on Embedded Linux: The Overview Tags Controlling Physical Output
Housekeeping Details BeagleBone Version
Get Comfortable with Your Editing Workflow Raspberry Pi Version
Know Your Package Manager Conclusion
Set the Date and Time
Make a Downloads Directory A. NFC Specification Codes
BeagleBone Peculiarities
Raspberry Pi Peculiarities Index
Michael Margolis

Arduino Cookbook
Справочник по Arduino

— Publisher: O'Reilly Media


— 1 edition (03 31, 2011) — 662 p. ISBN-10: 0596802471, 978-0596802479
— 2 edition (12 30, 2011) — 724 p. ISBN-10: 1449313876, 978-1449313876
— 3 edition (07 22, 2014) — 800 p. ISBN-10: 1449371965, 978-1449371968

Хотите создавать устройства, которые взаимодействуют с физическим миром? Эта книга


идеально подходит для тех, кто хочет экспериментировать с популярной платформой Arduino. Вы
найдете более 200 советов и приемов для построения различных устройств, таких как игрушки,
детекторы, роботы и др.

CONTENTS

Who This Book Is For 2.14 Repeating Statements with a Counter


How This Book Is Organized Problem, Solution, Discussion, See Also
What Was Left Out 2.15 Breaking Out of Loops
Code Style (About the Code) Problem, Solution, Discussion, See Also
Arduino Platform Release Notes 2.16 Taking a Variety of Actions Based on a Single Variable
Conventions Used in This Book Problem, Solution, Discussion, See Also
Using Code Examples 2.17 Comparing Character and Numeric Values
Safari® Books Online Problem, Solution, Discussion, See Also
How to Contact Us 2.18 Comparing Strings
Acknowledgments Problem, Solution, Discussion, See Also
Notes on the Second Edition 2.19 Performing Logical Comparisons
Problem, Solution, Discussion
Chapter 1. Getting Started 2.20 Performing Bitwise Operations
1.0 Introduction Problem, Solution, Discussion, See Also
Arduino Software 2.21 Combining Operations and Assignment
Arduino Hardware Problem, Solution, Discussion, See Also
See Also
1.1 Installing the Integrated Development Environment (IDE) Chapter 3. Using Mathematical Operators
Problem, Solution, Discussion, See Also 3.0 Introduction
1.2 Setting Up the Arduino Board 3.1 Adding, Subtracting, Multiplying, and Dividing
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
1.3 Using the Integrated Development Environment (IDE) to 3.2 Incrementing and Decrementing Values
Prepare an Arduino Sketch Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 3.3 Finding the Remainder After Dividing Two Values
1.4 Uploading and Running the Blink Sketch Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 3.4 Determining the Absolute Value
1.5 Creating and Saving a Sketch Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 3.5 Constraining a Number to a Range of Values
1.6 Using Arduino Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 3.6 Finding the Minimum or Maximum of Some Values
Problem, Solution, Discussion, See Also
Chapter 2. Making the Sketch Do Your Bidding 3.7 Raising a Number to a Power
2.0 Introduction Problem, Solution, Discussion
2.1 Structuring an Arduino Program 3.8 Taking the Square Root
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
2.2 Using Simple Primitive Types (Variables) 3.9 Rounding Floating-Point Numbers Up and Down
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
2.3 Using Floating-Point Numbers 3.10 Using Trigonometric Functions
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
2.4 Working with Groups of Values 3.11 Generating Random Numbers
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
2.5 Using Arduino String Functionality 3.12 Setting and Reading Bits
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
Choosing between Arduino Strings and C character arrays 3.13 Shifting Bits
See Also Problem, Solution, Discussion, See Also
2.6 Using C Character Strings 3.14 Extracting High and Low Bytes in an int or long
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
2.7 Splitting Comma-Separated Text into Groups 3.15 Forming an int or long from High and Low Bytes
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
2.8 Converting a Number to a String
Problem, Solution, Discussion Chapter 4. Serial Communications
2.9 Converting a String to a Number 4.0 Introduction
Problem, Solution, Discussion, See Also Serial Hardware
2.10 Structuring Your Code into Functional Blocks Software Serial
Problem, Solution, Discussion, See Also Serial Message Protocol
2.11 Returning More Than One Value from a Function New in Arduino 1.0
Problem, Solution, Discussion See Also
2.12 Taking Actions Based on Conditions 4.1 Sending Debug Information from Arduino to Your Computer
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
2.13 Repeating a Sequence of Statements 4.2 Sending Formatted Text and Numeric Data from Arduino
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
4.3 Receiving Serial Data in Arduino 6.15 Detecting Rotation Using a Gyroscope
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
4.4 Sending Multiple Text Fields from Arduino in a Single Using the older LISY300AL gyro
Message Measuring rotation in three dimensions using the ITG-3200
Problem, Solution, Discussion, See Also sensor
4.5 Receiving Multiple Text Fields in a Single Message in See Also
Arduino 6.16 Detecting Direction
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
4.6 Sending Binary Data from Arduino 6.17 Getting Input from a Game Control Pad (PlayStation)
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
4.7 Receiving Binary Data from Arduino on a Computer 6.18 Reading Acceleration
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
4.8 Sending Binary Values from Processing to Arduino
Problem, Solution, Discussion Chapter 7. Visual Output
4.9 Sending the Value of Multiple Arduino Pins 7.0 Introduction
Problem, Solution, Discussion, See Also Digital Output
4.10 How to Move the Mouse Cursor on a PC or Mac Analog Output
Problem, Solution, Discussion, See Also Controlling Light
4.11 Controlling Google Earth Using Arduino LED specifications
Problem, Solution, Discussion, See Also Multiplexing
4.12 Logging Arduino Data to a File on Your Computer Maximum pin current
Problem, Solution, Discussion, See Also 7.1 Connecting and Using LEDs
4.13 Sending Data to Two Serial Devices at the Same Time Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 7.2 Adjusting the Brightness of an LED
4.14 Receiving Serial Data from Two Devices at the Same Time Problem, Solution, Discussion, See Also
Problem, Solution, Discussion 7.3 Driving High-Power LEDs
Receiving data from multiple SoftwareSerial ports Problem, Solution, Discussion
4.15 Setting Up Processing on Your Computer to Send and How to Exceed 40 mA per Pin
Receive Serial Data See Also
Problem 7.4 Adjusting the Color of an LED
Solution Problem, Solution, Discussion, See Also
7.5 Sequencing Multiple LEDs: Creating a Bar Graph
Chapter 5. Simple Digital and Analog Input Problem, Solution, Discussion, See Also
5.0 Introduction 7.6 Sequencing Multiple LEDs: Making a Chase Sequence
5.1 Using a Switch (Knight Rider)
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
5.2 Using a Switch Without External Resistors 7.7 Controlling an LED Matrix Using Multiplexing
Problem, Solution, Discussion Problem, Solution, Discussion
5.3 Reliably Detecting the Closing of a Switch 7.8 Displaying Images on an LED Matrix
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
5.4 Determining How Long a Switch Is Pressed 7.9 Controlling a Matrix of LEDs: Charlieplexing
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
5.5 Reading a Keypad 7.10 Driving a 7-Segment LED Display
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
5.6 Reading Analog Values 7.11 Driving Multidigit, 7-Segment LED Displays: Multiplexing
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
5.7 Changing the Range of Values 7.12 Driving Multidigit, 7-Segment LED Displays Using
Problem, Solution, Discussion, See Also MAX7221 Shift Registers
5.8 Reading More Than Six Analog Inputs Problem
Problem, Solution, Discussion, See Also Solution
5.9 Displaying Voltages Up to 5V Solution
Problem, Solution, Discussion 7.13 Controlling an Array of LEDs by Using MAX72xx Shift
5.10 Responding to Changes in Voltage Registers
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
5.11 Measuring Voltages More Than 5V (Voltage Dividers) 7.14 Increasing the Number of Analog Outputs Using PWM
Problem, Solution, Discussion Extender Chips (TLC5940)
Problem, Solution, Discussion, See Also
Chapter 6. Getting Input from Sensors 7.15 Using an Analog Panel Meter as a Display
6.0 Introduction Problem, Solution, Discussion, See Also
See Also
6.1 Detecting Movement Chapter 8. Physical Output
Problem, Solution, Discussion, See Also 8.0 Introduction
6.2 Detecting Light Motion Control Using Servos
Problem, Solution, Discussion, See Also Solenoids and Relays
6.3 Detecting Motion (Integrating Passive Infrared Detectors) Brushed and Brushless Motors
Problem, Solution, Discussion Stepper Motors
6.4 Measuring Distance Troubleshooting Motors
Problem, Solution, Discussion, See Also 8.1 Controlling the Position of a Servo
6.5 Measuring Distance Accurately Problem, Solution, Discussion
Problem, Solution, Discussion, See Also 8.2 Controlling One or Two Servos with a Potentiometer or
6.6 Detecting Vibration Sensor
Problem, Solution, Discussion Problem, Solution, Discussion
6.7 Detecting Sound 8.3 Controlling the Speed of Continuous Rotation Servos
Problem, Solution, Discussion Problem, Solution, Discussion
6.8 Measuring Temperature 8.4 Controlling Servos Using Computer Commands
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
6.9 Reading RFID Tags 8.5 Driving a Brushless Motor (Using a Hobby Speed Controller)
Problem, Solution, Discussion Problem, Solution, Discussion
6.10 Tracking Rotary Movement 8.6 Controlling Solenoids and Relays
Problem, Solution, Discussion Problem, Solution, Discussion
6.11 Tracking the Movement of More Than One Rotary Encoder 8.7 Making an Object Vibrate
Problem, Solution, Discussion Problem, Solution, Discussion
6.12 Tracking Rotary Movement in a Busy Sketch 8.8 Driving a Brushed Motor Using a Transistor
Problem, Solution, Discussion Problem, Solution, Discussion
6.13 Using a Mouse 8.9 Controlling the Direction of a Brushed Motor with an H-
Problem, Solution, Discussion, See Also Bridge
6.14 Getting Location from a GPS Problem, Solution, Discussion
Problem, Solution, Discussion, See Also
8.10 Controlling the Direction and Speed of a Brushed Motor Chapter 13. Communicating Using I2C and SPI
with an H-Bridge 13.0 Introduction
Problem, Solution, Discussion I2C
8.11 Using Sensors to Control the Direction and Speed of Migrating Wire code to Arduino 1.0
Brushed Motors (L293 H-Bridge) Using 3.3 Volt Devices with 5 Volt Boards
Problem, Solution, Discussion, See Also SPI
8.12 Driving a Bipolar Stepper Motor See Also
Problem, Solution, Discussion, See Also 13.1 Controlling an RGB LED Using the BlinkM Module
8.13 Driving a Bipolar Stepper Motor (Using the EasyDriver Problem, Solution, Discussion, See Also
Board) 13.2 Using the Wii Nunchuck Accelerometer
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
8.14 Driving a Unipolar Stepper Motor (ULN2003A) 13.3 Interfacing to an External Real-Time Clock
Problem, Solution, Discussion Problem
Solution
Chapter 9. Audio Output See Also
9.0 Introduction 13.4 Adding External EEPROM Memory
9.1 Playing Tones Problem, Solution, Discussion, See Also
Problem 13.5 Reading Temperature with a Digital Thermometer
Solution Problem, Solution, Discussion, See Also
See Also 13.6 Driving Four 7-Segment LEDs Using Only Two Wires
9.2 Playing a Simple Melody Problem, Solution, Discussion, See Also
Problem 13.7 Integrating an I2C Port Expander
Solution Problem, Solution, Discussion, See Also
9.3 Generating More Than One Simultaneous Tone 13.8 Driving Multidigit, 7-Segment Displays Using SPI
Problem, Solution, Discussion Problem, Solution, Discussion
9.4 Generating Audio Tones and Fading an LED 13.9 Communicating Between Two or More Arduino Boards
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
9.5 Playing a WAV File
Problem, Solution, Discussion, See Also Chapter 14. Wireless Communication
9.6 Controlling MIDI 14.0 Introduction
Problem, Solution, Discussion, See Also 14.1 Sending Messages Using Low-Cost Wireless Modules
9.7 Making an Audio Synthesizer Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 14.2 Connecting Arduino to a ZigBee or 802.15.4 Network
Problem, Solution, Discussion
Chapter 10. Remotely Controlling External Devices
Series 2 configuration
10.0 Introduction
Series 1 configuration
10.1 Responding to an Infrared Remote Control
Talking to the Arduino
Problem, Solution, Discussion
See Also
10.2 Decoding Infrared Remote Control Signals
14.3 Sending a Message to a Particular XBee
Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also
10.3 Imitating Remote Control Signals
14.4 Sending Sensor Data Between XBees
Problem, Solution, Discussion, See Also
Problem, Solution, Discussion
10.4 Controlling a Digital Camera
Series 2 XBees
Problem, Solution, Discussion, See Also
Series 1 XBees
10.5 Controlling AC Devices by Hacking a Remote-Controlled
See Also
Switch
14.5 Activating an Actuator Connected to an XBee
Problem, Solution, Discussion, See Also
Problem, Solution, Discussion
Chapter 11. Using Displays Series 2 XBees
11.0 Introduction Series 1 XBees
11.1 Connecting and Using a Text LCD Display See Also
Problem, Solution, Discussion, See Also 14.6 Sending Messages Using Low-Cost Transceivers
11.2 Formatting Text Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 14.7 Communicating with Bluetooth Devices
11.3 Turning the Cursor and Display On or Off Problem, Solution, Discussion, See Also
Problem, Solution, Discussion
11.4 Scrolling Text Chapter 15. Ethernet and Networking
Problem, Solution, Discussion 15.0 Introduction
11.5 Displaying Special Symbols Arduino 1.0 Enhancements
Problem, Solution, Discussion, See Also Alternative Hardware for Low Cost Networking
11.6 Creating Custom Characters 15.1 Setting Up the Ethernet Shield
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
11.7 Displaying Symbols Larger Than a Single Character 15.2 Obtaining Your IP Address Automatically
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
11.8 Displaying Pixels Smaller Than a Single Character 15.3 Resolving Hostnames to IP Addresses (DNS)
Problem, Solution, Discussion Problem, Solution, Discussion
11.9 Connecting and Using a Graphical LCD Display 15.4 Requesting Data from a Web Server
Problem, Solution, Discussion Problem, Solution, Discussion
11.10 Creating Bitmaps for Use with a Graphical Display 15.5 Requesting Data from a Web Server Using XML
Problem Problem
Solution Solution
See Also 15.6 Setting Up an Arduino to Be a Web Server
11.11 Displaying Text on a TV Problem, Solution, Discussion
Problem, Solution, Discussion, See Also 15.7 Handling Incoming Web Requests
Problem, Solution, Discussion
Chapter 12. Using Time and Dates 15.8 Handling Incoming Requests for Specific Pages
12.0 Introduction Problem, Solution, Discussion
12.1 Creating Delays 15.9 Using HTML to Format Web Server Responses
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
12.2 Using millis to Determine Duration 15.10 Serving Web Pages Using Forms (POST)
Problem, Solution, Discussion, See Also Problem, Solution, Discussion
12.3 More Precisely Measuring the Duration of a Pulse 15.11 Serving Web Pages Containing Large Amounts of Data
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
12.4 Using Arduino as a Clock 15.12 Sending Twitter Messages
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
12.5 Creating an Alarm to Periodically Call a Function 15.13 Sending and Receiving Simple Messages (UDP)
Problem, Solution, Discussion Problem, Solution, Discussion
12.6 Using a Real-Time Clock 15.14 Getting the Time from an Internet Time Server
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
15.15 Monitoring Pachube Feeds 18.8 Measuring Pulses More Accurately
Problem, Solution, Discussion, See Also Problem, Solution, Discussion, See Also
15.16 Sending Information to Pachube 18.9 Measuring Analog Values Quickly
Problem, Solution, Discussion Problem, Solution, Discussion, See Also
18.10 Reducing Battery Drain
Chapter 16. Using, Modifying, and Creating Libraries Problem, Solution, Discussion, See Also
16.0 Introduction 18.11 Setting Digital Pins Quickly
16.1 Using the Built-in Libraries Problem, Solution, Discussion
Problem, Solution, Discussion, See Also 18.12 Uploading Sketches Using a Programmer
16.2 Installing Third-Party Libraries Problem, Solution, Discussion, See Also
Problem, Solution, Discussion 18.13 Replacing the Arduino Bootloader
16.3 Modifying a Library Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also 18.14 Reprogram the Uno to Emulate a Native USB device
16.4 Creating Your Own Library Problem, Solution, Discussion, See Also
Problem, Solution, Discussion, See Also
16.5 Creating a Library That Uses Other Libraries Appendix A. Electronic Components
Problem, Solution, Discussion Capacitor
16.6 Updating Third-Party Libraries for Arduino 1.0 Diode
Problem, Solution, Discussion, See Also Integrated Circuit
Keypad
Chapter 17. Advanced Coding and Memory Handling LED
17.0 Introduction Motor (DC)
Preprocessor Optocoupler
See Also Photocell (Photoresistor)
17.1 Understanding the Arduino Build Process Piezo
Problem, Solution, Discussion, See Also Pot (Potentiometer)
17.2 Determining the Amount of Free and Used RAM Relay
Problem, Solution, Discussion, See Also Resistor
17.3 Storing and Retrieving Numeric Values in Program Memory Solenoid
Problem, Solution, Discussion, See Also Speaker
17.4 Storing and Retrieving Strings in Program Memory Stepper Motor
Problem, Solution, Discussion, See Also Switch
17.5 Using #define and const Instead of Integers Transistor
Problem, Solution, Discussion, See Also See Also
17.6 Using Conditional Compilations
Problem, Solution, Discussion, See Also Appendix B. Using Schematic Diagrams and Data Sheets
How to Read a Data Sheet
Chapter 18. Using the Controller Chip Hardware Choosing and Using Transistors for Switching
18.0 Introduction Appendix C. Building and Connecting the Circuit
Registers Using a Breadboard
Interrupts Connecting and Using External Power Supplies and Batteries
Timers Using Capacitors for Decoupling
Analog and Digital Pins Using Snubber Diodes with Inductive Loads
See Also Working with AC Line Voltages
18.1 Storing Data in Permanent EEPROM Memory Appendix D. Tips on Troubleshooting Software Problems
Problem, Solution, Discussion, See Also Code That Won’t Compile
18.2 Using Hardware Interrupts Code That Compiles but Does Not Work as Expected
Problem, Solution, Discussion, See Also Appendix E. Tips on Troubleshooting Hardware Problems
18.3 Setting Timer Duration Still Stuck?
Problem, Solution, Discussion, See Also Appendix F. Digital and Analog Pins
18.4 Setting Timer Pulse Width and Duration Appendix G. ASCII and Extended Character Sets
Problem, Solution, Discussion, See Also Appendix H. Migrating to Arduino 1.0
18.5 Creating a Pulse Generator Migrating Print Statements
Problem, Solution, Discussion, See Also Migrating Wire (I2C) Statements
18.6 Changing a Timer’s PWM Frequency Migrating Ethernet Statements
Problem, Solution, Discussion, See Also Migrating Libraries
18.7 Counting Pulses New Stream Parsing Functions
Problem, Solution, Discussion, See Also
Joshua Noble

Programming Interactivity: A Designer's Guide to Processing,


Arduino, and Openframeworks
Интерактивное программирование: руководство разработчика
по проектированию Arduino и openFrameworks

— Publisher: O'Reilly Media,


— 1 edition 2009. — 736 pages ISBN-10: 0596154143, ISBN-13: 978-0596154141
— 2 edition 2012. — 728 pages ISBN-10: 144931144X, ISBN-13: 978-1449311445

Всё готово для проведения насыщенных интерактивных экспериментов с вашими разработками,


проектами или прототипами? Это идеальное место для начала. С этим руководством вы будете
исследовать несколько тем в интерактивном искусстве и дизайне, в том числе: 3D-графику, звук,
физическое взаимодействие, компьютерное зрение и геолокацию; узнаете основы программи-
рования и электроники, необходимые для их реализации.

CONTENTS

Preface The mousePressed() Method


The mouseReleased() and mouseDragged() Methods
PART I. INTRODUCTIONS The keyPressed and key Variables
Importing Libraries
1. Introducing Interaction Design Downloading Libraries
What This Book Is for Loading Things into Processing
Programming for Interactivity Loading and Displaying Images
The Nature of Interaction Displaying Videos in the Processing Environment
Messages and Interaction Using the Movie Class
Interfaces and Interaction Reading and Writing Files
Languages of Interaction Running and Debugging Applications
Design and Interaction Exporting Processing Applications
Art and Interaction Conclusion
Data Exchange and Exploration Review
Working Process
4. Arduino
2. Programming Basics Starting with Arduino
Why You’ll Read This Chapter More Than Once Installing the IDE
The Nature of Code Configuring the IDE
Variables Touring Two Arduino Boards
Simple Types The Controller
Arrays Duemilanove Versus Mini
Casting Touring the Arduino IDE
Operators The Basics of an Arduino Application
Control Statements The setup Statement
if/then The loop Method
for Loop Features of the Arduino Language
while Loop Constants
continue Methods
break Arrays
Functions Strings
Defining a Function How to Connect Things to Your Board
Passing Parameters to a Method Hello World
Some Suggestions on Writing Functions Debugging Your Application
Overloading Functions Importing Libraries
Objects and Properties Running Your Code
Scope Running Your Board Without a USB Connection
Review Review

3. Processing 5. Programming Revisited


Downloading and Installing Processing Object-Oriented Programming
Exploring the Processing IDE Classes
The Basics of a Processing Application The Basics of a Class
The setup() Method Class Rules
The draw() Method Public and Private Properties
The Basics of Drawing with Processing Inheritance
The rect(), ellipse(), and line() Methods Processing: Classes and Files
RGB Versus Hexadecimal C++: Classes and Files
The fill() Method .cpp and .h
The background() Method A Simple C++ Application
The line() Method Pointers and References
The stroke() and strokeWeight() Methods Reference
The curve() Method Pointer
The vertex() and curveVertex() Methods When to Use Pointers
Capturing Simple User Interaction Large Data Objects
The mouseX and mouseY Variables Pointers and Arrays
When Are You Going to Use This?
Review
What Is a Physical Interface?
6. openFrameworks What’s Next
Your IDE and Computer Review
Windows
Mac OS X 9. Programming Graphics
Linux The Screen and Graphics
Taking Another Quick Tour of C++ Seeing Is Thinking, Looking Is Reading
Basic Variable Types Math, Graphics, and Coordinate Systems
Arrays Drawing Strategies
Methods Use Loops to Draw
Classes and Objects in C++ Use Arrays to Draw
Getting Started with oF Draw Only What You Need
Touring an oF Application Use Sprites
Methods Processing and Transformation Matrices
Variables Creating Motion
Creating “Hello, World” Shaping the Gaze
Drawing in 2D Setting the Mood
Setting Drawing Modes Creating Tweens
Drawing Polygons Using Vectors
Displaying Video Files and Images Using Graphical Controls
Images ControlP5 Library
Video Event Handling
Importing Libraries Importing and Exporting Graphics
ofxOpenCv Using PostScript in Processing
ofxVectorGraphics Using PostScript Files in oF
ofxVectorMath What’s Next
ofxNetwork Review
ofxOsc
Compiling an oF Program 10. Bitmaps and Pixels
Compiling in Xcode Using Pixels As Data
Compiling in Code::Blocks Using Pixels and Bitmaps As Input
Debugging an oF Application Providing Feedback with Bitmaps
Using the printf Statement Looping Through Pixels
Using the GNU Debugger Manipulating Bitmaps
Using the Debugger in Xcode Manipulating Color Bytes
Using the Debugger in Code::Blocks Using Convolution in Full Color
Review Analyzing Bitmaps in oF
Analyzing Color
Analyzing Brightness
PART II. THEMES Detecting Motion
Using Edge Detection
7. Sound and Audio Using Pixel Data
Sound As Feedback Using Textures
Sound and Interaction Textures in oF
How Sound Works on a Computer Textures in Processing
Audio in Processing Saving a Bitmap
Instantiating the Minim Library What’s Next
Generating Sounds with Minim Review
Filtering Sounds with Minim
Sound in openFrameworks 11. Physical Feedback
openFrameworks and the FMOD Ex Library Using Motors
The Sound Object Library DC Motors
The Magic of the Fast Fourier Transform Stepper Motors
Physical Manipulation of Sound with Arduino Other Options
A Quick Note on PWM Using Servos
Creating Interactions with Sound Connecting a Servo
Further Resources Communicating with the Servo
Review Wiring a Servo
Using Household Currents
8. Physical Input Working with Appliances
Interacting with Physical Controls Introducing the LilyPad Board
Thinking About Kinetics Using Vibration
Getting Gear for This Chapter Using an LED Matrix
Controlling Controls Using the Matrix Library
The Button As an Electrical Object Using the LedControl Library
The Button As an Interactive Object Using the SPI Protocol
The Button As a Value in Code Using LCDs
Turning Knobs Serial LCD
The Dial As an Interactive Object Using Solenoids for Movement
Potentiometers What’s Next
Using Lights Review
Wiring an LED
Detecting Touch and Vibration 12. Protocols and Communication
Reading a Piezo Sensor Communicating Over Networks
Getting Piezo Sensors Using XML
Communicating with Other Applications Understanding Networks and the Internet
Sending Messages from the Arduino Network Organization
openFrameworks Network Identification
Detecting Motion Network Data Flow
PIR Motion Sensor Handling Network Communication in Processing
Reading Distance Client Class
Reading Input from an Infrared Sensor Server Class
Understanding Binary Numbers Sharing Data Across Applications
Binary Numbers Understanding Protocols in Networking
Bits and Bit Operations Using ofxNetwork
Why Do You Need to Know Any of This? Creating Networks with the Arduino
Detecting Forces and Tilt Initializing the Ethernet Library
Introducing I2C Creating a Client Connection
Creating a Server Connection 15. Movement and Location
Using Carnivore to Communicate Using Movement As and in Interaction
Installing the Carnivore Library Using Software-Based Serial Ports
Creating a Carnivore Client Understanding and Using GPS
Communicating with Bluetooth Storing Data
Using Bluetooth in Processing Logging GPS Data to an Arduino
Using the bluetoothDesktop Library Using the Breadcrumbs Library
Using the Arduino Bluetooth Implementing Hardware-Based Logging
Communicating Using MIDI Sending GPS Data
Review Determining Location by IP Address
What to Do Next
Review
PART III. EXPLORATIONS
16. Interfaces and Controls
13. Graphics and OpenGL Examining Tools, Affordances, and Aesthetics
What Does 3D Have to Do with Interaction? Reexamining Tilt
Understanding 3D Exploring InputShield
Working with 3D in Processing Understanding Touch
Lighting in Processing Exploring Open Source Touch Hardware
Controlling the Viewer’s Perspective Nort_/D
Making Custom Shapes in Processing Liquidware TouchShield
Using Coordinates and Transforms in Processing Drawing to the TouchShield Screen
Working with 3D in OpenGL Controlling Servos Through the TouchShield
So, What Is OpenGL? Setting Up Communication Between Arduino and TouchShield
Transformations Communicating Using OSC
OpenGL in Processing Using the Wiimote
OpenGL in openFrameworks Using the Wii Nunchuck in Arduino
Using Matrices and Transformations in OpenGL Tracking Wii Remote Positioning in Processing
Using Vertices in OpenGL What’s Next
Drawing with Textures in oF Review
Lighting in OpenGL
Blending Modes in OpenGL 17. Spaces and Environments
Using Textures and Shading in Processing Using Architecture and Space
Applying Material Properties Sensing Environmental Data
Using Another Way of Shading Using an XBee with Arduino
What Does GLSL Look Like? Creating a Simple Test
Vertex Shaders Configuring the XBee Module
Fragment Shader Addressing in the XBee
Variables Inside Shaders XBee Library for Processing
Using an ofShader Addon Placing Objects in 2D
What to Do Next Using the X10 Protocol
Review Setting Up an RFID Sensor
Reading Heat and Humidity
14. Detection and Gestures What’s Next
Computer Vision Review
Interfaces Without Controls
Example CV Projects 18. Further Resources
OpenCV What’s Next?
Using Blobs and Tracking Software Tools
Starting with ofxOpenCV Construction Processes
Tracking Blobs with ofxOpenCV Artificial Intelligence
Using OpenCV in Processing Physics
Exploring Further in OpenCV Hardware Platforms
Detecting Gestures Bibliography
Using ezGestures in Processing Interaction Design
Using Gestures in oF Programming
Implementing Face Recognition Hardware
Exploring Touch Devices with oF Art
TouchKit Conclusion
Tuio
Touchlib Appendix
reacTIVision Circuit Diagram Symbols
What’s Next Programming Glossary
Review
Index
Julien Bayle

C Programming for Arduino


Программирование на C для Arduino

— Publisher: Packt Publishing, 2013. — 512 pages

ISBN-10: 1849517584
ISBN-13: 978-1849517584

Создание Ваших собственных электронных устройств является захватывающей забавой? Эта


книга поможет Вам. После знакомства с Arduino вы сможете создать свой собственный электронный
проект. Вы изучите язык C и научитесь, как подключать кнопки, светодиоды, LCD, сетевые модули
и многое другое.

CONTENTS

Preface Using indexes and search inside String


charAt()
Chapter 1: Let's Plug Things indexOf() and lastIndexOf()
What is a microcontroller? startsWith() and endsWith()
Presenting the big Arduino family Concatenation, extraction, and replacement
About hardware prototyping Concatenation
Understanding Arduino software architecture Extract and replace
Installing the Arduino development environment (IDE) Other string functions
Installing the IDE toCharArray()
How to launch the environment? toLowerCase() and toUpperCase()
What does the IDE look like? trim()
Installing Arduino drivers length()
Installing drivers for Arduino Uno R3 Testing variables on the board
Installing drivers for Arduino Duemilanove, Nano, or Diecimilla Some explanations
What is electricity? The scope concept
Voltage static, volatile, and const qualifiers
Current and power static
What are resistors, capacitors, and so on? volatile
Wiring things and Fritzing const
What is Fritzing? Operators, operator structures, and precedence
Power supply fundamentals Arithmetic operators and types
Hello LED! Character types
What do we want to do exactly? Numerical types
How can I do that using C code? Condensed notations and precedence
Let's upload the code, at last! Increment and decrement operators
Type manipulations
Chapter 2: First Contact with C Choosing the right type
An introduction to programming Implicit and explicit type conversions
Different programming paradigms Implicit type conversion
Programming style Explicit type conversion
C and C++? Comparing values and Boolean operators
C is used everywhere Comparison expressions
Arduino is programmed with C and C++ Combining comparisons with Boolean operators
The Arduino native library and other libraries Combining negation and comparisons
Discovering the Arduino native library Adding conditions in the code
Other libraries included and not directly provided if and else conditional structure
Some very useful included libraries switch…case…break conditional structure
Some external libraries Ternary operator
Checking all basic development steps Making smart loops for repetitive tasks
Using the serial monitor for loop structure
Baud rate Playing with increment
Serial communication with Arduino Using imbricated for loops or two indexes
Serial monitoring while loop structure
Making Arduino talk to us do…while loop structure
Adding serial communication to Blink250ms Breaking the loops
Serial functions in more detail Infinite loops are not your friends
Serial.begin()
Serial.print() and Serial.println() Chapter 4: Improve Programming with Functions,
Digging a bit… Math, and Timing
Talking to the board from the computer Introducing functions
Structure of a function
Chapter 3: C Basics – Making You Stronger Creating function prototypes using the Arduino IDE
Approaching variables and types of data Header and name of functions
What is a variable? Body and statements of functions
What is a type? Benefits of using functions
The roll over/wrap concept Easier coding and debugging
Declaring and defining variables Better modularity helps reusability
Declaring variables Better readability
Defining variables