Воспроизведение нот на pic

Электроника и автоматика на МК

Вот так мы и учимся. Методом проб и ошибок. Например, мелодию подбирал на слух. Менял длительности между звуками и подбирал. Зато теперь вот она — мелодия. Бери и пользуйся. В общем, идея такая: мелодия играет только тогда, когда засвечен фоторезистор, подключенный к PORTB.0. Через него на порт поступает логическая 1 от источника питания. И пока он засвечен, играет мелодия. Ничего сложного.

Вот схема:

Declare SHOW_SYSTEM_VARIABLES = OFF ‘ При симуляции в Proteus не показывать внутренние переменные
Declare FSR_CONTEXT_SAVE = OFF ‘ Не заботиться о сохранении содержимого регистра FSR
Declare Reminders = OFF ‘ Выключить напоминания компилятора
Declare Warnings = OFF ‘ Выключить предупреждения компилятора
Declare Optimiser_Level 3 ‘ Включить оптимизацию программы

Device = 16F628A ‘ Используемый микроконтроллер
Xtal = 4 ‘ Частота осциллятора 4 МГц

Config BODEN_OFF, BOREN_OFF, CP_ON, DATA_CP_ON, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_OFF, INTRC_OSC_NOCLKOUT

PortB_Pullups = OFF ‘ Выключить подтягивающие резисторы на PORTB
Declare All_Digital = On ‘ Установить все порты цифровыми входами/выходами

‘————————— Начало ——————————————-
‘ Это таблица нот, скопированная из интернета. Константы соответствуют частоте звучания
Symbol R = 0
Symbol C = 82
Symbol _DB = 85
Symbol D = 87
Symbol Eb = 89
Symbol E = 92
Symbol F = 94
Symbol Gb = 95
Symbol G = 97
Symbol Ab1 = 99
Symbol A1 = 73
Symbol Bb1 = 76
Symbol BE1 = 79
Symbol C1 = 82
Symbol _DB1= 85
Symbol D1 = 87
Symbol Eb1 = 89
Symbol E1 = 92
Symbol F1 = 94
Symbol Gb1 = 95
Symbol G1 = 97
Symbol Ab2 = 99
Symbol A2 = 101
Symbol Bb2 = 102
Symbol BE2 = 104
Symbol C2 = 105
Symbol _DB2 = 106
Symbol D2 = 108
Symbol E2 = 110
Symbol F2 = 111
Symbol Gb2 = 112
Symbol G2 = 113
Symbol Bb3 = 115
Symbol Bm3 = 116
Symbol C3 = 117
Symbol D3 = 118
Symbol PIN =PORTB.1 ‘Вывод на пищалку
Symbol FOT = PORTB.0 ‘Вход фотоэлемента
Symbol LED = PORTB.3 ‘Выход управления светодиодом
TRISB = 1 ‘PORTB.0 — на вход

‘————————— Главная программа ————————-
MainProgram:
DelayMS 1000 ‘Задержка для того, чтобы по окончании мелодии, она начиналась не сразу
If FOT = 1 Then ‘Если фотоэлемент засвечен, то
LED = 1 ‘Зажжем светодиод
GoSub Sound_1 ‘Играем первый фрагмент
GoSub Sound_2 ‘Играем второй фрагмент
DelayMS 1000 ‘Задержка
GoSub Sound_1 ‘Опять играем первый фрагмент
GoSub sound_3 ‘Играем третий фрагмент
Else
LED = 0 ‘Погасим светодиод
EndIf
GoTo MainProgram

Sound_1:
Sound PIN,[C,30,C,15,D,40,C,40,F1,40, E1,60, R, 40, C,30,C,15,D,40,C,40,G1,40, F1,60, R, 40, C,30,C,15,C2,45, A2,40,F,40,E,40,D,40]
Return

Sound_2:
Sound PIN, [R,50,Bb2,30,Bb2,20,A2,40,F1,40,G1,40,F1,50]
Return

sound_3:
Sound PIN,[R,70,Bb2,50,Bb2,30,A2,50,F1,50,G1,80,F1,140]
Return

Вот что из всего этого получилось. При открывании крышки, засвечивается фоторезистор и играет мелодия:

10 нотных редакторов для Windows и macOS

Современные люди не пользуются жалкими бумажками и даже для работы с партитурами используют современные возможности.

Anvil Studio

Программа для редактирования аудио- и MIDI-материалов в ОС Microsoft Windows.

