Assembler программирование последовательного порта

Это учебное пособие “Расширение 5” от Processing: A Programming Handbook for Visual Designers and Artists. Второе издание, опубликованное MIT Press. © 2014 MIT Press. Если вы видите какие-либо ошибки или у вас есть комментарии, пожалуйста, сообщите нам обэтом .

Эрнандо Барраган и Кейси Реас

Программное обеспечение не ограничивается работой на настольных компьютерах, ноутбуках. Планшетах и телефонах. Современные камеры. Копировальные аппараты. Лифты, игрушки. Стиральные машины и произведения искусства. Найденные в галереях и музеях. Управляются с помощью программного обеспечения.

Программы, написанные для управления этими объектами. Используют те же понятия. Которые обсуждались ранее в этой книге (переменные. Управляющие структуры. Массивы и т. Д.), но построение физических частей требует изучения электроники. Этот текст знакомит с потенциалом электроники на примерах из искусства и дизайна. А также обсуждает базовую терминологию и компоненты. Представлены и объяснены примеры. Написанные с помощью проводки и Arduino (двух электронных наборов инструментов. Связанных с обработкой).

Электроника в искусстве

Электроника стала популярным материалом для художников в 1960-х годах.

Такие художники. Как Наум Габо и Марсель Дюшан. Использовали электрические двигатели в предыдущие десятилетия. Но широкий интерес к кинетической скульптуре и основание таких организаций. Как Эксперименты в искусстве и технике (E. A. T.), свидетельствуют о значительном новом акценте. Например, на выставке Машин в Музее современного искусства в 1968 году Вэнь-Ин Цай выставил Кибернетическую скульптуру, структура. Сделанная из вибрирующих стальных стержней. Освещенных стробоскопическими огнями. Мигающими на высоких частотах. Колебания частоты вибрации и световые вспышки вызывали изменения в восприятии скульптуры.

Скульптура реагировала на звук в окружающей среде. Изменяя частоту стробоскопических огней. Питер Фогель. Еще один пионер кинетической скульптуры. Создал скульптуры. Которые генерируют звук. Скульптуры имеют световые датчики (фотоэлементы). Которые обнаруживают и реагируют на тень человека. Когда он приближается к скульптуре. Скульптуры построены почти полностью из электрических компонентов. Организация этих компонентов формирует как форму скульптуры. Так и ее поведение. Другие пионеры в 1960-х годах включают Нам Джун Пайк. Николаса Шеффера. Джеймса Сиврайта и Такиса.

Ассортимент электронной скульптуры. Созданной современными художниками. Впечатляет. Тим Хокинсон производит растянутые кинетические установки из картона, пластика. Ленты и электрических компонентов. Его Uberorgan (2000) использует механические принципы. Вдохновленные пианино. Чтобы управлять потоком воздуха через воздушные шары размером с китов. Воздух проталкивается сквозь вибрирующие камыши. Создавая тональный гул и пронзительные крики. Эта физическая энергия контрастирует с психологическим напряжением. Передаваемым скульптурами Кена Файнгольда. Его Если/То (2001) — две одинаковые лысые головы. Торчащие из картонной коробки. Наполненной упаковочным материалом.

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

Работы Мэйвы Денки и Криспина Джонса являются прототипами захватывающей области работы между искусством и дизайном продукта. Maywa Denki-это японское художественное подразделение. Которое разрабатывает серию продуктов (произведений искусства). Которые демонстрируются на демонстрациях продуктов (живых выступлениях).

На протяжении многих лет они создали потомство существ. Инструментов. Модных устройств, роботов. Игрушек и инструментов—все это приводилось в действие двигателями и электричеством. Устройства из серии Edelweiss включают Marmica, самоиграющую маримбу. Которая раскрывается. Как цветок, и Mustang, бензиновая ароматическая машина для людей. Которые любят выхлопные газы. Криспин Джонс создает полностью функционирующие прототипы объектов. Которые являются критическими отражениями потребительских технологий.

Социальные мобильные телефоны (SoMo), разработанные в сотрудничестве с IDEO. Представляют собой набор мобильных телефонов. Которые устраняют разочарование и гнев. Вызванные мобильными телефонами в общественных местах. Проект с юмором исследует способы. С помощью которых мобильные телефонные звонки в общественных местах можно было бы сделать менее разрушительными. СоМо 1 В зависимости от того. Насколько громко разговаривает собеседник на другом конце провода. Телефон вызывает переменный электрический разряд. Мелодия звонка для SoMo 4 создается тем. Что звонящий стучит в свой телефон.

Как и в случае со стуком в дверь. Отношение или личность звонящего раскрывается через звук. К родственным художникам относятся Бюро обратных технологий Рета Кувакубо и команда Тони Данна и Фионы Раби.

По мере распространения электронных устройств для разработчиков становится все более важным рассмотреть новые способы взаимодействия с этими машинами. Работа с электроникой является важным компонентом формирующегося сообщества дизайнеров взаимодействия. Группа Material Media Group (TMG) в Лаборатории MIT Media Laboratory. Возглавляемая Хироси Исии. Стала пионером в исследовании материальных пользовательских интерфейсов. Чтобы использовать преимущества человеческих чувств и ловкости за пределами экранных графических интерфейсов и щелчка мышью.

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

Эти и другие проекты TMG сыграли важную роль в переносе исследований в области дизайна интерфейсов с экрана в физическое пространство. Исследовательские лаборатории таких компаний. Как Sony и Philips. Также являются центрами исследований и инноваций в области проектирования физических взаимодействий. Академические программы. Такие как Интерактивная телекоммуникационная программа Нью-Йоркского университета. Курс взаимодействия дизайна в Королевском колледже искусств и бывший Институт дизайна взаимодействия Ivrea. Стали пионерами образовательных стратегий в этой области.

