Конструирование взаимодействия - дизайн любого опыта взаимодействия 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Конструирование взаимодействия - дизайн любого опыта взаимодействия



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

Arduino - физическая вычислительная платформа с открытым исходным кодом, основанная на просто плате ввода-вывода и среды разработки, которая использует язык Processing (www.processing.org). Arduino может применяться для разработки самостоятельных интерактивных обьектов или может быть связана с программой на вашем компьютере (такой как Flash, Processing, VVVV, или Max/MSP). Платы могут быть собраны самостоятельно или куплены уже собранными; среда разработки (далее IDE) может быть загружена бесплатно с сайта www.arduino.cc

Arduino отличается от других платформ на рынке тем, следующими возможностями:

Это многоплатформенная среда, она может работать на Windows, Macintosh, и Linux.

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

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

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

Компоненты недорогие. Плата USB стоит около US$30 и замена сгоревшей микросхемы на плате легка и стоит не более US$5. Так что вы можете ошибаться.

Существует активное общество пользователей, так что вам может помочь большое число людей.

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

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

 

Целевая аудитория

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

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

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

 

Конструирование взаимодействия - дизайн любого опыта взаимодействия

В сегодняшнем мире дизайн взаимодействия касается значимого опыта между нами (людьми) и объектами. Это хороший способ изучить возможность создания красивых и, может быть, даже спорных опытов между нами и технологией. Дизайн взаимодействия предлагает разработку путем интерактивного процесса, основанного на прототипах все возрастающей сложности. Такой подход - также часть некоторых типов "обычной" разработки - может быть расширен до включения прототипирования с помощью технологии; в частности, прототипирование в электронике. Конкретной областью дизайна взаимодействия, которой занимается Arduino, являются физические вычисления (или физический дизайн взаимодействия).

Что такое физические вычисления?

Физические вычисления используют электронику для прототипирования новых материалов для дизайнеров и художников.

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

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

Глава 2. Путь Arduino

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

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

Следующие несколько разделов представляют несколько философий, событий и пионеров, которые вдохновили на Путь Arduino.

Прототипирование

Прототипирование - сердце пути Arduino: мы делаем вещи и создаём обьекты, которые взаимодействуют с другими обьектами, людьми и сетями. Мы стремимся найти более простой и быстрый путь создания прототипа наиболее дешёвёвым способом.

Многим новичкам, который знакомятся с электроникой в первый раз, кажется что они должны научиться строить всё с нуля. Это пустая трата энергии: что вам надо, так это очень быстро просто удостовериться в том, что что-то работает, так-что вы сможете мотивировать себя предпринять следующий шаг или даже мотивировать кого-то ещё дать вам побольше денег для реализации задуманного.

Именно поэтому мы разработали "оппортунистическое прототипирование": зачем тратить время и энергию, строить с нуля (процесс, который требует времени и глубоких технических знаний), когда можно взять готовые устройства и взломать их чтобы использовать большую работу, проделанную крупными компаниями и хорошими инженерами?

Самоделкины

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

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

Сшивание

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

Снижение количества остановок потока очень важно для творчества - чем более беспрерывный процесс, тем больше получится рукоделия.

Эта техника была переведена в мир программ при помощи средств "визуального программирования", таких как Max, Pure Data, или VVVV. Эти инструменты визуализированы как "ящики" с разной фукнциональностью, позволяя пользователю строить связи, соединяя эти ящики вместе. Эти среды позволяют пользователю экспериментировать с программированием без постоянных перерывов, типичных для обычного цикла: "ввести программу, скомпилировать, чёрт побери - тут ошибка, исправить ошибку, скомпилировать, запустить". Если вы нацеливаетесь на визуализацию, рекомендую попробовать их.

2.4 Искажение схем

Искажение схемы - одна из наиболее интересных форм творчества. Это творческое короткое замыкание низковольтных аудиоприборов с питанием от батарей, таких как педали гитарных эффектов, детские игрушки и небольшие синтезаторы для получения новых музыкальных инструментов и генераторов звука. Сердце этого процесса - "искусство шанса". Оно было начато Ридом Газала, который случайно закоротил гитарный усилитель железякой в своём ящике стола, что вызвало поток необычных звуков. Что мне нравится в искажателях схем - это то, что они могут создать самые дикие устройства при помощи технологий без понимания что они собственно делают с теоретической стороны.