Бесплатная версия обладает полной функциональностью. Редактор/секвенсор MIDI позволяет загружать и сохранять стандартные файлы в формате MIDI, редактировать через штатный редактор отдельные треки, а также использовать перкуссионный редактор, редактор Piano Roll, TAB-редактор, редактор перечня MIDI-событий.

В проге действует MIDI Sequencer-Specific для регулирования элементов, не установленных стандартом MIDI. Можно управлять шрифтом текстов песен, размещением нот на нотных станах, ссылками на аудиофайлы с импульсной модуляцией.

Для воспроизведения в Anvil Studio предусмотрен программный синтезатор General MIDI. Помимо этого, есть возможность назначать треки сторонним MIDI-устройствам и VST-инструменту. Посредством Core Audio, ASIO, DirectX, WDM проводится обработка аудиофайлов.

Capella

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

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

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

Dorico

64-битная программа функционирует на платформах OS X и Windows и разработана музыкантами, которые отлично разбираются в том, что нужно «братьям по разуму».

  • Тщательная проработка интерфейса — до мельчайших деталей;
  • Удобный ввод нот;
  • Многофункциональная система редактирования, позволяющая вставлять ноты и менять их длительность по своему усмотрению;
  • Комфортный однооконный интерфейс, позволяющий держать все инструменты рядом и быстро получать к ним доступ;
  • Множество нотных станов для одного проекта;
  • Простое и быстрое создание макетов для полных, дирижёрских, инструментальных партитур с независимым размером нотного стана, страницы;
  • Множество опций для редактирования партитуры, что позволяет обрабатывать несколько различных музыкальных произведений в ходе работы над одним проектом.

Finale

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

Программные инструменты объединяются в палитры, обладающие иерархической структурой. Для того чтобы добавить или отредактировать класс элементов партитуры, потребуется выбрать нужный инструмент: «Staff» — для добавления и изменения нотоносца, «Smart Shape» — для расстановки и изменения лиг и т. д. Помимо этого, предусмотрены вспомогательные элементы управления, которые предназначены для создания и организации до 4 наложенных музыкальных слоёв (до 4 голосов) на одном нотоносце. Ряд инструментов имеет связанное меню (слева от меню «Справки»), которое открывается после выбора данного инструмента.

Различные элементы партитуры можно окрасить в разные цвета. Если специально не выбрать цветную печать, то при распечатке цвет элементов будет чёрным. Для того чтобы точно настроить набор объектов в партитуре при выборе конкретного инструмента, необходимо воспользоваться диалоговым окном, перетаскиванием или щелчком. Также имеется универсальный инструмент, позволяющий выбрать крупные области для изменения тональности и тактовых размеров. В последних версиях этот инструмент открывает крупное контекстное меню.

Программа самостоятельно управляет базовыми правилами нотной записи, гармонии. Она формирует оптимальные предположения в энгармоническом написании данных, заново вводимых с MIDI-клавиатуры. Finale способна формировать энгармонический тон в музыкальном фрагменте вторичных доминант.

ПО в основном верно выбирает написание аккордов тоники и доминанты. Но если музыка начинает уходить от тоники, то Finale совершает «орфографические» ошибки, определяя аккорды в качестве принадлежащих тонике. Если применяется нестандартная тональность, следует устанавливать корректное написание для всех тонов в хроматической шкале посредством диалогового окна, которое открывается в меню настроек.

Guitar Pro

Прога позволяет редактировать табулатуры для гитары, бас-гитары и иных струнных инструментов с 4-8 струнами. Популярность и востребованность этого ПО среди гитаристов всего мира обусловлены простым и понятным интерфейсом, а также специальным форматом файлов.

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

В последних версиях интерфейс был значительно переработан, что улучшило юзабилити. Предусмотрена система вкладок с открытыми документами в окне Guitar Pro. Появилась боковая панель с инструментарием для быстрого и удобного редактирования нотного стана, выбора инструмента и эффектов (усилителей, компрессоров, гитарных педалей). Нотная графика тоже существенно улучшена: можно самостоятельно изменять ширину такта, ключ и т. д.

MagicScore

Многофункциональная программа для записи нот и композиций, одновременно обладающая простым и понятным интерфейсом. ПО используют музыканты, аранжировщики, композиторы, студенты и преподаватели. Её преимущества состоят не только в многофункциональности, но и в доступной цене.

Overture

Это первая программа для нотной записи, включающая редактирование MIDI-данных через Piano Roll. Также именно в этой программе впервые была обеспечена поддержка плагинов VST/AU.

Sibelius

