Главная » Микроконтроллеры
Призовой фонд
на май 2017 г.
1. Тестер компонентов MG328
Паяльник
2. Осциллограф DSO138
Паяльник
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Устройство мультимедиа (Multimedia device)

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

Функции устройства:
Чтение данных с MMC/SD карт в форматах “WAV”, “BMP”.
Измерение температуры от –55°C до +125°C.
Разрешение “статических” файлов в формате “BMP” не должно превышать 240х320 (обусловлено разрешением дисплея ), а глубина цвета 24 бит.
Размер кадра “динамических” файлов в формате “BMP” равен 240х99 (задается программно), а глубина цвета 24 бит. Скорость вывода около 10 к/с.
Инициализация написана для карт памяти MMC и SD v1.x.
Частота дискретизации “WAV” файлов не должна быть более 44,1 кГц.
Устройство измеряет температуру двумя независимыми датчиками DS18В20.

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

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

Устройство собрано на 2-х печатных платах, одной из которых является дисплей HY32D. На второй печатной плате находится микроконтроллер с приклеенным к нему датчиком температуры, разъемы для подключения дисплея и питания (справа). Снизу расположен светодиод индикации процесса измерения температуры, разъем подключения карты памяти и трехпиновый разъем (в проекте подключен температурный датчик).

1st.jpg

Алгоритм работы устройства

При включении микроконтроллер инициализирует карту памяти, чтобы загрузить с нее динамическую картинку приветствия и интерфейс “рабочего стола”. Если карта памяти отсутствует, на дисплей будет выведено соответствующее сообщение “SDCARD NOT FOUND”. Как только карта памяти смонтирована, с нее загружается динамическое изображение “CXEM.NET” и интерфейс “рабочего стола” в формате “BMP”. Нажимая стилусом на определенном значке, заходим в соответствующее меню.

При входе в меню “Pictures” на дисплей сразу выводится первая, считанная с карты памяти картинка. Для просмотра следующего изображения достаточно коснуться стилусом в любой точке экрана. Для выхода из меню “Pictures” нужно нажать стилусом на значке “*”, который находится за видимой областью экрана, но является полем тачскрина.

Для прослушивания аудио композиций нужно нажать на значок “Audio”. На дисплее появится название композиции, "глубина" звучания (BITS) и кол-во каналов (CHANNELS). Воспроизведение начнется автоматически. Для остановки воспроизведения трека необходимо нажать кнопку. Для воспроизведения следующего трека коснуться стилусом в любой точке экрана, а для выхода из меню “Audio” нужно нажать стилусом на значке “*”.

Данные о системе можно получить нажав стилусом на значке “System”. Данная информация заранее приписана в программе. Температура “снимается” приклеенным к микроконтроллеру датчиком температуры. Для обновления информации о температуре контроллера коснуться стилусом в любой точке экрана. Для выхода из меню “ System ” нужно нажать стилусом на значке “*”.

Также имеется простенькая “рисовалка” типа Paint. Меню “Paint” состоит из палитры основных цветов (увеличение их кол-ва никакого труда не представляет) и области нанесения рисунка. Нажимаем стилусом на необходимый цвет и рисуем. Цвет рабочего стола (белый) в палитре является так же ластиком ( логично) ). Диаметр “кисти” 2 пикселя. Для выхода из меню “Paint” нужно нажать стилусом на значке “*”.

В меню “Thermo” содержится информация о температуре окружающей среды, “снимаемой” со второго термодатчика подключенного к разъему. Для обновления данных о температуре достаточно коснуться стилусом в любой точке экрана. Для выхода из меню “ Thermo ” нужно нажать стилусом на значке “*”.

Описание работы схемы электрической принципиальной и программы микроконтроллера.

Биты конфигурации программно не прописаны.

