Мои вкусняхи

Сводный список записей блога

--->>>> Сводный список записей блога <<<<---

18 июля 2023

Глупый светильник

 

Фото из статьи Википедии про светильник
Попались мне в руки китайские СОВ-сборки.
Вот такие. 8 модулей на одной пластине, разделенные фрезеровкой.


Алюминиевая подложка, в слое люминофора 4 кристалла. Теоретически, в них можно вкатить ток 300 мА и получить один ватт потребления одной полосочки. Сколько при этом будет света - знают только китайцы.

Практически - при таких токах диоды долго не проживут. Как по мне - потолок одного такого модуля - миллиампер 150-160.... При условии приляпывания модуля на радиатор. Без радиатора модуль переваривает порядка 40 мА, если на открытом воздухе.

А тут со времен блекаутов у меня завалялось парочка 18650 аккумуляторов и панелек под них, в т.ч. и сдвоенных.

Вот на основе такой сдвоенной панельки спонтанно и родился глупый светильник. 
Конструкция простая - в половинке отсека аккумулятор, во второй - электроника фонарика. 
Это все закрыто металлической пластинкой из строительного магазина, на которую приляпаны 4 светодиодных модуля.

А почему глупый? Да потому что нет никаких умных микроконтроллеров. Стабилизатор тока, детектор низкого напряжения аккумулятора да схема зарядки на 4056.

17 июля 2023

Детектор разряда литиевого аккумулятора


Иногда в простых (или не очень простых) конструкциях возникает необходимость отслеживать порог разряда литиевого аккумулятора. 
В случае применения микроконтроллера все просто, в МК обычно есть встроенный источник опорного напряжения и АЦП. Ну или хотя бы компаратор. Тогда напряжение аккумулятора можно отслеживать самим микроконтроллером.

А что делать, если устройство не содержит МК или содержит ну совсем-совсем простой МК без ИОН, АЦП и компаратора? 

В данном случае нам поможет простой и достаточно стабильный "управляемый стабилитрон" - TL431. 

Я понимаю, что TL431 - это интегральная схема разработки Texas Instruments 1977 года и ее внутренняя структура и применение разжевано вдоль и поперек. Но все же я опишу здесь простой принцип ее работы и приведу парочку простых схем детекторов разряда аккумулятора.

26 мая 2023

Очередная переделка питания мультиметра на литий

 


У меня несколько мультиметров. Основной лежит на столе, а вспомогательные - в шкафу.

И, как всегда, в самый неподходящий момент, в стареньком китайце M890G села "крона".

И процесс перевода мультиметра на питание от лития начался.

Из требований к питанию от лития:

  • Один литиевый аккумулятор - соответственно, нужна повышайка
  • Повышайка должна работать только когда включен мультиметр
  • Функционал автоотключения мультиметра должен сохраниться
  • Символ севшей батарейки на дисплее должен зажигаться при понижении напряжения на литиевой батарейке
В качестве повышайки я хотел применить MT3608 - мелкий и достаточно мощный Step-Up, частота преобразования 1.2 МГц, есть вход выключения, низкое потребление в выключенном режиме... Ну и их есть у меня немножко..

29 апреля 2023

Слово о паяльнике.


Картинка из интернета

За окном заканчивался 1985 год. В очередной раз сдохла лампочка в елочной гирлянде. Отцу надоело паять эти лампочки и он научил паять меня. С этого все и началось.

Первый мой паяльник - это была 100-ваттная бандура на 220 вольт. И размером в 2 раза больше, нежели на картинке выше. Что то типа ЭПСН-100. 

И были какие то простые схемы из серии мигалка на двух транзисторах или имитатор пения птиц... На транзисторах МП39-МП42, конденсаторах К50-6 и резисторах МЛТ-0.25. Как раз под стать паяльнику.

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

24 апреля 2023

Финальная версия прошивки. Работа с программами на SD-карте.

