Мини-памятка для начинающих С-водов.
Переменная-указатель на функцию. Как сделать и как пользоваться.
Мини-памятка для начинающих С-водов.
Переменная-указатель на функцию. Как сделать и как пользоваться.
Обучаемый пульт - это пульт, который может запомнить ИК-посылку от другого пульта и потом пытаться ее воспроизвести. Но поскольку форматов команд пультов в мире многое множество - задача становится нетривиальной. Особенно для микроконтроллера ATMEGA8.
Но я надеюсь, что я эту проблему решил хотя бы частично.
Краткие зарактеристики:
Контроллер ATMEGA8A
30 кнопок
Питание 3-5 вольт
Индикация напряжения батарейки, контроль посылки (2 светодиода - красный и зеленый)
Потребление в ждущем режиме ~2 мкА
Пульт распознает несколько распространенных форматов и пытается их эмулировать согласно спецификациям. Неизвестные форматы так же анализируются и пытаются воспроизводиться.
Распознаваемые форматы с эмуляцией согласно спецификаций:
Изначально пульт был сделан в 12-кнопочном варианте, в корпус автомобильного пультика на руль. Но потом схема "повзрослела" до 30 кнопок.
К повторению предлагается вариант в 21-кнопочный китайский пульт "IR remote control HX1838 for Arduino" либо макси-версия - 30-кнопочный пульт с тактовыми кнопками - плата размерами 115*40 мм.
На РадиоКОТе пробегала тема портативного приемника на чипе RDA5807. Сначала это был приемник с применением монохромного ЖК-дисплея 84*48 пикселей "от Нокии 5110", потом автор переделал схему и прошивку под OLED-дисплей 128*64 пикселя на контроллере SSD1306 или SH1106.
Так сложилось, что я на основе схемы автора с небольшими изменениями сварганил достаточно портативный приемник со своими азартными играми и танцовщицами.
Размеры корпуса - 72*39*15 мм
Что приемник умеет:
Настройки приемника:
Из ничего, как гласит народная мудрость, можно сделать прическу, салатик и скандал. Это если ты женщина.
А если радиолюбитель, то....
Еще в апреле появился у меня экземпляр часов на Panaplex-е.
И всё это время эти часы валялись у меня на столе в виде голой платы.
И сильно мешались. В голове медленно нарастал ком идей и мыслей по окультуриванию.
Версия 31.05.2021г.

Коты любят свежую водичку. В идеале - проточную.
Отсюда на всяких котофорумах и группах регулярно возникают вопросы - "Я котику наливаю водичку в блюдечко, а этот шерстяной гад пьет из унитаза!!!!!".
Или - "Научился открывать воду в в ванной, что бы попить. Закрывать не научился, слил 60 кубов воды!!!ААААА!!! Убить всех человеков!!!"
Нормальные люди иногда покупают всякие мини-фонтанчики-водопадики.
А такие дурные, как я, начинают творить всякую пургу, которую буржуи называют красивой аббревиатурой DIY.
Почему то у нас это не называют "сделай сам", а пытаются эту аббревиатуру прочитать. "ДиАйВай". Звучит отвратительно. "ДИЙ" - ненамного лучше.
Для поилки нам понадобится водяной насос, немножко рук, немножко радиодеталей и подходящая емкость.

Казалось бы, чего проще - берем реле и управляем.
Это хорошо для какой то резистивной нагрузки. Например, для лампочки накаливания или ТЭНа. Хотя с ТЭНом уже сложности. Он мощный. И в момент включения/выключения на контактах реле проскакивает искра.
Такая же сложность возникает, если включать какую то ёмкостную или индуктивную нагрузку.
В результате недорогие реле сравнительно быстро могут выйти из строя. Ну или нужно брать заведомо мощное (и дорогое) реле.
Попала мне в руки матрица из программируемых светодиодов WS2812, 16 х 16 = 256 диодов. На гибкой печатке. "Нужно что то с этим делать" - шепнуло мироздание. Интернет услужливо подсунул большой и успешный проект Алекса Гайвера - Огненную лампу.
Вроде бы все просто - бери и делай. Но я не хотел повторять его проект, плюс мне не совсем нравился эффект пламени, реализованный в лампе Гайвера. И описанные в видео алгоритмы я попробовал, но они не возбудили меня. Штирлиц шел по улицам Берлина. Что то выдавало в нём советского разведчика. То ли фуражка с красной звездой, то ли парашют за спиной....
Когда то один товарищ из Симбирска сказал - "Мы пойдем другим путем". Ну вот и я решил попробовать придумать свой алгоритм пламени. Получится - будет хорошо, не получится - фиг с ним, передерём Гайверовский. Хотя передерастом быть не хочется, поэтому надо придумать свой.
Версия fw 1.07 (30.10.22)
Камрад ViG0r накопал где то в Штатах стопочку газоразрядных дисплеев.
Больших 15 х 5 см, высота цифры 27 мм, 5 цифр.
И поменьше 6,8 х 3,8 см. цифра 14мм, 4 цифры.
И мы сделали из этих дисплеев очередные часы.
Обновлено 12.04.2021
Окна у меня смотрят на северо-восток-восток. И солнышко бывает у меня в гостях только утром. А зимой - иногда и вообще не бывает.
Соответственно, на кухонном подоконнике цветочки, котячья трава, зеленый лук и прочая растительность растут, но хреново. Что бы было цветочкам веселее, купил я на али лампочку для цветочков. Вот тут .