Самая популярная и часто используемая программа для записи партитур во всём мире. Она позволяет создавать, изменять и печатать музыкальные партитуры, воспроизводить музыку с применением синтезированных или сэмплированных звуков. С её помощью можно печатать партитуры или публиковать их в Сети, чтобы поделиться ими с пользователями. Есть более доступные по стоимости версии программы с несколько урезанной функциональностью. Выпущено множество дополнений к основному ПО.

Программа создана для того, чтобы создавать, изменять, печатать музыкальные партитуры. Предусмотрена поддержка всех нотных записей, есть возможность публикации даже сложных оркестровых, хоровых, джазовых композиций, а также композиций в стиле поп, рок, фолк. Можно воспроизводить партитуры, переводить их в аудио- или MIDI-файлы. Также в Sibelius встроен проигрыватель сэмплов, предусмотрен огромный выбор сэмплированных звуков.

В программе поддерживаются любые MIDI-устройства. Можно пользоваться плагинами VST и Audio Units для воспроизведения, предоставления пользователям доступа к другим библиотекам сэмплов.

Запустив программу на стационарном компьютере, ноутбуке или айпаде, можно публиковать партитуры в интернете прямо из неё.

SmartScore

Программа позволяет быстро проводить сканирование, изменение, транспортирование музыки. Это оперативный вариант для загрузки партитуры в ПК и её перевода в понятный компьютерным программам язык. Уже спустя пару секунд с момента сканирования на экране возникнут гимны, мюзиклы и оперы, которые можно изменять и воспроизводить.

Читайте также  Ввод информации в мк. подключение кнопки к мк bascom-avr

Также в программе предусмотрено распознавание PDF-файлов. Она максимально точно распознаёт табулатурные и аккордовые символы. Через MusicXML можно открывать форматированные партитуры во многих редакторах — Finale, Sibelius, Personal Composer и прочих.

Stave’n’Tabs

Популярный нотный и табулатурный редактор, который можно использовать в iPad, iPhone, iPod Touch, Mac.

Преимущества программы — понятный и удобный интерфейс, оперативное открытие файлов, комфортные и «шустрые» инструменты, что позволяет полностью погрузиться в атмосферу джаза, рока или классики. Предусмотрена поддержка MIDI и MusicXML, благодаря чему можно воспроизводить сделанные ранее музыкальные композиции.

Дополнительно пользователи программы на iOS получат возможность работать с проектами SNT. Для начала работы достаточно открыть синхронизированные файлы из iCloud.

Воспроизведение нот на pic

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Как уже правильно заметили, это — частота ШИМ, и то, при 8-битном разрешении и тактовой частоте 20MHz.
Частота дискретизации будет равна той, с которой Вы будете менять данные. Удобно это делать, используя прерывание от TMR2, установив необходимое значение посткалера.
Например, в своём речевом информаторе, я использовал тактовую частоту 16MHz. Соответственно, частота ШИМ получилась 62,5kHz. Установив посткалер равным 8, получилась частота сэмплирования 7812,5Hz. Поскольку стояла задача использовать дешёвые м/сх памяти I2C, то проблематично получить большую. В крайнем случае, удастся её поднять в два раза.
Во вложении — пример использования с массажным креслом (черновой вариант).
P.S.: К сожалению, презентацию форум не принимает. Кому интересно, кидайте мыло.

_________________
ICQ нет, и, в ближайшее время, не будет.

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

#include
#use delay(clock=20000000)
#fuses HS,NOWDT

#byte PORTB = 0x06
//Адрес регистра порта В

#byte INTCON = 0x0B
//Адрес регистра прерываний

#byte CCP1CON = 0x17
//Адрес управляющего регистра модуля CCP1

#byte CCPR1L = 0x15
//Адрес младшего байта CCP1

#byte CCPR1H = 0x16
//Адрес старшего байта CCP1

#byte T2CON = 0x12
//Адрес настройки регистра TMR2

#byte PR2 = 0x92
//Адрес регистра периода TMR2

#byte TRISB = 0x86
//Адрес регистра направления вводавывода порта В

#byte PIR1 = 0x0C
//Адрес регистра флагов прерывний

#byte PIE1 = 0x8C
//Адрес регистра разрешения перифирийных прерываний

#byte TMR2 = 0x11

#bit DC1B0 = CCP1CON.4
#bit DC1B1 = CCP1CON.5
//Адрес младших битов длительности импульса

#bit GIE = INTCON.7
//Адрес бита глобального разрешения прерываний

#bit TMR2ON = T2CON.2
//Адрес бита включения TMR2

#bit T2CKPS0 = T2CON.0
#bit T2CKPS1 = T2CON.1
//Адрес битов коэффициента предделителя TMR2