Все статьи по данной игровой консоли - по тегу G-BASIC


Настала пора обновляться. Текущая версия прошивки - 1.0.511. Брать тут.

Обновление большое, важное. И обязательное. Обновление затрагивает как компилятор, так и виртуальную машину. Обновился так же компилятор и отладчик для ПК.

Ранее скомпилированные программы могут работать неправильно. Их нужно повторно скомпилировать в новой версии компилятора. 

В обновлении исправлено несколько старых ошибок, добавлена куча новых :)

Заодно проведен тест времени работы консоли от литиевого аккумулятора емкостью 450 китайских мА*ч.
В режиме TURBO 0 консоль продержалась 4 часа 33 минуты. В режиме TURBO 3 - 3 часа 38 минут. 

Ниже описаны встроенные программы. Так же описан принцип сохранения и поиска программ на SD-карточке.

03 апреля 2023

G-BASIC Console. Финальное железо.

Все статьи по данной игровой консоли - по тегу G-BASIC

UPD: Вот тут обновление прошивки и дополнительное описание работы



Ну вот и настала пора готового устройства.

Аппаратная часть построена на базе отладочной платы STM32F411 и TFT-дисплея 240х240 пикселей с диагональю 1.54". 
Управление - 8 кнопок. Обратная связь - пьезопищалка и вибромотор. Программы хранятся на микроSD-карточке. Питание - литиевый аккумулятор.

Программная часть: Встроенный компилятор языка BASIC и среда выполнения скомпилированных программ. Доступно 60 000 байт для программы и 60 000 байт ОЗУ для переменных. Управление вибромотором, генератором звука, яркостью подсветки дисплея и скоростью работы процессора непосредственно из программы. Доступ из программы к файловой системе SD-карточки - чтение-запись данных, загрузка изображений в ОЗУ, прямая отрисовка изображений из файла непосредственно в дисплей, запуск других программ.

Оболочка: Поддержка категорий программ, возможность показа краткого описания и/или изображения для каждой программы. 
Глобальные настройки яркости дисплея, громкости звуков, запрет вибромотора. 
Автовыключение через 1..30 минут при отсутствии нажатий на кнопки. 
Настройка даты-времени (для работы с датой создания/изменения файлов).

Аппаратная часть - моя, программная - совместно с Fluffy.

Изображения в формате RGB565

Все статьи по данной игровой консоли - по тегу G-BASIC


Примененный в G-Basic Console дисплей оперирует 18- или 16-битным цветом. 18-битный цвет - по 6 бит на каждую компоненту RGB хранить неудобно. Поэтому для простых применений дисплей поддерживает работу с 16-битным цветом - на компоненту G отводится по прежнему 6 бит, а на компоненты R и B - по 5 бит. Коротко такой формат обозначается RGB565. 

Соответственно, вся работа с изображениями и цветом в консоли идет в 16-битном формате. Как задание цвета для пера, так и хранение спрайтов в памяти консоли. Для легкой и быстрой работы с изображениями было принято решение хранить в файлах преобразованные к 16-битному цвету изображения.

Ниже - описание формата файла и утилиты конвертации изображений в такой файл.

21 марта 2023

Среда разработки и отладки программ для G-BASIC CONSOLE

Все статьи по данной игровой консоли - по тегу G-BASIC

На основе портативной версии NotePad++ с плагином NPPExec реализована простая среда разработки, компиляции и отладки программ для G-BASIC CONSOLE.

К редактору добавлен компилятор командной строки gbcc.exe версии 2.0.95 и среда выполнения/отладки gbd.exe версии 2.0.206.

17 марта 2023

G-BASIC для консоли. Описание языка.

 Все статьи по данной игровой консоли - по тегу G-BASIC


Описание языка G-BASIC.

Для проекта G-BASIC CONSOLE был создан еще один диалект языка BASIC.
Диалект базируется на функционале и синтаксисе диалекта GW-BASIC, но с некоторыми изменениями и упрощениями.
Ниже - краткое описание синаксиса, типов данных, операторов и функций.