Электричество

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

Электрический ток — это поток движущихся электронов. Они текут из одной точки в другую через проводник. Некоторые материалы являются лучшими проводниками. Чем другие. Втыкать вилку в розетку опасно. Потому что металл-хороший проводник. Как и ваше тело. Лучшие проводники-медь. Серебро и золото.

Резистор — это противоположность проводнику. Сопротивление-это способность материала сопротивляться потоку электронов. Вещество с очень высоким сопротивлением является изолятором Пластик и резина являются отличными изоляторами. И именно поэтому они используются в качестве защитного покрытия вокруг проводов. Электрическая энергия. Разность электрических потенциалов между двумя точками. Называется напряжением. Количество электрического заряда в секунду. Которое проходит через точку. Называется током. Сопротивление измеряется в единицах измерения. Называемых омами. Напряжение-в вольтах. А ток-в амперах.

Связь между этими тремя понятиями легче всего понять с помощью аналогии с водой. Текущей по шлангу. Как объяснили педагоги Дэн О Салливан и Том Айго:

Поток воды через шланг подобен потоку электричества через цепь. Поворот крана увеличивает количество воды. Проходящей через шланг. Или увеличивает ток (ампер). Диаметр шланга обеспечивает сопротивление течению, определяя. Сколько воды может течь. Скорость воды эквивалентна напряжению. Когда вы кладете большой палец на конец шланга. Вы уменьшаете диаметр пути воды. Другими словами. Сопротивление растет. Ток (то есть. Сколько воды течет), однако. Не изменяется. Поэтому скорость воды. Или напряжение. Должно увеличиться. Чтобы вся вода могла убежать.

Электрический ток протекает двумя путями: постоянным током (DC) и переменным током (AC). Сигнал постоянного тока всегда течет в одном и том же направлении. А сигнал переменного тока регулярно меняет направление потока. Батареи и солнечные батареи производят сигналы постоянного тока, а питание. Получаемое от настенных розеток. Является сигналом переменного тока:

В зависимости от вашей страны источник переменного тока. Поступающий в ваш дом. Составляет от 100 до 240 вольт.

Большинство бытовых приборов могут напрямую использовать переменный ток для работы. Но некоторые используют источник питания для преобразования переменного тока с более высоким потенциалом в постоянный ток при меньших напряжениях. Распространенным примером такого типа источника питания являются черные пластиковые коробки (например. Силовые кирпичи. Адаптеры питания. Настенные бородавки). Которые используются для питания ноутбуков или мобильных телефонов от домашнего источника переменного тока. Большинство настольных компьютеров имеют внутренний источник питания для преобразования источника переменного тока в 12-вольтовый и 5-вольтовый источник постоянного тока. Необходимый для работы внутренней электроники.

Низкое напряжение. Как правило. Безопаснее. Чем высокое. Но именно величина тока (ампер) делает электричество опасным.

Компоненты

Электронные компоненты используются для воздействия на поток электричества и преобразования электрической энергии в другие формы. Такие как свет. Тепло и механическая энергия. Существует много различных компонентов. Каждый из которых имеет определенное назначение. Но здесь мы вводим четыре основных типа: резистор. Конденсатор. Диод и транзистор.

Резистор
Резистор ограничивает (обеспечивает сопротивление) поток электричества. Резисторы измеряются в единицах измерения. Называемых омами. Значение 10 Ом меньше сопротивления. Чем 10 000 (10К) Ом. Значение каждого резистора отмечено на компоненте серией цветных полос. Переменный резистор. Который изменяет свое сопротивление при повороте ползунка. Ручки или циферблата. Прикрепленного к нему. Называется потенциометром или триммером. Переменные резисторы предназначены для изменения в ответ на различные явления окружающей среды. Например, тот. Который изменяется в ответ на свет. Называется фоторезистором или фотоэлементом, а тот. Который изменяется в ответ на тепло. Называется термистором. Резисторы могут использоваться для ограничения тока. Снижения напряжения и выполнения многих других важных задач.

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

Конденсаторы измеряются в единицах. Называемых фарадами. Фарад-это большое измерение. Поэтому большинство конденсаторов. Которые вы будете использовать. Будут измеряться в микрофарадах (мкФ). Пикофарадах (пФ) или нанофарадах (нФ).

Диодный
ток протекает через диод только в одном направлении. Одна сторона называется катодом (обозначена на приборе линией). А другая — анодом. Ток течет, когда анод более положительный, чем катод. Диоды обычно используются для блокирования или инвертирования отрицательной части сигнала переменного тока.

Для получения света используется светоизлучающий диод (LED). Более длинный провод. Выходящий из светодиода. Является анодом. А другой-катодом. Светодиоды бывают разных размеров, форм. Цветов и уровней яркости.

Транзистор
может быть использован в качестве электрического выключателя или усилителя. Биполярный транзистор имеет три вывода (провода). Называемые базой. Коллектором и эмиттером. В зависимости от типа транзистора подача тока на базу либо позволяет течь току. Либо останавливает его протекание через устройство от коллектора к эмиттеру.

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

Схемы

Электрическая схема-это конфигурация компонентов. Обычно предназначенных для получения желаемого поведения. Такого как уменьшение тока. Фильтрация сигнала или включение светодиода. Для включения и выключения света можно использовать следующую простую схему:

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

Электроны движутся от одного конца батареи через нагрузку к другому.

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

Схемы часто прототипируются на Макетная плата позволяет легко и быстро вносить изменения в схему без пайки (сплавление компонентов вместе с мягким металлом).