Привычные радиолюбителю RGB-светодиоды имеют в своем составе три кристалла - красного, зеленого и синего цвета свечения. И комбинацией мощности свечения каждого кристалла можно получить различные цвета и оттенки. Что сделает обычный радиолюбитель? Возьмет три переменных резистора, подключит к ним светодиод и, вращая ручки этих резисторов, будет себе настраивать желаемый цвет.
А продвинутый радиолюбитель, который слышал слово "микроконтроллер", знает, что в микроконтроллерах есть специальные выходы, на которых можно получить сигналы с широтно-импульсной модуляцией (ШИМ или по-заморскому PWM). И что если к этим выходам подключить такой светодиод, то призвав в помощь опытного программиста, можно заставить светодиод светиться разными цветами без участия человека. А если еще этот радиолюбитель и сам немножко программист - то тут и все карты в руки.
Но вот беда. Пока нужно просто помигать-посветить разными цветами - цветовая модель RGB остается удобной. А когда таких светодиодов много, да когда наступают более интересные задачи независимого изменения цвета и яркости, то в ряде случаев в мозгах программиста-радиолюбителя может наступить "деление на ноль". Ибо вопрос - как учесть сразу несколько характеристик цвета и света и всё это в цветовой модели RGB - зачастую бывает сложный.
И тут на помощь приходит цветовая модель HSV (Hue - цветовой тон, Saturation - насыщенность, Value - уровень или же яркость). Модель придумал в середине 1970-х некий Элви Рэй Смит, один из со-основателей Pixar. Я не знаю, для чего это было нужно Элви Рэю, но нам эта модель позволит независимо выбирать цвет свечения светодиода, яркость свечения светодиода и насыщенность цвета. Прям как крутилки на старых тёплых ламповых цветных телевизорах.
Ниже - информация, которая может помочь осмыслению цветовой модели HSV и применением ее в любимом микроконтроллере.
В какой то момент мне захотелось, что б в доме был дозиметр прибор, который умеет "мерять" радиацию. И что б он себе просто лежал на полочке, постоянно включенный и заверещал, когда фон вдруг подскочит выше установленного порога (надеюсь, мироздание этого не допустит).
Прибор - это, наверное, громко сказано. ибо ни поверки нет, ни калибровки по контрольному источнику... В общем. не прибор, а показометр...
Соответственно - требования были простые:
- лежать на полочке долго-долго от одного заряда батарейки
- помнить какую то историю радиационного фона.
Под это дело подходил описанный на радиокоте "Нанит". Ну - почти подходил.
Хотелось
а) на датчике СБМ-20, хоть он и больше
б) что то своё. что б все хотелки не впихивать в чужой код, а написать свои
в) поскольку я на тот момент начинал "щупать" STM32 - хотелось сделать на STM-ке....
Ну и что сказать. Изделие, в принципе, получилось. Я доволен.
Часы построены на базе микроконтроллера ATMEGA128A и 3.2" цветного TFT-дисплея 320*240 точек на базе контроллера ILI9341 с резистивной тач-панелью.
Так сложилось, что один хороший человек собрал чей то термометр на ATMEGA8, датчике DS18B20 и OLED-дисплее 128*64 на контроллере SSD1306. Но исходная прошивка ему не нравилась и я предложил написать новую прошивку под собранную им схему.
Термометр рассчитан на периодическое включение выключателем и отображение температур с обнаруженных датчиков, соответственно, никаких режимов энергосбережения или сна не предусмотрено.
Дисплей дурной. Но поскольку он есть - надо писать.
RST. Резет - он и в Мордорской домне резет. Активный уровень - низкий. Согласно ДШ должен удерживаться не менее чего то там. У меня это "чего то там" - 70 мс. После отпускания резета до отправки команд нужно подождать еще пару-тройку мс.
Дисплей может работать как по параллельному, так и по последовательному интерфейсу. За это отвечает контакт PSB.
Если этот контакт соединен с землёй - интерфейс последовательный. Если через 4к7 подтянут к питанию - параллельный 4/8-битный. (Сразу скажу, 4-битный не пробовал).
Тут есть мелкая засада. На некоторых ревизиях дисплея PCB может быть перемычкой или пофигистором притянут к питанию или земле. Мультиметр решает. Если таки да - найди и отпаять. Внизу по одной из ссылок (на drive2 ru) как раз и описана такая ситуация.
Вроде всё красиво, но дьявол кроется в деталях. Проблема в том, что обработка любой команды выполняется за время не менее 72 мкс. Т.е. отправил команду - жди 72 мкс. Отправил байт данных - жди 72 мкс... и т.д.
Те несколько дисплеев, что у меня были - вели себя по разному. Один удалось "разогнать" до 64 мкс. Второй нормально работал при периоде 78 мкс. В интернетах пишут, что некоторые экземпляры гнались до периода в 36-40 мкс.
Итого - время обновления дисплея - это отправка 1024 байт данных + 128 командных байт.
В идеальном случае - 1152 байт * 72 мкс = приблизительно 83 мс. Или 12 fps.