#bit CCP1M2 = CCP1CON.2
#bit CCP1M3 = CCP1CON.3

#bit TMR2IF = PIR1.1
//Адрес флага прерывания по переполнению таймера2

#bit TMR2IE = PIE1.1

#bit PEIE = INTCON.6
//Адрес бита разрешения прерываний от периферийных устройств

int i=0;
//Переменная — счётчик

const char number[]=
<
255,127,10,30,40,37,100,50,127,255,255,255,255,90
>;

#int_timer2
//Прерывание по переполнению TMR2
void timer2_isr()
<
TMR2IF=0;
CCPR1L=number[i];
i++;
hold=sizeof(number);
if (i==hold)
<
i=0;
PEIE=0;
TMR2IE=0;
GIE=0;
TMR2ON=0;
//PORTB=0b00000001;
>
>

TRISB=0;
//Порт В работает на выход

T2CKPS1=0;
T2CKPS0=0;
//Коэффициент предделителя TMR2=1

PR2=63;
//Частота дискретизации ШИМ — сигналов равна 78КГц
//Разрядность ШИМ = 8

GIE=1;
//Глобальное прерывание разрешено

PEIE=1;
//Прерывание разрешено от внешних прерываний

TMR2IE=1;
//Прерывания разрешены при совпадении TMR2 с PR2

CCP1M3=1;
CCP1M2=1;
//Модуль ССР включён в режиме ШИМ

TMR2ON=1;
//TMR2 включён

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Лорд Кельвин, физик, 1899 г.

При замене в современном автомобиле электромеханических реле на интеллектуальные силовые ключи PROFET производства Infineon необходимо учитывать особенности их коммутации по сравнению с «сухими контактами» реле, а также особенности управления с их помощью различными типами нагрузок.

ну я ццс не знаю и собственно, не стремлюсь, но !

1. Вы забираете 8 битное значение в CCPR1L, забывая, что младшие 2 разряда нужно занести
CCP1CON
2. На 628 соорудить что-то терпимо говорящее невозможно.

Я это сам пробовал и почувствовал разницу между ним и 8 мегой, например.

Ну.. воспользуйтесь 18, 24 серией, в самом деле, не 37 год.

Вебинар посвящен проектированию и интеграции встроенных и внешних антенн Quectel для сотовых модемов, устройств навигации и передачи данных 2,4 ГГц. На вебинаре вы познакомитесь с продуктовой линейкой и способами решения проблем проектирования. В программе: выбор типа антенны; ключевые проблемы, влияющие на эффективность работы антенны; требования к сертификации ОТА; практическое измерение параметров антенн.

Все наши сегодняшнии технологии родом из 19 века На самом деле для меня результат, если хотя бы отдельные слова можно быдет различить)) главное понять и реализовать принцип.. такие детали как качество звучания и д.т. придут потом

Да, забыл про младшие и старшие биты)

void timer2_isr()
<
TMR2IF=0;

databits_order=number[i];
CCPR1L=databits_order>>2;
//Старшие 6 бит

bit0=databits_order & 0x01;
if (bit0==0x01)
<
DC1B0=1;
>
else
DC1B0=0;
bit1=databits_order & 0x10;
if (bit1==0x10)
<
DC1B1=1;
>
else
DC1B1=0;
//Младшие 2 бита

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Лорд Кельвин, физик, 1899 г.

_________________
ICQ нет, и, в ближайшее время, не будет.

Да это был не вопрос, а утверждение (я прекрасно помню этот топик).

Если ты про «музыкальную шкатулку», таки оригинальное решение по поводу самого сэмпла (хотя и не уверен, что его личное). Я там пару других мелодий составил, но, как ты понимаешь, детально с работой не разбирался (компилировали другие люди).

_________________
ICQ нет, и, в ближайшее время, не будет.

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Лорд Кельвин, физик, 1899 г.

Вот тут не понял.
Описанная проблема может вызвать только «заикания» звука. Каким образом она влияет на качество?

_________________
ICQ нет, и, в ближайшее время, не будет.

Вложения:
prog_na_C.rar [4.13 KiB]
Скачиваний: 204

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

#include
#use delay(clock=1000000)
#fuses HS,NOWDT
#use i2c(master,sda=PIN_A1,scl=PIN_A0,FORCE_HW)
#byte TRISA = 0x05
#byte PORTB = 0x06
#byte TRISB = 0x86