Проводящие полосы под поверхностью соединяют длинные горизонтальные ряды в верхней и нижней частях платы и короткие вертикальные ряды в середине:

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

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

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

Они аккуратно вписываются в макетную доску. Оседлав зазор посередине.

Микроконтроллеры и платы ввода-вывода

Микроконтроллеры-это небольшие и простые компьютеры. Это крошечные компьютерные мозги. Которые автоматизируют многие аспекты современной жизни. Благодаря своей деятельности внутри устройств. Начиная от будильников и заканчивая самолетами. Микроконтроллер имеет процессор. Память и интерфейсы ввода-вывода. Заключенные в одном программируемом блоке. Их размеры варьируются от 1 × 1 см до 5 × 2 см.

Как и настольные компьютеры. Они бывают разных конфигураций. Некоторые из них имеют ту же скорость и память. Что и персональный компьютер двадцатилетней давности. Но они гораздо менее мощные. Чем современные машины. Как показывает эта сравнительная таблица:

Модель Скорость Память Стоимость
Apple Macintosh (1984) 
8 МГц
128 Кб
$2500
Микроконтроллер Atmel ATmega128-8AC 
8 МГц
128 Кб
$15
Apple Mac Mini (2006) 
1500 МГц
512 000 Кб
$600

 

Маленькие металлические штырьки. Торчащие из краев микроконтроллера. Обеспечивают доступ к цепям внутри.

У каждой булавки своя роль. Некоторые из них используются для питания. Некоторые-для связи. Некоторые-входы. А другие могут быть установлены либо на вход. Либо на выход. Относительное напряжение на каждом входном выводе может быть считано с помощью программного обеспечения. А напряжение может быть установлено на каждом выходном выводе. Некоторые пин-коды зарезервированы для связи. Они позволяют микроконтроллеру взаимодействовать с компьютерами и другими микроконтроллерами через установленные протоколы связи. Такие как последовательный порт RS-232.

Микроконтроллеры могут быть использованы для создания проектов непосредственно. Но они часто упаковываются с другими компонентами на печатную плату (PCB). Чтобы облегчить их использование для начинающих и для быстрого прототипирования. Мы называем эти платы платами ввода/вывода (input/output boards). Потому что они используются для получения данных в микроконтроллере и из него. Их еще называют микроконтроллерными модулями. Мы создали три неформальные группы—голые микроконтроллеры. Программируемые платы ввода—вывода и привязные платы ввода-вывода-для обсуждения различных способов использования микроконтроллеров в проекте.

Голые микроконтроллеры
Работа непосредственно с голым микроконтроллером — самый гибкий. Но и самый сложный способ работы. Он также потенциально может быть наименее затратным способом построения с помощью электроники. Но эта экономия может быть компенсирована первоначальными затратами на разработку и дополнительным временем. Потраченным на изучение того. Как его использовать. Microchip PIC и Atmel AVR-два популярных семейства микроконтроллеров. Каждый из них имеет вариации. Варьирующиеся от простых до сложных. Которые подходят для различных типов проектов. Память, скорость и другие характеристики влияют на стоимость. Количество контактов и размер пакета. В обоих семействах есть чипы от восьми до 100 пинов с ценами от 1 до 20 долларов. Микроконтроллеры PIC появились на рынке уже давно. И для начинающих доступно больше примеров кода. Проектов и книг. Микросхемы AVR имеют более современную архитектуру и более широкий спектр инструментов программирования с открытым исходным кодом. Микроконтроллеры обычно программируются на языке Си или их ассемблере. Но также можно программировать их и на других языках. Таких как BASIC. Если вы новичок в электронике и программировании. Мы не рекомендуем начинать работу непосредственно с микросхем PIC или AVR. По нашему опыту. Новички добились большего успеха с опциями. Представленными ниже.

Программируемые платы ввода-вывода Программируемая
плата ввода-вывода-это микроконтроллер. Расположенный на печатной плате с другими компонентами. Чтобы облегчить программирование. Прикрепление/отсоединение компонентов и включение и выключение. Эти платы обычно имеют компоненты для регулирования мощности для защиты микроконтроллера и разъем последовательного порта USB или RS-232, облегчающий подключение кабелей для связи. Маленькие штифты на микроконтроллере подключены к большим штифтам. Называемым коллекторами. Которые позволяют легко вставлять и вынимать датчики и двигатели. Маленькие провода. Встроенные в печатную плату. Соединяют контакты с соответствующим коллектором. Небольшие переключатели сброса позволяют легко перезапустить питание без необходимости физического отсоединения источника питания или батареи.

В контексте этой книги наиболее актуальными платами ввода-вывода являются Электропроводка и Arduino. Оба были созданы как инструменты для дизайнеров и художников. Чтобы создавать прототипы и изучать электронику. Обе платы используют язык проводки для программирования своих микроконтроллеров и используют среду разработки. Построенную из среды обработки. По сравнению с языком обработки. Язык проводки обеспечивает аналогичный уровень контроля и простоту использования в пределах своей области. Они имеют общие языковые элементы. Когда это возможно. Но Проводка имеет некоторые функции. Специфичные для программирования микроконтроллеров. И опускает функции графического программирования в рамках обработки. Как и программы обработки. Программы проводки перед запуском переводятся на другой язык. Когда программа. Написанная на языке программирования. Компилируется. Она сначала переводится на язык C/C++. А затем компилируется с помощью компилятора C/C++.