2.5 Хаки клавиатуры

Компьютерные клавиатуры - всё ещё основной способ общения с компьютером на протяжении более 60 лет. Как экспериментаторы, мы можем реализовывать новые пути общения с программами, заменяя клавиши устройствами, которые могут получать данные от окружающей среды. Клавиатура отдельно от компьютера, является простым (и дешёвым) устройством. Её сердце - маленькая платка. Обычно это дурно пахнущая зелёная или коричневая плата с двумя рядами контактов, которые идут к пластиковым прокладкам, осуществляющим соединения между клавишами. Если вы снимете их и используете провод чтобы соединить контакты, на дисплее компьютера появится символ. Если вы приобретёте детектор движения и подключите его к своей клавиатуре, вы увидите, что как только кто-то пройдёт мимо компьютера, будет "нажата" клавиша. Свяжите его с вашей любимой программой, и вы сделаете свой компьютер умнее писсуара. Изучение хаков клавиатуры - ключевой кирпичик прототипирования и физических вычислений.

2.6 Мы любим мусор!

В настоящее время люди выбрасывают множество техники: старые принтеры, компьютеры, странные офисные машины, техническое оборудование и даже множество военных устройств. Это всегда было большим рынком для такой продвинутой технологии, особенно среди молодых и/или бедных хакеров, которые только начинают свой путь. Этот рынок стал очевидным в Иври, где мы разрабатывали Arduino. В городе расположен главный офис компании Оливетти. Они производят компьютеры с 1960-х годов; в середине 1990-х они выбросили всё на свалки района. Они были полны компьютерных частей, электронных компонентов и странных устройств различных видов. Мы потратили здесь бесконечные часы, выбирая все сорта приспособлений за небольшие деньги и применяя их в своих прототипах. Если вы покупаете тысячу динамиков за необльшие деньги, в конце-концов вы родите какую-нибудь идею. Накапливайте мусор и просматривайте его перед началом создания чего-нибудь с нуля.

Хакайте игрушки

Игрушки - фантастический источник дешёвых технологий для хака и повторного использования, об этом свидетельствует практика искажения схем, упомянутая ранее. При нынешнем притоке очень дешёвых высокотехнологичных игрушек из Китая вы можете быстро реализовать идеи при помощи нескольких мяукающих котов или световых мечей. Я делал это несколько лет для того чтобы заставить понять моих студентов что технология - не страшна, и не сложна в понимании. Один из моих любимых источников - это буклет "Низкотехнологичные сенсоры и актюаторы" авторов Usman Haque и Adam Somlai-Fischer. Я думаю, что они прекрасно описали эту технику в своей книге, и я использую это при любом удобном случае.

 

 

Сотрудничество

Сотрудничество между пользователями является одним из их ключевых принципов мира Arduino - через форум на www.arduino.cc люди из разных уголков мира помогают друг другу в изучении платформы. Команда Arduino побуждает людей к сотрудничеству на местном уровне, а также помогая им создавать группы пользователей в каждом городе, который они посещают. Мы также создали Wiki, названную "Детская площадка" (www.arduino.cc/playground), где пользователи документируют свои результаты. Это так удивительно видеть, как много знаний эти люди вываливают в сеть для всех пользователей. Эта культура обмена опытом и помощи друг другу - одна из вещей, которыми я больше всего горжусь в связи с Arduino.

Глава 3. Платформа Arduino

Arduino состоит из двух основных частей - платы Arduino, которая является частью аппаратного обеспечения, над которым вы работаете при создании собственных обьектов; и среды разработки (IDE) Arduino - программного обеспечения, которое вы запускаете на своём компьютере. Вы используете IDE для создания скетчей (маленьких компьютерных программ), которые выгружаются на плату Arduino. Скетч говорит плате что делать.

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

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

Сенсоры и актюаторы

Сенсоры и актюаторы - это электронные компоненты, которые позволяют электронике взаимодействовать с окружающим миром.