while(1)
<
i2c_start();
//Инициализация передачи
i2c_write(0xA0);
//Адрес Slave с запросом на запись
i2c_write(c1);
//Передача
i2c_start();
i2c_write(0xA1);
//Адрес Slave с запросом на чтение
c2=i2c_read();
//Чтение
i2c_stop();
//Конец

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Лорд Кельвин, физик, 1899 г.

while(1)
<
i2c_start();
//Инициализация передачи
i2c_write(0xA0);
//Адрес Slave с запросом на запись
i2c_write(c1);
//Передача
i2c_stop();
//Конец

i2c_start();
i2c_write(0xA0);
//Адрес Slave с запросом на запись
i2c_start();
i2c_write(0xA1);
//Адрес Slave с запросом на чтение
c2=i2c_read();
//Чтение
i2c_stop();
//Конец

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Лорд Кельвин, физик, 1899 г.

При всей моей нелюбви к ццс.

Трис а0, а1 в «1».
Чтение перед стоп делать без ожидания бита подтверждения c2=i2c_read(0);

(С)Я уже столько знаю о прокладках, что сам могу их носить.

_________________
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи — мистификация.

Проекты : Автоматика: управление, контроль, световые эффекты, реклама

Простой аудио-плеер на PIC

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

Схему плеера будем рассматривать по рисунку печатной платы.

Слева на плате расположен 5-контактный ICSP разъем, через который мы будем прошивать микроконтроллер (заливать прошивку). Через этот же разъем мы подключаем питание, где 3- Vss это минус питания, а 2- Vdd это плюс питания. Диапазон питающих напряжений от 2,7В до 3,6В; в принципе достаточно двух пальчиковых батареек. Линии питания зашунтированы электролитическим конденсатором 10,0 мкФ х 6,3В.

Используется микроконтроллер PIC 12 F 1840 в корпусе для монтажа в отверстия DIP -8 (хотя можно и в корпусе для поверхностного монтажа). Сделаю небольшую рекламу: в г. Саратове я его покупал в магазине «Интерес», ул. Московская, 91, тел. (8452) 27-70-25 (во дворе в подвальчике). Цена для 8-выводного корпуса DIP -8 не совсем приятная – 75 руб, можно было бы и подешевле. Там же покупается и всё остальное.

– штыревая вилка PLS (иголки) 9 шт для ICSP разъема, динамика и джампера PROG / WORK ;

– конденсатор электролитический 10,0 мкФ х 6,3В

Читайте также  Простая система радиооповещения

– конденсатор керамический 1,0 мкФ

– какой-нибудь динамик на 4-8 Ом или наушники

– два полевых транзистора 1N7000

– джампер (перемычка) для переключения режима PROG / WORK (прошивание/работа)

– панелька под микросхему DIP- 8

Будем использовать карточку типа micro — SD , а в качестве–разъема держателя будем использовать переходник-адаптер с micro — SD на обычную SD карточку. Для записи файлов нам потребуется какой-нибудь картридер. Вместо картридера можно использовать шнурок USB и фотоаппарат или телефон при условии, если они позволяют работать на ПК с карточкой памяти напрямую (форматировать и записывать файлы). В общем, это не сложно.

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

Приступаем к прошиванию.

Нам потребуется программатор PicKit 2.

Можно самому собрать, но без опыта проще купить готовый:

Для расширения списка поддерживаемых микроконтроллеров из PicKit 2

полученный файл PK2DeviceFile.dat вставляем с заменой в C: Program Files Microchip PICkit 2 v2 .

Ок, программа-прошивальщик готова к работе.

Как работает программатор PIcKit 2 читаем здесь.

На плате нашего плеера снимаем джампер PROG / WORK .

Подключаем программатор к вилке ICSP (первая вилка должна быть вставлена в разъем PIcKit 2, отмеченный стрелкой-треугольником)

Запускаем программу PICkit 2 v2.61. В идеале микроконтроллер PIC 12 F 1840 сам определится в программе, либо вручную его выбираем.

Меню Programmer – Manual Device Select ( ставится галочка )

Меню Device Family – Midrange – 1.8V min

В основном окне в выпадающем меню выбираем PIC 12 F 1840

Через меню File — Import Hex открываем Player.hex; окно Program Memory заполнится данными .

Нажимаем в окне кнопку «Write»; происходит процесс программирования.

Если окно сообщения у вас стало с зеленым фоном, значит микроконтроллер успешно прошит.

Теперь подготовим карточку памяти.

Нужна карточка памяти до 4 Гб, для того чтобы можно было без препятствий отформатировать и получить разметку FAT 16 (в Windows XP называется просто FAT ). Форматирование FAT 12 и FAT 32 работать не будет. У меня карточка памяти на 128 Мб (по объему не память, а склероз), которая шла в комплекте с древним мобильным телефоном. Для тестирования подойдёт. Форматировал стандартными средствами Windows XP : Мой компьютер – выбираем нашу карточку – выбираем пункт «Форматировать» и наблюдаем примерно такую картинку:

Нажимаем кнопку «Начать». Довольно быстро происходит процесс форматирования.

Следует сказать, что моя карточка была успешно отформатирована, но не работала по непонятным причинам. Быстро нашлась программа SDFormatter 3.1 Rus RE.exe в которой были выбраны опции:

ТИП ФОРМАТА: ПОЛНОЕ перезапись

ФОРМАТ, НАСТРОЙКА РАЗМЕРА: Вкл

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

Теперь подготовим файлы для воспроизведения.

Программ для конвертации из MP 3 в WAV формат придумано много, но здесь мы рассмотрим TotalAudioConverter 2.1.exe (где найти и как подлечить – обращаемся в интернет).

Итак, при конвертации указываем следующие параметры:

8 bit (16 bit не работает)

44100 Hz (можно и другие частоты, но скорость воспроизведения изменится)

Mono ( Stereo на мой взгляд лучше играет, но и файл в 2 раза больше)

Жмём кнопку «Начать». Процесс конвертации быстрый. Полученные файлы переименовываем в формате 8+3, где 8 символов это имя файла (на английском без пробелов и спецсимволов) (допустимо менее 8 символов), 3 символа после точки это расширение файла WAV или маленькими буквами wav . Имя файла и расширение разделяются точкой.

Как включить отображение расширения файла?

Мой компьютер – меню Сервис – Свойства папки… – вкладка Вид – снимаем галочку «Скрывать расширения с зарегистрированных типов файлов»

Для примера я включаю отображение расширений файлов и конвертирую пару треков

Файлы с расширением wav переименовываем, например, как triumph . wav и fz . wav . Эти файлы записываем на карточку. На карточке не нужно создавать папок и подпапок. В общем нам нужны только WAV файлы c именами 8+3 на английском языке.

Всё готово для прослушивания файлов. Карточка вставлена в плеер, динамик/наушники подключены. Подаем питание (нормальное питание 3,3 В). Если питание завышено/занижено, раздается писк. При завышении напряжения 10 сигналов, при занижении 9 сигналов. Если файлы на карточке не найдены (или иной формат файлов) выдается 3 сигнала. Описание сигналов по другим ошибкам см в исходнике.

Честно говоря, я не ожидал, что звук будет такой громкий. Вы спрашиваете меня про качество звука. Отвечаю – звук потрясающий. Прозрачный верх и насыщенный низ с хорошо проработанной передней картиной и оттенками теплого лампового звука :))

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

1) Кнопки управления; как минимум пауза/воспроизведение, следующий трек, предыдущий трек – рассмотреть возможность подключения к выводу 5 или 6 микроконтроллера ( AN 2, AN 1) кнопок с весовыми резисторами см «Самарин Александр. Интерфейсы с клавиатурой. Цифровая техника».

2) Сделать режим работы «квартирный звонок»: плеер всю дорогу под питанием, звонковая кнопка замыкается/размыкается, начинает играть трек и доигрывает до конца, не смотря на состояние кнопки.

О сайте.
Электронные устройства и модели,
обучение и консультация,
документация и средства разработки.
Принимаем на реализацию проекты,
услуги, идеи. Возмездная помощь.

Здесь может быть
ваша реклама

Понравилась конструкция,
но не можете собрать?

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

В русском Интернете бестолку защищать свои права. Хотите использовать материалы — используйте,
но с письменного согласия авторов. В противном случае будут высланы соответствующие письма
в поисковые системы об ограничении индексации ваших сайтов. Не доводите до греха.

Сенсорное пианино

Введение

В данной статье рассматривается возможность обработки сенсорной клавиатуры с применением АЦП. В качестве примера разработаем программу «Пианино», обрабатывающую 36 сенсорных кнопок (3 октавы). Для интереса сделаем его многоголосым. В качестве аппаратной базы будем использовать демо-платы из набора pickit2 на базе контроллеров PIC16F690, PIC16F887 или PIC16F886. Программа будет работать под управлением ОСРВ OSA (прим.: ОСРВ — Операционная Система Реального Времени).

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

Видео HQ (34 Mb)

Видео LQ (6.3 Mb)

Немного теории

Сенсорные кнопки

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

Два конденсатора с емкостями C1 и C2 (C1 _Delay), а статический таймер. Это связано с тем, что код синтезатора, находящийся в прерывании вместе с системным обработчиком таймеров, может долго выполняться, когда активны все 8 каналов. И так как нам гарантированно нужно вместиться в 50 мкс (250 тактов), то любое ускорение кода приветствуется. В данном случае для ускорения применены статические таймеры. Дело тут не в том, что инкремент статического таймера производится быстрее, чем таймера задачи, а в том, что таймеры нужны только двум задачам из трех активных. И избавляясь от обработки одного неиспользуемого таймера, мы выигрываем драгоценные такты.

Переменная s_cCurSample описана как static, т.к. нам важно сохранение ее значения после переключения на другие задачи. Функция CopySample просто копирует массив из ROM-памяти в массив Sample:

Клавиатура

Задача чтения состояния клавиатуры каждые 10 мс опрашивает все 6 строк с кнопками. Перед первым опросом обнуляются все значения порогов для всех столбцов (аналоговых входов). Подпрограмма чтения строки проверяет эти переменные и, если они нулевые, сохраняет туда считанные с аналоговых входов значения за вычетом 15% барьера.

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

Здесь так же, как и в задаче Task_Button для формирования задержки применен статический таймер.

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

Обратим внимание на строку формирования паузы:

В данном случае пауза рассчитана для сопротивления в RC-цепочке, равное 100К, что обеспечивает заряд емкости примерно до Vdd/2. При установке резисторов других номиналов константу в цикле желательно (но не обязательно) пересчитать пропорционально, т.е. для 200К нужно будет считать до 6.

Читайте также  Компания laird выпустила новый модуль беспроводного зарядного устройства

Эта задача будет получать информацию о состоянии кнопок клавиатуры (через сообщение от Task_Keyboard) и формировать переменные управления звуком для «Синтезатора». При получении сообщения состояния кнопок копируются во внутренний массив для обработки, поскольку обработка предусматривает модификацию данных в этом массиве. После получения сообщения пробегаемся по всем переменным типа TSound, содержащим информацию о том, на каком канале какая нота воспроизводится, с целью:

После этого у нас есть переменная cFreeSounds, показывающая сколько звуковых каналов свободно, и список еще не обрабатываемых клавиш в массиве Data.

Синтезатор

Как мы уже решили раньше, подпрограмма синтезатора звука будет помещена внутрь прерывания по TMR2. Таймер 2 у нас настроен и для отсчета тактов модуля ШИМ, и для генерации прерываний. ШИМ у нас выбран максимально возможной частоты для 20 МГц и 8-разрядного разрешения, т.е. 78КГц. Теперь нам нужно выбрать постделитель для TMR2 такой, чтобы обеспечить частоту семплирования 20КГц. Очевидно, что ближайшим значением будет 4 (при этом мы получим частоту 19500). Итак, каждые 51.2 мкс вызывается прерывание, в котором генерируется звук, а именно — скважность импульсов ШИМ-сигнала.

Обратим внимание на вызов макросов SOUND(x). Этот макрос написан просто для удобства добавления/удаления каналов в зависимости от требований к качеству звука и тактовой частоты контроллера (Например, понизив тактовую частоту в два раза, мы за 50 мкс будем успевать обработать только 4 канала; или, снизив частоту семплирования до 10 КГц, мы сможем обработать 16 каналов). Сам макрос выглядит так:

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

Теперь в прерывание осталось добавить обработку системных таймеров. Выбираем интервал для таймера равный 10 мс, или двумстам вызовам прерывания.

Здесь будут проинициализированы периферия и операционная система, а также будут созданы задачи и запущен планировщик. Все задачи имеют одинаковый высший (нулевой) приоритет.

Весь текст я здесь приводить не буду (его можно посмотреть в исходных текстах, прилагаемых к статье), т.к. из-за того, что эта функция предусматривает работу на 4-х разных контроллерах (16F886, 16F887, 16F690 и 16F88), то код ее довольно громоздкий из-за наличия условных директив #ifdef…#endif.

Скажу только, что в этой функции производится инициализация:

Набор и редактирование нотного текста в онлайн-сервисах

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

Сайты для редактирования нот

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

Способ 1: Melodus