Привязная плата ввода-вывода
используется для передачи данных датчиков в компьютер и управления физическими устройствами (двигателями. Лампами и т. Д.) Без необходимости программирования платы. Компьютер уже имеет множество устройств ввода и вывода. Таких как монитор. Мышь и клавиатура; а привязные платы ввода-вывода обеспечивают способ связи между более экзотическими устройствами ввода. Такими как датчики света и видеокамеры. И устройствами вывода. Такими как сервомоторы и лампы. Эти доски разработаны. Чтобы быть простыми в использовании. Они часто не требуют знания электроники. Потому что датчики и двигатели могут быть подключены непосредственно к плате и не нуждаются в интерфейсе с другими компонентами. Сообщения отправляются и принимаются с плат с помощью программного обеспечения. Такого как Processing, Max. Flash и многих языков программирования. Такая простота использования часто обходится очень дорого.

Датчики

Физические явления измеряются электронными устройствами. Называемыми датчиками. Различные датчики были изобретены для получения данных. Связанных с прикосновением, силой. Близостью, светом. Ориентацией, звуком. Температурой и многим другим. Датчики можно разделить на группы в зависимости от типа сигналов. Которые они производят (аналоговые или цифровые). И типа явлений. Которые они измеряют. Аналоговые сигналы непрерывны. Но цифровые сигналы ограничены диапазоном значений (например. От 0 до 255):

Большинство основных аналоговых датчиков используют сопротивление. Изменения в физическом явлении изменяют сопротивление датчика. Тем самым изменяя выходное напряжение через датчик. Аналого-цифровой преобразователь может непрерывно измерять это изменяющееся напряжение и преобразовывать его в число. Которое может быть использовано программным обеспечением. Датчики, производящие цифровые сигналы. Посылают данные в виде двоичных значений на подключенное устройство или компьютер. Эти датчики используют напряжение (обычно от 3,5 до 5 вольт) как ВКЛЮЧЕННОЕ (двоичная цифра 1 или TRUE) и отсутствие напряжения как ВЫКЛЮЧЕННОЕ (двоичная цифра 0 или FALSE). Более сложные датчики включают в себя собственные микроконтроллеры для преобразования данных в цифровые сигналы и использования установленных коммуникационных протоколов для передачи этих сигналов на другой компьютер.

Сенсорное и силовое
восприятие прикосновения и силы достигается с помощью переключателей. Емкостных датчиков. Датчиков изгиба и чувствительных к силе резисторов. Выключатель-это самый простой способ обнаружить прикосновение. Выключатель-это механизм. Который останавливает или позволяет течь электричеству в зависимости от его состояния. Открытого (выключенного) или закрытого (включенного). Некоторые переключатели имеют множество возможных положений. Но большинство из них могут быть только ВКЛЮЧЕНЫ или ВЫКЛЮЧЕНЫ. Прикосновение также может быть обнаружено с помощью емкостных датчиков. Эти датчики могут быть настроены так. Чтобы определять прикосновение и близость (в пределах нескольких миллиметров) пальца к объекту. Датчик может быть расположен под непроводящей поверхностью. Такой как стекло. Картон или ткань. Этот тип датчика часто используется для кнопок в лифте. Датчик изгиба (flex) представляет собой тонкую полоску пластика. Которая изменяет свое сопротивление при изгибе. Силочувствительный резистор (FSR или датчик силы) изменяет свое сопротивление в зависимости от величины силы. Приложенной к его поверхности. FSRs предназначены для небольших сил. Таких как давление от пальца. И они доступны в различных формах. Включая длинные полосы и круглые прокладки.


Существует большое разнообразие датчиков для измерения расстояния и определения присутствия человека. Самый простой способ определить присутствие-это переключатель. Например, с помощью переключателя. Прикрепленного к двери. Можно определить. Открыта она или закрыта. Изменение состояния (открытое или закрытое) означает. Что кто-то или что-то есть. Переключатели бывают самых разных форм и размеров. Но категория маленьких так и называется микропереключателями наиболее полезны для этой цели. Инфракрасные (ИК) детекторы движения. Используемые в системах безопасности. — это еще один простой способ увидеть. Движется ли что-то в окружающей среде. Они не могут измерить расстояние или степень движения. Но у них есть широкий диапазон. И некоторые типы можно купить в хозяйственных магазинах. ИК-датчики расстояния используются для расчета расстояния между датчиком и объектом. Расстояние преобразуется в напряжение от 0 до 5 вольт. Которое может быть считано микроконтроллером. Ультразвуковые датчики используются для измерения до 10 метров. Этот тип устройства посылает звуковой импульс и вычисляет. Сколько времени требуется для получения эха.

Световые
датчики для обнаружения света включают фоторезисторы. Фототранзисторы и фотодиоды. Фоторезистор (также называемый фотоэлементом) — это компонент. Который изменяет свое сопротивление с различными уровнями света. Это один из самых простых в использовании датчиков. Фототранзитор более чувствителен к изменениям освещенности. А также прост в использовании. Фотодиоды также очень чувствительны и могут быстрее реагировать на изменение уровня света. Но они более сложны для взаимодействия с микроконтроллером. Фотодиоды используются в приемниках дистанционного управления телевизоров и стереосистем.

Положение и ориентация
Потенциометр-это переменный резистор. Который работает. Поворачивая поворотную ручку или перемещая ползунок вверх и вниз. Сопротивление потенциометра изменяется при вращении или движении вверх/вниз. И это может повлиять на уровень напряжения в цепи. Большинство поворотных потенциометров имеют ограниченный диапазон вращения. Но некоторые способны вращаться непрерывно. Датчик наклона используется для грубого измерения ориентации (вверх или вниз). Это переключатель с двумя или более проводами и небольшим металлическим шариком или ртутью в коробке. Который касается проводов. Чтобы завершить цепь. Когда она находится в определенной ориентации. Акселерометр измеряет изменение движения (ускорения) объекта. На который он установлен. Крошечные структуры внутри устройства изгибаются в результате импульса. И величина изгиба измеряется. Акселерометры используются в камерах для управления стабилизацией изображения и в автомобилях для обнаружения быстрого замедления и освобождения подушек безопасности. Цифровой компас вычисляет ориентацию относительно магнитного поля земли. Менее дорогие датчики этого типа имеют меньшую точность и могут плохо работать вблизи объектов. Излучающих электромагнитные поля (например. Двигателей).

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