Так как микроконтроллер - это очень простой компьютер, он может обрабатывать только электрические сигналы (похоже на электрические импульсы, которые посылаются между нейронами в нашем мозге). Для того, чтобы определить освещённость, температуру, или другие физические величины, ему требуется что-то для преобразования их в электричество. В нашем теле, для примера, глаз преобразовывает свет в сигналы, которые отправляются в мозг при помощи нервов. В электронике мы можем использовать простой прибор, называемый светочувствительный резистор (или фоторезистор), который может измерить количество света, попадающего на него и передать это как понятный микроконтроллеру сигнал.

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

Мигание светодиодом

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

Ваша плата Arduino уже имеет установленный светодиод. Он обозначен "L". Вы также можете добавить свой собственный светодиод - подключите его как показано на рис. 4-2.

"К" обозначает катод (отрицательный вывод), или более короткий вывод; "А" обозначает анод (положительный вывод), более длинный вывод.

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

Рис. 4.2 Подключение светодиода к Arduino

 

 

Откройте папку, в которую вы поместили IDE Arduino на своём компьютере. Дважды щёлкните на значке Arduino для запуска, выберите "File" > "New". У вас запросят имя папки со скетчами: это место, где будет храниться скетч Arduino. Введите имя Blinking_LED и нажмите "ОК". Затем введите следующий текст (пример 1-4) в редакторе скетчей (в главном окне IDE Arduino). Вы также можете загрузить его со страницы www.makezine.com/ getstartedarduino. Он должен выглядеть как на рис. 4-3.

 

Пример 4-1. Мигающий светодиод

#define LED 13 // LED connected to

// digital pin 13

 

void setup()

{

pinMode(LED, OUTPUT); // sets the digital

 

// pin as output

}

 

void loop()

{

digitalWrite(LED, HIGH); // turns the LED on

delay(1000); // waits for a second

 

digitalWrite(LED, LOW); // turns the LED off

delay(1000); // waits for a second

}

 

Рис. 4-3. Среда разработки Arduino со скетчем

Теперь, когда ваш код находится в IDE, вам надо проверить его. Нажмите кнопку "Verify" (рис. 4-3 показывает где она находится); если всё верно, вы увидите внизу окна сообщение "Done compiling". Это сообщение говорит о том, что IDE Arduino оттранслировала ваш скетч в выполняемую программу, которая может быть запущена на плате, почти как.exe-файлы в Windows или файлы.app на Mac.

Теперь вы можете выгрузить скетч на плату: нажмите кнопку "Upload to I/O Board" (см. рис. 4-3). Произойдт перезапуск платы, который заставляет плату остановить выполнение кода и слушать инструкции по порту USB. IDE Arduino отправляет текущий скетч на плату, которая сохраняет его в своей памяти и в конце концов выполняет его.

Вы увидите несколько сообщений в чёрной области внизу экрана IDE, и прямо над этой областью вы увидите сообщение "Done uploading". Это означает, что процесс выгрузки успешно завершён. На плате установлено два светодиода, обозначенные " RX" и "TX"; они мигают всякий раз при отправке или получении байта платой. Во время выгрузки они мерцают.

Если вы не видите что светодиоды мерцают, или получаете сообщение об ошибке вместо "Done uploading", значит существует проблема связи между вашим компьютером и Arduino. Удостоверьтесь что выбран верный COM-порт в меню "Tools" > "Serial Port" (см. главу 3). Также проверьте пункт меню "Tools" > "Board" - в нём должна быть выбрана верная модель Arduino.

Если вы всё ещё испытываете проблемы, см. главу 7.

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

Допустим что скетч был выгружен успешно, вы видите включающийся на одну секунду светодиод "L", а затем на то-же время выключающийся. Если вы установили отдельный светодиод как показано на рис. 4-2, этот светодиод также будет мигать. То, что вы только-что написали и запустили, и есть "компьютерная программа", или скетч, как называются программы Arduino. Arduino, как мы определили раньше, это маленький компьютер и она может быть запрограммирована делать то что вы хотите. Это делается при помощи написания последовательности инструкций на языке программирования в среде разработки Arduino, которая преобразует эту последовательность в выполняемый код для платы Arduino.

Далее я покажу вам, как понять скетч. Во-первых, Arduino выполняет код сверху вниз, так что первая строка сверху будет прочтена первой; затем движется вниз. Аналогия - ползунок текущей позиции в программе-видеоплейере (QuickTime Player или Windows Media Player), он движется слева направо, показывая ваше положение в фильме.

Передайте мне пармезан

