Для простых и компактных проектов разработанных в среде Ardino IDE, таких как например простое реле времени, логичней применять простые и недорогие микроконтроллеры. Так как Arduino IDE поддерживает микроконтроллеры серии ATtiny, мной для этого проекта был выбран микроконтроллер ATtiny13.
ATtiny13 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny13 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
Микроконтроллер ATtiny13 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.
Далее в статье будет рассмотрено несколько простых проектов с применением микроконтроллера ATtiny13 и 0,91′ I2C 128×32 OLED дисплея.
Для поддержки ATtiny13 в Arduino IDE необходимо выполнить несколько простых операций:
Добавление поддержки платы
Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат
Далее перейдите во вкладку Инструменты > Плата > Менеджер плат
Выберите и установите новую плату MicroCore by MCUdude.
Далее в Инструменты > Плата выберите плату ATtiny13.
Для прошивки скетча Вам понадобится программатор USBAsp
В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:
Распиновка программатора USBAsp
В настройках платы нужно выбрать поддержку Attiny13 и установить частоту 9.6 MHz internal, в пункте EEPROM выберите EEPROM not retanied, в пункте ‘Расчет времени’ выберите Micros disabled .
Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.
Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить).
Примеры использования ATtiny13
Термометр на DS18B20
Так как OLED экраны имеют свойство выгорать при постоянном свечении символов, то в схему термометра добавлена кнопка, при нажатии на которую загорается экран на 10 секунд а потом гаснет до следующего нажатия кнопки.
Термометр на DS18B20 с большими цифрами
Секундомер
Дискретность отсчета 0,1 секунда, максимальное время 999 минут. Первое нажатие кнопки BUTTON запускает секундомер, второе нажатие останавливает его, третье сбрасывает показания.
Ранее в статье http://rcl-radio.ru/?p=77848 был описан пример создания часов на цифровом многоразрядном вакуумном люминесцентном индикаторе ИВЛ1-7/5. В этой статье аналогичный проект, но в нем применена упрощенная схема питания и применен недорогой микроконтроллер Atmega8.
Ток анодов–сегментов импульсный одного разряда: 12 мА
Напряжение сетки импульсное: 27 В
Ток сетки импульсный одного разряда: 12 мА
Скважность: 5 ± 0,5
Минимальная наработка: 10 000 ч
Яркость индикатора, изменяющаяся в течение минимальной наработки, не менее: 100 кд/м2
Срок хранения не менее: 4 лет
Предельно допустимый электрический режим индикатора ИВЛ1–7/5:
Напряжение накала строго в пределах: 4,5–5,8 В
Наибольшее напряжение анодов–сегментов: 50 В
Наибольшее напряжение сетки импульсное: 50 В
Схема часов
Для установки текущего времени используются три кнопки, но рекомендую при первом запуске использовать установку времени по времени компиляции, для этого необходимо раскомментировать строку:
// set_time(22,7,2,26,13,10,0);// год 00-99, ДН 1-7 (1=ВС), мес 1-12, дата 1-31, час 0-23, мин 0-59, сек 0-59
Залить скетч в микроконтроллер, далее закомментировать строку и залить скетч по новой.
В часах используется модуль часов реального времени DS1307, так же без изменения скетча можно использовать DS3231.
Для использования ATmega8 в Arduino IDE Вам необходимо собрать следующую схему (в данном случае допускается внутрисхемное программирование, то есть прошивать контроллер при полной собранной схеме часов):
Перед прошивкой ATmega8 необходимо установить поддержку контроллера в Arduino IDE, для этого откройте меню Файл >> Настройки и в пункте Дополнительные ссылки для Менеджера плат вставьте ссылку:
Далее переходим в меню Инструменты >> Плата >> Менеджер плат
В строке поиска напишите atmega8, списке менеджера плат выберите пакет: MiniCore by MCUdude
После установки поддержки плат в Arduino IDE появится плата Atmega8
Для прошивки скетча или загрузчика Вам понадобится программатор USBasp
Распиновка USBasp
Перед загрузкой в настройках платы укажите частоту кварцевого резонатора (12 МГц), выбрать программатор USBasp, в пункте Bootloader выберите No bootloader или Yes (UART0) если планируете загружать скетчи через UART ( USB — TTL ).
Во вкладке «Инструменты» нажмите «Записать загрузчик«.(делается только один раз)
После записи загрузчика Вы в Arduino IDE увидите примерно следующее:
Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор
После загрузки скетча появится следующее сообщение:
Начинаем понедельник с нового экспоната в виртуальном музее. Сегодня это выжигатель-гравер Орнамент - 1. Выпускался в Йошкар-Оле на заводе полупроводниковых приборов.
Выжигатель был дома почти у всех. Простое недорогое устройство занимало ребенка и было относительно безопасно - удар электрическим током получить трудно благодаря трансформатору, а нагреватель мал, чтобы получить опасные для жизни ожоги.
В СССР множество заводов выпускало выжигатели. В рубрике ретропонедельников один выжигатель уже был (Ретропонедельник №9. Прибор для выжигания ПВД-3). Зарубежом производство и популярность выжигателей была не столь высока, даже если сейчас поискать зарубежные устройства - это будут устройства полу-кустарной сборки. Современные китайские устройства напоминают паяльник. Если увидите в продаже выжигатель с открытой проволочкой-нагревателем - почти наверняка это отечественное устройство.
Но прибор в этом посте интересен тем, что в комплекте помимо ручки - выжигателя была ручка - электроискровой карандаш.
Ток регулируется просто выбором подходящего гнезда, на которые выведены концы вторичной обмотки трансформатора.
Схема из инструкции для понимания принципа работы
Отдельного внимания заслуживает электроискровой карандаш. Он представляет собой электромагнит, который включается последовательно с рабочим электродом. В результате когда цепь замыкается на гравируемую деталь, электромагнит втягивает якорь, загорается маленькая дуга, металл точечно разрушается. После прекращения тока в цепи пружина возвращает наконечник на место, и цикл повторяется. Требуется сноровка в подборе расстояния и усилия, чтобы карандаш не залипал и гравировал непрерывно.
Таким карандашом можно гравировать металлы любой твердости, включая закаленные. До появления недорогих лазеров это был практически единственный способ штучного нанесения нестираемой маркировки. Инструментальные цеха заводов на изготовленных ими фрезах, метчиках наносили маркировку электроискровым методом, разной степени каллиграфичности.
Слабое место - гибкий медный проводник к подвижному якорю.
Фото 1. Работа на стеклодувной горелке с отражателем пламени.
Продолжаем снаряжать рабочее место стеклодува в домашней мастерской. На этот раз речь пойдет об огневом оснащении – несложное приспособление для большой настольной горелки позволит более полно использовать ее факел и несколько увеличить температуру разогреваемой заготовки и скорость нагрева, а перебирать пальцами для вращения стеклянной трубки теперь можно допустить пореже. Отражатель представляет собой небольшой кружок асбеста укрепленный на удобной подставке. Установив его за нагреваемой в пламени заготовкой мы возвращаем часть улетающего тепла на стекло, что равноценно использованию второй горелки напротив, хотя и менее мощной.
Интересно, что подобный нагрев встречным пламенем применялся исторически и как основной. Тип такой горелки именовался «американской». Привычная же однопламенная настольная горелка – «пушка» - «немецкой». Специальные ручные горелки со встречным пламенем очень часто применялись для быстрого и равномерного разогрева участка штенгеля – нетолстой трубочки соединяющей электровакуумный прибор с откачным постом - отпайки лампы и нередко при станочной обработке стекла.
Рис. 2 Нагрев заготовки на горелке со встречным пламенем. Д. Стронг. «Техника физического эксперимента». Лениздат 1948 г.
Бешагин С. П. «Огневое оснащение электровакуумного производства». Москва, «Энергия». 1967 г.
Классическая литература по стеклодувному делу рекомендует отражатель - плоский кружок из асбестового картона закрепленный на проволочной рамке. Здесь, мы попробуем изготовить отражатель вогнутой куполообразной формы, чтобы при работе и несколько концентрировать разлетающееся тепло на более-менее компактном участке. Для этого применим другой способ изготовления – мокрая формовка асбеста, тем более, что этот дешевый огнеупор очень удобен и применяется в стеклодувном деле часто – пробки, держатели, проставки, разного рода специальные колпачки для замедления охлаждения и прочая оснастка для контакта с разогретым стеклом. Опять же, заготовками могут быть самые непрезентабельные обрезки асбеста, буквально мусор.
К делу.
Обычно в литературе предлагается конструкция на квадратной дощечке-подставке и судя по винту-стопору, с регулированием по высоте (Рис. 4). Располагая самодельным токарным станком по дереву не сделать подставку точёной – грех. Проволочную рамку в деревянной ножке мы замуруем, а регулировку высоты будем делать подкладывая под всю конструкцию отрезки дощечек.
Рис. 4 Отражатель пламени. Голь М. М. «Руководство по основам стеклодувного дела». Изд. «Химия», 1974 г.
Фото 5. Соберем деревянную подставку отражателя из двух частей – подошвы и стойки. Заготовки для них подобрать проще. На фото – заготовка подошвы, кусок сухой нетонкой березовой доски со слегка скругленными на торцевой пиле краями.
Для установки в станок применим самодельную мини-планшайбу с привинченной технологической деревяшкой. Перед опиливанием квадратной заготовки находим её середину как пересечение диагоналей и циркулем вычерчиваем максимальную окружность, опиливаем углы. Деревяшку на планшайбе обтачиваем и торцуем на станке. Имея центр граненой заготовки, вычерчиваем окружность несколько больше диаметра планшайбы и приклеиваем её термоклеем. Для небольших заготовок его прочности довольно, а более крупные на первоначальном этапе обдирки можно усилить - поджать задним центром.
Фото 6. Оболваниванием и торцуем заготовку используя резец для точения поперек волокон, отрезаем нужную толщину.
Фото 7. Срезанную заготовку переворачиваем - слегка приклеиваем торцованной частью, дном и протачиваем лицевую часть. Шлифуем несколькими номерами наждачки со сменой направления вращения.
Фото 8. Сверлим на станке отверстие для шипа стойки.
Фото 9. Стойку выточил из сухого березового полена «в центрах».
Подобрал в поленнице подходящей толщины без существенных дефектов, обрезал торцы на маятниковой пиле, обтесал топором на чурбачке до более-менее цилиндрического состояния. Центроискателем нашел центры торцов и накернил их. Под задний неподвижный капнул машинного маслица, под ведущий плоский трезубец пропилил ножовкой неглубокий паз для лучшего зацепления. Вместо утилитарной формы вдруг родился этакий шахматный ферзь. Оставим! На дне, контролируя штангенциркулем, проточил шип для сборки с подошвой. Отшлифовал.
Фото 10. Собрал деревянную подставку с капелькой столярного ПВА, на станке просверлил спиральным сверлом по дереву глубокое глухое отверстия для замуровывания проволочной рамки.
Готовую подставку отделал несколькими слоями прозрачного матового лака с промежуточной сушкой и легкой шлифовкой некрупной затертой наждачкой. Лак – финский «Яло» дает очаровательную поверхность напоминающую вощение, опять же, грязными руками не захватается.
Фото 11. Проволочную рамку сделал из свитой вдвое мягкой стальной вязальной проволоки. Сначала на крышке литрового пластикового ведерка от клея. Понял, что пожадничал и скрутил вариант поскромнее на консервной баночке.
Фото 12. В качестве выпуклой формы для рабочей поверхности применил дно баллона от 5л углекислотного огнетушителя.
Фото 13. Ошметки асбестового картона замочил с небольшим избытком воды. Новый непережженный раскисает замечательно быстро, старый похуже.
Фото 14. Слегка перетер размокший асбест в кашицу пальцами до образования однородной массы похожей на мокрую бумажную для папье-маше.
Фото 15. Импровизированную форму обернул нетолстым полиэтиленом и вылепил нижний слой, уложил на него проволочную рамку и залепил её.
Придал слепку более-менее правильную форму и загладил влажную поверхность пальцами. Несколько дней сушил на форме, в теплом месте. Подсохший отражатель досушил в горячем месте печи.
Фото 16. Проволочную ручку заклинил в деревянной подставке двумя некрупными колышками, подобрав предварительно, высоту ковшика-отражателя. Для пробы.
Фото 17. Свободный факел большой настольной «пушки». Работает на парах бензина и воздухе.
Фото 18. Факел горелки ограничен отражателем пламени.
Дистанцию подобрал минимальную, но такую, чтобы удобно было работать в самой горячей части пламени – на кончике яркого «языка». Фокус асбестового отражателя, даже в относительно негорячей части факела, быстро раскаляется до свечения.
Фото 19. Разогрев заготовки – стеклянной трубки Ø18 мм с применением отражателя. Как и предполагалось, происходит ровнее и ощутимо быстрее. Теперь получаются некоторые операции недоступные ранее, другие удаются лучше.
Сформованный асбест отражателя здесь подвергается интенсивному разрушающему воздействию «жесткого» факела, срок его работы, очевидно, ограничен и не слишком длителен, зато он легко ремонтируется или вовсе переделывается с повторным использованием обгоревшего. Отсюда, удобнее не замуровывать проволочную ручку в подставке насмерть. Вульгарное заклинивание двумя щепочками подобранными в дровах показало себя удовлетворительно в работе и легко разбирается. Диаметр ковшика можно сделать на четверть (на треть?) поменьше.
P. S. Интересующихся и сочувствующих располагающих литературой (книги, статьи, заметки) 1920-30-х годов касательно изготовления первых радиоламп, прошу поделиться.
Ранее в http://rcl-radio.ru/?p=120649 рассматривался пример взаимодействия переключателя программного поворотного ПП8-8(8А) с микроконтроллерами типа Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano), на этой странице будет показан практический пример использования такого переключателя совместно с модулем AD9833.
AD9833 — генератор сигналов с низким энергопотреблением. Позволяет генерировать сигналы с частотой до 12.5 МГц синусоидальной, треугольной и прямоугольной формы. Управление осуществляется с использованием трехпроводного интерфейса SPI.
Основные характеристики микросхемы:
Цифровое программирование частоты и фазы.
Потребляемая мощность 12.65 мВт при напряжении 3 В.
Диапазон выходных частот от 0 МГц до 12.5 МГц.
Разрешение 28 бит (0.1 Гц при частоте опорного сигнала 25 МГц).
Синусоидальные, треугольные и прямоугольные выходные колебания.
Напряжение питания от 2.3 В до 5.5 В.
Трехпроводной интерфейс SPI.
Расширенный температурный диапазон: от –40°C до +105°C.
Переключатель программный поворотный ПП8-8(8А) позволяет задавать необходимую частоту генератора на базе AD9833 в диапазоне от 0 до 9 999 999 Гц, а так же менять форму выходного сигнала.
Форма сигнала (синус, меандр, треугольник) задается крайним слева переключателем. Генератор фактически может выдавать частоту до 12,5 МГц, на что рассчитан программный переключатель при использовании всех секций, но чтобы не делать отдельную кнопку для изменения формы сигнала, было принято решение ограничить частоту генератора до 10 МГц и отвести под переключатель формы сигнала одну из секций переключателя.
Установленная частота выводится на дисплей LCD1602 c I2C модулем.
Как отмечалось в начале скетч полностью совместим с микроконтроллерами Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano).
Ранее в статье http://rcl-radio.ru/?p=111051 рассматривался пример создания интернет-радио на основе ESP32 (ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32) и звукового ЦАП PMC5102A с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.
В Интернет радио использованы следующие компоненты:
ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32
DAC PCM5102A
0.96′ I2C 128X64 OLED
Энкодер KY-040 (модуль)
Тактовая кнопка — 2 шт
В OLED дисплее отсутствует дополнительный слой подсветки всей поверхности экрана. Каждый пиксел, формирующий изображение, испускает самостоятельное свечение. При этом картинка получается яркой и контрастной.
Управление OLED дисплеем в данном примере осуществляется при помощи шины I2C.
Параметры дисплея SSD1306:
Технология дисплея: OLED
Разрешение дисплея: 128 на 64 точки
Диагональ дисплея: 0,96 дюйма
Угол обзора: 160°
Напряжение питания: 2.8 В ~ 5.5 В
Мощность: 0,08 Вт
Габариты: 27.3 мм х 27.8 мм х 3.7 мм
ESP32
ESP32 — серия недорогих микроконтроллеров с низким энергопотреблением. Представляют собой систему на кристалле с интегрированным Wi-Fi и Bluetooth контроллерами и антеннами. В серии ESP32 используется микроконтроллерное ядро Tensilica Xtensa LX6 в вариантах с двумя и одним ядром. В систему интегрирован радиочастотный тракт: симметрирующий трансформатор, встроенные антенные коммутаторы, радиочастотные компоненты, малошумящий усилитель, усилитель мощности, фильтры и модули управления питанием. ESP32 создан и разработан компанией Espressif Systems, китайской компанией, расположенной в Шанхае, а производится компанией TSMC по техпроцессу 40 нм. Серия является преемником микроконтроллеров ESP8266.
Характеристики ESP32 DevKit v1:
микроконтроллер: ESP32-WROOM-32
процессор: 2-ядерный Xtensa Dual-Core 32-bit LX6
тактовая частота процессора: 80, 160 или 240 МГц
оперативная память: 520 Кбайт;
флэш-память: 448 Кбайт;
преобразователь USB – UART
количество выводов платы: 30;
Bluetooth: спецификации 4.2 с функциями BR/EDR и Low Energy
WiFi: стандарта IEEE 802.11b/g/n/e/i безопасность WFA, WPA/WPA2 и WAPI на частоте 2,4 ГГц со скоростью до 150 Мбит/с, встроенный стек TCP/IP
антенна: PCB
режимы беспроводной связи: STA/AP/STA+AP
расстояние приема/передачи в идеальных условиях: 400 м;
периферия: АЦП 12 бит до 18 каналов, ЦАП 8 бит 2 канала, датчик температуры, 4x SPI, 2x I2S, 2x I2C, 3x UART, Ethernet контроллер, CAN 2.0, ведущий SD/eMMC/SDIO, ведомый SDIO/SPI, инфракрасный приемопередатчик, ШИМ до 16 каналов, датчик Холла, аналоговый предусилитель, шифровальщики, хешеры, генератор случайных чисел
поддерживаемые среды разработки: Arduino IDE, PlatformIO, Espressif IDF (IoT Development Framework), Micropython, JavaScript, LUA
PCM5102A
Напряжение однополярное … 3,3 В
Отношение сигнал/шум … 112 дБ
Динамический диапазон … 112 дБ
Уровень нелинейных искажений (THD+N) … -93 дБ
Выходное напряжение … 2.1 Vrms
Поддерживаемая частота дискретизации от 8 кГц до 384 кГц
Поддержка входных форматов данных … I2S, Left-Justified / 16, 24 и 32 бит
Схема Интернет радио
Название станции (бегущая строка)
Номер станции и скорость потока
Настройки радио:
Громкость (0…22 уровень)
Баланс (±16 дБ)
Bass (-40…+16 дБ)
Middle (-40…+16 дБ)
Treble (-40…+16 дБ)
Интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч:
авторизация в сети
String ssid = "Keenetic-9009"; // ssid сети WI-FI
String password = "32481975"; // пароль от сети WI-FI
Управление Интернет радио осуществляется при помощи энкодера и двух кнопок. Кнопки позволяют переключать каналы станций, а энкодер регулировать параметры громкости, баланса и тембра. Кнопка энкодера осуществляет переход по пунктам меню.