Термистор
— это устройство. Которое изменяет свое сопротивление с температурой. Эти датчики легко взаимодействуют. Но они медленно реагируют на изменения. Для количественного измерения температуры необходим более сложный прибор. Датчики пламени настроены на обнаружение открытого пламени. Такого как зажигалки и свечи.

Датчики и связь

Аналоговые сигналы напряжения от датчиков не могут быть непосредственно интерпретированы компьютером. Поэтому они должны быть преобразованы в цифровое значение. Некоторые микроконтроллеры предоставляют аналого-цифровые преобразователи (АЦП или АЦП). Которые измеряют изменения напряжения на входном выводе и преобразуют его в цифровое значение. Диапазон значений зависит от разрешения АЦП; общие разрешения-8 и 10 бит. При 8-битном разрешении АЦП может представлять 28 (256) различные значения. Где 0 вольт соответствует значению 0, а 5 вольт соответствует 255. 10-разрядный АЦП обеспечивает 1024 различных значения. Где 5 вольт соответствует значению 1023.

Данные передаются и принимаются между микроконтроллерами и компьютерами в соответствии с установленными протоколами передачи данных. Такими как RS-232 serial, USB. MIDI, TPC/IP. Bluetooth и другими проприетарными форматами. Такими как I2C или SPI. Большинство электронных наборов для создания прототипов и микроконтроллеров включают последовательный порт RS-232, и поэтому это удобный способ связи. Этот стандарт существует уже давно (он был разработан в конце 1960-х годов) и определяет уровни сигнала, время. Физические разъемы и протоколы обмена информацией. Физический последовательный порт RS-232 в значительной степени был заменен в компьютерах более быстрой и гибкой (но более сложной) универсальной последовательной шиной (USB). Но протокол по-прежнему широко используется при объединении USB-порта с программной эмуляцией.

Поскольку устройство может иметь несколько последовательных портов. Пользователь должен указать. Какой последовательный порт использовать для передачи данных. На большинстве компьютеров Windows имена последовательных портов таковы COMx, что xмогут быть 1, 2, 3 и т. Д. В системах на базе UNIX (Mac OS X и Linux) доступ к последовательным устройствам осуществляется через файлы в файле /dev./ каталог. После выбора последовательного порта пользователь должен указать настройки для этого порта. Скорость связи будет варьироваться в зависимости от устройства, но типичные значения составляют 9600, 19 200 и 115 200 бит в секунду. Как только порты открыты для связи на обоих устройствах. Можно отправлять и получать данные.

В следующих примерах датчики и исполнительные механизмы подключаются к проводке или плате Arduino и передают данные между платой ввода-вывода и обрабатывающим приложением. Когда проводка и платы Arduino подключаются к USB-порту компьютера. Он появляется на компьютере как последовательный порт. Что позволяет отправлять/получать данные на нем. Монтажная плата имеет два последовательных порта, называемых Serial и Serial1; плата Arduino имеет один последовательный порт. Последовательный порт доступен непосредственно на USB-разъеме. Расположенном на поверхности платы. Сериал1 доступен через монтажную плату цифровой контакт с номерами 2(Rx) и 3(Tx) для приложений пользователя.

Пример 1: Переключатель (Код ниже)

В этом примере состояние переключателя (ВКЛ.или ВЫКЛ.). Подключенного к проводке или плате Arduino. Передается обрабатывающему приложению. Работающему на компьютере. Программное обеспечение работает на плате для считывания состояния переключателя. Подключенного к цифровому контакту 4. Это значение 1 передается в последовательный порт непрерывно. Когда переключатель нажат. И 0 передается непрерывно. Когда переключатель не нажат. Обрабатывающее приложение непрерывно получает данные с платы и назначает цвет прямоугольника на экране в зависимости от значения данных. При нажатии кнопки цвет прямоугольника меняется с черного на светло — серый.

Пример 2: Датчик освещенности (Код ниже)

В этом примере данные от датчика освещенности (фоторезистора), подключенного к проводке или аналоговому входу платы Arduino pin 0, передаются в приложение обработки. Работающее на компьютере. Программное обеспечение работает на плате. Чтобы отправить значение. Полученное от датчика освещенности. В последовательный порт. Поскольку датчик освещенности подключен к аналоговому входному контакту. Аналоговое напряжение. Поступающее на плату. Преобразуется в цифровое число перед отправкой через последовательный порт. Приложение обработки изменяет цвет прямоугольника на экране в соответствии со значением. Отправленным с доски. Прямоугольник имеет оттенки серого от черного до белого в зависимости от количества света. Получаемого датчиком. Прикройте и снимите крышку датчика рукой. Чтобы увидеть большое изменение.

Управление физическими носителями