13 марта 2023

G-Basic Console. Печатные платы.

Все статьи по данной игровой консоли - по тегу G-BASIC

Проект игровой консольки - "тетрис-машины" обретает материальное воплощение.
Приехали печатные платы.

Уже давно прошел тот период, когда я для всех своих устройств делал платы вручную. Сейчас это уже скорее исключение. Для каких то маленьких и простых устройств я могу сделать плату в домашних условиях. Но для большинства своих устройств я заказываю платы на производстве. Это и паяльная маска, и более тонкие дорожки и зазоры, и переходные отверстия диаметром 0.3 мм, закрытые маской... И шелкография. 

Для данного проекта платы тоже были заказаны на фабрике PCBWay.

Платы были заказаны 14 февраля и через 22 дня, 8 марта, я забрал их на почте.
И медленно и неспешно собрал один экземпляр консоли.

Собранная консоль

Ниже будет немножко фотографий процесса сборки и описание подготовки и заказа плат на фабрике. 

30 января 2023

Маленькая доработка китайского светильника

Приехало из Китая несколько аккумуляторных светильников.
Вот таких.

Покупались вот тут.

По ссылке светильник в нескольких вариантах:

- холодное свечение, 2 режима - постоянное свечение и включение по датчику движения
- теплое свечение, 2 режима - постоянное свечение и включение по датчику движения
- для неопределившихся - выбор теплого или холодного белого, 1 режим - включение по датчику движения

Присутствует так же датчик уровня освещенности, при достаточной внешней освещенности светильник от движения не включается.
С этим связан один недостаток. Если светильник включился, то пока он горит, он игнорирует датчик освещенности. И если включить внешнее освещение при включившемся светильнике, то светильник все равно будет гореть, пока есть движение.

Время свечения без движения - порядка 20-30 секунд.

В светильнике 8 диодов, общий ток при свечении - порядка 55-60 мА. Или 7-8 мА на диод. Вполне щадящий режим для диодов.

В комплекте магнитик на самоклейке и короткий USB-проводок для зарядки. Есть дырка для вешанья на гвоздик.


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

Ну я был бы не я, если б не попытался разобрать светильник.

13 декабря 2022

Тетрис-машина. Начало.

Все статьи по данной игровой консоли - по тегу G-BASIC

Изображение из сети

Достаточно давно, еще до войны (точнее, до активной фазы войны), в прошлом (а может даже позапрошлом) году купил я мелкий дисплейчик. полтора дюйма, 240*240 пикселей. Зато IPS.
С какой то непонятной неоформленной мыслью прикрутить к этому дисплею маленький контроллер , 4-6 кнопок, оформить это в виде брелка-переростка или недоконсольки и написать на это дело несколько таймкиллерных игрушек.

Типа Тетрис, Xonix, ходилка по лабиринту... Может 2D-гоночки какие то...  

И крутилась эта мысль в подсознании фиг знает сколько времени.

Ну и хотелось, что б это было не на телефоне, а отдельным таким девайсом.

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

30 ноября 2022

FM-приемник. Слушай, что дают. Ищи, что нравится.

UPD2: обновилась версия прошивки до 2.2 - добавлена регулировка контрастности

Изменения: 

- Добавлена регулировка контрастности

UPD: обновилась версия прошивки для обновленного дисплея до 2.1 

Изменения: 

- Устранено нестабильное включение при некорректном положении энкодера - между "щелчками", когда один или оба контакта замкнуты

- В спящем режиме кнопки и энкодер отключаются от подтяжки к питанию и принудительно сажаются на "землю". Подтянутой к питанию остается только кнопка энкодера.

_________________

Image © by KB1RDL http://www.ra4a.ru/
Image © by KB1RDL http://www.ra4a.ru/

