memory heap
343 subscribers
2.32K photos
472 videos
52 files
2.95K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
memory heap
Пробую сделать воспроизводимую сборку моей книги в GNU Guix: https://github.com/artyom-poptsov/SPARC/blob/master/guix.scm В GitHub Actions при сборке внутри Docker-образа с Ubuntu почему-то часть книги в конечном PDF отсутствует (~5 мегабайт получается объём…
Сборка книги через GNU Guix заработала:
https://github.com/artyom-poptsov/SPARC/actions/runs/6017439099

Благодаря GNU Guix теперь книга автоматически собирается через GitHub Actions, как и должна, в полном объёме.

\o/

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

Надо придумать какой-то способ сделать сборку повторяемой. Самый простой способ сделать повторяемые графики — это выставить начальную точку отсчёта генератора псевдослучайных чисел в какое-то одно значение, например в "42". Но тогда графики, которые должны показывать "белый шум", будут всегда одинаковые, что не интересно. Другой вариант, который я вижу — это взять коммит, с которого собирается книга, и из его хэша "сварить" начальную точку отсчёта для генератора псведослучайных чисел — тогда и график будет меняться в разных версиях книги, и повторяемость в рамках одного коммита будет. Но как это сделать, я до конца пока не придумал (идеи принимаются.)

#guix #sparc
2
Выпустил версию 1.0.0 своей книги "Автомато-программато-компарадио-кружок":
https://github.com/artyom-poptsov/SPARC

Книга посвящена соединению науки, программирования, искусства и радиоэлектроники в рамках самостоятельных занятий или же для ведения кружков и практик по программированию микроконтроллеров.

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