Приводы — это устройства. Которые воздействуют на физический мир. Различные типы приводов могут создавать световые. Движущиеся. Тепловые и магнитные поля. Цифровой выходной вывод микроконтроллера может быть настроен на напряжение 0 или 5 вольт. Это значение можно использовать для включения или выключения света или двигателя. Но для более точного управления яркостью и скоростью требуется аналоговый выход. Используя цифроаналоговый преобразователь (ЦАП). Дискретизированный сигнал может быть непосредственно сгенерирован. Как показано на предыдущем рисунке. При желании можно добавить некоторое сглаживание для получения желаемого аналогового сигнала. Когда ЦАП недоступен или не оправдан с точки зрения стоимости или скорости преобразования. Другой подход заключается в использовании метода. Называемого широтно-импульсной модуляцией (ШИМ). Это очень быстрое включение и выключение цифрового выхода для имитации значений от 0 до 5 вольт. Если выход составляет 0 вольт в течение 90% времени и 5 вольт в течение 10%. Это называется 10% — ным рабочим циклом. После сглаживания он эмулирует аналоговое напряжение 0,5 вольта. Рабочий цикл 80% со сглаживанием эмулирует 4-вольтовый сигнал:

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

Свет
, посылающий ток через светоизлучающий диод (СВЕТОДИОД),-это самый простой способ заставить микроконтроллер управлять светом. Светодиод — это полупроводниковое устройство. Которое излучает монохроматический свет при подаче на него тока. Цвет (от ультрафиолетового до инфракрасного) зависит от полупроводникового материала. Используемого в его конструкции. Светодиоды имеют широкий спектр применения — от простых мигающих индикаторов и дисплеев до уличных фонарей. Они имеют долгий срок службы и очень эффективны. Некоторые типы светодиодов и мощных светодиодов требуют специальных схем питания и сопряжения. Прежде чем их можно будет использовать с микроконтроллерами. Лампы накаливания. Люминесцентные и электролюминесцентные источники света всегда требуют специальных схем сопряжения. Прежде чем ими можно будет управлять.


Двигатели движения используются для создания вращательного и линейного движения. Номинальное напряжение, ток. Втягиваемый двигателем. Внутреннее сопротивление. Скорость и крутящий момент (сила) являются факторами. Которые определяют мощность и эффективность двигателя. Двигатели постоянного тока (DC) непрерывно вращаются на очень высоких скоростях и могут переключаться между направлением по часовой стрелке и против часовой стрелки. Они обычно взаимодействуют с коробкой передач. Чтобы уменьшить скорость и увеличить мощность. Сервомоторы-это модифицированные двигатели постоянного тока. Которые могут быть установлены в любое положение в диапазоне 180 градусов. Эти двигатели имеют внутреннюю систему обратной связи. Гарантирующую. Что они остаются на своем месте. Шаговые двигатели движутся дискретными шагами в обоих направлениях. Размер ступеней зависит от разрешающей способности двигателя. Соленоиды движутся линейно (вперед или назад. А не кругами). Соленоид-это моток проволоки с валом в центре. Когда ток подается на катушку. Он создает магнитное поле. Которое тянет или толкает вал. В зависимости от типа. Мышечная проволока (сплав с памятью формы или нитинол)-это никель-титановый сплав. Который сжимается при приложении силы. Он труден в работе и медленнее двигателей. Но требует меньшего тока и меньше. Двигатели постоянного тока и шаговые двигатели нуждаются в специальных схемах сопряжения. Поскольку они требуют большего тока. Чем микроконтроллер может подавать через свои выходные контакты. Чипы H-bridge упрощают этот интерфейс.

Переключатели
Реле и транзисторы используются для включения и выключения электрического тока. Реле-это электромеханический переключатель. Он имеет катушку из проволоки. Которая генерирует магнитное поле. Когда через нее проходит электрический ток. Магнитное поле сближает два металлических контакта переключателя реле. Твердотельные реле без движущихся частей работают быстрее электромеханических. Использование реле позволяет включать и выключать устройства. Которые не могут быть подключены непосредственно к микроконтроллеру. Эти устройства включают в себя бытовую технику, 120-вольтовые лампочки и все другие устройства. Которые требуют больше энергии. Чем может обеспечить микроконтроллер. Транзисторы также могут вести себя как переключатели. Поскольку они работают электронно. А не механически. Они намного быстрее реле.

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

Температура
Температура может контролироваться переходом Пельтье. Устройством. Которое работает как тепловой насос. Он преобразует электричество в тепло и холод одновременно. Извлекая тепловую энергию с одной стороны (охлаждение) на другую (нагрев). Он также может работать в обратном направлении. Прикладывая тепло или холод к соответствующей поверхности. Чтобы произвести электрический ток. Поскольку это устройство потребляет больше тока. Чем микроконтроллер может обработать в выходном выводе. Оно должно быть сопряжено с использованием транзисторов. Реле или цифровых переключателей. Подобных описанным выше.

В следующих примерах показано. Как управлять лампами и двигателями. Подключенными к плате ввода-вывода. С помощью программы обработки:

Пример 3: Включение и выключение света (код ниже)

Этот пример отправляет данные из программы обработки. Работающей на компьютере. На проводку или плату Arduino. Чтобы включить или ВЫКЛЮЧИТЬ свет. Программа постоянно записывает H в последовательный порт. Если курсор находится внутри прямоугольника. И записывает L, если это не так. Программное обеспечение. Работающее на плате. Получает данные и проверяет их значение. Если значение равно H, он включает лампочку, подключенную к цифровому контакту ввода-вывода № 4, а если значение равно L, он выключает лампочку. Свет всегда отражает состояние прямоугольника на экране компьютера.

Пример 4: Управление серводвигателем (Код ниже)

Этот пример управляет положением серводвигателя через интерфейс внутри Обрабатывающей программы. Когда мышь перетаскивается через интерфейс. Она записывает данные о положении в последовательный порт. Программное обеспечение. Работающее на проводке или плате Arduino. Получает данные от последовательного порта и устанавливает положение серводвигателя. Подключенного к цифровому контакту ввода-вывода номер 4.

Пример 5: Включение и выключение двигателя постоянного тока (код ниже)

Этот пример управляет двигателем постоянного тока из программы обработки. Программа отображает интерфейс. Который реагирует на щелчок мыши. При щелчке мышью в интерфейсе программа записывает данные в последовательный порт. Программное обеспечение. Работающее на плате. Получает данные от последовательного порта и ВКЛЮЧАЕТ и выключает двигатель постоянного тока. Подключенный к ШИМ-контакту. Двигатель постоянного тока подключен к плате через микросхему L293D для защиты микроконтроллера от скачков тока. Вызванных включением двигателя.

Вывод

Электронные компоненты и микроконтроллеры становятся все более распространенными в проектируемых объектах и интерактивных произведениях искусства. Хотя навыки программирования и электроники. Необходимые для многих проектов. Требуют углубленного понимания схем. Ряд широко используемых и высокоэффективных методов может быть реализован и быстро прототипирован новичками. Цель этого текста-представить электронику и предоставить достаточно информации. Чтобы стимулировать будущие исследования. По мере дальнейшего изучения электроники мы рекомендуем вам читать КОД Чарльза Петцольда. Чтобы получить базовое представление о том. Как работают электроника и компьютеры. И мы рекомендуем вам прочитать Физические вычисления Дэна О’Салливана и Тома Айго для прагматического введения в работу с электроникой. Практическая электроника для изобретателей Пола Шерца-это незаменимый ресурс, а также мини-ноутбук инженера серия Forrest M. Mims III является отличным источником для схемных конструкций. Интернет-это глубокий ресурс для изучения электроники. И есть много превосходных страниц. Перечисленных ниже в разделе Ресурсы. Лучший способ учиться-это делать проекты. Постройте множество простых проектов и проработайте примеры в физических вычислениях, чтобы получить представление о различных компонентах.

Примечания

  1. Дэн О’Салливан и Том Айго, Физические вычисления: восприятие и управление физическим миром с помощью компьютеров (Thomson Course Technology PTR, 2004), стр. 5

 

Код

Для выполнения этих примеров. В отличие от других примеров в этой книге. Вам потребуется дополнительное оборудование. Они требуют либо проводки (wiring.org.co) или Arduino (www.arduino.cc) правление и следующее:

  • USB-кабель (используется для передачи данных между платой и компьютером)
  • Источник питания 9–15В 1000мА или батарея 9В
  • провод с твердым сердечником 22-го калибра (получите разные цвета)
  • Макетная плата
  • Переключатель
  • Резисторы (10К Ом для цепей выключателей, 330 Ом для светодиодов, 1К Ом для фоторезистора)
  • Светодиоды
  • Серводвигатель (Futaba или Hi-Tech)
  • Двигатель постоянного тока (универсальный двигатель постоянного тока. Как в игрушечных автомобилях)
  • Интегральная схема L293D или SN754410 H-Bridge
  • Кусачки для проволоки
  • Зачистки проводов
  • Плоскогубцы игольчатые

Это оборудование можно приобрести в магазине электроники. Таком как Radio Shack. Или у интернет-продавца.

В каждом примере представлены две программы: код для платы ввода-вывода и код для обработки. Диаграммы и макетные иллюстрации для примеров представлены рядом в этом учебнике. Чтобы укрепить связи между двумя представлениями. Обучение переводу схемы в физическую схему является одной из самых сложных задач при начале работы с электроникой.

Проводка или программная среда Arduino необходимы для программирования каждой платы. Эти среды построены поверх среды обработки. Но они имеют специальные функции для загрузки кода на плату и мониторинга последовательной связи. Оба они могут быть бесплатно загружены с соответствующих веб-сайтов и доступны для Linux. Macintosh и Windows.

В приведенных ниже примерах предполагается. Что плата ввода-вывода подключена к компьютеру и работает последовательная связь. Прежде чем работать с этими примерами. Получите один из простых примеров последовательной библиотеки. Включенных в обработку для работы. Для получения самой актуальной информации и советов по устранению неполадок ознакомьтесь с серийным справочником на веб-сайте обработки: www.processing.org/reference/libraries. На сайтах Wiring и Arduino есть дополнительная информация.

Пример 1A: Переключатель (Проводка/Arduino)

// Код для определения состояния коммутатора и записи значения в последовательный порт int switchPin = 4; // Переключатель подключен к контакту 4 пустая настройка() { pinMode(switchPin, INPUT); // Установить pin 0 в качестве входа void loop() { if (digitalRead(switchPin) == HIGH) { // Если переключатель ВКЛЮЧЕН, Serial.write(1); // send 1 to Processing } else { // Если переключатель не ВКЛЮЧЕН, 

Пример 1B: Переключатель (Обработка)

// Считывание данных из последовательного порта и изменение цвета прямоугольника // когда переключатель. Подключенный к плате. Нажат и отпущен обработка импорта.серийный номер.*; Последовательный порт; // Создать объект из последовательного класса int val; // Данные. Полученные из последовательного порта void setup() { size(200, 200); Частота кадров(10); // Откройте порт. К которому подключена плата. И используйте ту же скорость (9600 бит / с) void draw() { if (0, background(255); // Set background to white if (val == 0) { // If the serial value is 0, fill(0); // set fill to black } else { // Если серийное значение не 0, fill(204); // установить fill на светло-серый } 

Пример 2A: Датчик освещенности (Проводка/Arduino)

// Код для считывания аналогового значения и записи его в последовательный порт int val; int inputPin = 0; // Установите вход в аналоговый режим на выводе 0 пустая настройка() { void loop() { val = analogRead(inputPin)/4; // Считывает вывод аналогового входа. Помещенный в диапазон от 0 до 255 

Пример 2B: Датчик освещенности (Обработка)

// Считывает данные с последовательного порта и присваивает их переменной. Установите заливку a // прямоугольник на экране с помощью значения. Считанного с подключенного датчика света // к проводке или плате Arduino обработка импорта.серийный номер.*; Последовательный порт; // Создать объект из последовательного класса int val; // Данные. Полученные из последовательного порта void setup() { size(200, 200); noStroke(); Частота кадров(10); // Запуск 10 кадров в секунду // Откройте порт. К которому подключена плата. И используйте ту же скорость (9600 бит / с) ничья пустоты() { 

Пример 3А: Включение и выключение света

// Считайте данные с последовательного устройства и включайте или ВЫКЛЮЧАЙТЕ свет в зависимости от значения char val; // Данные. Полученные из последовательного порта int ledPin = 4; // Установите pin-код на цифровой ввод-вывод 4 пустая настройка() { pinMode(ledPin. OUTPUT); // Set pin as OUTPUT if (val == 'H') { // Если H был получен 

Пример 3B: Включение и выключение света (Обработка)

// Проверьте. Находится ли мышь над прямоугольником. И запишите состояние в последовательный порт обработка импорта.серийный номер.*; Последовательный порт; // Создать объект из последовательного класса void setup() { size(200, 200); noStroke(); Частота кадров(10); // Откройте порт. К которому подключена плата. И используйте ту же скорость (9600 бит / с) ничья пустоты() { предыстория(255); if (mouseOverRect() == true) { // Если мышь находится над квадратом. Заполните(204); // измените цвет и port.write('H'); // отправить H. Чтобы указать. Что мышь находится над квадратом } else { // Если мышь не находится над квадратом. Заполните(0); // измените цвет и порт.write('L'); // отправьте L в противном случае } 

Пример 4А: Управление серводвигателем(Проводка/Arduino)

// Считывание данных с последовательного порта и установка положения сервомотора // в соответствии со значением Servo myservo; // Создать сервообъект для управления серво int servoPin = 3; // Подключить желтый серво провод к цифровому выводу ввода-вывода 3 (должен быть ШИМ) int val = 0; // Данные. Полученные из последовательного порта void setup() { myservo.attach(servoPin); // Прикрепите сервопривод к ШИМ - контакту пустая петля() { 

Пример 4B: Управление сервомотором (Обработка)

// Запись данных в последовательный порт в соответствии со значением mouseX обработка импорта.серийный номер.*; Последовательный порт; // Создать объект из последовательного класса float mx = 0.0; void setup() { size(200, 200); noStroke(); Частота кадров(10); // Откройте порт. К которому подключена плата. И используйте ту же скорость (9600 бит / с) port = new Serial(this, 9600); // Прокомментируйте эту строку, если это не правильный порт // Если вышеприведенное не работает, раскомментируйте строки ниже, чтобы выбрать правильный порт // Перечислите все доступные последовательные порты, перед которыми стоит их индексный номер: //printArray(Serial.list()); // Вместо 0 введите индексный номер используемого порта: ничья пустоты() { background(0); // Clear background fill(204); // Set fill color rect(40, height/2-15, 120, 25); // Нарисуйте квадрат mx = constrain(mx, 50, 149); // Сохраняет маркер на экране noStroke(); заполнение(255); rect(50, (высота/2)-5, 100, 5); заполнение(204, 102, 0); rect(mx-2, высота/2-5, 4, 5); // Нарисуйте маркер положения int angle = int(map(mx, 50, 149, 0, 180)); // Масштабируйте значение в диапазоне 0-180 //print(angle + 

Пример 5А: Включение и выключение двигателя постоянного тока (Проводка/Arduino)

// Считайте данные с последовательного устройства и включайте или выключайте двигатель постоянного тока в соответствии со значением char val; // Данные. Полученные из последовательного порта int motorpin = 0; // Проводка: Подключите вывод L293D En1, подключенный к выводу PWM 0 // int motorpin = 9; // Arduino: Подключите вывод L293D En1 к выводу PWM 9 пустая настройка() { if (val == 'H') { // If 'H' был получен, analogWrite(motorpin, 125); // включите двигатель на средней скорости } else { // Если 'H' не был получен analogWrite(motorpin, 0); // выключите двигатель } 

Пример 5B: Включение и выключение двигателя постоянного тока (Обработка)

// Запись данных в последовательный порт в соответствии со статусом управляемой кнопки // с помощью мыши обработка импорта.серийный номер.*; Serial port; // Create serial port object boolean rectOver = false; int rectX. RectY; // Положение квадратной кнопки int rectSize = 100; // Диаметр rect color rectColor; boolean buttonOn = false; // Статус кнопки void setup() { size(200, 200); noStroke(); Частота кадров(10); rectColor = color(100); rectX = width/2 - rectSize/2; rectY = height/2 - rectSize/2; // Откройте порт. К которому подключена плата. И используйте ту же скорость (9600 бит / с) ничья пустоты() { обновление(mouseX. MouseY); background(0); // Clear background to black fill(rectColor); void update(int x. Int y) { if (overRect(rectX. RectY, rectSize. RectSize) == true) { rectOver = true; } еще { void mouseReleased() { if (rectOver == true) { if (buttonOn == true) { rectColor = цвет(100); buttonOn = false; port.write('L'); // Отправить L. Чтобы указать. Что кнопка ВЫКЛЮЧЕНА } еще { rectColor = цвет(180); buttonOn = true; boolean overRect(int x. Int y, int width. Int height) { вернуть true; } еще {