На РадиоКоте в свое время была статья авторства NoviceUser-а про миниприёмник с применением МК ATMEGA168, FM-модуля RDA5807 и  дисплея "от Nokia 5110". Была тема на форуме с обсуждением приемника. Приемник слегка "подрос", переехал на Atmega328, обзавелся OLED-дисплеем...

Потом NoviceUser обиделся на чью то критику, залупился и вообще закрыл тему.

И я там поучаствовал, чуток расширил схему и написал альтернативную прошивку. Предложил портативный вариант в достаточно компактном корпусе. На чем, собственно, тема на форуме и закончилась.

Обновленную конструкцию я выкладывал у себя в блоге. 

Тот приемник был собран, испытан и подарен. Ибо я радио слушаю редко. Нет такой радиостанции, репертуар которой нравился бы мне хотя бы на 80%. 
Но!
У меня лежал без дела монохромный ЖК-дисплей 64*128 точек на ST7565 контроллере, с белой подсветкой и диагональю 2 дюйма. Вот такой.

Он был запланирован в одно устройство, но не сложилось. И было решено сделать еще один экземпляр приемника, тоже в подарок. 

А такому дисплею и корпус надо соответствующий. Поиск донора на той же алишечке привел меня к приемнику GOLD JINRU KK-9.

Что значит GOLD - я знаю. Что значит JINRU в переводе с английско-китайского - не очень.

Вдруг это какой нибудь золотой унитаз или золотое дилдо.... Хотя большой китайско-русский словарь bkrs.info по слову JINRU даёт следующее:
jìnrù - входить, вступать в..., поступить; продвижение, проникновение, вступление, въезд, вход

"Золотое продвижение КаКа-9"... Ну в некотором плане приемник таки кака. Даже поздно ночью на КВ и СВ-диапазонах не ловит практически ничего. FM - ну в городе ловит. 
Переключатель DX-Local вообще бутафория.

Но как донор корпуса, динамика, пары деталек с платы - приемник подойдет. Можно приступать к схеме, плате и продумыванию конструкции.

12 ноября 2022

Дозиметерное

 


Наконец то дозиметр запросил кушать. 

253 суток прошло. 280 ма*ч аккумулятор.

Искренне надеюсь, что у хуйла хватит остатка мозгов не трогать ЯО и дозик мне пригодится исключительно для мониторинга ЕРФ и походов на флюорографию.

UPD: Второй дозик прожил 304 дня.




02 ноября 2022

Проводной/беспроводной метеодатчик (2 х T°C, RH%, P mmHg) с дисплеем (или беспроводная версия без дисплея)

Это проект 2019 года, он уже давно опубликован на РадиоКоте.
Но только сейчас дошли руки перетянуть его к себе в блог.


Что умеет метеодатчик:

  • Поддержка датчика DS18B20 (температура)
  • Поддержка датчика ВМЕ280 (температура/влажность/давление) или BMР280 (температура/давление)
  • Отображение напряжения питания и информации с датчиков на ЖК-дисплее 84*48 пикселей (NOKIA 3310/5110) - для возможности использования модуля в автономном режиме
  • регулировка контрастности дисплея (кнопки "+" и "-")
  • Отправка информации с датчиков и напряжения питания по последовательному порту (9600,8,N,1), выход Тх - открытый сток (открытый коллектор)
  • Отправка информации с датчиков и напряжения питания по радиоканалу с применением модулей JDY-40 (UART-удлиннитель).
  • Посадочное место под JDY-40
  • Диапазон питания 2.5..5 вольт (в случае применения DS18B20 - 3..5 вольт)
  • Встроенный LDO-стабилизатор (для возможности питания 3.6 вольтовых ВМЕ/ВМР и JDY-40) при питании выше 3.6 вольт...
  • Программная калибровка измерителя напряжения батарейки, выполняется при питании от стабилизированных 3.30 вольт.
  • Подсветка дисплея
  • Поддержка Li-Ion-аккумуляторов без встроенной защиты
  • Режим дополнительного датчика, его показания принудительно заменяют показания встроенных в часы датчиков - это для часов TouchClock-2