Книга распространяется под лицензией Creative Commons «Attribution-ShareAlike» («Атрибуция-СохранениеУсловий») 4.0 Всемирная (CC BY-SA 4.0) (https://creativecommons.org/licenses/by-sa/4.0/deed.ru)

Список ключевых изменений:

1 Версия 1.0.0 (2023-08-31)
===========================

1.1 Добавление раздела, посвящённого разработке игр
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавление раздела, посвящённого разработке игр на
жидкокристаллическом текстовом дисплее 20x4.


1.2 Добавление информации о синхронизации звука с двух Arduino
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

В раздел про программирование музыки добавлена информация о
синхронизации двух Arduino с целью одновременного воспроизведения двух
"дорожек" одной музыкальной композиции.


1.3 Добавление возможности воспроизводимой сборки книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавление возможности воспроизводимой (повторяемой) сборки книги
через GNU Guix (<https://guix.gnu.org>). Воспроизводимая сборка
производится при указании переменной окружения "REPRODUCIBILITY" в
значение "yes".

Опционально также через переменную окружения "RANDOMSEED" можно
указать начальное числовое значение для генератора псевдослучайных
чисел, для того, чтобы сделать графики "Белого шума" в книге
повторяемыми. Данная переменная используется только тогда, когда
"REPRODUCIBILITY" выставлен в "yes".


1.4 Включение хэша последнего Git-коммита в версию книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Если книга собирается из Git-репозитория, то хэш последнего
Git-коммита включается в версию книги.


1.5 Добавление полных примеров программ в приложения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавлен пример программы, воспроизводящей мелодию "Twinkle, Twinkle,
Little Star" простым способом и через массивы.


1.6 Дополнение существующих разделов книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


1.7 Добавление предметного указателя
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


1.8 Исправление опечаток и ошибок
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PDF-версию книги можно найти в репозитории:
https://github.com/artyom-poptsov/SPARC/blob/master/sparc.pdf

#projects #sparc
4
Распечатал и брошюратором подшил книгу для колледжа. В печатном виде она выглядит более весомо, чем в PDF.

#sparc_book
12
Прогресс по книге: сделал более наглядную "шпаргалку" по чтению нот в виде музыкального "графика".

#projects #sparc #book
2
memory heap
Прогресс по книге: сделал более наглядную "шпаргалку" по чтению нот в виде музыкального "графика". #projects #sparc #book
Прогресс по книге: сделал ещё одну "шпаргалку", теперь уже по чтению нот в басовом ключе в виде музыкального "графика".

#projects #sparc #book
1
Прогресс по книге: пишу раздел про шину I2C, которая часто используется для подключения ЖК-дисплеев к Arduino. Перерисовал вот схему из Википедии в LaTeX.

#sparc_book
7
Добавил в книгу описание монитора порта Arduino и плоттера по последовательному соединению.

#sparc_book
1
Выпустил новую версию своей книги "Автомато-программато-компарадио-кружок":
https://github.com/artyom-poptsov/SPARC/releases/tag/v2.0.0

В новой версии:

- Новая глава "Язык общения машин". В данной главе рассматриваются протоколы коммуникации между микроконтроллером и внешними устройствами. На данный момент описан в достаточно подробных деталях протокол I2C, но в будущем планирую добавить описание COM-порта, SPI и 1-Wire.

- Переименована глава "Основные принципы электротехники" — теперь она называется просто "Основы электроники".

- Доработка раздела про ЖК-дисплей. В разделе подробнее расписано взаимодействие микроконтроллера с жидкокристаллическим дисплеем, добавлены ссылки на подраздел про I2C в главе "Язык общения машин". Общее улучшение изложения материала в разделе.

- Доработка раздела про последовательный порт: добавление скриншотов из Arduino IDE 1.8 с описанием, добавлен новый подраздел "Визуализация данных" с описанием плоттера по последовательному соединению.

- Добавлены задания для самостоятельного решения в раздел "Белый шум".

- Часть блоков исходного кода помещена в LaTeX-блок "listing", к ним добавлены подписи. Это позволило сформировать в конце документа список примеров кода.

- Исправление мелких ошибок


PDF-версия книги доступна на странице релиза, также скину копию в комментарии к этому посту.

#sparc_book
🔥8
#guix_patches #sparc_book

Sharlatan Hellseher замёржил патч, обновляющий мою книгу "Автомато-программато-компарадио-кружок" до версии 2.0.0 в GNU Guix.

Поставить или обновить книгу в системе GNU Guix можно командой:
guix install book-sparc
👾2
#sparc_book

Перерисовал табличку с сайта arduino.cc в книгу.
5
Для книги перевёл:

Может возникнуть вопрос, почему обычно
“Receive” сокращается до “Rx”, а “Transmit” до “Tx”. При-
чину этому можно найти в истории: во времена использо-
вания телеграфа, отправка символа точки требовало больше
усилий, чем отправка обычной буквы, из-за этого операторы
использовали букву “x” вместо точки.

Поскольку стоимость телеграфа была фиксированной: стои-
мость работы оператора, стоимость работы принтера, сто-
имость самой телеграфной линии между станциями. Чем
больше данных вы могли передать, тем больше денег вы
могли заработать. Это привело к появлению большого ко-
личества сокращений для часто используемых слов, осо-
бенно для длинных. Таким образом, вместо длиного слова
“Transmission” операторы телеграфа предпочитали писать
просто “T.” (зная, что на другом конце их поймут.) Однако
символ точки не был доступен в телеграфе, когда использо-
вался режим ввода букв. Из-за этого операторам приходи-
лось вводить символ “T”, потом переключаться в режим вво-
да чисел (для ввода точки) и потом обратно переключаться
в текстовый режим. Это занимало много времени. Поэтому,
каждый раз, когда требовалось ввести символ точки, телегра-
фисты вместо него использовали сивол “X”, который мож-
но было ввести, не переключаясь в режим ввода чисел. По-
скльку очень мало английских слов заканчиваются на “X”,
то данный символ оказался идеальной заменой точки.
Отсюда и пошли некоторые сокращения вроде “Rx” и “Tx”.

[источник]

#sparc_book
🔥7👀2
memory heap
Выпустил новую версию своей книги "Автомато-программато-компарадио-кружок": https://github.com/artyom-poptsov/SPARC/releases/tag/v2.0.0 В новой версии: - Новая глава "Язык общения машин". В данной главе рассматриваются протоколы коммуникации между микроконтроллером…
Выпустил новую версию своей книги "Автомато-программато-компарадио-кружок":
https://github.com/artyom-poptsov/SPARC/releases/tag/v2.1.0

В новой версии:

- Расширен раздел "Платформа Arduino".

- Дополнен раздел про последовательный порт в главе "Белый шум".

- В главе "Язык общения машин" добавлен новый раздел "Последовательный порт". Также доработано введение к главе.

- В главе "Диалоги с компьютером" дополнен раздел про работу с мультиметром, улучшен раздел "Работа с макетной платорй", добавление ссылок на другие связанные разделы.

- В главе "Синтез музыки и технологии" исправлены ошибки в реализации мелодии "Sweet Dreams".

- Добавлена библиография.

- Исправлены выявленные стилистические и орфографические ошибки. Значительная часть ошибок была выявлена Van0Mask, несколько ошибок были выявлены Антоном Шеффером (Agaffer). Множество рекомендаций по изложению материала и исправлений было предложено Петром Третьяковым, большинство из которых были в том или ином виде реализованы.

PDF-версия книги доступна на странице релиза, также скину копию в комментарии к этому посту.

#sparc_book
9🔥2
Ещё работы моих студентов с учебной практики по программированию микроконтролллеров. На первой неделе практики (из двух) мы доходим обычно до программирования музыки, и задачей является запрограммировать какую-нибудь интересную мелодию.

На второй неделе программируем игры на Arduino с текстовым дисплеем.

Методичкой служит книга.

#arduino #sparc_book #art
🔥1
Начал работу над визуализацией циклов в книге, перерисовывая диаграммы, которые рисую на доске во время занятий по программированию.

#sparc_book
🔥5