Уделите внимание фигурным скобкам, которые использованы для группировки строк кода. Они, в частности, полезны, когда вы хотите дать имя группе инструкций. Если в обед вы просите кого-нибудь "Передай мне пармезан, пожалуйста", ваша фраза описывает серию действий. Поскольку мы люди, всё это происходит естественно, но все отдельные крошечные требуемые действия должны быть сообщены плате Arduino по причине того, что плата не така мощная как наш разум. Так-что для группировки команд установите { перед началом вашего кода и добавьте } после него.

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

Void setup()

Эта строка даёт имя блоку кода. Если вы пишете иструкцию плате для подачи пармезана, вам стоит написать

Void passTheParmesan()

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

passTheParmesan() в любом месте кода, Arduino выполнит эти инструкции и продолжит работу с того места, где прервалась.

Arduino не остановить

Arduino ожидает наличия двух функций - одна называется setup(), а вторая - loop().

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

Код, шаг за шагом

Во-первых, вы можете посчитать подобные пояснения ненужными, почти как когда я был в школе и должен был изучать Божественную комедию Данте (каждый итальянский студент должен пройти через это, как и через другую книгу - "I promessi sposi", или "Невеста" - о, кошмар). Для каждой строфы в поэме было написано тысячи строк комменнтариев! Однако, пояснения будут более полезными когда вы начнёте писать свои собственные программы.

// Example 01:Blinking LED

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

#define LED 13 // LED connected to

// digital pin 13

 

#define - эта директива подобна автоматическому поиску и замене в вашем коде; в данном случае она говорит Arduino вставить заменить на число 13 все слова LED в коде. Такая замена - первое, что происходит когда вы нажимаете кнопку "Verify" или "Upload to I/O Board" (вы не увидите результатов этой замены, т.к. она происходит "за сценой"). Мы используем эту команду для того, чтобы показать, что светодиод, которым мы будем мигать, подключён к 13 выводу платы Arduino.

Void setup()

Эта строка говорит Arduino, что следующий блок кода будет называться setup().

