Посмотрите на свою кухню. Микроволновая печь с светящимся светодиодным дисплеем и резиновой клавиатурой? Она скрывает ваш мозг. Это больше, чем просто плата. Это микроконтроллер. Эти маленькие кремниевые чипы повсюду. Они глубоко спрятаны внутри современных продуктов. Вы, вероятно, используете их десятки раз в день.
Подумайте о своей машине. У каждого есть хотя бы одна. В более дорогих моделях может быть до 6-7 автомобилей. Работает только один двигатель. Используются разные антиблокировочные тормоза. Круиз-контроль? Это третий. Вы начнете замечать закономерность. Устройство, с которым вы разговариваете, вероятно, имеет один.
Они показаны на телевизоре. Они есть в видеомагнитофонах. Даже старые высококлассные стереосистемы полагаются на них. Хотите сделать снимок? В высококачественной цифровой зеркальной камере или цифровой камере это так. Мобильный телефон? Да. Камера. Ответчик. Лазерный принтер. Это современный телефон с определителем номера и слотом памяти для 20 номеров? Да. пейджер. Да. Они также используются в многофункциональных бытовых приборах, таких как холодильники и посудомоечные машины с цифровыми интерфейсами.
По сути, когда продукт взаимодействует с пользователем, внутри него есть микроконтроллер.
Но что именно это такое? Почему нам стоит заботиться?
Понимание этого компонента изменит ваш взгляд на технологии. Это не магия. Это просто инженерия. Понимание того, как это работает, открывает чёрный ящик. Вы можете начать создавать что-то сами.
Давайте разгадаем эту тайну. Узнайте, что такое микроконтроллер. Поймите, как обрабатываются ваши данные. Затем вы должны это сделать. Сделайте цифровые часы. Вот и всё. Используйте микроконтроллер.
Далее мы сделаем цифровой термометр.
Эти предметы — больше, чем просто игрушки. Они расскажут вам о коммерчески доступных продуктах. Посмотрите, как инженеры проектируют оборудование, которое они используют. Это практическая информация.
«По сути, микроконтроллеры встроены в продукты и устройства, с которыми взаимодействуют пользователи.»
Это первый шаг. Всё, что осталось — это реализация.
Микроконтроллер — это компьютер. Он имеет ту же базовую структуру, что и настольный компьютер, на котором вы, вероятно, читаете этот текст. В нём есть процессор, выполняющий код. Он извлекает этот код из памяти хранения. Использует оперативную память (RAM) для временных переменных. Имеет входы и выходы, которые взаимодействуют с внешним миром.
Разница заключается в назначении. Настольный компьютер — это устройство общего назначения. На нём можно запускать браузер, игры или текстовый процессор. Микроконтроллеры — это специализированные устройства. Они выполняют одну задачу. И делают это очень хорошо.
Устройство использует встроенный драйвер, если оно соответствует определённым стандартам.
Специализированное назначение
Эти чипы скрыты внутри других устройств. Они управляют функциональностью или поведением потребительских товаров. Вы не видите их. Вы взаимодействуете только с контентом, который они обеспечивают.
Они предназначены для конкретных задач. Они запускают одну конкретную программу. Программы обычно хранятся в ПЗУ (постоянной памяти) и редко изменяются. Они «впаяны» в устройство.
Энергопотребление здесь имеет важное значение. Настольный компьютер, подключённый к электросети, может потреблять 50 ватт мощности. Микроконтроллер, работающий от батареи, может потреблять всего 50 милливатт. Это значительно влияет на эффективность.
Входы, выходы и окружающая среда
У микроконтроллеров есть свои устройства ввода. Часто они оснащены небольшим светодиодом (LED) или ЖК-дисплеем для вывода информации. Но большую часть времени они взаимодействуют с оборудованием, которым управляют.
Возьмите телевизор. Микроконтроллер получает входные данные от пульта дистанционного управления. Выводит информацию на экран. Управляет переключателем каналов. Регулирует громкость динамиков. Настраивает тональность и яркость электроники электронно-лучевой трубки.
Или посмотрите на ваш автомобиль. Контроллер двигателя получает входные данные от датчика кислорода и датчика детонации. Управляет топливной смесью. Синхронизирует работу свечей зажигания.
Микроволновая печь также является классическим примером. Она принимает входные данные с клавиатуры. Отображает время на ЖК-дисплее. Активирует реле для включения или выключения магнетрона.
Эти чипы также работают в суровых условиях. Они обычно являются надёжными, хотя не обязательно прочными и долговечными в механическом смысле. Контроллеры двигателя для автомобилей, эксплуатируемых на Аляске, должны выдерживать температуры до -30°F. В Неваде температура может достигать 120°F. В сочетании с собственным теплом двигателя температура в салоне автомобиля может подниматься до 150–180°F.
Микроконтроллер внутри видеомагнитофона (VCR)? Ему, вероятно, всё равно. Он вовсе не является прочным.
Внутреннее оборудование
Сам процессор отличается. Он может быть устаревшим. Он может быть удивительно мощным.
Процессоры Z-80 могут использоваться в цифровых телефонах. Это 8-битный чип 1970-х годов. Изначально он питал домашние компьютеры.
GPS-навигаторы Garmin используют энергоэффективную версию процессора Intel 80386. 80386 является стандартом для настольных компьютеров. Теперь он находится внутри портативного навигатора.
Для простых задач производители предпочитают специализированные чипы микроконтроллеров. Цена и размер являются решающими факторами. Motorola 6811 и Intel 8051 являются историческими примерами. Они разработаны так, чтобы быть недорогими, компактными и энергоэффективными.
Затем есть микроконтроллеры PIC. Есть причина, по которой эти продукты, разработанные компанией Microchip, так популярны. По современным меркам они минималистичны. Но при покупке большими партиями они невероятно дёшевы. Один чип удовлетворяет потребности разработчика.
Почему простота побеждает
Рассмотрим типичный недорогой чип микроконтроллера. Он может иметь 1000 байт ПЗУ. 20 байт оперативной памяти. 8 контактов ввода/вывода.
При производстве большими партиями его цена составляет всего несколько центов.
На этом чипе вы никогда не запустите Microsoft Word. Word требует 30 МБ оперативной памяти и процессора, способного обрабатывать миллионы команд в секунду.
Однако для управления микроволновой печью вам не нужен Word. Вам нужно выполнить конкретную задачу. Низкая стоимость. Низкое энергопотребление. Вот ценностное предложение микроконтроллеров.
Использование микроконтроллера
Тенденции меняются. По мере того как устройства становятся умнее, грань между «микроконтроллером» и «процессором» размывается. Но основная философия остаётся неизменной. Если вам нужно просто управлять реле, контролировать датчики и мигать светодиодами, вам не нужен суперкомпьютер. Вам нужен сфокусированный и эффективный «мозг».
В следующий раз, когда вы проверите часы, отрегулируете термостат или заведёте машину, вспомните об этом маленьком, надёжном и недорогом чипе, который тихо работает в фоновом режиме. Это не просто аппаратное обеспечение. Это специализированный компьютер, выполняющий свою работу.
Лучший способ — собрать цифровые часы на логических элементах серии 7400 TTL. Вы научитесь понимать, как возникают скачки напряжения на транзисторе. Вы увидите, почему один инвертирующий вентиль (NOT gate) представляет собой физический чип. Вы также поймете, что реализация сложных функций требует сложной разводки и множества чипов. Простые часы могут потребовать 15 или 20 отдельных компонентов. Они работают. Однако они громоздкие. И их сложно собирать.
Программное обеспечение полностью меняет правила игры.
Микроконтроллеры упаковывают логику десятков вентилей в один кремниевый чип. Вы пишете программу. Чип её выполняет. Аппаратная часть делает всё остальное. В этой статье мы пропускаем этап сборки на макетной плате и переходим сразу к коду. Мы создаём цифровые часы. Они стоят почти двести долларов. Это кажется безумием для часов, которые только показывают время. Однако цель — не экономия денег. Цель — научиться взаимодействовать с микроконтроллером. Если вы поймёте это, вы сможете сделать всё что угодно.
BASIC Stamp: Упрощение аппаратной части
Большинство микроконтроллеров требуют знания языка ассемблера или сложных драйверов. Необходим программатор. Нужно понимать тактовые циклы и отображение памяти. BASIC Stamp от Parallax устраняет эти препятствия. Это микроконтроллер PIC, запрограммированный на языке BASIC, который хорошо знаком большинству любителей электроники.
Название дословное. Плата имеет размер примерно с почтовую марку.
Мы работаем над версией BASIC Stamp Revision D. Это не просто чипы. Это полностью собранная плата-носитель. В комплекте держатель для 9-вольтовой батареи. Оснащена регулятором напряжения, который поддерживает его стабильность. Имеются штыревые разъемы для линий ввода/вывода. Также есть небольшая зона для прототипирования, если вы хотите припаять резистор или два непосредственно к плате. Вы также можете купить оригинальный чип BS-1 и спаять схему самостоятельно. Версия D просто избавляет вас от головной боли.
Почему стоит использовать «дорогие» Stamp?
BASIC Stamp не подходят для потребительских продуктов. Производители их не любят. Они очень медленные. Они дорогие. Если бы вы производили 10 000 единиц, вы бы, вероятно, использовали стандартный PIC или AVR. Но для прототипирования? Им нет равных.
Установка обычного микроконтроллера может занять несколько часов. Нужно настроить предохранители (fuses). Нужно записать загрузчик (bootloader). Нужно отлаживать последовательный вывод данных. Stamp требует всего двух вещей. Подключите его к порту на настольном компьютере. Вы пишете программу. Нажимаете «Отправить». Чип работает.
За этой простотой скрывается компромисс. Память BS-1 в Stamp ограничена. Память EEPROM вмещает всего около 256 байт. Это эквивалентно примерно 75 строкам кода на BASIC. Есть ограничения. Вы не можете создать веб-сервер. Высококачественные изображения нельзя сохранить. Однако вы можете заставить мигать светодиод. Можно считывать данные с датчика. Можно запустить часы.
Создаём часы
Я использую это оборудование для создания цифровых часов. Это будет дорого. Сама плата стоит лишь часть этой суммы, но вам нужен компьютер для её программирования. Вы должны знать свои пределы.
Лимит в 75 строк заставляет вас быть эффективным. Вы не можете раздувать свой код. Вы должны учитывать, что именно чипу нужно делать. Нужно ли ему отображать секунды? Да. Должен ли дисплей обновляться каждую миллисекунду? Вероятно, нет. Каждая строка важна.
Этот подход учит вас основам встроенных систем (embedded systems). Речь идёт не только о написании кода. Вы контролируете свои ресурсы. Вы работаете в рамках аппаратных ограничений. Если вы можете заставить часы работать на Stamp, вы можете управлять практически любым устройством с помощью микроконтроллера. Логика остаётся той же. Масштаб меняется.
Сами часы просты. Но путь к их созданию — это настоящая ценность. Научитесь подключаться через пины. Научитесь управлять временем. Научитесь загружать код на чип с минимальной памятью или вообще без неё.
«Stamp настолько малы и работают от батареи, что вы можете брать их почти куда угодно.»
Эта портативность — реальное преимущество. Вы можете взять часы куда угодно. Вы можете подключить датчики. Вы можете превратить их в метеостанцию. База надёжная. Код оптимизирован. Оборудование минимально.
Вы не просто создаёте часы. Вы развиваете навыки.
Упрощённый язык для встроенной логики
Программирование на BASIC Stamp — это не изобретение велосипеда. Используется усовершенствованная версия языка программирования BASIC. Если вы уже знаете BASIC, вам будет всё знакомо, только синтаксис более строгий. Если у вас есть опыт работы с C, Pascal или Java, особенности Stamp BASIC легко освоить. Если вы никогда не писали код, не начинайте с этого. Сначала изучите основы на настольном компьютере.
Parallax подробно описывает эту среду, но для быстрого обзора давайте рассмотрим конкретный набор инструкций, разработанных для ограниченного аппаратного обеспечения.
Стандартный поток управления и подпрограммы
Основная логика остаётся неизменной. Вот некоторые стандартные конструкции для управления потоком программы:
for...nextдля стандартного цикла.gosubпереходит к подпрограмме.gotoпереходит к помеченной строке в коде.if...thenдля условных решений.letдля выполнения задачи (хотя в Stamp BASIC обычно необязательно).returnзавершает подпрограмму.endостанавливает программу и переводит чип в режим сна.
Прямые операции с выводами I/O
Здесь и заключается жизнь и смерть Stamp. Выводы — это интерфейсы для физического мира. BS-1 имеет 8 выводов (0-7). BS-2 удваивает их количество до 16 (0-15). Они работают в обоих направлениях. Вы можете считывать данные с них и записывать данные в них.
Вы можете управлять ими с помощью определённых команд.
buttonиспользует встроенную логику антидребезга и автоповтора для считывания входов.highиlowустанавливают вывод в состояние 1 (+5 В) или 0 (земля).inputиoutputопределяют направление вывода.- Подключите потенциометр к конденсатору в соответствии с инструкциями, и
potбудет считывать значение потенциометра. pulsinиpulsoutобрабатывают ввод и вывод длительности импульса.pwmгенерирует широтно-импульсную модуляцию для двигателей или затемнения.reverseизменяет направление ввода-вывода.serinиseroutобрабатывают последовательную связь.soundгенерирует определённую частоту.toggleизменяет состояние бита на выводе.
Специфические функции Stamp и EEPROM
Аппаратное обеспечение имеет некоторые особенности, на которые язык реагирует напрямую:
branchчитает таблицу ветвления для ускорения поиска.debugотправляет строку в консоль настольного компьютера.eepromобрабатывает хранение программы.lookdownиlookupпозволяют индексировать таблицы.napиpauseвводят задержки.randomгенерирует псевдослучайные числа.readиwriteиспользуют энергонезависимую память EEPROM.sleepотключает чип на определённое время.
Арифметические и логические операторы
Математика является фундаментальной. Она очень базовая.
+и-для сложения и вычитания.*для умножения младшего слова.**для умножения старшего слова./для деления.//для операции модуля (остаток от деления).maxиminиспользуются для нахождения экстремальных значений.
Логические операции, например:
&(AND)|(OR)^(XNOR)&/(NAND)|/(NOR)^/(XNOR)
Операторы сравнения для оператора if — это =, <>, <, <=, >, >=, AND, OR.
Ограничение памяти: реальность 14 байт
Переменные BS-1 не бесконечны. Существует ровно 14 байт оперативной памяти (RAM). Вы должны относиться к каждому байту как к золоту.
Язык предоставляет предопределённые имена переменных, но вы также можете добавлять псевдонимы к именам переменных.
w0-w6: 16-битные переменные-слова.b0-b13: 8-битные переменные-байты.bit0-bit15: 1-битные логические переменные.
В этом заключается проблема. Из-за способа отображения памяти w0 и b0 (а также b1 ) разделяют одно и то же физическое место в ОЗУ. w1 разделяется с b2 и b3. bit0 –bit15 находятся в w0. Это означает, что изменение w0 также изменит b0 и b1. Это не ошибка. Это ограничение. Вы должны точно знать, что перезаписываете.
Общение с миром через выводы
Почему так много инструкций ввода-вывода? Потому что эти выводы — единственный способ, с помощью которого Stamp общается с внешним миром.
Отправка значений проста. high 3 передаёт +5 В на вывод 3. low 3 отправляет землю. Вы можете выбрать любой вывод от 0 до 7 для BS-1. Логика аналогична BS-2, но есть больше выводов для управления.
Продвинутые инструкции, такие как pwm для двигателей и pot для переменных резисторов, упрощают проектирование аппаратуры. Для каждого аналогового входа не требуется сложная внешняя схема. Stamp управляет таймингом импульса.
Если вы застряли, «Programming and Customizing a BASIC Stamp Computer» Скотта Эдвардса (Scott Edward) является надёжным источником. Он включает пример проекта, который показывает, как подключить эти компоненты вместе, а не просто писать код.
Вам не нужна степень кандидата наук в области встроенных систем, чтобы начать использовать BASIC Stamp. Всё, что вам нужно, — это настольный компьютер и BASIC Stamp Starter Kit. Этот комплект включает необходимое оборудование, кабели для подключения и настольное приложение для загрузки кода BASIC в память чипа.
Этот комплект можно приобрести у компаний Parallax или Jameco, поставщиков, которых вы, возможно, знаете из наших предыдущих статей о электронных воротах и цифровых часах. Parallax указывает номер детали BASIC Stamp D Starter Kit — 27202. Номер детали у Jameco — 140089. Оба стоят 79 долларов.
Parallax иногда проводит акции «We've Bagged the Basics». Это предложение добавляет книгу Скотта Эдвардса «Programming and Customizing the BASIC Stamp Computer» к вашему заказу. Это полезное справочное руководство, если вы хотите углубиться дальше, чем позволяет руководство пользователя.
Подключение и выполнение кода
Физическое подключение простое. Подключите Stamp к параллельному порту вашего компьютера. Затем запустите приложение DOS, отредактируйте код и отправьте его по кабелю.
Нажмите ALT-R, чтобы запустить программу в редакторе. Сначала программа проверяет ваш синтаксис. Затем она загружает код в энергонезависимую память EEPROM чипа. Чип немедленно начинает его выполнение.
Пример по умолчанию создаёт прямоугольную волну на выводе I/O 3. Подключите логический пробник или светодиод к этому выводу. Вы увидите, что он мигает два раза в секунду. Команда PAUSE заставляет состояние меняться каждые 250 миллисекунд.
Это устройство потребляет достаточно мало энергии, чтобы работать несколько недель от 9-вольтовой батареи. Можно увеличить время работы, настроив тайминги. Включайте светодиод только на 50 мс, а затем выключайте его на 450 мс. Замена инструкций PAUSE на инструкции NAP также может значительно снизить потребление энергии.
Создание действительно дорогих цифровых часов
Тратить 79 долларов на мигающие огоньки кажется расточительством. Большинство людей хотят создать что-то полезное с помощью BASIC Stamp. Ещё 100 долларов позволят собрать цифровые часы. Стоимость кажется высокой, пока вы не поймёте, что детали не являются одноразовыми. Они пригодятся для повторного использования. Мы будем использовать их в будущих проектах.
Управление несколькими цифрами при ограниченном количестве выводов
Предположим, вам нужно вывести число на вывод ввода/вывода (I/O). В нашем предыдущем руководстве по цифровым часам мы показали, как использовать микросхему 7447 для подключения к 7-сегментному светодиодному индикатору. Эти микросхемы хорошо работают с BASIC Stamp. Подключите 4 вывода напрямую к 7447. На дисплее появится число от 0 до 9. У Stamp BS-1 есть восемь выводов ввода/вывода. Этого достаточно для прямого питания двух микросхем 7447.
Часам требуется 4 цифры. Восемь выводов не могут одновременно управлять четырьмя микросхемами. Здесь вам придётся проявить креативность.
Вот схема подключения. Восемь линий идут от Stamp. Четыре линии подключены ко всем четырём микросхемам 7447. Они передают данные. Остальные четыре линии активируют микросхемы по очереди. Вывод «E» микросхемы 7447 является входом разрешения. Он гасит дисплей. Программа Stamp выводит первую цифру. Переключите первую управляющую линию, чтобы разрешить работу первой микросхемы. Затем отправьте другое значение. Оно активирует вторую микросхему. Повторяйте этот процесс для всех четырёх микросхем бесконечно.
Соединение можно выполнить множеством различных способов. 7447 может оказаться недостаточно. Используйте дешифратор 74154. Больше драйверов. Таким образом вы сможете управлять до 16 цифрами.
Реальность мультиплексирования
Именно так вы управляете своим светодиодным дисплеем. Откройте старый калькулятор со светодиодным дисплеем. Включите его. Потрясите, глядя на экран. Внимательно наблюдайте. В каждый момент времени горит только одна цифра. Этот метод называется мультиплексированием дисплея. Обманите своё зрение, чтобы оно воспринимало полное число.
Мультиплексирование работает с часами. Работает с калькулятором. Но у него есть проблемы.
Светодиоды быстро расходуют заряд батареи.
7-сегментные светодиодные дисплеи отображают только цифры.
Количество отображаемых символов ограничено. А как насчёт букв? А как насчёт символов?
Переход на ЖК-дисплей
ЖК-экран является альтернативой. Такие экраны повсюду. Их легко подключить к Stamp.
Рассмотрим двухстрочный алфавитно-цифровой дисплей на 16 символов. Такой тип доступен у Jameco. Артикул 150990. Также доступен у Parallax. Артикул 27910.
На этом изображении показан типичный дисплей. Он подключён к макетной плате. Это упрощает подключение. Вам не нужно паять провода к открытым контактам. Вы просто вставляете их в ряды.
Однострочный ЖК-дисплей дорог, но по простой причине
Вы получаете то, за что платите. Этот тип ЖК-модуля дорогой. Его цена составляет около 59 долларов. Это не такие уж мелкие деньги для любителя. Его определенно нельзя использовать в массово производимых духовках. Маржа исчезнет еще до продажи первой единицы.
Но они существуют не просто так. Процесс проектирования упрощен. Вы можете управлять всем дисплеем, используя всего один вывод ввода/вывода (I/O).
Этот модуль содержит логику. Он берет на себя основную работу по последовательной связи. Микроконтроллер Stamp должен только отправлять данные. Команда SEROUT в языке Stamp BASIC делает это тривиальной задачей. Не требуются сложные циклы с таймингами. Вам не нужно возиться со спецификациями протоколов. Аппаратная часть выполняет всю работу.
Питание и функции дисплея
Потребление энергии очень низкое. Это устройство потребляет всего 3 миллиампера тока. Это пренебрежимо мало для проекта с батарейным питанием. Он питается от стандартной 9-вольтовой батареи через плату Stamp, которая обеспечивает необходимые +5 вольт и землю.
Сам экран универсален. Он отображает алфавитно-цифровой текст. Буквы. Цифры. Вы также можете определить пользовательские символы, если хотите получить конкретную иконку. Это больше, чем просто мигающий индикатор. Это вывод реального текста.
Прототип и производство
Это реальность встроенного проектирования. Вы можете создавать прототипы с использованием дорогих, но простых в использовании компонентов. Затем вы перерабатываете конструкцию для снижения стоимости.
Если вы создаете коммерческий продукт, вы будете использовать этот дисплей за 59 долларов для проверки логики. Тестирования кода. Вы убедитесь, что интерфейс работает. Как только это будет подтверждено, я перейду к более дешевому ЖК-дисполю общего назначения. Вы напишете собственные драйверы чипов. Оптимизируете программное обеспечение. Дорогие модули являются инструментами разработки, а не инструментами для финальной поставки.
Подключение
Подключение аппаратной части очень простое. Подайте +5В и землю. Подключите один из выводов I/O платы к линии ввода монитора.
Я предпочитаю использовать обжимные провода (wire wrapping). Это чисто. Надежно. Не требует пайки. Вам понадобится инструмент для обжима проводов (деталь Jameco 34577) и обжимной провод калибра 30 (Jameco 22541 — распространенный выбор). Структура соединения компактна. Вы можете разместить все в небольшом корпусе без использования большого количества паяльника.
Структура кода и точность
Программа на BASIC ниже превращает Stamp в часы. Она предполагает, что ЖК-дисплей подключен к выводу I/O 0.
Логика проста. Команда SEROUT обрабатывает всю связь. Последовательность (254, 1) служит кодом escape. Она сообщает монитору очистить экран. Последовательность (254, 135) устанавливает позицию курсора. Все, что вам нужно сделать, — это отправить текстовую строку.
Часы довольно точные. Вы можете изменить оператор PAUSE, настроив его. Его можно корректировать каждую секунду ежедневно. Он не такой точный, как атомные часы. Однако этого достаточно для автономных устройств.
Этот подход
Простые циклы таймера могут «уплывать». Если вам нужна точность, потребуется аппаратное обеспечение.
Часы реального времени (RTC) решают проблему дрейфа. Для поддержания точности времени используется кварцевый генератор. Подключите его к Stamp. Stamp считывает данные примерно один раз в секунду. Далее выведите информацию на дисплей.
Дело не только в секундах.
Большинство чипов RTC также обрабатывают информацию о дате. Корректировка високосных лет выполняется автоматически. Ваш код не должен рассчитывать, сколько дней в феврале — 28 или 29. Это задача чипа.
Используйте Pocket Watch B
Комбинация RTC и Stamp может быть сложной. Линии данных и часов требуют нескольких контактов. Есть более простой способ.
Используйте Pocket Watch B.
Этот модуль упрощает подключение. Используйте последовательное соединение. Для связи требуется только один контакт ввода/вывода (I/O). Это освобождает контакты для других датчиков и дисплеев.
Устройство компактно. Его размер примерно равен четверти доллара США. Внутри чип часов, кварцевый генератор и последовательная логика интегрированы в один корпус.
Где его купить?
Два основных поставщика имеют эту деталь в наличии. Номер детали у Jameco — 145630. Parallax продаёт её под номером 27962.
Цена также имеет значение. Pocket Watch B стоит около 30 долларов. Это дорого для контроллера тостера любительского изготовления. Вы бы не встраивали его в потребительское устройство. Но для прототипирования? Достаточно дёшево, чтобы попробовать.
Избавьтесь от хлопот с ручным управлением протоколами I2C или SPI. Пишите меньше кода. Вы получите более точное время.
Создайте цифровой термометр
Мы уже знаем, как Stamp взаимодействует с ЖК-дисплеем. Теперь давайте дадим ему возможность воспринимать окружающий мир. Конкретнее: я собираю цифровой термометр. В основе проекта лежит специализированный чип датчика температуры DS1620.
Это не просто резистор, сопротивление которого меняется при нагреве. DS1620 — это полноценная система в одном 8-контактном корпусе. Он содержит устройство для измерения температуры, аналого-цифровой преобразователь (АЦП) и сдвиговый регистр для обработки выходных данных. Также в нем есть небольшой участок EEPROM для хранения настроек, таких как режим термостата.
Понимание рабочих режимов DS1620
Чипы обладают гибкостью. Он может действовать как отдельный термостат и включать реле при превышении температуры порогового значения. Альтернативно, его можно подключить к микроконтроллеру и использовать исключительно как высокоточный термометр. EEPROM запоминает выбранный режим и настройки.
Подключение к BASIC Stamp также просто. Не требуются сложные схемы. Соблюдайте спецификации стека.
- Вывод 8: Питание +5 вольт.
- Вывод 4: Земля (GND).
- Вывод 1 (Данные): Линия данных. Биты входят и выходят через этот вывод.
- Вывод 2 (Тактовый сигнал): Линия тактового сигнала. Синхронизирует передачу данных.
- Вывод 3 (Сброс/Выбор): Линия управления. Общение с чипом происходит при активации. Низкий уровень отключает выбор.
В этом примере мы подключаем их к конкретным выводам ввода/вывода (I/O) Stamp.
- Данные (вывод 1) подключен к выводу 2 Stamp.
- Тактовый сигнал (вывод 2) подключен к выводу 1 Stamp.
- Сброс (вывод 3) подключен к выводу 0 Stamp.
Стоит потратиться на получение пакета приложений от Jameco или Parallax. Этот документ избавляет от необходимости угадывать параметры конфигурации.
Эту схему можно собрать на прототипной плате Stamp Vector или на макетной плате. После подключения DS1620 подключите ЖК-дисплей к выводу I/O 3. Затем загрузите следующий код на BASIC.
Запустите эту программу. На ЖК-дисплее отображается температура в градусах Цельсия с точностью 0,5 градуса.
Как работает дополнительный код (2's complement) в DS1620
DS1620 не отправляет простые числа. Он измеряет температуру с шагом 0,5 градуса Цельсия и выводит 9-битное число в дополнительном коде (two's complement).
Почему это важно? Правильная обработка отрицательных температур. Диапазон составляет от -55°C до +125°C (от -110°F до +250°F). Разделите это значение на два, чтобы получить измерение в градусах Цельсия.
Дополнительный код — это стандартный способ, которым компьютеры представляют знаковые целые числа. Старший бит (самый левый) является битом знака. Если он равен 0, число положительное. Если 1, число отрицательное.
Рассмотрим пример для 4 бит. Эти значения представляют диапазон от -8 до +7, а не от 0 до 15.
0111равно 70000равно 01000равно -81111равно -1
Чтобы преобразовать отрицательное число в положительное и отобразить его, инвертируйте все биты и прибавьте 1. Этот код делает именно это в подпрограмме display. Проверьте bit8 (бит знака 9-битного результата). Если число отрицательное, инвертируйте b0 и прибавьте 1. Затем сдвиньте его вправо, чтобы получить целую часть.
Извлечение логики кода
Эта программа использует три подпрограммы для управления протоколом связи.
Определение символов
Этот код использует symbol для сопоставления физических номеров выводов с читаемыми для человека именами. RST, CLK, DQ соответствуют выводам Stamp 0, 1, 2. Это делает ваш код переносимым. Даже если вы измените определение symbol, остальная часть логики останется прежней.
Процедура передачи (shift_out)
shift_out берет байты из b0 и отправляет их по одному биту за раз.
1. Назначьте вывод данных (DQ ) как выходной.
2. Выполните цикл 8 раз.
3. Проверьте младший бит b0.
4. Опустите тактовый вывод вниз, установите вывод данных в состояние этого бита и поднимите тактовый вывод вверх.
5. Сдвиньте b0 вправо, чтобы следующий бит переместился в позицию младшего бита.
Процедура приема (shift_in)
shift_in читает 9-битное значение температуры в w0.
1. Настройте выводы данных как входные.
2. Выполните цикл 9 раз.
3. Опустите тактовый вывод вниз.
4. Считайте состояние вывода данных в `.
Код не просто считывает данные. Он закладывает основу. Устанавливает ожидаемое состояние выводов CLK и RST микросхемы DS1620. Это первый шаг.
Далее следует конфигурация. Микроконтроллер записывает байт команды в энергонезависимую память DS1620. Переводит чип в «режим термометра». Вот в чём загвоздка. Шаблоны конфигурации сохраняются в энергонезависимой памяти. Выполнять эту операцию нужно только один раз. Технически после первого запуска можно удалить эту часть кода, сэкономив ценное пространство программы. Но стоит ли так поступать? Безопаснее оставить её.
Затем программа отправляет команду $EE. Обратите внимание, что префикс «$» указывает на шестнадцатеричное число. Десятичное значение $EE равно 238. Это запускает процесс преобразования. Термометр начинает работать.
Затем начинается цикл.
Stamp запрашивает у DS1620 текущую температуру каждую секунду. Чип отвечает 9-битным значением. Это значение сохраняется в переменной w0. Передача данных происходит постепенно. Stamp переключает линию CLK на DS1620, чтобы сдвигать биты внутрь.
Структура переменной иерархическая. w0 (16 бит) охватывает b0/b1 (8 бит) и включает bit0 до bit15 (1 бит). Этот код делит w0 на два, когда появляется бит в разряде 8. Это сдвигает каждый бит вправо. Это отличный способ упаковать 9-битные значения температуры в одну переменную.
Когда w0 сохраняет данные, они передаются в подпрограмму экрана. Проверяется, положительное или отрицательное число. Форматируется вывод для ЖК-дисплея. Результаты отображаются в градусах Цельсия. Если вам нужна температура по Фаренгейту, преобразование выполняется легко.
dF = dC * 9/5 + 32
Это очень просто. Это работает. Теперь у вас есть очень дорогой термометр.
Зачем платить так много?
Представьте, что вы работаете в фармацевтической компании. Вы доставляете дорогостоящие лекарства по всей стране. Эти лекарства должны храниться при определённых температурах. Оттаивание или замораживание повредит их. Полная потеря.
Вы можете использовать Stamp для создания термометра с журналом данных.
Компания Jameco продаёт модуль RAM Pack (номер детали 143811). Parallax также продаёт тот же продукт (номер изделия 27960). Это энергоэффективный чип оперативной памяти объёмом 8 КБ с последовательным интерфейсом. Если вам нужно больше места, вы также можете выбрать версию на 32 КБ.
Добавьте этот компонент к вашему Stamp. Напишите код, который каждую минуту сохраняет показания температуры в оперативную память. Вставьте Stamp в партию с лекарством. Вы получите Stamp, когда он достигнет пункта назначения. Модуль RAM теперь записывает историю температур всей поездки. Вы точно узнаете, выходили ли лекарства когда-либо за пределы допустимых спецификаций.
Это лишь одно применение. Как только вы поймёте, как работают микроконтроллеры, вы сможете использовать Stamp для создания бесчисленного множества полезных устройств.
Более подробную информацию о микроконтроллерах и смежных темах можно найти по ссылкам на следующих страницах:
Спецификации стали толще. Это не руководство, которое можно прочитать один раз и забыть. «Толще» в том смысле, что появились реальные цифры. Эти цифры точно показывают, что может делать устройство, прежде чем вы его купите. И цифр ещё больше. Далее идёт оговорка о времени автономной работы. Технически это правда, но практически бесполезно.
Проверка реальности аппаратного обеспечения
Вы получаете процессор. Он быстрый. Быстрее предыдущего. Быстрее старых ноутбуков, которые звучали как взлетающий реактивный двигатель каждый раз, когда вы открывали таблицу. Но это не магия. Этот чип не убирает в комнате. Он просто обрабатывает данные. Быстро. Очень быстро. Если вы редактируете видео. Или пишете код. Или открыли 50 вкладок и спрашиваете себя, почему ваш ноутбук так сильно нагревается?
Экран стал ярче. Это главное преимущество. На него можно смотреть на улице. Не щурясь. Не желая, чтобы ваши глаза имели встроенный HDR. Цвета точные. Если вам это важно. Если вы дизайнер. Или просто устали от картинок, которые выглядят так, будто были сделаны в пещере.
Далее — вес. Он легче. Но не невесомый. Вы всё ещё чувствуете его в сумке. Он производит сильное впечатление. Напоминание о том, что вы несёте ноутбук. Это не планшет. Это не блокнот в буквальном смысле. Компьютер. С портами. Настоящими портами. Это не док-адаптер. Не переходники, которые стоят дороже самого устройства. Это важно. Очень важно. Потому что док-адаптеры ломаются. Переходники теряются. Порты остаются.
Особенности программного обеспечения и обновления
Операционная система та же. В основном. Но есть и изменения. Небольшие. То, что вы заметите через неделю? Не сразу. Новый значок появится сразу. Новая цветовая схема. Когда вы открываете приложение, которым пользовались 10 минут назад, есть небольшая задержка.
Обновления происходят автоматически. Это хорошо. И плохо. Хорошо, потому что не нужно думать о патчах безопасности. Плохо, потому что ваш компьютер может перезагрузиться именно тогда, когда вы думаете, что закончили на сегодня. Это происходит в неудобное время. Прямо перед тем, как вы собираетесь сохранить документ. Или прямо перед встречей.
Этот программный пакет включён. Он всегда связан вместе. У вас есть текстовый редактор. Таблицы. Инструменты для презентаций. Они работают вместе. Не всегда хорошо. Но они старались. Есть синхронизация с облаком. Она быстрая. Обычно. Иногда она останавливается. После этого нужно перезапустить приложение. Затем остаётся только молиться.
Ловушка экосистемы
Это та часть, которую люди игнорируют, пока не становится слишком поздно. Устройство не существует в вакууме. Оно живёт в саду. В огороженном саду. Вы можете выйти. Но зачем мы это делаем? Эти приложения были тщательно отобраны. Сочетание глубокое. Телефон общается с ноутбуком. Часы говорят телефону, что делать. Это очень удобно.
Но это также ограничивает. Когда вы меняете бренд. Эта удобство теряется. Исчезает переключение каналов. Я потерял общий буфер обмена. Я не могу отвечать на звонки на своём ноутбуке. Это кажется мелочью. Но это не так. Это ежедневное трение. Добавьте немного раздражения.
Остальное — это цена аксессуаров. Это не цена. Оплата. Собственный кабель. Специальное зарядное устройство. Это идеальный случай. Это дорого. И они красивые. И




















