KEMBAR78
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, переключатели | PDF
Arduino и бионика
Введение в микроконтроллеры с Arduino
Занятие 1
11 ноября 2007 - machineproject — Тод Е. Курт
Перевод на русский язык
16 сентября 2011 — robofreak.ru — Татьяна Волкова
Информация о занятиях
• Раздаётся флэшка, на ней:
• PDF-версия этой презентации
• Среда Arduino для MacOSX и Windows
• Исходные тексты («скетчи») примеров
• Скопируйте и передайте дальше
• Воскресенье: 3 часа
•две части по ~1.5 ч. с перерывом 15 м.
• Четверг: ~2.5 часа
• с небольшим повторением в начале
Программа на сегодня
•Введение в Arduino
•Установка среды разработки
•Ваш первый скетч на Arduino
•Цифровые и аналоговые выходы
•Цифровые входы
•Как помигать светодиодом
•Как воспринять нажатие кнопки
и узнать состояние переключателя
Бионика?
Электронные органы чувств заменяют человеческие?
Искусственные "мышцы" работают как естественные?
Или лучше?
Что, недоступное человеку, могут почувствовать
электронные устройства?
Как бы вы улучшили себя с новыми возможностями?
В этих занятиях при помощи простой платы Arduino
изучаются входные и выходные компоненты,
используемые в роботах, мобильных телефонах,
компьютерных играх и автомобилях.
Ваши устройства наблюдают за вами и отвечают вам -
знайте их слабые места на случай восстания машин.
В худшем случае, вы хотя бы сможете выдать себя за своего, обклеив тело платами Arduino.
Содержимое набора для занятия 1
Набор для занятия 2 будет на следующей неделе
Небольшая коробка (например, из-под обуви) отлично подойдёт для хранения деталей.
Не показаны RGB-светодиоды. Упс. Они появились уже после фотосъёмки.
Набор для занятия 1
• Плата Arduino Diecimila USB
• беспаечная макетная плата
• USB-кабель
• пьезоизлучатель
• потенциометр
• 5 оранжевых светодиодов
(большие, прозрачные)
• 1 RGB-светодиод
(матовый, общий анод)
• две тактовые кнопки
• батарейка 9В с клеммами
• резисторы:
• 6 x 220 ом (красный-красный-коричневый)
• 2 x10 кОм (коричневый-чёрный-оранжевый)
• 1 x1 MОм (коричневый-чёрный-зелёный)
• фоторезистор
• фототранзистор (маленький,
прозрачный)
• провода четырёх цветов
• резинки
На следующей неделе - дополнение: "движение и моторы"
Минимум необходимого, и «звук и свет»
Немного о безопасности
•Электроника может навредить вам
•Некоторые детали содержат свинец
•После - обязательное мытьё рук
•Вы можете навредить электронике
•Чувствительна к статическому
электричеству: не шаркайте ногами
•Только провода можно
сгибать без особых последствий
Что такое Arduino?
У слова "Arduino" 3 значения:
Физическое
устройство
Среда
разработки
Сообщество
и философия
Философия и сообщество
Arduino
•Аппаратная вычислительная платформа
Open Source
• "железо" с открытыми исходниками
• открыто для изучения и изменения
• Аппаратная вычисли-
тельная платформа...
э, что это?
"дополненная реальность" (ubiquitous computing)
"повсеместная компьютеризация" (pervasive computing)
"окружающий разум" (ambient intelligence)
"фоновые вычисления" (calm computing)
"единое информационное поле" (everyware)
"живые вещи" (spimes)
"говорящие вещи" (blogjects)
"умные вещи" (smart objects)
•Делается сообществом
• Вики с примерами («playground»), которую
может править любой
• Форумы, где всегда готовы помочь
Аrduino - аппаратная часть
•Похоже на Basic Stamp (если слышали о таком)
• но быстрее, дешевле и с открытыми исходниками
•Использует микроконтроллер AVR ATMega168
• микросхема, разработанная для программирования
на языке C
Разработчики AVR специально оптимизировали регистры и набор инструкций так, чтобы
программы на C компилировались для неё эффективно. Это большое преимущество в
сравнении с прошлыми моделями микроконтроллеров, в которых программы на С были
почти всегда менее эффективны, чем вручную закодированные на варианте ассемблера
Разнообразие плат Arduino
USB
в «Stamp»-
формате
Bluetooth
LilyPad
множество вариантов для разных нужд
набор Boarduino
Одно из преимуществ открытой архитектуры - разнообразие вариантов
Любой может собрать свою плату Arduino, в любом форм-факторе
Изображения плат взяты со Sparkfun.com и Adafruit.com
USB
(для одежды)
Возможности Arduino
• 16 кБ флэш-памяти программ
• 1 кБ оперативной памяти
• 16 МГц (Apple II: 1 МГц)
• Входы и выходы
• 13 цифровых входов/выходов
• 5 аналоговых входов
• 6 аналоговых выходов*
• Полностью автономна: однажды запрограм-
мированная, не нуждается в компьютере
* не совсем аналоговых: используется ШИМ, о которой мы поговорим позже
Не волнуйтесь, если вышесказанное для Вас непонятно - Вы не обязаны это знать.
Плата Arduino Diecimila
2.7” (6,86 см)
2"
(5,08 см)
кнопка
перезагрузки
индикатор
питания
цифровые входы/выходы
аналоговые входы
тестовый светодиод
на выводе 13
TX/RX
свето-
диоды ATmega168
Интерфейс USB
Терминология Arduino
«скетч» - программа, написанная для
запуска на Arduino
«пин» - вход или выход, подключённый
к чему-либо. Пример: светодиод
на выходе или кнопка на входе
«цифровой» - значение HIGH или LOW
(как вкл/выкл или один/ноль)
Пример: состояние выключателя
«аналоговый» - значение обычно в
промежутке 0-255. Пример: яркость
светодиода, скорость мотора.
Среда программирования
Arduino
• Как текстовый редактор
• Можно смотреть/писать/
редактировать скетчи
• Но затем Вы загружаете
их в микроконтроллер
Если Вы использовали Processing для написания маленьких программ на Java, то заметите,
что интерфейс очень похож. Arduino использует графический интерфейс пользователя из
Processing и частично разделяет его философию, но код для Arduino и код на Processing -
совершенно разные вещи.
Установка Arduino
1. Раздобыть и разархивировать
программу Arduino
2. Подключить плату Arduino
3. Установить драйвер
4. Перезагрузить компьютер
5. Запустить среду Arduino
6. Сообщить Arduino (программе)
про Arduino (плату)
Шаги
Получение и распаковка
•На флэшках
•«arduino-0010-win.zip» для Windows
•«arduino-0010-mac.zip» для Mac OS X
•Разархивируйте zip-файл.
«Извлечь всё»
Двойной клик в Mac.
В Windows правый клик.
•Внутри найдите папку «drivers»
Подключение платы Arduino
тестовый светодиод
должен быстро мигать
Индикатор питания должен светиться
Установка драйвера под Mac
• v2_1_6 для PPC Mac
• v2_2_6 для Intel Maс
Двойной клик по установщику .dmg
Установка драйвера под Windows
Выбор расположения и типа
обычно порт с самым
большим номером
выберите «Diecimila»
Выбор расположения и типа
начинается
с tty.usbserial-
выберите «Diecimila»
Среда Arduino
компиляция
(проверка)
статусные
сообщения
загрузить в плату
Использование Arduino
• Напишите свой скетч
• Нажмите кнопку Compile
(чтобы проверить на ошибки)
• Нажмите кнопку Upload,
чтобы загрузить скетч в плату
Попробуйте скетч «Blink»!
Загрузите
«File/Sketchbook/Examples/Digital/Blink»
Измените значение в "delay()" чтобы изменить частоту мигания
компиляция
загрузка
TX/RX мигают
скетч
стартует
Статусные сообщения
Загрузка успешна
Выбран неправильный
последовательный порт
Выбрана неправильная
плата
Размер зависит от того,
насколько сложен скетч
жутко заумные сообщения об ошибке
Возможные проблемы
•Чаще всего проблема в неправильной
настройке последовательного порта
•Если появляются "странные" сообщения
об ошибке, просто попробуйте заново.
•Красный текст внизу - отладочная
информация
•Статусные сообщения поясняют,
что не так
Я заставил светодиод
мигать, что дальше?
•Многие устройства включаются
и выключаются цифровым сигналом
• digitalWrite()Команда позволяет
управлять практически чем угодно
•Светодиоды - это просто, моторы
будут дальше
•В Arduino есть 13 цифровых выходов,
и легко можно добавить ещё при
помощи специальных микросхем
Цикл разработки
•Вносите сколько угодно изменений
•Не как в веб-программировании:
правка запуск➝
•Правка ➝ компиляция ➝ загрузка ➝ запуск
компиляция загрузка запускправка Готово!
Множество встроенных
примеров
Больше здесь:
http://www.arduino.cc/en/Tutorial/HomePage
И по всей Сети. Поищите "Arduino tutorial" или "Arduino notes" или что-то ещё, что Вам
интересно, вместе со словом "Arduino", и скорее всего найдёте полезные страницы
Перерыв
Возьмите кофе в Downbeat Cafe наверху
«Язык» Arduino
• Язык - стандартный C (но упрощённый)
• Множество полезных функций
• pinMode() - сделать пин входом или выходом
• digitalWrite()– установить высокий/низкий уровень
• digitalRead() - прочитать состояние цифрового пина
• analogRead() - прочитать состояние аналогового пина
• analogWrite() - установить «аналоговое» значение
• delay() - подождать определённое время
• millis() - получить текущее время
• И многие другие. Плюс ещё в библиотеках
Также: библиотека работы с последовательным портом, с ЖК-экраном, с сервомашинкой...
Структура скетча
• Вверху - объявление переменных
• Инициализация
• setup() – запускается однажды в
начале, установка пинов
• Запуск
• loop() - вызывается раз за разом
после setup()
Пины можно изменить и в loop(), но концептуально проще в setup().
Сборка схем
сердце бьётся,
кровь течёт
напряжение толкает,
ток течёт
Это всё к тому, что протекание тока - почти как течение жидкости.
Некоторые электронные устройства задерживают течение тока, как маленькие
вентили. Они называются «резисторы»
ток
напряжение
Пример:
светодиодный фонарик
диаграмма
соединений
принципиальная
схема
собранная
схема
Ток есть в замкнутой цепи. Его можно остановить,
разорвав цепь
направление тока
9В
+
–
светодиод
500резистор ом
( , ,зелёный коричневый
)коричневый
( )плоская сторона
500
Все схемы со светодиодом такие: источник питания, ограничитель тока, светодиод.
Плоская сторона светодиода - подключается к отрицательному полюсу схемы.
Соответствует полоске на принципиальной схеме.
Чем больше сопротивление - тем тусклее свечение. Чем меньше - тем ярче.
Вам не нужно это собирать, но последующие схемы все очень похожи.
Схема мигания светодиодом
диаграмма
соединений
Arduinoплата
« »земля
13пин
« »земля
резистор
светодиод
принципиальная
схема
«hello world» в мире микроконтроллеров
В плате Arduino Diecimila эта схема уже встроена
Чтобы включить светодиод: digitalWrite(13,HIGH)
Это - «управляемый компьютером светодиодный фонарик»
В схемах сигнал часто идёт из левого верхнего угла в правый нижний.
У часто встречающихся узлов, таких как «земля» (gnd), есть свои символы.
Вы можете собрать эту схему, используя любой цифровой пин, не важно какой.
Схема как на предыдущей странице, только «батарея» - это 13 пин Arduino,
и Вы можете включать и выключать светодиод.
Принципиальным схемам довольно легко научиться, немногие используют диаграммы
соединений.
плоскаясторона
220резистор ом
( , , )красный красный коричневый
светодиод
Светодиоды и резисторы
светодиод
резистор
У светодиодов полярность важна
Короткий вывод - «минус», идёт на «землю»
У резисторов полярность неважна
плоская сторона - "минус"
Изменение яркости свечения
диаграмма
соединений
принципиальная
схема
собранная
схема
ШИМ-пины работают с командой analogWrite(value)
Чтобы включить светодиод с половинной яркостью: analogWrite(9,128)
Схема, как в примере с мигающим, светодиодом, но пин 9 вместо 13
Arduinoплата
« »земля
9пин
« »земля
резистор
светодиод
где «value» - число от 0 до 255.
Дальше будет больше про ШИМ, но важно, что это работает только на пинах с надписью «PWM».
Вкратце, это работает так: ток включается и выключается несколько сотен раз в секунду. Так что
светодиод мигает, как в примере «Мигалка», но очень быстро. Наши глаза воспринимают его как
более яркий или более тусклый.
Нам нужно собрать эту схему.
220резистор ом
( , ,красный красный
)коричневый
плоскаясторона
Так соберём её!
ArduinoПлата
« »земля
pin 9
« »земля
резистор
светодиод
От абстрактной схемы переходим к реальному устройству
Беспаечные макетные платы
не
соединены
Все соединены
«общая шина»
цифры и
буквы — как
координаты
соединены
по 5 вместе
Вставляйте провода в отверстия, чтобы делать соединения
*Гораздо* проще, быстрее, чем паять
Но: изнашиваются со временем; недешевы (изображённая на рисунке обошлась в 5$,
и это ещё повезло)
Полезные инструменты
Бокорезы
Плоскогубцы-
утконосы
Стриппер
Даже с беспаечной макетной платой Вам придётся зачищать и обрезать провода.
Каждый из этих инструментов стоит около 5$. Если Вы можете позволить себе только
один, возьмите зачистной инструмент (стриппер)
Изготовление перемычек
стрипперплоскогубцы и бокорезы
~0,5 см
Зачищайте примерно на полсантиметра
И делайте перемычки той длины, какая нужна для Вашей схемы
Работа с беспаечной
макетной платой
Плоскогубцы-утконосы помогают вставлять
провода и компоненты в отверстия
Возьмите провод или вывод элемента за кончик и вставьте в отверстие
Собранная схема
Подключите к «минусу»
Другой способ
1. резинка
Или: дешевый способ приделать макетную плату к Arduino
2. провода к питанию
и «земле»
3. подключите к «шине»
4. перемычки
к другой стороне
Теперь схема подключена к «питанию» и «земле»
Так собирать схемы проще по двум причинам:
Во-первых, макетная плата и Arduino теперь тесно связаны, так что у проводов меньше шанс выпасть.
Во-вторых, вы получаете множество отверстий для подключения питания и "земли", а обычно
их нужно очень много.
Используйте эту конструкцию для остальных Ваших схем.
Трюк со скреплением Arduino и макетной платы резинкой бессовестно украден из курса Kimiko Ryokai
"Осязаемый пользовательский интерфейс" (INFO290-13): http://courses.ischool.berkeley.edu/i290-13/f07/
Скетч «Плавное включение»
Загрузите «File/Sketchbook/Examples/Analog/Fading»
Нажмите «Upload». Через секунду светодиод будет плавно пульсировать
Уменьшите значения в «delay()», чтобы быстрее мигать
внимание
Попробуйте другие ШИМ-выводы (запомните: провода тоже нужно переставить)
Попробуйте с
«Плавным включением»
•Сделайте его очень быстрым или
очень медленным
•Переход от половинной на полную яркость
•Попробуйте другие ШИМ-пины
•Несколько плавно меняющих яркость
светодиодов, с разной скоростью
Датчики и Входы
рубильник тумблер
(SPST - Single-pole single-throw) (SPDT — Single-pole double-throw)
Переключатели создают или разрывают соединение
Многие датчики - варианты переключателей
В общем и целом, они все устроены как простые рубильники
Однополюсный = управляет только одной цепью
Двухполюсный = управляет двумя отдельными цепями одновременно
Однонаправленный = только один путь для тока
Двунаправленный = есть два пути для тока
Разные типы переключателей
магнитный датчик наклона
рычажныйшестнадцатеричный
В датчике наклона внутри маленький шарик, его можно услышать.
Раньше они были ртутные, с настоящим шариком ртути внутри. Сейчас таких почти не делают.
Мегнитные переключатели (герконы) классные, но хрупкие
Шестнадцатеричный состоит из нескольких переключателей и выдаёт 4 сигнала
Самодельные переключатели
«Хитрая монетка»
Монетка лежит на поверхности
Если её поднимают, включается сигнализация
Самодельные переключатели
«Хитрая монетка»
Поверхность — лист металла, проводящего электричество.
Провод припаян к монетке.
Провода припаяны или примотаны к листу металла.
Самодельные переключатели
«Умные ветряные колокольчики»
Когда ветер дует достаточно сильно,
Вам отсылается e-mail.
Следует использовать многожильный провод.
В коде анализируется последовательность импульсов вкл/выкл/вкл/выкл, чтобы определить
наличие ветра
Цифровой вход
•Переключатели создают или разрывают
соединение
•Но Arduino хочет знать напряжение
•А именно, «HIGH» (5 вольт)
•или «LOW» (0 вольт)
Как перейти от «соединить/разорвать»
к «HIGH/LOW»?
HIGH
LOW
От переключателя
к HIGH / LOW
•Без подсоединений
цифровые входы «плавают»
между 0 и 5 вольтами
(LOW и HIGH)
•Резистор «подтягивает»
вход к «земле» (0 вольт)
•Нажатие выключателя
«подтягивает» вход к 5В
• Нажато - HIGH
Не нажато - LOW
Подтягивающий резистор не должен иметь маленькое сопротивление, иначе
через него будет большой ток
переключатель
«земля»
измерять здесь
+5В
10 кОм
(коричневый, чёрный, оранжевый)
Соберём схему
Давайте подключим к пину 2
Вы можете оставить последний проект на плате, если хотите.
Использование digitalRead()
•В setup(): pinMode(myPin,INPUT)
делает пин входом
•В loop(): digitalRead(myPin)
возвращает состояние переключателя
• Если делаете много проверок, храните в переменной
выходное значение digitalRead().
• val = digitalRead(myPin)например
Хватит теории, вернёмся к практике
Скетч с цифровым входом
Теперь вы управляете миганием
Загрузите «Sketchbook/Examples/Digital/Button»
(что нужно изменить, чтобы мигать внешним светодиодом,
который вы подключили?)
Нажмите, чтобы выключить, отпустите, чтобы включить.
Обратите внимание, что мигает встроенный в плату светодиод.
Измените код, чтобы мигал светодиод, подключенный к пину 9.
Используем выключатели,
чтобы принимать решения
•Можно выбирать действия при помощи
датчиков, работающих как переключатели
• «Если есть человек, выстрелить из водяного пистолета»
• «Если почва в горшке высохла, включить брызгалку»
•Определите действия, выберите их исходя
из сигналов на входах
•Попробуем с теми действиями, которые
уже знаем.
FadeOrBlink
Загрузите скетч «FadeOrBlink» из раздатки
Комбинирует «Мигалку»
и «Плавное включение» -
вариант выбирается
кнопкой
Схема, как в скетче
«Плавное включение»
Питание от батарейки
• Вначале загрузите
скетч в Arduino
• Отключите кабель USB
• Переставьте перемычку
с USB на EXT
• Подключите питание
(7-12В постоянного тока)
• Индикатор питания
светится. Работает!
• Проделайте всё
в обратном порядке,
чтобы
перепрограммировать
на
EXT
к
Vin и
Gnd
Arduino может работать полностью автономно. Это легко.
Питание от батарейки
• Подключаться
к гнёздам не очень
удобно
• Лучше использовать
разъём питания
• Работает хорошо,
но требует немного
пайки
на
EXT
середина
штекера
- «плюс»
Что дальше
•Сделайте свои выключатели: алюминиевая
фольга, монетки и т.д.
•Соберите бегущий огонёк или стробоскоп
•Соберите фонарик для велосипеда, который
светится, только когда жмёте на педали
•Сделайте РаздражающуюМигалку™
(сверк-сверк-сверк, стоп.... сверк-сверк-сверк)
Множество вещей, которые можно сделать только с переключателями и светодиодами
Тод Е. Курт
tod@todbot.com
КОНЕЦ занятия 1
http://todbot.com/blog/bionicarduino/
Не стесняйтесь писать мне на почту, если есть вопросы.
Полезные ссылки
http://arduino.cc/
Официальная страница. Также посмотрите «игровую площадку» (Playground)
и форумы
http://ladyada.net/learn/arduino/
Отличные обучающие статьи по Arduino
http://todbot.com/blog/category/arduino/
Разные фильмы, хаки, руководства по Arduino
http://freeduino.org/
Каталог знаний по Arduino
http://adafruit.com/
Наборы для начинающих с Arduino, клон Arduino Boarduino, много классных наб
http://sparkfun.com/
Продаёт платы Arduino и множество хороших датчиков и прочей периферии
Книги:
“Physical Computing”, Dan O’Sullivan & Tom Igoe
“Making Things Talk”, Tom Igoe
“Hacking Roomba”, Tod E. Kurt
Обязательные ссылки на литературу

Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, переключатели

  • 1.
    Arduino и бионика Введениев микроконтроллеры с Arduino Занятие 1 11 ноября 2007 - machineproject — Тод Е. Курт Перевод на русский язык 16 сентября 2011 — robofreak.ru — Татьяна Волкова
  • 2.
    Информация о занятиях •Раздаётся флэшка, на ней: • PDF-версия этой презентации • Среда Arduino для MacOSX и Windows • Исходные тексты («скетчи») примеров • Скопируйте и передайте дальше • Воскресенье: 3 часа •две части по ~1.5 ч. с перерывом 15 м. • Четверг: ~2.5 часа • с небольшим повторением в начале
  • 3.
    Программа на сегодня •Введениев Arduino •Установка среды разработки •Ваш первый скетч на Arduino •Цифровые и аналоговые выходы •Цифровые входы •Как помигать светодиодом •Как воспринять нажатие кнопки и узнать состояние переключателя
  • 4.
    Бионика? Электронные органы чувствзаменяют человеческие? Искусственные "мышцы" работают как естественные? Или лучше? Что, недоступное человеку, могут почувствовать электронные устройства? Как бы вы улучшили себя с новыми возможностями? В этих занятиях при помощи простой платы Arduino изучаются входные и выходные компоненты, используемые в роботах, мобильных телефонах, компьютерных играх и автомобилях. Ваши устройства наблюдают за вами и отвечают вам - знайте их слабые места на случай восстания машин. В худшем случае, вы хотя бы сможете выдать себя за своего, обклеив тело платами Arduino.
  • 5.
    Содержимое набора длязанятия 1 Набор для занятия 2 будет на следующей неделе Небольшая коробка (например, из-под обуви) отлично подойдёт для хранения деталей. Не показаны RGB-светодиоды. Упс. Они появились уже после фотосъёмки.
  • 6.
    Набор для занятия1 • Плата Arduino Diecimila USB • беспаечная макетная плата • USB-кабель • пьезоизлучатель • потенциометр • 5 оранжевых светодиодов (большие, прозрачные) • 1 RGB-светодиод (матовый, общий анод) • две тактовые кнопки • батарейка 9В с клеммами • резисторы: • 6 x 220 ом (красный-красный-коричневый) • 2 x10 кОм (коричневый-чёрный-оранжевый) • 1 x1 MОм (коричневый-чёрный-зелёный) • фоторезистор • фототранзистор (маленький, прозрачный) • провода четырёх цветов • резинки На следующей неделе - дополнение: "движение и моторы" Минимум необходимого, и «звук и свет»
  • 7.
    Немного о безопасности •Электроникаможет навредить вам •Некоторые детали содержат свинец •После - обязательное мытьё рук •Вы можете навредить электронике •Чувствительна к статическому электричеству: не шаркайте ногами •Только провода можно сгибать без особых последствий
  • 8.
    Что такое Arduino? Услова "Arduino" 3 значения: Физическое устройство Среда разработки Сообщество и философия
  • 9.
    Философия и сообщество Arduino •Аппаратнаявычислительная платформа Open Source • "железо" с открытыми исходниками • открыто для изучения и изменения • Аппаратная вычисли- тельная платформа... э, что это? "дополненная реальность" (ubiquitous computing) "повсеместная компьютеризация" (pervasive computing) "окружающий разум" (ambient intelligence) "фоновые вычисления" (calm computing) "единое информационное поле" (everyware) "живые вещи" (spimes) "говорящие вещи" (blogjects) "умные вещи" (smart objects) •Делается сообществом • Вики с примерами («playground»), которую может править любой • Форумы, где всегда готовы помочь
  • 10.
    Аrduino - аппаратнаячасть •Похоже на Basic Stamp (если слышали о таком) • но быстрее, дешевле и с открытыми исходниками •Использует микроконтроллер AVR ATMega168 • микросхема, разработанная для программирования на языке C Разработчики AVR специально оптимизировали регистры и набор инструкций так, чтобы программы на C компилировались для неё эффективно. Это большое преимущество в сравнении с прошлыми моделями микроконтроллеров, в которых программы на С были почти всегда менее эффективны, чем вручную закодированные на варианте ассемблера
  • 11.
    Разнообразие плат Arduino USB в«Stamp»- формате Bluetooth LilyPad множество вариантов для разных нужд набор Boarduino Одно из преимуществ открытой архитектуры - разнообразие вариантов Любой может собрать свою плату Arduino, в любом форм-факторе Изображения плат взяты со Sparkfun.com и Adafruit.com USB (для одежды)
  • 12.
    Возможности Arduino • 16кБ флэш-памяти программ • 1 кБ оперативной памяти • 16 МГц (Apple II: 1 МГц) • Входы и выходы • 13 цифровых входов/выходов • 5 аналоговых входов • 6 аналоговых выходов* • Полностью автономна: однажды запрограм- мированная, не нуждается в компьютере * не совсем аналоговых: используется ШИМ, о которой мы поговорим позже Не волнуйтесь, если вышесказанное для Вас непонятно - Вы не обязаны это знать.
  • 13.
    Плата Arduino Diecimila 2.7”(6,86 см) 2" (5,08 см) кнопка перезагрузки индикатор питания цифровые входы/выходы аналоговые входы тестовый светодиод на выводе 13 TX/RX свето- диоды ATmega168 Интерфейс USB
  • 14.
    Терминология Arduino «скетч» -программа, написанная для запуска на Arduino «пин» - вход или выход, подключённый к чему-либо. Пример: светодиод на выходе или кнопка на входе «цифровой» - значение HIGH или LOW (как вкл/выкл или один/ноль) Пример: состояние выключателя «аналоговый» - значение обычно в промежутке 0-255. Пример: яркость светодиода, скорость мотора.
  • 15.
    Среда программирования Arduino • Кактекстовый редактор • Можно смотреть/писать/ редактировать скетчи • Но затем Вы загружаете их в микроконтроллер Если Вы использовали Processing для написания маленьких программ на Java, то заметите, что интерфейс очень похож. Arduino использует графический интерфейс пользователя из Processing и частично разделяет его философию, но код для Arduino и код на Processing - совершенно разные вещи.
  • 16.
    Установка Arduino 1. Раздобытьи разархивировать программу Arduino 2. Подключить плату Arduino 3. Установить драйвер 4. Перезагрузить компьютер 5. Запустить среду Arduino 6. Сообщить Arduino (программе) про Arduino (плату) Шаги
  • 17.
    Получение и распаковка •Нафлэшках •«arduino-0010-win.zip» для Windows •«arduino-0010-mac.zip» для Mac OS X •Разархивируйте zip-файл. «Извлечь всё» Двойной клик в Mac. В Windows правый клик. •Внутри найдите папку «drivers»
  • 18.
    Подключение платы Arduino тестовыйсветодиод должен быстро мигать Индикатор питания должен светиться
  • 19.
    Установка драйвера подMac • v2_1_6 для PPC Mac • v2_2_6 для Intel Maс Двойной клик по установщику .dmg
  • 20.
  • 21.
    Выбор расположения итипа обычно порт с самым большим номером выберите «Diecimila»
  • 22.
    Выбор расположения итипа начинается с tty.usbserial- выберите «Diecimila»
  • 23.
  • 24.
    Использование Arduino • Напишитесвой скетч • Нажмите кнопку Compile (чтобы проверить на ошибки) • Нажмите кнопку Upload, чтобы загрузить скетч в плату Попробуйте скетч «Blink»! Загрузите «File/Sketchbook/Examples/Digital/Blink» Измените значение в "delay()" чтобы изменить частоту мигания компиляция загрузка TX/RX мигают скетч стартует
  • 25.
    Статусные сообщения Загрузка успешна Выбраннеправильный последовательный порт Выбрана неправильная плата Размер зависит от того, насколько сложен скетч жутко заумные сообщения об ошибке
  • 26.
    Возможные проблемы •Чаще всегопроблема в неправильной настройке последовательного порта •Если появляются "странные" сообщения об ошибке, просто попробуйте заново. •Красный текст внизу - отладочная информация •Статусные сообщения поясняют, что не так
  • 27.
    Я заставил светодиод мигать,что дальше? •Многие устройства включаются и выключаются цифровым сигналом • digitalWrite()Команда позволяет управлять практически чем угодно •Светодиоды - это просто, моторы будут дальше •В Arduino есть 13 цифровых выходов, и легко можно добавить ещё при помощи специальных микросхем
  • 28.
    Цикл разработки •Вносите сколькоугодно изменений •Не как в веб-программировании: правка запуск➝ •Правка ➝ компиляция ➝ загрузка ➝ запуск компиляция загрузка запускправка Готово!
  • 29.
    Множество встроенных примеров Больше здесь: http://www.arduino.cc/en/Tutorial/HomePage Ипо всей Сети. Поищите "Arduino tutorial" или "Arduino notes" или что-то ещё, что Вам интересно, вместе со словом "Arduino", и скорее всего найдёте полезные страницы
  • 30.
    Перерыв Возьмите кофе вDownbeat Cafe наверху
  • 31.
    «Язык» Arduino • Язык- стандартный C (но упрощённый) • Множество полезных функций • pinMode() - сделать пин входом или выходом • digitalWrite()– установить высокий/низкий уровень • digitalRead() - прочитать состояние цифрового пина • analogRead() - прочитать состояние аналогового пина • analogWrite() - установить «аналоговое» значение • delay() - подождать определённое время • millis() - получить текущее время • И многие другие. Плюс ещё в библиотеках Также: библиотека работы с последовательным портом, с ЖК-экраном, с сервомашинкой...
  • 32.
    Структура скетча • Вверху- объявление переменных • Инициализация • setup() – запускается однажды в начале, установка пинов • Запуск • loop() - вызывается раз за разом после setup() Пины можно изменить и в loop(), но концептуально проще в setup().
  • 33.
    Сборка схем сердце бьётся, кровьтечёт напряжение толкает, ток течёт Это всё к тому, что протекание тока - почти как течение жидкости. Некоторые электронные устройства задерживают течение тока, как маленькие вентили. Они называются «резисторы» ток напряжение
  • 34.
    Пример: светодиодный фонарик диаграмма соединений принципиальная схема собранная схема Ток естьв замкнутой цепи. Его можно остановить, разорвав цепь направление тока 9В + – светодиод 500резистор ом ( , ,зелёный коричневый )коричневый ( )плоская сторона 500 Все схемы со светодиодом такие: источник питания, ограничитель тока, светодиод. Плоская сторона светодиода - подключается к отрицательному полюсу схемы. Соответствует полоске на принципиальной схеме. Чем больше сопротивление - тем тусклее свечение. Чем меньше - тем ярче. Вам не нужно это собирать, но последующие схемы все очень похожи.
  • 35.
    Схема мигания светодиодом диаграмма соединений Arduinoплата «»земля 13пин « »земля резистор светодиод принципиальная схема «hello world» в мире микроконтроллеров В плате Arduino Diecimila эта схема уже встроена Чтобы включить светодиод: digitalWrite(13,HIGH) Это - «управляемый компьютером светодиодный фонарик» В схемах сигнал часто идёт из левого верхнего угла в правый нижний. У часто встречающихся узлов, таких как «земля» (gnd), есть свои символы. Вы можете собрать эту схему, используя любой цифровой пин, не важно какой. Схема как на предыдущей странице, только «батарея» - это 13 пин Arduino, и Вы можете включать и выключать светодиод. Принципиальным схемам довольно легко научиться, немногие используют диаграммы соединений. плоскаясторона 220резистор ом ( , , )красный красный коричневый светодиод
  • 36.
    Светодиоды и резисторы светодиод резистор Усветодиодов полярность важна Короткий вывод - «минус», идёт на «землю» У резисторов полярность неважна плоская сторона - "минус"
  • 37.
    Изменение яркости свечения диаграмма соединений принципиальная схема собранная схема ШИМ-пиныработают с командой analogWrite(value) Чтобы включить светодиод с половинной яркостью: analogWrite(9,128) Схема, как в примере с мигающим, светодиодом, но пин 9 вместо 13 Arduinoплата « »земля 9пин « »земля резистор светодиод где «value» - число от 0 до 255. Дальше будет больше про ШИМ, но важно, что это работает только на пинах с надписью «PWM». Вкратце, это работает так: ток включается и выключается несколько сотен раз в секунду. Так что светодиод мигает, как в примере «Мигалка», но очень быстро. Наши глаза воспринимают его как более яркий или более тусклый. Нам нужно собрать эту схему. 220резистор ом ( , ,красный красный )коричневый плоскаясторона
  • 38.
    Так соберём её! ArduinoПлата «»земля pin 9 « »земля резистор светодиод От абстрактной схемы переходим к реальному устройству
  • 39.
    Беспаечные макетные платы не соединены Всесоединены «общая шина» цифры и буквы — как координаты соединены по 5 вместе Вставляйте провода в отверстия, чтобы делать соединения *Гораздо* проще, быстрее, чем паять Но: изнашиваются со временем; недешевы (изображённая на рисунке обошлась в 5$, и это ещё повезло)
  • 40.
    Полезные инструменты Бокорезы Плоскогубцы- утконосы Стриппер Даже сбеспаечной макетной платой Вам придётся зачищать и обрезать провода. Каждый из этих инструментов стоит около 5$. Если Вы можете позволить себе только один, возьмите зачистной инструмент (стриппер)
  • 41.
    Изготовление перемычек стрипперплоскогубцы ибокорезы ~0,5 см Зачищайте примерно на полсантиметра И делайте перемычки той длины, какая нужна для Вашей схемы
  • 42.
    Работа с беспаечной макетнойплатой Плоскогубцы-утконосы помогают вставлять провода и компоненты в отверстия Возьмите провод или вывод элемента за кончик и вставьте в отверстие
  • 43.
  • 44.
    Другой способ 1. резинка Или:дешевый способ приделать макетную плату к Arduino 2. провода к питанию и «земле» 3. подключите к «шине» 4. перемычки к другой стороне Теперь схема подключена к «питанию» и «земле» Так собирать схемы проще по двум причинам: Во-первых, макетная плата и Arduino теперь тесно связаны, так что у проводов меньше шанс выпасть. Во-вторых, вы получаете множество отверстий для подключения питания и "земли", а обычно их нужно очень много. Используйте эту конструкцию для остальных Ваших схем. Трюк со скреплением Arduino и макетной платы резинкой бессовестно украден из курса Kimiko Ryokai "Осязаемый пользовательский интерфейс" (INFO290-13): http://courses.ischool.berkeley.edu/i290-13/f07/
  • 45.
    Скетч «Плавное включение» Загрузите«File/Sketchbook/Examples/Analog/Fading» Нажмите «Upload». Через секунду светодиод будет плавно пульсировать Уменьшите значения в «delay()», чтобы быстрее мигать внимание Попробуйте другие ШИМ-выводы (запомните: провода тоже нужно переставить)
  • 46.
    Попробуйте с «Плавным включением» •Сделайтеего очень быстрым или очень медленным •Переход от половинной на полную яркость •Попробуйте другие ШИМ-пины •Несколько плавно меняющих яркость светодиодов, с разной скоростью
  • 47.
    Датчики и Входы рубильниктумблер (SPST - Single-pole single-throw) (SPDT — Single-pole double-throw) Переключатели создают или разрывают соединение Многие датчики - варианты переключателей В общем и целом, они все устроены как простые рубильники Однополюсный = управляет только одной цепью Двухполюсный = управляет двумя отдельными цепями одновременно Однонаправленный = только один путь для тока Двунаправленный = есть два пути для тока
  • 48.
    Разные типы переключателей магнитныйдатчик наклона рычажныйшестнадцатеричный В датчике наклона внутри маленький шарик, его можно услышать. Раньше они были ртутные, с настоящим шариком ртути внутри. Сейчас таких почти не делают. Мегнитные переключатели (герконы) классные, но хрупкие Шестнадцатеричный состоит из нескольких переключателей и выдаёт 4 сигнала
  • 49.
    Самодельные переключатели «Хитрая монетка» Монеткалежит на поверхности Если её поднимают, включается сигнализация
  • 50.
    Самодельные переключатели «Хитрая монетка» Поверхность— лист металла, проводящего электричество. Провод припаян к монетке. Провода припаяны или примотаны к листу металла.
  • 51.
    Самодельные переключатели «Умные ветряныеколокольчики» Когда ветер дует достаточно сильно, Вам отсылается e-mail. Следует использовать многожильный провод. В коде анализируется последовательность импульсов вкл/выкл/вкл/выкл, чтобы определить наличие ветра
  • 52.
    Цифровой вход •Переключатели создаютили разрывают соединение •Но Arduino хочет знать напряжение •А именно, «HIGH» (5 вольт) •или «LOW» (0 вольт) Как перейти от «соединить/разорвать» к «HIGH/LOW»? HIGH LOW
  • 53.
    От переключателя к HIGH/ LOW •Без подсоединений цифровые входы «плавают» между 0 и 5 вольтами (LOW и HIGH) •Резистор «подтягивает» вход к «земле» (0 вольт) •Нажатие выключателя «подтягивает» вход к 5В • Нажато - HIGH Не нажато - LOW Подтягивающий резистор не должен иметь маленькое сопротивление, иначе через него будет большой ток переключатель «земля» измерять здесь +5В 10 кОм (коричневый, чёрный, оранжевый)
  • 54.
    Соберём схему Давайте подключимк пину 2 Вы можете оставить последний проект на плате, если хотите.
  • 55.
    Использование digitalRead() •В setup():pinMode(myPin,INPUT) делает пин входом •В loop(): digitalRead(myPin) возвращает состояние переключателя • Если делаете много проверок, храните в переменной выходное значение digitalRead(). • val = digitalRead(myPin)например Хватит теории, вернёмся к практике
  • 56.
    Скетч с цифровымвходом Теперь вы управляете миганием Загрузите «Sketchbook/Examples/Digital/Button» (что нужно изменить, чтобы мигать внешним светодиодом, который вы подключили?) Нажмите, чтобы выключить, отпустите, чтобы включить. Обратите внимание, что мигает встроенный в плату светодиод. Измените код, чтобы мигал светодиод, подключенный к пину 9.
  • 57.
    Используем выключатели, чтобы приниматьрешения •Можно выбирать действия при помощи датчиков, работающих как переключатели • «Если есть человек, выстрелить из водяного пистолета» • «Если почва в горшке высохла, включить брызгалку» •Определите действия, выберите их исходя из сигналов на входах •Попробуем с теми действиями, которые уже знаем.
  • 58.
    FadeOrBlink Загрузите скетч «FadeOrBlink»из раздатки Комбинирует «Мигалку» и «Плавное включение» - вариант выбирается кнопкой Схема, как в скетче «Плавное включение»
  • 59.
    Питание от батарейки •Вначале загрузите скетч в Arduino • Отключите кабель USB • Переставьте перемычку с USB на EXT • Подключите питание (7-12В постоянного тока) • Индикатор питания светится. Работает! • Проделайте всё в обратном порядке, чтобы перепрограммировать на EXT к Vin и Gnd Arduino может работать полностью автономно. Это легко.
  • 60.
    Питание от батарейки •Подключаться к гнёздам не очень удобно • Лучше использовать разъём питания • Работает хорошо, но требует немного пайки на EXT середина штекера - «плюс»
  • 61.
    Что дальше •Сделайте своивыключатели: алюминиевая фольга, монетки и т.д. •Соберите бегущий огонёк или стробоскоп •Соберите фонарик для велосипеда, который светится, только когда жмёте на педали •Сделайте РаздражающуюМигалку™ (сверк-сверк-сверк, стоп.... сверк-сверк-сверк) Множество вещей, которые можно сделать только с переключателями и светодиодами
  • 62.
    Тод Е. Курт tod@todbot.com КОНЕЦзанятия 1 http://todbot.com/blog/bionicarduino/ Не стесняйтесь писать мне на почту, если есть вопросы.
  • 63.
    Полезные ссылки http://arduino.cc/ Официальная страница.Также посмотрите «игровую площадку» (Playground) и форумы http://ladyada.net/learn/arduino/ Отличные обучающие статьи по Arduino http://todbot.com/blog/category/arduino/ Разные фильмы, хаки, руководства по Arduino http://freeduino.org/ Каталог знаний по Arduino http://adafruit.com/ Наборы для начинающих с Arduino, клон Arduino Boarduino, много классных наб http://sparkfun.com/ Продаёт платы Arduino и множество хороших датчиков и прочей периферии Книги: “Physical Computing”, Dan O’Sullivan & Tom Igoe “Making Things Talk”, Tom Igoe “Hacking Roomba”, Tod E. Kurt Обязательные ссылки на литературу