ATtiny2313 USB DS18B20 Термометр
Термометр является HID-устройством (Human Interface Device). Термометр собран на популярном и относительно недорогом микроконтроллере ATtiny2313 (AT90S2313), непосредственно измерением температуры занимается интегральный термометр DS18B20 (или DS18S20).
Принципиальная схема термометра:
Конструкция
Конструктивно термометр собран на односторонней печатной плате, размерами 48х35, и рассчитана на установку в корпус одиночной телефонной розетки. Сама печатная плата — универсальна, т.е. позволяет собрать на ней как описанный выше термометр, так и ИК-приемник USB.
Программное обеспечение
Программа работает под операционными системами Windows 98/ME/2000/XP. Написана для компилятора Visual C++ 6 с использованием HID-библиотек Windows DDK. Основой послужила аналогичная программа Cypress USB Thermometer (HIDTHERM). В окне отображается температура в градусах Цельсия, а при сворачивании в system tray температура появляется при наведении курсора мыши на иконку. Цвет иконки красный, если температура положительная, синий — если нулевая или отрицательная, серый — термометр не подключен к USB-порту.
Архив для статьи «USB-термометр на ATtiny2313» | |
Описание: Файл прошивки микроконтроллера, исходный код(Ассемблер), программное обеспечение(Windows), макет печатной платы SprintLayout5 | |
Размер файла: 81. 69 KB Количество загрузок: 2 494 | Скачать |
Понравилась статья? Поделиться с друзьями:
Семисегментный индикатор ATtiny2313 Термометр DS1820
К термометру можно подключить от одного до шести датчиков температуры DS1820 (ВК1—ВК6). Их одноименные выводы соединяют параллельно проводами длиной до нескольких метров, причем датчики должны быть подключены к прибору до подачи на него питания. При включении питания микроконтроллер по специальному алгоритму определяет, сколько их и в дальнейшем распознает их по уникальным серийным номерам, хранящимся в ПЗУ каждого датчика.
Схема термометра изображена на рис. 1. Он собран на микроконтроллере ATtiny2313-20PU (DD1). работающем от внутреннего тактового RC-генератора. Конфигурация фьюз-битов микроконтроллера должна соответствовать показанной на рис. 2. Термометр рассчитан на питание от 7 до 18 В через стабилизатор DA1.
Рисунок 1
Рисунок 2
После включения питания микроконтроллер выполняет проверку светодиодного индикатора HG1 (с общим катодом, от телефонного аппарата с АОН), зажигая все элементы всех трех его разрядов. Затем выводится надпись из буквы d, дефиса и цифры, означающей число обнаруженных датчиков.
Далее начинается циклический вывод на индикатор номеров датчиков, сопровождаемых значениями измеренной ими температуры. Учтите, что порядок опроса датчиков микроконтроллер определяет самостоятельно на основе анализа их серийных номеров, остающихся неизвестными пользователю. Поэтому при первом включении термометра необходимо экспериментально определить, в каком порядке опрашиваются датчики.
В случае, когда к термометру подключен лишь один датчик, выводятся только его показания без номера. Если датчики не подключены или все они неисправны, на индикаторе будут включены три дефиса.
Автор: Е. АГЕЕНКОВ, г. Смоленск
Архив для статьи «Термометр на Attiny2313 и DS1820» | |
Описание: Исходный код(Си), файл прошивки микроконтроллера | |
Размер файла: 5. 04 KB Количество загрузок: 2 974 | Скачать |
Понравилась статья? Поделиться с друзьями:
11 октября 2011 г. Измерительные цепи
Это 2-канальный термометр, который может измерять температуру в диапазоне от -50,0 до +99,9 градусов Цельсия. Схема предназначена для измерения температуры внутри и снаружи, но может использоваться и в других приложениях. После изменения исходного кода его можно использовать как простой термостат или как более сложный регулятор температуры. Устройство построено на основе популярного цифрового датчика температуры 9.0005 DS18B20
и микроконтроллер ATTiny2313 . Благодаря этому этот универсальный мини-термометр намного проще в изготовлении и намного меньше по размеру. Все его части были размещены под светодиодным дисплеем.Project является лучшей версией этого устройства (только польская версия). Почти каждый элемент был заменен на компонентов SMD . Таким образом, схема намного меньше. Его можно использовать как небольшой модуль термометра или как простой термостат. Небольшие габариты позволяют использовать меньшую крышку (чуть больше дисплея). В базовой версии мини-термометр способен измерять температуру по двум каналам.
Этот проект был опубликован в Elektronika dla Wszystkich 08/2011 (польский журнал для любителей электроники) и доступен как AVT2985
На рисунке 1 представлена схема мини термометра. Основной частью этого проекта является микроконтроллер U1 (ATTINY2313). Он работает с внутренним генератором, без внутреннего делителя частоты. В результате тактовая частота была установлена на 8 МГц. Кварцевый резонатор отсутствует, поэтому печатная плата меньше, а вывод XTAL можно использовать в качестве входного порта PA0. Этот вход подключен непосредственно к переключателю С2 . Микроконтроллер должен: считывать результаты измерения температуры с двух датчиков, вычислять значения, подходящие для светодиодного дисплея, считывать состояние кнопок S1 и S2 . Конденсатор С1 (100нФ) расположен вплотную к микроконтроллеру и отвечает за фильтрацию питающего напряжения. Такую же задачу выполняют конденсаторы С2 (10 мкФ) и С3 (10 мкФ), необходимые для корректной работы регулятора напряжения У3 (78L05).
Рисунок 1: Схема термометра
Этот проект очень прост, потому что в качестве датчика температуры используется DS18B20 . Этот датчик представляет собой 12-битный цифровой термометр и может работать в диапазоне от -55 до 125 градусов Цельсия. Время, необходимое для преобразования температуры, составляет менее 750 мс. Отсчет температуры полностью цифровой, а для связи с микроконтроллером используется шина
Для представления температуры используется трехзначное число 9.0005 Светодиодный дисплей с внутренними сегментами, адаптированный для мультиплексирования. Благодаря этому конструкция печатной платы намного проще. В этом случае использование отдельных дисплеев LED делает невозможным изготовление односторонней печатной платы. Резисторы R4-R11 (330) ограничивают ток светодиодного дисплея до максимального значения около 10-12 мА (на один сегмент). Однако средний ток будет меньше из-за мультиплексирования. Для управления анодами светодиодного дисплея используются три популярных транзистора 9.0005 T1-T3 (BC857). Их токи ограничены резисторами R1-R3 (3к3). Включение последовательных цифр на дисплее осуществляется циклической установкой низкого состояния на базе одного из транзисторов T1-T3 . При этом на порт В микроконтроллера должно быть установлено значение закодированного разряда. Важным компонентом является разъем GP1 , к которому также можно подключить датчики и управляющий выход (в случае термостата). Разъем Goldpin не нужен, как видно на фото — провода можно припаять прямо к печатной плате. В случае термометра управляющий выход перейдет в низкое состояние, когда температура будет отрицательной. Просто подключите светодиодный диод с последовательным резистором 470R между управляющим выходом и +5В, чтобы получить сигнализацию знака «-«.
Здесь можно увидеть вид печатной платы с нижней стороны. Рисунок в зеркальном отображении доступен здесь. Плата выполнена как односторонняя, и почти все элементы SMD. Исключение составляет светодиодный дисплей, кнопки и разъемы. Монтаж не сложен, но требует небольшого навыка пайки компонентов SMD. Рисунок здесь будет очень полезен для пайки печатной платы (с нижней стороны). Для монтажа верхней стороны печатной платы очень полезной будет схема, доступная здесь.
В начале хорошо припаять все SMD элементы, т.к. с другой стороны нет выступающих частей и монтаж проще. Следует отметить, что GND проходит в одном месте через кнопку (кнопка имеет 2 пары закороченных выводов). Если возникает необходимость отказаться от кнопок вместо выключателя S1 , перемычку необходимо припаять. Недостатком небольших плат является отсутствие разъема для программирования, поэтому при изменении программы придется припаивать провода к контактам микроконтроллера. Разъем питания, как и в случае с GP1 , можно заменить проводами, припаянными прямо к плате. Распиновка GP1 показана на рисунке 2
Рисунок 2: Описание разъема
Контакты 1 и 2 этого разъема следующие: питание и земля. Выход управления (OUT) доступен на контакте 3. Каждый из датчиков должен быть подключен тремя проводами: питание, земля и данные. Контакт данных первого датчика должен быть подключен к контакту 5, а второй датчик к контакту 6 GP1 9разъем 0006. Термометр может питаться напряжением в диапазоне 7-12В от регулятора напряжения 78L05 . Ничто не мешает пропустить стабилизатор напряжения, а питающее напряжение 5В подключить напрямую в схему.
Программа, управляющая работой термометра, была написана в известной программе BASCOM AVR . Он занимает около 70% доступной памяти микроконтроллера и может быть успешно скомпилирован в демо-версии 9.0005 БАСКОМ АВР . Программа не сложная, вкратце выглядит так: процессор все время работает в бесконечном цикле, ожидая установки одного из таймерных флагов (прерывание Timer0). Каждые 4 мс вызывается процедура мультиплексирования светодиодного дисплея, которая в свое время переходит к показанию температуры (во избежание мигания дисплея).
Процедура прерывания Timer0 показана ниже:
Pzerwanie0:
Таймер0 = 131
Установить F4ms
Инкр Дзиэль(1)
Если Дзиэль(1) = 25 Тогда
Дзиэль(1) = 0
Установить F100мс
Инкр Дзиэль(2)
Если Дзиэль(2) = 10 Тогда
Дзиэль(2) = 0
Установить F1s
Конец, если
Конец, если
Возвращаться
В начале Timer0 загружается до значения 131, давая прерывание после подсчета 125 импульсов (256-131). Таймер работает с аппаратным делителем 256, поэтому тактовая частота равная 8МГц дает прерывание каждые 4мс. Сразу после прерывания устанавливается флаг F4ms. Переменные Dziel(1) и Dziel(2) работают как делители частоты. Первый из них отвечает за деление частоты на 25 и установку флага F100ms. Вторая переменная дает дополнительный делитель частоты на 10 и устанавливает флаг F1s каждую 1с.
Основной цикл показан ниже:
Делать
Если F4ms = 1 Тогда
Сброс F4ms 'co 4ms
Высв = Т
Gosub Wyswietl_zmierz
Конец, если
Если F100мс = 1 Тогда
Сброс F100ms 'co 100ms
Если Pind.2 = 0 Тогда Kanal = 1
Если Пина.0 = 0 Тогда Канал = 0
Конец, если
Петля
Конец
Работа термометра очень проста и зависит только от флагов: F4ms и F100ms. Большую часть времени процессор крутится в бесконечном цикле, ожидая установки одного из флагов. Каждые 4 мс выполняется процедура отображения и процедура считывания температуры, а каждые 100 мс обновляются состояния кнопок. В базовой версии программы реализовано простое чтение с клавиатуры (прямое чтение состояния входных контактов). Нажатие S1 переключает термометр на чтение второго датчика, а по нажатию S2 схема переходит на чтение первого датчика.
Процедура отображения и измерения температуры показана ниже:
Wyswietl_zmierz:
Увеличить мультиплексор
Если Mux = 5, тогда Mux = 0
Portd.3 = Не минус
Для I = от 1 до 3
Wysw_pomoc = Wysw Mod 10
Ww = Wysw_pomoc
W(i) = Поиск(ww, Табела)
Высв = Высв / 10
Далее я
Если W(3) = 40 Тогда W(3) = 255 'wygaszenie zera wiodącego
Выберите Case Mux
Случай 0:
Портb = W(3)
Сбросить портd.6
Дело 1:
Установить порт d.6
Портb = W(2) И &B11011111
Сбросить портd.5
Случай 2:
Установить порт d.5
Портb = W(1)
Сбросить портd.4
Случай 3:
Установить порт 4
Портb = 255
Темп Госуба
Случай 4:
Конец выбора
Возвращаться
Табела:
Данные 40, 235, 50, 162, 225, 164, 36, 234, 32, 160
Процедура работает в 5 шагов в зависимости от состояния переменной Mux. Он принимает значения от 0 до 4, и циклически изменяется при следующем вызове процедуры. Управляющий выход (Portd.3) устанавливается на отрицательное значение переменной минус. Он отвечает за отображение отрицательных температур, а низкое состояние порта возникает, когда измеренная температура отрицательная. Затем в цикле for переменная Wysw, содержащая отображаемое значение, делится на три отдельные цифры. Затем они преобразуются в коды светодиодных дисплеев с помощью команды «Поиск» (с использованием таблицы преобразования). Эта процедура дает массив W(n) с закодированными значениями, где n = 1 … 3 индексирует символы для отображения.
Остальная часть процедуры зависит от переменной Mux. Для значений 0-2 отображается одна из 3 цифр. В этот момент анод, соответствующий предыдущей цифре, выключается, порт B устанавливается на закодированное значение следующей цифры, а анод, соответствующий следующей цифре, включается. Исключением является цифра W(2), где дополнительная операция (И &B11011111) предусматривает добавление десятичной точки после второго символа. Для Mux = 3 вызывается процедура измерения температуры, а состояние Mux = 4 является фазой ожидания измерения температуры.
Процедура измерения температуры показана ниже:
Темп:
Если F1s = 1 Тогда
Сбросить F1s
1wreset Пинд, Канал
1wwrite &HCC , 1 , Пинд , Канал
1wwrite &HBE , 1 , Пинд , Канал
T = 1wread(2, Pind, Kanal):
Минус = Т.15
Т = Абс (т)
Т = Т * 10
Т = Т / 16
1wreset Пинд, Канал
1wwrite &HCC , 1 , Пинд , Канал
1wwrite &h54 , 1 , Пинд , Канал
Конец, если
Возвращаться
Эта процедура вызывается каждые 20 мс, но измерения температуры происходят каждую 1 с после обнаружения высокого состояния флага F1s. Это простая версия шины 1-Wire, настроенная на связь с одним устройством. Все команды 1-Wire вызываются с параметром Kanal, который отвечает за выбор правильной шины для считывания температуры (пинд.1 или пинд.0). После сброса команда пропуска ПЗУ и чтение DS18B20 Команда регистров отправлена. Затем два байта считываются и сохраняются в переменной T (целое число). Знак температуры считывается и выполняет простые вычисления. В результате переменная T принимает форму температуры в градусах, умноженную на 10 (например, 13 означает 1,3 градуса). В конце процедуры отправляется команда преобразования температуры, которая всегда обеспечивает фактическое значение температуры в регистрах DS18B20 .
Схема может быть преобразована в термостат без особых усилий. Тогда мы отказываемся от двухканального измерения температуры и отрицательных температур. К управляющему выходу (Portd.3) можно подключить оптотриак и симистор (для приемников переменного тока). Приемник постоянного тока может управляться MOSFET-транзистором, подключенным к управляющему выходу. В основном цикле вам нужно будет внести изменения, показанные ниже:
Если F4ms = 1 Тогда
Сбросить F4ms
Если Ust = 0 Тогда Wysw = T Иначе Wysw = Tu
Gosub Wyswietl_zmierz
Конец, если
Если F100мс = 1 Тогда
Сброс F100мс
Если Pind. 2 = 0 Тогда
Инкр Ту
Авторет = 20
Конец, если
Если Pina.0 = 0 Тогда
Декр Ту
Авторет = 20
Конец, если
Если Авторет > 0 Тогда
Усть = 1
Декр Авторет
Еще
Усть = 0
Конец, если
Н = Ту + 10
Л = Ту - 10
Если T > H, то установите порт d.3
Если Т
Этот код должен объявить переменные Tu, H и L как Integer, Ust как Bit и Autoret как Byte. Кроме того, переменной Tu необходимо начальное значение, так как это температурный параметр для термостата. В процедуре измерения и отображения температуры строку, отвечающую за сигнализацию отрицательных температур, следует удалить. Portd.3 теперь используется как управляющий выход. Это решение не идеально, нет ограничений на значения настроек и нельзя сохранить настройки в EEPROM, но во многих ситуациях работает очень хорошо. Fusebits микроконтроллера следует настроить на работу с внутренним RC-генератором с частотой 8МГц, что на практике равносильно отключению только аппаратного делителя (бит CKDIV). Настройки фьюзбитов представлены ниже:
Детали термометра:
Конструкция печатной платы: | ||
АБ АБ АБ | Плата (нижняя сторона, метод термопереноса) | 10,7 кБ |
АБ АБ АБ | Плата (нижняя сторона, зеркальная) | 10,7 кБ |
АБ АБ АБ | Плата (нижняя сторона, несколько штук на странице, метод термопереноса) | 157,0 кБ |
АБ АБ АБ | Крепление (верхняя сторона) | 8,7 кБ |
АБ АБ АБ | Крепление (нижняя сторона) | 13,7 кБ |
АБ АБ АБ | Слой описания (верхнее наложение) | 53,3 КБ |
АБ АБ АБ | Описание Слой (нижнее наложение) | 100,5 КБ |
Документация: | ||
АБ АБ АБ | Схема термометра | 117,4 кБ |
Программирование: | ||
АБ АБ АБ | Исходный код термометра (BASCOM-AVR) | 3,1 КБ |
АБ АБ АБ | Исходный код термостата (BASCOM-AVR) | 3,4 КБ |
АБ АБ АБ | Выходной файл термометра (BIN BASCOM-AVR) | 1,4 КБ |
АБ АБ АБ | Выходной файл термостата (BIN BASCOM-AVR) | 1,6 КБ |
АБ АБ АБ | Выходной файл термостата (HEX) | 4,6 КБ |
АБ АБ АБ | Выходной файл термометра (HEX) | 4,1 КБ |
АБ АБ АБ | Конфигурация Fusebits (burn-o-mat) | 12,5 КБ |
Пожалуйста, включите JavaScript для просмотра комментариев на основе Disqus. comments на основе Disqus
4 июня 2019 г., Роджер Ченг
Бегущий по лезвию показал нам антиутопическое видение мегаполиса Лос-Анджелеса в далеком будущем. Что было далекой мечтой для 1982 театрализованного представления (2019) теперь наши будни. Мы знаем, что в Лос-Анджелесе нет вечной облачности, летающие машины не летают по небу, а репликанты не прячутся среди населения. Или… они?
Конференция LayerOne проходит в Большом Лос-Анджелесе, и в этом году она приняла тему «Бегущий по лезвию » в честь этого знакового фильма. Мне больше всего понравился значок конференции, созданный по образцу машины Войта-Кампфа. Они использовались в фильме, чтобы отличать репликантов от людей, и это именно то, что делает этот значок. В фильмах репликантов проверяют, задавая вопросы и наблюдая за их глазами на реакцию — этот значок имеет дополнительную камеру распознавания глаз для обеспечения этого эффекта. Давайте взглянем!
Читать далее «Охота на репликантов со значком LayerOne 2019» →
Опубликовано в минусы, Колонки HackadayTagged attiny 2313, attiny2313, badgelife, бегущий по лезвию, камера, конференция, значок конференции, значки конференции, значок электронной конференции, ESP32, layerone, smd, пайка smd, Voight Kampff30 апреля 2019 г. Том Нарди
В наши дни бесконтактный термометр является довольно распространенным инструментом, и, вероятно, у большинства из нас он есть в лаборатории. Вы можете получить их онлайн всего за 10 долларов США, и хотя они далеко не так функциональны, как тепловизионная камера, они, безусловно, имеют свое применение. Но даже с учетом их возросшей доступности есть по крайней мере два надежных предположения о владельцах упомянутых гаджетов: они не сделали их сами и, вероятно, довольно неоднозначно относятся к их эстетике.
Что делает этот проект [Ийона Тихи] особенно интересным. Мало того, что это бесконтактный инфракрасный термометр, который очень легко построить, если вы так склонны, но на самом деле он довольно привлекателен. На самом деле, если бы не видео его работы после перерыва, мы бы предположили, что это какой-то реквизит для косплея в стиле ретро. Даже если вам не нужен ИК-термометр, вы можете просто добавить один из них в свой набор инструментов из принципа.
Основными компонентами термометра являются MLX90614, великолепный пузырьковый дисплей HP QDSP-6040 и микроконтроллер ATtiny2313, чтобы связать все это вместе. Остальные компоненты являются пассивными, за исключением зарядного модуля TP4056, который был подключен к литий-ионному аккумулятору емкостью 200 мАч. Все компоненты аккуратно расположены в линию по всей длине термометра, собранного на куске перфорированного картона. Вместо того, чтобы использовать корпус, напечатанный на 3D-принтере, который скрыл бы все это, [Ийон] решил залить все в прозрачную эпоксидную смолу. Это выглядит фантастически, хотя вам захочется трижды проверить все эти паяные соединения, прежде чем заливать свой «корпус».
[Ijon] предоставил схемы и исходный код, необходимые для создания вашей собственной версии этого самодельного термометра, но мы думаем, что с нестандартной печатной платой и, возможно, менее жидким корпусом, который по-прежнему демонстрирует товар, он мог бы стать очень популярным. гаджет для проницательного хакера. Как мы видели, даже самые простые инструменты могут выиграть от стильного преобразования.
Продолжить чтение «Стильный бесконтактный термометр с малым количеством деталей» →
Опубликовано в The Hackaday Prize, Взлом инструментовTagged 2019Hackaday Prize, attiny2313, пузырьковый дисплей, ИК-термометр, MLX90614, бесконтактный7 сентября 2017 г., автор Анул Махидхария
Ручной токарный станок имеет циферблатные колеса для управления подачей основной каретки и поперечные салазки, помогающие выполнять резку на заготовке. Эти подающие колеса всегда имеют некоторый люфт и требуют частого сброса «нуля». Обычный процесс заключается в проведении измерений на заготовке либо штангенциркулем, либо микрометром с интервалами, которые требуют остановки машины, что в сумме увеличивает время работы машины. Добавление цифрового считывания не только упрощает процесс, но и существенно сокращает время обработки. Так как магнитные планки DRO прикреплены непосредственно к поперечным салазкам, влияние люфта сведено к минимуму.
У [Игоря] есть такой же ручной токарный станок, и пару лет назад он с нуля построил свой мини-блок УЦИ. Большинство DRO имеют полоски энкодера и датчики, прикрепленные к поперечным салазкам, с большим блоком дисплея, прикрепленным отдельно к стержню, с проводами, проходящими между ними. [Игорь] упростил задачу, построив устройство, которое соответствовало ограниченному пространству, которое у него было. Его блок состоит всего из двух сенсорных модулей, каждый из которых прикреплен непосредственно к слайду. В основном блоке размещены линейный датчик Холла, электроника, кнопки, небольшой ЖК-дисплей и батарейки. Второй осевой блок содержит только датчик с кабелем, соединяющим его с основным блоком для данных и питания. В основе системы лежит пара микросхем линейного датчика Холла NSE-5310. Они работают в сочетании с многополюсными магнитными полосами. Кодер обеспечивает 12-битный выходной сигнал, а магнитные полосы имеют полюса, разнесенные на 2 мм друг от друга. Это соответствует теоретическому разрешению почти в 0,5 микрона, но, конечно, механика машины ограничивает фактические результаты. Чипы энкодера взаимодействуют с ATtiny2313 по шине I 9.0351 2 Шина С. Три кнопки и блок питания завершают аппаратную часть. Чтобы запустить его от одной аккумуляторной батареи на 1,5 В, [Игорь] использовал повышающий преобразователь, чтобы получить 3,3 В. 5 В, необходимые для ЖК-дисплея, получаются с помощью удвоителя напряжения, подключенного к ШИМ-выходу микроконтроллера и регулируемого стабилитроном. . Второй блок датчиков подключается через разъем TRRS 3,5 мм.
Он добавил модуль Bluetooth после размышлений, но у него закончились контакты GPIO, а также место для программы, и ему пришлось проявить творческий подход, чтобы заставить его работать. План состоял в том, чтобы передавать данные на планшет Android, который работал бы как большой удаленный беспроводной дисплей. Однако он никогда не использовал эту функцию, довольствуясь маленьким ЖК-дисплеем. В сборке было несколько вещей, которые пошли не так, и если бы он снова воспроизвел проект, некоторые изменения и улучшения помогли бы. Так что, если кто-то планирует сделать что-то подобное, сначала проверьте журналы проекта [Игоря].
Posted in Премия Hackaday, Взломы инструментовTagged attiny2313, цифровое считывание, дро, токарный станок, магнитный энкодер, NSE-531030 марта 2016 г. Брайан Бенчофф
MIDI был создан более тридцати лет назад для соединения электронных инструментов, синтезаторов, секвенсоров и компьютеров. Конечно, это означает, что MIDI предназначался для использования с компьютерами, которым уже тридцать лет, и теперь даже самые крошечные микроконтроллеры имеют достаточную вычислительную мощность, чтобы принимать MIDI-сигнал и создавать цифровой звук. Полифонический синтезатор [mitxela] для ATtiny 2313 делает именно это, используя всего два килобайта флэш-памяти и подключаясь к MIDI-разъему.
Подключение MIDI-синтеза к MIDI-штекеру — это то, что мы уже видели несколько раз. Фактически, [mitxela] сделал то же самое несколько месяцев назад с ATtiny85, а DSP-G1 [Jan Ostman] сделал то же самое с крошечным чипом ARM. Однако создание одного из них с помощью ATtiny2313 действительно расширяет границы возможного. Имея всего 2 КБ флэш-памяти и 128 байт ОЗУ, в этом чипе не так много места. Сделать полифонический синтезатор еще сложнее.
Схема чипа [mitxela] чрезвычайно проста: питание и MIDI-данные обеспечиваются MIDI-клавиатурой, резонатор 20 МГц, а аудиовыход обеспечивается восемью цифровыми контактами, суммированными с кучей резисторов. Да, это всего лишь прямоугольный синтезатор, а полифония ограничена восемью каналами. Это работает, как показано в видео ниже.
Хороший синтезатор? Нет, не совсем. По собственному утверждению [mitxela], это не является практическим решением чего бы то ни было, конструкция мертвого жука собирается за час, а сам синтезатор ограничен прямоугольными волнами с каким-то уродливым квантованием. Это аккуратное упражнение по разработке уникальных аудиоустройств и особенно хакерских атак, что делает его очень крутой сборкой. И это звучит не так уж и плохо.
Продолжить чтение «ATtiny MIDI Plug Synth» →
Posted in ATtiny Hacks, цифровые аудио хаки, Музыкальные хакиTagged attiny, attiny2313, midi20 октября 2015 г., Руд Мерриам
[Адам Анток] был вынужден создать этот перепрофилированный хак с постоянным зрением на жестком диске после того, как увидел игрушку того же характера.
Он использовал раму, диск и двигатель от привода и добавил светодиоды под вращающимся диском в качестве источника света. Диск имеет 8 маленьких отверстий, просверленных на равном расстоянии вокруг диска и слегка закрученных по спирали к центру. Когда отверстия проходят мимо светодиодов, они мигают процессором ATtiny2313 для создания изображений. Чтобы определить положение пластин, датчик Холла контролируется датчиком 2313 для обнаружения магнита на нижней стороне диска. Можно одновременно отображать десять символов. Каждая позиция курсора может прокручивать набор символов, вращая энкодер. При всей точности, необходимой для согласования светодиодов с вращающимися отверстиями, электроника и программный код удивительно просты. Это действительно хорошая работа, [Адам]!
Постоянство видения Взломы для хакеров, как пламя для мотыльков. Одна действительно приятная вещь в проекте [Адама] заключается в том, что вы можете взаимодействовать с ним во время его работы. Посмотрите после перерыва.
Взгляните на эти медленно качающиеся маятниковые часы, чтобы взглянуть на них по-новому.
Читать далее «Взлом диска создает постоянство зрения» →
Posted in Периферийные хаки, Видео хакиTagged attiny2313, эффект холла, жесткий диск, постоянство зрения, POV28 марта 2015 г., Кристина Панос
Несмотря на то, что с годами названия изменились, консольные войны продолжаются. [moop] должно быть чувствовал ностальгию по временам, когда NES и SEGA начинали свой текущий проект Foobot – настольную футбольную игру, в которую играют роботы, управляемые с помощью классических контроллеров NES и SEGA.
У каждой команды есть два робота, которые вращаются на вырезанных лазером колесах из плексигласа, прикрепленных непосредственно к двигателям со скоростью вращения 16 000 об/мин. SN754410 управляет двигателями, и у каждого робота есть мозг ATtiny2313. Все они обмениваются данными с одним передатчиком через свои модули радиоприемника 1402 433 МГц. Чтобы избежать коллизий, [moop] использовала пакетную систему, в которой каждый робот имеет идентификатор. Все сообщения содержат идентификатор робота, полезную нагрузку сообщения и контрольную сумму. Роботы игнорируют сообщения, адресованные другим пользователям, а также сообщения с недопустимой контрольной суммой.
[moop] сделал все доступным на своем github, включая макеты печатных плат и файлы CAD для шасси робота и корпуса передатчика. Посмотрите, как они сражаются после перерыва. Если Foobots раздражают вас винтажными играми, попробуйте эти милые аркадные лайфхаки.
Продолжить чтение «В которой роботы сражаются в консольных войнах» →
Posted in ATtiny Hacks, Robots HacksTagged attiny2313, контрольная сумма, консоль, консольные войны, nes, sega7 сентября 2014 г. Брайан Кокфилд
Если вы ищете свой первый проект в области электроники или проект, который поможет кому-то начать заниматься электроникой, [Вадим] поможет вам. Еще когда он только начинал заниматься электроникой, он построил этот переключатель света с инфракрасным управлением, который работает со стандартным пультом дистанционного управления телевизором.
Первые несколько проектов [Вадима] оказались частями для других проектов после того, как они были построены, поэтому он хотел построить что-то полезное, что в конечном итоге не окажется в ящике с деталями. Другими требованиями к проекту было использование микроконтроллера и его простота.