При инициализации МК DD1 настраиваются: порты на ввод-вывод, SPI1 для тачскрина на частоту 200 кГц в 16 битном режиме, SPI2 для работы с MMC/SD (XS2) картами на частоту 200 кГц в 8 битном режиме, частично ШИМ модуль. После инициализации портов МК происходит инициализация дисплея HG1:1: направление вывода данных, глубина цвета (16 бит: RGB-5,6,5 бит соответственно) и т д. Данные на дисплей выводятся по 16 битной шине используя порты МК В0…В15 – для вывода данных, С6 – указатель данные\команда, С7 – разрешение записи данных, А7 – сброс дисплея. Дисплей HY32D работает под управлением контроллера SSD1289.

Схема устройства

В конце инициализации экран "зальется" черным цветом.

Paint_Area();

Далее МК DD1 по SPI2 отсылает команды инициализации MMC/SD (разъем ХS2). (Работа с картой памяти MMC/SD основана на “библиотеках” Джасио ( не Чена) ).)

initMedia();

Если ответ подпрограммы инициализации отличен от нуля, то карта памяти отсутствует, повреждена или не MMC/SD.

При успешной инициализации  скорость работы SPI2 увеличивается. Далее МК DD1 “пройдясь” по всем смещениям карты памяти, ее секторам и кластерам “монтирует” карту памяти, что бы иметь представление о ней.

mount();

Т. к. при сборе данных о карте памяти программа выделяет некоторую область памяти МК, при компиляции проекта могут возникнуть ошибки с “хипом”. Во избежание этого в настройках необходимо выделить память.

Далее МК DD1 выводит на дисплей анимационную заставку и изображение рабочего стола.

pic("L2.BMP");

pic("T.BMP");

Для этого на карте памяти производим поиск файла с требуемым именем и расширением.

fopenM( name, "r");

При совпадении того и другого определяем размер файла (ширина-высота), глубина цвета и смещение для определения первого байта изображения. Выводим изображение на дисплей по-пути преобразуя цвет 24 бит в 16.

После вывода изображения МК DD1 переходит в подпрограмму работы с тачскрином HG1:2.

SPI_touch();

Тачскрин дисплея HY32D работает под управлением контроллера XPT2046.

Там в цикле опрашиваются координаты тачскрина (экрана) “Х” и “Y”. При отсутствии воздействия на тачскрин, координата “Х” имеет значение 0, а “Y” 2048. Как только значение по оси “Х” изменилось, измеряется 5 значений “Х” и “Y”. Отбрасываются по 2 максимальных и минимальных значения. Полученные данные преобразуются в значения в соответствии с координатами LCD дисплея. Зная положение и размер иконок выведенного на дисплей изображения, определяем “принадлежность” полученной координаты тачскрина одной из иконок.

Touch_at();

Далее в зависимости от меню происходит работа с картой памяти, тачскрином и т д.

При работе с “WAV” файлами по аналогии с файлами изображения определяем все параметры файла.

playWAV( );

В схеме электрической принципиальной и на печатной плате реализован только “Моно” режим звучания (RC9, C4, XS1). Для прослушивания файла в режиме “Стерео” потребуется собрать второй фильтр воспользовавшись свободным выходом МК, программно  этот режим уже реализован и определяется автоматически. Для оперативного чтения данных с карты памяти и их ШИМирования, реализован двойной буфер по 512 байт. Это значение можно изменить (но оно должно оставаться кратным 512) в зависимости от кол-ва свободной памяти данных МК.

B_SIZE 512

ABuffer[ 2][ B_SIZE];

Измерение температуры происходит по средством датчиков DS18В20. Обмен данными с ними происходит по интерфейсу 1-wire, реализованному программно.

Dallas_work();

Каждый датчик DS имеет уникальный номер. Это дает возможность “повесить” на один выход МК несколько таких датчиков. Функция определения такого номера тоже реализована программно, но не задействована.

Вывод линий и фигур на дисплей происходит по оптимальным алгоритмам - Брезенхэма.

LCD_Draw_Circle();

LCD_Draw_Line();

Устройство питается от постоянного напряжения 3,3 В. Максимальный ток потребления (на частоте 80 МГц) 130 мА.