{ - с такой открывающей скобкой начинается блок кода.

Void loop()

{

 

loop() - это функция, где вы определяете основное поведение вашего интерактивного устройства. Она будет повторяться снова и снова до выключения платы.

Что мы будем создавать

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

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

Что такое электричество?

Если вы делали что-нибудь по дому, электроника вам не покажется сложной для понимания. Чтобы понять как работают электричество и электрические схемы, лучше всего представлять вещи как "водяная аналогия". Давайте создадим простое устройство, такое как портативный вентилятор с питанием от батарей (рис. 4-4).

Рис. 4-4. Портативный вентилятор

 

Если разобрать вентилятор на части, мы увидим, что он состоит из маленькой батарейки, нескольких проводов и электромоторчика. Один из проводов, идущих от батареи к моторчику, разорван выключателем. Если у вас новая батарейка и вы включите выключатель, моторчик начнёт крутиться, охлаждая вас. Как это работает? Представьте себе что батарейка - это водяной резерувар с насосом, выключатель - кран, а электромотор - колесо, подобное тем что вы видели у водяных мельниц. Когда вы откроете кран, вода потечёт из насоса и будет приводить водяное колесо в движение.

Рис. 4-5. Гидравлическая система

Вы быстро поймёте что если вам надо вращать колесо быстрее, требуется увеличить размер труб (но это работает только до определённого предела) и увеличить давление насоса. Увеличение диаметра труб позволит пройти через них большему потоку воды; увеличивая трубу мы уменьшаем её сопротивление потоку. Это работает до определённого предела, при котором колесо не будет крутиться ещё быстрее, так как давленые воды недостаточно велико. Когда мы достигнет этой точки, нам надо насос помощнее. Такой метод ускорения водяной мельницы работает также до некоторой точки, в которой водяное колесо сломается из-за слишком сильного напора воды. Другая вещь, которую вы можете заметить, это что ось колеса немного нагревается, поскольку незавимо от того насколько точно мы установили колесо, трение между осью и колесом будет создавать тепло. Важно понять что в подобной системе не вся энергия насоса будет превращена в движение колеса, некоторая часть будет потеряна из-за неэффективности системы и превратится в основном в тепло в некоторых её частях.

Итак, какие часты системы важны? Давление, поизводимое насосом; опротивление труб и колеса потоку воды, и, собственно, сам поток воды (определяемый литрами воды, которая вытекает за секунду) и другие. Электричество работает подобно воде. У вас есть что-то подобное насосу (любой источник электричества, такой как батарейка или розетка в стене), который толкает электрические заряды (представим их как "капельки" электричества) по трубам, которые мы можем представить как провода, и устройства, способные производить тепло (пример - термоодеяло), свет (лампа в вашей комнате), звук (ваша стереосистема), движение (вентилятор) и многое другое.

Теперь, если вы прочтёте на батерейке "9 В", думайте об этом как о давлении воды, которое может выдать наш "насос". Напряжение измеряется в вольтах - единицах названных в честь Александра Вольта, создателя первой батареи.

В точности как давление воды имеет эквивалент в электричестве, скорость потока воды также его имеет. Он называется током, который измеряется в амперах (по имени Андре Мари Ампера, первооткрывателя электромагнетизма). Связь между напряжением и током может быть показана, если мы вернёмся к водяному колесу: если большее напряжение (давление) позволяет вам крутить колесо быстрее, то больший поток воды (ток) позволяет крутить большее колесо.

И, наконец, сопротивление, противостоящее течению электричества на его пути, через который ток проходит, называется - вы знали это! - соротивлением, и измеряется в омах (по имени немецкого физика Георга Ома). Герр Ом также виновен в формулировке самого важного закона в электричестве, и вам надо запомнить только одну его формулу. Он смог показать, что напряжение, ток и сопротивление в цепи связаны друг с другом, и, в частности, что сопротивление цепи определяет количество тока, который будет течь через неё при определенном напряжении питания.

Это легко понять, если вы задумаетесь. Возьмите батарейку на 9 вольт и включите её в простую схему. Измеряя ток, вы увидите, что чем с большим сопротивлением резистор вы добавите в схему, тем меньший ток будет проходить через него. Возвращаясь к аналогии с водой, при данном насосе, если я установлю клапан (который соотносится с сопротивлением в электронике), то чем больше я буду закручивать этот клапан - увеличивая сопротивление потоку воды - тем меньше воды протечёт по трубе. Ом подвёл итог своего закона в формулу:

R (сопротивление) = V (напряжение) / I (ток)

V = R * I

I = V / R

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

Как это работает?

В этом примере программы я показал две новых концепции: функция, которая возвращает результат своей работы, и выражение " if ".

Выражение " if " - возможно, самая важная инструкция в языке программирования, так как она позволяет компьютеру (а мы помним что Arduino - это маленький компьютер) делать выбор. После ключевого слова "if" вы должны написать "вопрос" в круглых скобках, и если "ответ", или результат, верен, будет выполнен первый блок кода; и напротив, если ответ неверен, будет выполнен блок кода после "else". Обратите внимание, что я использовал символ "==" вместо "=". Первый используется при сравнении двух значений и возвращает "TRUE" (ИСТИНА) или "FALSE" (ЛОЖЬ); второй присваивает значение переменной. Удостоверьтесь, что вы пользуетесь ими правильно, так как очень легко совершить подобную ошибку и использовать простое равно. В этом случае программа никогда не будет работать. Я знаю это по опыту 25 лет программирования и всё ещё могу ошибиться.

Держать палец на кнопке пока вам надо свет - не очень практично. Хотя это заставило бы вас задуматься о том, сколько энергии тратися впустую когда вы оставляете лампу включённой, нам надо подумать о том, как-бы сделать чтобы кнопка "залипала".

Выключатели

То-же самое что и кнопка, но не изменяет автоматически своё состоянии при отпускании.

Термостаты

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

5.1.3 Магнитные переключатели, также известные как "герконы"

Имеют два контакта, которые соединяются если рядом расположить магнит, используются в сигнализация против взлома для определения открытого окна.

Ковровые переключатели

Маленькие пластинки, которые можно положить под ковёр чтобы определить присутствие человека (или тяжёлого кота).

Датчики наклона

Простой электронный компонент, сделанный из двух контактов и маленького металлического шарика (или капельки ртути, но я не рекомендую использовать такие). Рис. 5-1 показывает внутренности типичной модели. Когда датчик расположен вертикально, шарик замыкает оба контакта, и устройство работает как если-бы вы нажати кнопку. Когда вы наклоняете датчик, шарик движется и контакты размыкаются, как если-бы вы отпустили кнопку. Используя такой простой компонент, вы можете создавать, например, интерфейсы управления жестами, которые реагируют на движения или встряхивание обьекта.

Рис. 5-1. Конструкция датчика наклона

Другой датчик, который вы можете захотеть испытать, это инфракрасный датчик от охранной сигнализации (также известный как пассивный инфракрасный датчик, или ИК-датчик, см. рис. 5-2). Эти маленькие устройства срабатывают когда человек (или животное) движется в пределах его видимости. Это простой способ определить движение.

Рис. 5-2. Типичный инфракрасный датчик

Теперь вы можете поэкспериментировать, найдя всевозможные устройства, имеющие два замыкающихся контакта, такие как термостат, управляющий температурой в комнате (используйте старый, который не подключён к системе), или просто расположив рядом два контакта и капнув на них водой.

Например, используя пример из главы 4 и ИК-датчик, вы можете создать лампу, которая реагирует на присутствие человека, или вы можете применить датчик наклона чтобы она включалась при наклоне в определённую сторону.

Последовательная связь

Как вы прочли в начале книги, у Arduino есть USB-подключение, используемое средой разработки для загрузки кода в процессор. Хорошая новость в том, что это подключение также может использоваться скетчами для отправки назад на компьютер данных или получения команд от него. Для этой цели мы изучим обьект serial (обьект - это набор свойств, которые обьединены вместе для удобства пишущих скетчи людей).

Этот обьект содержит весь код, необходимый для отправки и получения данных. Сейчас мы используем предыдущую схему с фоторезистором и будем отправлять значения, которые прочли, на компьютер. Вставьте следующий код в новый скетч (его также можно скачать с www.makezine.com/getstartedarduino):

Пример 5-5. Отправка на компьютер данных, прочитанных с аналогового входа 0. После выгрузки скетча на плату нажмите кнопку "Serial Monitor" в IDE.

 

#define SENSOR 0 // select the input pin for the

// sensor resistor

 

int val = 0; // variable to store the value coming

 

// from the sensor

 

void setup() {

 

Serial.begin(9600); // open the serial port to send

// data back to the computer at

// 9600 bits per second

 

}

 

void loop() {

 

val = analogRead(SENSOR); // read the value from

// the sensor

 

Serial.println(val); // print the value to

 

// the serial port

 

delay(100); // wait 100ms between

// each send

}

 

После того, как вы выгрузите скетч в Arduino, нажмите кнопку "Serial Monitor" в Arduino IDE (самая правая в панели кнопок); в открывшемся вы увидите постоянно увеличивающийся список цифр. Теперь любая программа, способная работать с последовательным портом, может вести диалог с Arduino. Существует много языков программирования, которые позволяют писать программы, общающиеся с последовательным портом. Processing (www.processing.org) является отличным дополнением к Arduino из-за того что и язык, и IDE очень похожи.

 

Сложные сенсоры

Мы определим сложные сенсоры как такие, которые могут выдавать информацию, что требует больше чем просто функции digitalRead() или analogRead(). Обычно они представляют собой маленькую схему с небольшим микроконтроллером внутри, который предварительно обрабатывает информацию.

Некоторые из таких сложных сенсоров являются ульразвуковыми или инфракрасными датчиками расстояния, акселерометрами.

Рис. 5-7. Схема двигателя вентилятора с Arduino

 

Цифровой вывод

Цифровой вывод

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

Аналоговый вывод

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

Цифровой ввод

Позволяет нам читать состояние простых сенсоров, таких как кнопки или датчики наклона.

Аналоговый ввод

Мы можем читать сигналы с датчиков, которые постоянно посылают данные, а не просто "вкл/выкл", таких как потенциометр или датчик света.

Последовательная связь

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

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

Вот где во мне проявляется желание быть дизайнером. Мы создадим версию двадцать первого века классической лампы моего любимого итальянского дизайнера, Джо Коломбо. Обьект, который мы будем создавать, называется "Атон" с 1964 года.

Рис. 6-1. Законченная лампа

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



Поделиться:


Последнее изменение этой страницы: 2016-06-29; просмотров: 226; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.247.196 (0.179 с.)