Микроконтроллеры, звук, материнские платы
Про то, как заставить звучать хоть одну, но вполне настоящую ноту с помощью одного конкретного конденсатора было тут:
http://akostina76.ucoz.ru/blog/2016-03-03-2693
Микроконтроллер это маленький процессор, потому он позволяет управлять тем, как электричество барабанит по динамику c нужной и разной частотой с помощью программного обеспечения (т.е с его помощью можно проигрывать любую мелодию). Кроме Ондулино, точнее Arduino требуется пьезоизлучатель (про который было в тексте по ссылке) и вот такая штука:
http://robocraft.ru/blog/arduino/63.html
Специально показываю, потому, что белая штука это у них такая монтажная плата. Т.е начинать надо с того, как пользоваться такими недавно появившимися вещами, потому, что обычный человек не в курсе.
В описании микросхемы есть только про USB кабель для подключения к компьютеру:
http://arduino.ru/Guide/Windows
Вопрос с количеством датчиков уже, похоже, решён. Даже самая простенькая:
http://www.chipdip.ru/product/iskra-mini/
… модель имеет аж 20 входов для этих датчиков.
А у этого «чудовища»:
http://www.chipdip.ru/product/arduino-mega-adk-r3/
… их уже 54. И вообще по количеству разъёмов это всё больше напоминает обычную материнскую плату компьютера.
Вот, например:
.. показано как от разъёмов на материнской плате идут шлейфы к жестким дискам. На плате есть и слоты для оперативной памяти, как и на микроконтроллерах. Материнская плата тоже интеллектуально и программируемо гоняет информацию между всеми подключенными к ней устройствами.
Но вернусь к звуку. В этом примере:
http://robocraft.ru/blog/arduino/63.html
… видно, что прерывание loop() Arduino отличается от обычного компьютерного прерывания таймера:
http://www.codenet.ru/progr/dos/int_0021.php
… срабатывающего 18 раз в секунду.
Loop() отрабатывается в бесконечном цикле и запускается опять как только выполнился прошлый раз. Это удобно для музыки, при которой весь список нот надо вывести в виде последовательных частоты и длительности.
Это удобно и при выводе информации на меленький экран. Чем быстрее будет нарисовано изображение тем лучше.
Большие компьютеры тоже проходили эту стадию работы, когда достаточно ждать следующей информации и что-то максимально быстро делать. Интересным следствием было то, что компьютерные игры рассчитанные на процессор 286 при формальной совместимости стало невозможно использовать на процессоре 486 и Пентиум. Слишком быстро всё работало, персонажа съедали за долю секунды и на экране повисало сообщение «Game Over». Так не было с некоторыми, очень немногими игрушками, авторы которых додумались вставлять искусственную задержку по времени, т.е ориентироваться на показания таймера, того самого прерывания, которое тут работает не так как в обычном компьютере хоть и названо «прерыванием таймера» (это ещё один пример того, что терминология не является точной информацией).
Со звуком все не так просто как реализовано в примере. Реальный звук у обычных музыкальных инструментов например смешивается когда струна предыдущей ноты всё ещё звучит при том, что уже нажата следующая. Кроме того могут звучать сразу две струны или звук от двух нажатых клавиш. Подробно про то как это можно обрабатывать тут:
http://radiokot.ru/circuit/digital/game/51/
… В примере для Arduino просто задаётся частота и длительность. Скорее всего на выходе получится чисто компьютерный звук, не претендующий на сходство к настоящим. Но на самом деле это можно попытаться улучшить, ведь возможности обсчёта в том числе и затухающих волн в программе неограниченны.
Звучание сразу нескольких нот можно эмулировать разными способами, но в любом случае это одновременно, т.е параллельно происходящие процессы, которые надо попытаться реализовать.
На факультете кафедра появилась именно с таким названием:
http://www.math.spbu.ru/parallel/
.. Параллельные процессы это и одновременно работающие клавиатура с мышью в DOS-е и несколько запущенных программ в Windows и несколько нот в мелодии, которую должен проигрывать маленький микроконтроллер. При этом организовывать аж целую кафедру только для изучения недавно появившегося Windows было бы странно. Скорее уж там разработкой своих операционных систем с многозадачностью занимаются. Потому если кому-то нужны прошивки – операционные системы и прочее для микроконтроллеров (т.е придумывание какие нужны прерывания и как они должны работать), то это, скорее всего, к ним.
p/s Ещё один повод, думать, что это про это (название одного из спецкурсов):
http://edu.chpc.ru/parallel/mainse2.html
|