Наиболее популярным онлайн-сервисом для редактирования нот в рунете является Melodus. Функционирование данного редактора основано на технологии HTML5, которую поддерживают все современные браузеры.

    Перейдя на главную страницу сайта сервиса, в верхней её части щелкните по ссылке «Нотный редактор».

  • Набирать ноты можно двумя способами:
    • Нажимая на клавиши виртуального пианино;
    • Непосредственно добавляя ноты на нотный стан (нотоносец), путем клика мышкой.

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

    В первом случае после нажатия на клавишу соответствующая ей нота тут же отобразится на нотном стане.

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

    Соответствующая нота будет отображена.

    Если ошибочно был установлен не тот нотный знак, который требовался, установите курсор справа от него и щелкните по иконке в виде урны в левой области окна.

    Нота будет удалена.

    По умолчанию знаки выводятся в виде четвертной ноты. Если вы желаете сменить длительность, тогда щелкните по блоку «Ноты» в левой области окна.

    Откроется перечень знаков различной длительности. Выделите нужный вариант. Теперь при следующем наборе нот их длительность будет соответствовать выбранному знаку.

    Аналогичным образом существует возможность добавлять знаки альтерации. Для этого необходимо кликнуть по наименованию блока «Альтерация».

  • Раскроется список со знаками альтерации:
    • Бемоль;
    • Дубль-бемоль;
    • Диез;
    • Дубль-диез;
    • Бекар.

    Просто щелкните по нужному варианту.

    Теперь при введении следующей ноты выбранный знак альтерации отобразится перед ней.

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

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

    Внимание! Для того чтобы иметь возможность сохранения композиции, нужно в обязательном порядке зарегистрироваться на сервисе Melodus и войти в свою учетную запись.

    Способ 2: NoteFlight

    Второй сервис для редактирования нот, который мы рассмотрим, называется NoteFlight. В отличие от Melodus у него англоязычный интерфейс и только часть функционала бесплатна. К тому же, даже к набору этих возможностей можно получить только после регистрации.

      Перейдя на главную страницу сервиса, для начала регистрации щелкните по кнопке в центре «Sign Up Free».

  • Далее откроется окно регистрации. Прежде всего нужно принять текущее пользовательское соглашение, установив отметку в чекбокс «I consent to Noteflight’s». Ниже представлен перечень вариантов регистрации:
    • Через электронную почту;
    • Через Фейсбук;
    • Через аккаунт Google.

    В первом случае вам потребуется ввести адрес своего почтового ящика и подтвердить, что вы не робот, путем ввода капчи. Затем следует нажать на кнопку «Sign Me Up!».

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

    После этого при активации аккаунта по email вам нужно будет открыть свою электронную почту и перейти в ней по ссылке из пришедшего письма. Если же вы использовали аккаунты социальных сетей, тогда нужно просто произвести авторизацию, нажав соответствующую кнопку в отобразившемся модальном окне. Далее откроется форма регистрации, где нужно в полях «Create a Noteflight Username» и «Create a Password» ввести, соответственно, произвольные логин и пароль, которые в дальнейшем вы сможете использовать для входа в аккаунт. Заполнять другие поля формы не обязательно. Жмите на кнопку «Get Started!».

    Теперь вам будет доступен бесплатный функционал сервиса NoteFlight. Для перехода к созданию нотного текста кликните в верхнем меню по элементу «Create».

    Далее в появившемся окошке с помощью радиокнопки выберите пункт «Start from a blank score sheet» и щелкните «OK».

    Откроется нотоносец, на котором можно расставлять ноты, щелкнув на соответствующей линии левой кнопкой мышки.

    После этого знак отобразится на нотном стане.

    Чтобы иметь возможность производить ввод нот путем нажатия клавиш виртуального пианино, щелкните по иконке «Keyboard» на панели инструментов. После этого отобразится клавиатура и можно будет производить ввод по аналогии с соответствующей функцией сервиса Melodus.

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

    После того как нотный текст набран, можно прослушать звучание полученной мелодии, нажав на значок «Play» в виде треугольника.

  • Также имеется возможность сохранить полученную нотную запись. Можно вписать в соответствующее пустое поле «Title» её произвольное наименование. Затем требуется щелкнуть по иконке «Save» на панели инструментов в виде облака. Запись будет сохранена на облачном сервисе. Теперь при необходимости вы всегда будете иметь доступ к ней, если залогинитесь через свою учетную запись NoteFlight.
  • Это далеко не полный перечень удаленных сервисов для редактирования нотных записей. Но в этом обзоре было представлено описание алгоритма действий в самых популярных и функциональных из них. Большинству пользователей бесплатного функционала данных ресурсов будет более чем достаточно для выполнения изучаемых в статье задач.

    Помимо этой статьи, на сайте еще 12021 инструкций.
    Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

    Отблагодарите автора, поделитесь статьей в социальных сетях.