Git Product home page Git Product logo

sparc's Introduction

Science, Programming, Art and Radioelectronics Club (SPARC) book

https://github.com/artyom-poptsov/SPARC/actions/workflows/pdf.yaml/badge.svg

This README is also available in other languages: ru

A book dedicated to the connection of science, programming, art and radio electronics as part of independent studies or for conducting clubs and practical sessions on microcontroller programming.

License

This work is distributed under the terms of the Attribution-ShareAlike license «Attribution-ShareAlike» 4.0 Worldwide (CC BY-SA 4.0) (https://creativecommons.org/licenses/by-sa/4.0/deed.ru)

The book uses images created by The Noun Project, which are located in the public domain or under a Creative Commons license.

Installation

Manual Installation

The Installation is done via GNU Autotools:

$ git clone https://github.com/artyom-poptsov/SPARC.git
$ cd SPARC
$ autoreconf -vif
$ ./configure
$ make -j$(nproc)

You can clear the directory of generated files using the command:

$ make clean

GNU Guix

Build and install the version from the repository (the book will be located in ~/.guix-profile/share/doc/sparc/sparc.pdf):

guix package -f guix.scm

To generate the book, it is convenient to use Guix Shell:

guix shell --pure -D -f guix.scm
make -j$(nproc)

Ubuntu GNU/Linux 22.04

Installing dependencies from the repository:

sudo apt update
sudo apt install -yqq \
    git \
    automake \
    make \
    lilypond \
    biber \
    fonts-liberation \
    texlive-full \
    python3-pygments \
    inkscape

Installing the Lilyglyphs package:

cd /tmp/
wget https://mirrors.ctan.org/macros/unicodetex/latex/lilyglyphs.zip
unzip lilyglyphs.zip
sudo cp -r ./lilyglyphs/tex/* /usr/share/texmf/tex/latex/
sudo mktexlsr

The rest of the assembly can be done manually, as shown above.

sparc's People

Contributors

artyom-poptsov avatar onidemon37 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sparc's Issues

5.14

Формулы

5.16

1000000мкс/261.63Гц = 3822.191644689мкс

т.к. 1Гц = 1/c, то

1000000мкс/261.63Гц = 3822.191644689 мкс^2

5.17

Пусть длина нашей ноты будет 1с (1000000 мкс.) Подставим в данную формулу значение 3822 мкс и посмотрим, что получится:
1000000мкс/3822Гц = 261.643118786

1000000мкс/3822{Гц}(мкс) = 261.643118786

5.18

261{мкс}(разы) ∗ 3822мкс = 997542мкс

6.0
Однако(,) {есть} кроме “алфавита ” и “слов”, используемых в беседе компьютеров, не менее важны ещё
такие понятия, как среда передачи данных и протокол передачи данных.
Средой передачи данных часто выступает одна из трёх сред: провод (например, как в случае с проводом USB), радиоканал (Bluetooth, Wi-Fi) или же свет (оптоволоконная передача данных{|.)|} (|).|)

6.2.1

К внешним шинам можно отнести(,) наверняка знакомый многим из вас(,) USB – данная шина используется для соединения внешних устройств (таких, как Arduino, клавиатура, мышь, принтер и т.п.) с компьютером. Подобные шины(,) как правило(,) имеют стандартизированный разъём и достаточно большую длину провода.

I2C имеет достаточно низкую скорость передачи данных (не более 5МБит/с) между устройствами. У каждого устройства есть свой адрес на шине – можно сказать, его по(р)ядковый номер.

6.2.3

Как мы говорили выше, на самом деле на шине I2C адрес устройства кодируется восемью битами, где семь бит (A6-A0) являются собственно сами(м) адресом устройства, а самый младший бит (R/W) кодирует направление передачи –
от устройства{,} или на устройство.

Таким образом (,) управление ими будет происходить инвертирова(н)но.

!!!2.9.1
int delay_value = 100;
void loop() {
digitalWrite(2, HIGH);
delay(delay_value);
digitalWrite(2, LOW);
delay(delay_|||!!!(V)!!!|||alue);
if (delay_value < 600){
delay_value += 100;
}
}

7.1.1

Примечание: Обратите внимание, что схема подключения дисплея может отличатся, в зависимости от его производителя. Во{з} избежани{и}(е) порчи дисплея, крайне рекомендуется ознакомиться с документацией на него – как правило, она есть на сайте производителя, либо же может быть найдена по запросу в поисковике вида “<модель-дисплея> datasheet”, где вместо “<модель-дисплея>” впишите именно модель того дисплея, который у вас.

7.5

В играх вокруг игрока обычно разворачивается некоторое действие – не{-}игровые персонажи (Non-Playable Characters, сокращённо “NPC”) ревностно патрулируют территорию карты;

Unable to make

Beliboba@BLBB MINGW64 ~/SPARC (master)
$ make
GEN out/sections/commands.tex
make: *** [makefile:61: out/sections/commands.tex] Error 127

Create the draft of the English version of the book

The draft must include:

  • The main layout of the book chapters translated to English, without the content.
  • Changes to the build scripts so the English version will be built along with the Russian version. The Russian version of the book must have name sparc.ru.pdf and the English version must have name sparc.en.pdf.

Орфография (3.1)

...компьютер или микроконтроллер может получать самую различную информацию...
Некорректное употребление степени превосходства
самую РАЗНУЮ
или
РАЗЛИЧНУЮ

Самую различную - некорректно

3.2.4.

  • Чтение чисел

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

В скобках указана пропущенная запятая.

Там же:
{} - было
() - стало

Если в мониторе порта вы введете строку “72”(,) то монитор порта отправит его на Arduino как два байта данных в виде
чисел 55 и 51, функция Serial.parseInt подождет 2000 миллисекунд (как
видите(,) я (мы) поменял время ожиданиЯ с 1 секунды на 2 секунды, чтобы нагляднее
показать кое(-)какие аспекты)(,) увидит эти два значения(,) {и} преобразует их в одно
целочисленное 72 и присвоит его переменной incoming_int(.) {,} Мы с помощью
метода Serial.write передадим число 72 как есть обратно в монитор порта
(почему именно этот метод нужен читайте далее)(,) где монитор порта корректно
преобразует число 72 в соответствующий символ и покажет нам символ “H”(,) который соответствует коду 72.

Там же:

Таким образом(,) мы можем передавать числовые значения с компьютера на платформу Arduino и дальше использовать эти значения.

Орфография (Том 4)

5.10

Здесь стоит упомянуть, что в музыке встречаются ноты (с) двумя точками справа, что даёт удлинение ноты на половину её длительности и на половину от половины – но подобные ситуации редки из-за неудобства расчёта необходимой длительности при чтении музыкантом нот с листа.

5.11

{Для того, чтобы например} (Например, чтобы )получить частоту клавиши между парой “C”–“D”, можно поднять частоту “C” на пол{-}тона, либо понизить частоту “D” на те же пол{-}тона.
Модификатор, повышающий частоту ноты на пол{-}тона называется диезом, тогда как аналогичный модификатор, понижающий частоту на пол{-}тона, называется бемолем.

5.12

Второй {,}(-) второстепенный акцент {,}(-) ставится на третью ноту в такте, или же(,) можно сказать, {что} на первую
ноту второй половины такта (относительно сильную долю{|.)|} (|).|)

Основной акцент (,) по определению (,) более выраженный, чем второстепенный.

Музыкальный размер “две четверти” используется в таких стилях музыки{,} как(,) например(,) полька.

5.14.2

Пусть и нашей первой композицией будет Arduino-кавер на композицию “Sweet Dreams” под авторством Marilyn Manson
(см. рис. 5.14.25{|.)|} (|).|)12

орфография 5.2

5.2

Есть несколько вариантов динамиков, которые вы можете встретить. Например,
есть обычные динамики, где мембрана колеблется (под воздействием) магнитн{ым}(ого) пол{ем}(я) и тем самым
создаёт колебания воздуха, которые мы слышим{,} как звук. {Есть}(Существуют?)(Также, существуют? ) пьезодинамики,
в которых звук генерируется за счёт обратного пьезоэлектрического эффекта –
механической деформации пьезоэлектрика под действием электрического поля.

5.2.1

Однако, если мы хотим сгенерировать что-нибудь интересное {–}(,) вроде мелодии {–}(,) то нам
потребуется использовать ((вполне) - лишнее уточнение) определённые частоты. {Здесь нам очень кстати
будет хотя бы} (В данном случае желательным будет...) начальное знание музыкальной теории, но если {таких знаний} (такового) нет – не беда, разберём(ся) по ходу дела.

5.3

Думаю, большинство из нас представляют, что такое ритм – у многих именно он вызывает,
например рефлекс покачивания головой в такт или машинальное отстукивание
ритма на столешниц{а}(е) {стола}, когда думаем над чем-то.

5.3.2

Частоты звуков мы (,) опять же (,) берём произвольно.

Как мы видим{о} из рисунка 5.3.3, деление такта на части не обязательно должно быть всегда равномерным – здесь мы получили две четверти{,} и одну половину.

Суммарно же(,) у нас {опять} выходит единица |(см. формулу 5.3.) | (.) Попутно вспоминаем, что для сложения простых дробей нам необходимо их привести к общему знаменателю.

5.3.3

...записываются слева на{}право, как и обычный, привычный нам русский текст...

5.3.4

Из-за этого в оригинале композиция кажется в два раза быстрее – не потому, что там выше BPM, а {просто по тому, что}(из-за того, что) сами ноты...

Орфография 3.3

{} - было
() - стало

На отладочной плате Arduino присутствуют(,) так называемые аналоговые порты,
которые позволяют считывать аналоговый сигнал.

Последний абзац 3.3:

Благодаря своей непредсказуемости, он может быть использован в качестве источника случайных
чисел – что бывает полезно(:) например(,) при разработке игр, о чём будет рассказано
в последующих главах книги.

3.4

Посмотрим на последний график: для кодирования значений используется {три} (3) бита{,}(.) Значит АЦП, описываемый таким
графиком, {имеет, соответственно,} (соответственно, имеет) разрядность 3 бита.

4.2
Где {длина периода} (длина волны?) (время периода?) (длительность периода?) – расстояние между двумя ближайшими друг к другу точками в пространстве, в которых колебания происходят в одинаковой фазе.

То же самое:

Зная длину периода, можно рассчитать частоту колебаний, и наоборот – зная
частоту, можно рассчитать длину волны.
При работе с ШИМ мы будем использовать длину периода, заданную в микросекундах (мкс).

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

Allow to disable building of English/Russian version of the book

Make changes to the build scripts to allow a user to disable building of the English version of the book (or Russian version of the book, for that matter.)

There should be two switches for configure script:

  • --disable-ru disables Russian version of the book.
  • --disable-en disables English version of the book.

Both book versions should be enabled by default.

The rationale is that a user may want to disable all the versions of the book except the version for their preferred language.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.