Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

IMG_0682

Youtube-запись от 2025-07-25: https://youtu.be/oaiVhSS8zY4

Режим Лиссажу, скважность ШИМ из файла и формат изображений PPM/PGM/PBM (PNM)

Рисовать «простую» картинку на осциллографе ==

Конвертировать ч/б изображение в массив пороговых значений для вывода на осциллограф

Давайте не будем искать библиотеки

flowchart TB
img(Картинка)
column(Колонки)
array(Массив)

img:::black ==> |нарезать| column:::yellow
column ==> |ровать | array:::green
column ==> |прети| array
column ==> |интер| array

classDef green fill:#B8BA46;
classDef yellow fill:#FABD2F;
classDef white fill:#fff;
classDef black fill:#504945,color:#fff;
Loading

«Рисовать»: картинка должна полностью помещаться на экран осциллографа и отображаться в двух цветах; пропорции можно не сохранять

  • Подготовить картинку

~~«Простая»: картинку можно приблизить функцией на плоскости (т.е. для каждого x существует единственное y)~~

  • Перебрать все x
  • …и для каждого найти все y
  • А потом перевести каждый y в порог для осциллографа

Как нам обустроить разноцветные ящики и переходы?

Картинка

flowchart LR
src(Исходник)
resized(Размер и цвет)
informat(Формат)
src:::black ==> resized:::black ==> informat:::black

classDef black fill:#504945,color:#fff;
Loading

«Подготовить»

  • Сжать/растянуть исходник так, чтобы картинка помещалась в размер экрана осциллографа (его знаем)
  • Конвертировать изображение в ч/б
  • Обрезать пустые поля

«Перебрать»

  • Переформатировать картинку так, чтобы перебор стал тривиальной задачей

Колонка

flowchart LR
point(Точка)
proportion(Пропорция)
thresh(Порог)

point:::yellow ==> proportion:::yellow ==> thresh:::yellow

classDef yellow fill:#FABD2F;
Loading

«Найти y»

  • Перебирать точки в колонке
  • Проверять цвет каждой точки
  • Остановиться, если встретилась чёрная точка

«Перевести в порог»

  • Рассчитать пропорцию y относительно всей длины колонки
  • Рассчитать порог перехода из 0 в 1 (скважность ШИМ) по очевидной формуле
  • Желательно остаться в целых числах

Кажется, тут можно обойтись без C — если получится работать с картинкой как с единым целым

А тут вряд ли — цельная картинка распалась на набор данных

Делать мы ничего из этого, конечно же, не будем

👎

y = f(x)

А что если y сделать независимым от x?

Режим Лиссажу

jpegtopnm image.jpg | pnmscale -xysize 32 32 | ppmtopgm | pgmtopbm | pnmtoplainpnm > image32.pbm