Кратко по схеме

Блок питания (на схеме электрической принципиальной А1) был введен условно и на печатной плате отсутствует. Можно воспользоваться любым БП со стабилизированным напряжением от 3 до 3,6 В и током 200 мА. 

5.jpg

R3 - токоограничивающий резистор светодиода. R8 - токоограничивающий резистор подсветки дисплея. R5...R7 подтягивающие резисторы SPI. R4 - токоограничивающий резистор кнопки SA2. Так же в схеме необходимо добавить резисторы номиналом 5,6 кОм (0,125 Вт). Один между RA4 и питанием +3,3 В, второй между RC2 и питанием +3,3 В.

Многие эл-ты взаимозаменяемы. Все позиции конденсаторов и резисторов позволяют некоторое отклонение при подборе номиналов, кроме конденсатора С3. 

Дополнительные возможности устройства, отсутствующие в демонстрационном видео: чтение и запись файлов в формате “TXT”; вывод на дисплей всех данных о карте памяти, файлах “BMP” и “WAV”; подключение нескольких датчиков DS18B20 к порту А4, вывод на дисплей линий и фигур (как закрашенных, так и полых).

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 МК PIC 16-бит
PIC24HJ32GP304
1 Поиск в FivelВ блокнот
DA1 DC-DC модульный преобразовательTEN 3-05101 Поиск в FivelВ блокнот
DA2, DA3 Датчик температуры
DS18B20
2 Поиск в FivelВ блокнот
VD1 Диодный мост
DB102
1 Поиск в FivelВ блокнот
C1 Конденсатор электролитический470 мкФ 16В1 К50-29Поиск в FivelВ блокнот
C2 Конденсатор39 нФ1 К10-17б-М1500Поиск в FivelВ блокнот
C3 Конденсатор0.1 мкФ1 К10-17а-Н 50Поиск в FivelВ блокнот
C4 Конденсатор электролитический100 мкФ 6.3В1 К50-29Поиск в FivelВ блокнот
R1 Резистор
120 Ом
1 Поиск в FivelВ блокнот
R2 Резистор
8.2 кОм
1 Поиск в FivelВ блокнот
R3 Резистор
280 Ом
1 Поиск в FivelВ блокнот
R4-R7 Резистор
5.6 кОм
4 Поиск в FivelВ блокнот
R8 Резистор
47 Ом
1 Поиск в FivelВ блокнот
HG1 Индикатор жидкокристалическийHY32D1 Поиск в FivelВ блокнот
VD2, VD3 Светодиод2 Поиск в FivelВ блокнот
SA1 Тумблер клавишныйПТ73-2-3 АГ0.360.077 ТУ1 Поиск в FivelВ блокнот
SA2 Переключатель кнопочныйПКн105-1-1 АГО.360.034 ТУ1 Поиск в FivelВ блокнот
XP1 Вилка220В1 Поиск в FivelВ блокнот
XS1 АудиогнездоST-0131 Поиск в FivelВ блокнот
XS2 Держатель для SD/MMC карты104D-TCA0-R031 Поиск в FivelВ блокнот
FU1 Предохранитель керамическийВП1-1-0,5А, 250В1 Поиск в FivelВ блокнот
TV1 Трансформатор понижающий1 Поиск в FivelВ блокнот
ZQ1 Кварцевый резонатор40.000 МГц1 HC49/UПоиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 11.05.2013 0 0
Я собрал 0 Участие в конкурсе 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.4 Проголосовало: 1 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Evgeniy #
Идея хорошая, исполнение тоже, только где спецификация к схеме?
Ответить
0

[Автор]
Fuckir #
Добавили. Только здесь не спецификация, а перечень эл-в
Ответить
0
mr_smit #
Не плохо. Но для музыки желательно поставить VS1053 или что то подобное. Чтобы mp3 и прочее воспроизводить. Там и выход на наушники готовый. А то wav как то сомнительно...
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Осциллограф DSO138 Конструктор: DDS генератор сигналов
вверх