22 октября 2022

Графическая библиотека

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

В соответствии с ранее описанной парадигмой - это абстрактная библиотека верхнего уровня, которая оперирует с графическими примитивами и ничего не знает о дисплее.

Библиотека оперирует 16-битным цветом (RGB565) вне зависимости от применяемого дисплея.

Библиотека позволяет рисовать на дисплее линии, окружности и прямоугольники (с заливкой и без), выводить описанные ранее растровые спрайты, рисовать "черепашью" графику, работать с оверлеем в ОЗУ.

21 октября 2022

Инструмент сжатия изображений


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

А теперь вернемся к графике. 2 месяца назад я писал про алгоритмы сжатия графики. Алгоритмы простые, но позволяют немножко сжать растровую графику.

Но теория теорией, а практика - практикой. Никто в здравом уме не будет попиксельно разбирать картинку и высчитывать биты на бумажечке. Соответственно, нужен какой то инструмент.
И он у меня есть.

10 августа 2022

Растровые шрифты и оптимизация занимаемого места

Продолжим разговор о выводе информации на графические дисплеи средствами недорогих микроконтроллеров.

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

Теперь настала пора поговорить про шрифты немножко подробнее.

Любой символ растрового моноширинного шрифта - это фиксированный прямоугольник, ширина и высота которого определяют размеры символов этого шрифта. Моноширинный шрифт - это такой, у которого для всех символов отведено одно и то же пространство по ширине, будь это узкий символ "!" или широкая буква "Ш".

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

Таких символов в таблице ASCII - 256. Первые 32 символа - служебные и непечатаемые символы, потом 96 символов - латиница, цифры, знаки препинания и различные спец.символы.

Вторые 128 символов отведены под региональные символы. В частности, кириллица занимает 72 символа.


Рассмотрим несколько методов сохранения шрифтов.

08 августа 2022

Сжатие изображений или Как запихнуть большую картинку в маленький микроконтроллер


Ранее я писал, что применение графических дисплеев в устройствах на микроконтроллерах выводит взаимодействие с пользователем на совершенно другой уровень.
Но цена этого уровня - это гораздо больший объем данных, которые должен хранить и обрабатывать контроллер. 

Если на алфавитно-цифровом дисплее со встроенным знакогенератором для вывода текста нужно сохранить в памяти контроллера только сам текст, то для графического дисплея, кроме самого текста, нужно хранить в памяти еще и шрифт, которым этот текст будет нарисован на дисплее.

Для приведенного выше примера один символ - это 5х7 точек. 35 бит. 5 байт.
Для сохранения первой половины печатных символов ASCII - спец.символы, цифры, большие и маленькие английские буквы - это 96 символов - нужно 5 * 96 = 480 байт.
Если же к этому добавить еще и кириллический алфавит (+72 символа), то получим 840 байт.

Но шрифт 5х7 точек - он маленький, хорош для дисплеев с большим размером пикселей. А современные недорогие и доступные радиолюбителю дисплеи, особенно цветные, имеют достаточно высокую плотность пикселей. Например, TFT IPS дисплей с диагональю 1.51" имеет разрешение 240х240 пикселей. На этом дисплее вышеуказанный текст шрифтом 5х7 точек будет высотой порядка 1 мм.

Кому нужен текст размером в миллиметр?

Соответственно, нужен шрифт побольше. Символ шрифта 14х21 точку занимает 294 бита или 37 байт. 168 символов - это 6216 байт.

А если кроме шрифтов, нужно еще и картинки выводить ?

02 августа 2022

Графика для микроконтроллера - 3 уровня абстракции.

 


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

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

И тогда на сцену выходят графические дисплеи.
Их много разных. Есть черно-белые, есть цветные. Есть маленькие, есть огромные.

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