В данном проекте представлен пример простого аудио устройства с использованием PIC-микроконтроллера. При использовании только портов ввода/вывода, мы разработали простое пианино/синтезатор в 8-битном стиле. Для программирования 8-битного микроконтроллера PIC18F4550 используется PicPgm.
Мы решили использовать микроконтроллер PIC18F4550 исходя из размера памяти программ (32 КБ).
Для начала каждому порту необходимо присвоить следующие функции:
Зеленые выводы на рисунке определены как входы, красные выводы как выходы.
Далее выводы определены, как указано ниже в программном коде:
Входы с b1 по b11 являются нажимными кнопками в схеме, в то время как вход режима – это переключатель, который отвечает за выбор рабочего режима работы. Выходы с l1 по l11 отвечают за подключение светодиодов. Каждый светодиод располагается вверху над соответствующей нажимной кнопкой и загорается, когда проигрывается соответствующая музыкальная нота. Аудио выход – это вывод контроллера, который подключается к динамику.
Принципиальная схема была разработана с помощью программного обеспечения с открытым исходным кодом KiCad:
Затем был изготовлен макет печатной платы:
Также было создано 3-х мерное изображение готовой печатной платы:
Для изготовления устройства использовалась двухсторонняя печатная плата. Схема была напечатана на журнальной бумаге с помощью лазерного принтера, далее перенесена на печатную плату методом ЛУТ. Сначала необходимо перенести на одну сторону, далее засверлить несколько отверстий для выравнивания макета с другой стороной:
После этого печатная плата была опущена в раствор хлорного железа для вытравливания:
Остатки тонера необходимо удалить с помощью губки под потоком теплой воды:
Далее мы просверлили все необходимые отверстия и установили компоненты на свое место. Мы использовали компоненты из старых электронных устройств. Нажимные кнопки - из старого видеомагнитофона, светодиоды - из модема, а динамик - из старого будильника.
Готовая печатная плата имеет следующий вид:
Описание работы устройства:
В режиме Playing (Проигрывание), когда выбран mode=0 (режим=0), нажимные кнопки с b1 по b11 соответствуют клавишам “ пианино”:
b1 – A (440 Гц)
b2 – B (494 Гц)
b3 – C2 (261×2 Гц)
b4 – D2 (293×2 Гц)
b5 – E2 (329×2 Гц)
b6 – F2 (349×2 Гц
b7 – G2 (392×2 Гц)
b8 – A2 (440×2 Гц)
b9 – B2 (494×2 Гц)
b10 – C4 (261×4 Гц)
b11 – D4 (293×4 Гц)
Мы использовали вторую октаву в качестве основной гаммы и далее добавили еще две музыкальные ноты вверх и вниз. Также можно воспроизвести черные клавиши пианино (диезы и бемоли), нажимая две смежные кнопки.
При нажатии каждой кнопки прямоугольный сигнал соответствующей частоты передается в динамик.
Например, когда нажата кнопка b1, проигрывается нота A. Поэтому для создания звука, прямоугольный сигнал частотой 440 Гц подается на аудио выход. Мы знаем, что период сигнала составляет приблизительно 1/440 = 2272 микросекунд. Поэтому аудио выход имеет высокий уровень в первую половину времени (1136 микросекунд) и далее низкий уровень во вторую половину.
if (b1)
{
audio=1;
delay_us(1136);
audio=0;
delay_us(1136);
}
Также, кроме воспроизведения звука ноты A, зажигается соответствующий светодиод l1.
В режиме Memory (Память) каждая кнопка ассоциируется с конкретным музыкальным фрагментом, который воспроизводится при нажатии этой кнопки.
Каждый музыкальный фрагмент в памяти составляется из двух массивов, один для частот или музыкальных нот, и другой для временных интервалов. Данные массивы впоследствии считываются функцией Sound_Play(x,y) из используемого компилятора (микроC).
И наконец, кнопка b0 - это сброс всей схемы.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК PIC 8-бит | PIC18F4550 | 1 | Поиск в магазине Отрон | ||
C1 | Электролитический конденсатор | 220 мкФ | 1 | Поиск в магазине Отрон | ||
R1-R5, R7-R14 | Резистор | 9 кОм | 13 | Поиск в магазине Отрон | ||
R6, R15 | Резистор | 220 Ом | 2 | Поиск в магазине Отрон | ||
D1 | Светодиод | Красный | 1 | Поиск в магазине Отрон | ||
D2-D12 | Светодиод | Зеленый | 11 | Поиск в магазине Отрон | ||
SW1-SW12 | Кнопка тактовая | TACT-64N-F | 12 | Или другая подобная | Поиск в магазине Отрон | |
SW13 | Переключатель | 1 | Поиск в магазине Отрон | |||
SP1 | Динамик | 1 | Поиск в магазине Отрон | |||
Power IN P1 | Разьем питания | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- pianopic.rar (95 Кб)
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация