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

Анализатор свиста на Cortex-M4 или включение нагрузки по свистку

Как говорится, лучше один раз увидеть, чем сто раз услышать:

Почему этот проект и именно сейчас?

whistled_small5.jpg

Обычно, я всегда обдумываю проект перед поиском компонентов. Для проекта the whistled (анализатор свиста), все пошло по-другому. Несколько месяцев назад, когда был приобретен микроконтроллер Cortex M4 с 32-выводами, у меня было множество идей, и проект анализатора свиста был одной из них.
Как упоминалось в видеоролике, данный небольшой микроконтроллер Kinetis K10 может выполнять около 80 [q15 2048 балов] быстрых преобразований Фурье (FFT) в секунду и еще оставляет пользователю дополнительное процессорное время для запуска собственных алгоритмов.

Это объясняется тем, что микроконтроллер Cortex M4 имеет набор инструкций для цифровой обработки сигналов (DSP), который особенно пригоден для обработки данных, а также потому, что библиотека ARM CMSIS предоставляет нам уже оптимизированный код для выполнения более сложных функций, таких как быстрое преобразование Фурье.
Поскольку все подготовительные работы выполнены, я смог сфокусироваться на расчете фильтра и алгоритмов по распознаванию свиста.
На это ушло много времени и потребовалось множество тестовых процедур.

Спецификация и схемные решения

Итак, принципиальная схема:

whistle_schematics.png

Как видите, схемы состоят из довольно простых и компактных компонентов.
На них показаны:
- Несколько ферритовых катушек (L1/L2/L3) для фильтрации паразитных помех, которые могут присутствовать в системе или появляться при срабатывании транзистора Q2
- Р-канальный МОП-транзистор (Q1) для защиты соединений от обратной полярности (с каждым может случиться)
- Стандартный линейный преобразователь LDO (U1) на 3.3 В
- Основной микроконтроллер Cortex M4 (U3)
- Mosfet драйвер (U4) вместе с N-канальным МОП-транзистором (Q2) позволяют выполнить правильное диммирование (изменение уровня яркости) при больших нагрузках
- Микрофонный усилитель с автоматической регулировкой усиления (AGC) (U2), параметры которого довольно трудно установить.

Все дорожки на печатной плате, к которым можно прикоснуться, имеют защиту от электростатического разряда, а именно: источник электропитания и сток N-канального МОП-транзистора, поскольку все остальные части печатной платы покрыты прозрачной термоусадочной трубкой. Для своего проекта я хотел иметь защиту от дурака (без обид).
Наибольшее преимущество микроконтроллера Kinetis K10 заключается в том, что он имеет 16-битный таймер с ШИМ-выходами, что в результате приводит к широкому диапазону диммирования.
Платформа позволяет использовать напряжение в диапазоне от 4.5 В до 18 В, с максимальным током 5 A на входах.

Вы также можете управлять нагрузкой мощностью до 90 Ватт с помощью данного устройства размером всего лишь 55x13 мм!
И конечно, на плате размещаются контактные площадки для последовательного отладочного порта SWD, который используется для загрузки вашей программы.

Перечень компонентов

Таблица используемых компонентов и их стоимость показана ниже...

BoM_Whistle.png

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

Печатная плата

Whistle_PCB.png

Как видите, все компоненты умещаются на данной компактной плате.
Первые прототипы было трудно спаять, поскольку выводы MAX9814 имеют шаг 0.4 мм.
Для защиты от электростатического разряда используется термоусадочная трубка, однако она не перекрывает микрофон. На нижнем слое я установил замыкающие цепи через землю между микроконтроллером/аналоговыми компонентами и силовыми цепями схемы, чтобы при усилении звука не происходило возбуждения из-за наведенных помех при переключении.

whistle_pcb_back.png

Конечная толщина медного покрытия составляет 60 мкм, что приводит к повышению температуры на 7 градусов при токе 5 А для дорожек, по которым протекает высокий ток.

Удобство использования

Как уже упоминалось, плата имеет незакрытые аппаратные компоненты и 4 контактные площадки для подключения отладочного порта SWD (3.3 В / 0 В / clock (синхроимпульс) / data (данные)):

whistled_small4.jpg

Так что, если у вас есть некоторые необычные идеи для данной платформы, дайте волю своей фантазии.
Мощные вычислительные возможности микроконтроллера Cortex M4 дадут возможность сделать намного больше, а не просто распознать свист. Я просто уверен, что множество таких применений могут даже «подсветить» вечеринку.

Вы также сможете использовать "последовательность секретных звуков" для открытия дверей или сейфов.

Файлы

whistled_small3.jpg

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

Схемы довольно простые, поэтому вы легко сможете разработать печатную плату с помощью CAD программного обеспечения.
Когда вы будете работать над программным кодом, то все что вам нужно, так это запустить ваши алгоритмы с переменной working_buffer в функции run_recognition_algo в конце кода main.c

Алгоритм

Благодаря большому количеству полученных комментариев, я бы хотел немного разъяснить общую структуру текущего применяемого алгоритма.
Я создал рабочий алгоритм, но убежден, что кто-нибудь сможет сделать его намного лучше. Созданный алгоритм пригоден только для данной платформы, и что немало важно, для текущей реализации (два последовательных свиста для включения/выключения). Поэтому я не уверен, что алгоритм будет полезен для тех, кто хочет собрать платформу на скорую руку.
Если вы на самом деле хотите создать алгоритм таким же способом как и я, тогда прочтите следующие рекомендации:
- Определите два последовательных пиковых значения в быстром преобразовании Фурье при различных частотах.
- Проверьте ширину данных пиковых значений.
- В зависимости от того, как вы свистите, проконтролируйте отклонение частоты первого пикового значения.
- Проверьте выделение сигнала между высотой пикового значения и близлежащих пиковых значений.
- Выполните одно или два быстрых преобразований Фурье без учета пиковых значений, предположив, что ваш свист непрерывный, хотя фактически таким не является.
- Разрешите только один частотный диапазон свиста (с 8 по 46 в текущем алгоритме).
Созданный алгоритм основывается на ложном распознавании сигналов (ложное распознавание) и ложном не распознавании сигналов (без распознавания, когда вы свистите), поскольку люди свистят по-разному.
Поэтому для вас будет легче написать свой собственный код для свиста, чем быть таким же терпеливым, как я.

Заключение

Я полностью уверен в данном проекте. Поэтому я предпринял попытку и решил задачу самостоятельно.
Данное решение было одобрено со стороны многих знакомых и коллег, которые нашли проект анализатора свиста очень удобным в использовании для автоматизации их домов. Если данный проект будет успешным, я планирую создать новую линейку продуктов, которые будут использовать данный принцип работы.
Поэтому если вы заинтересовались данным проектом, я буду рад, если вы загляните на мою страничку tindie page.

- сноска для собранного устройства на печатной плате
- сноска для собранного устройства на печатной плате + блок питания US AC/DC
- сноска для собранного устройства на печатной плате + блок питания EU AC/DC
- сноска для собранного устройства на печатной плате + блок питания US AC/DC + светодиодная лента
- сноска для собранного устройства на печатной плате + блок питания EU AC/DC + светодиодная лента

Скачать даташиты

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 Линейный преобразовательMIC5235-3.31 Поиск в FivelВ блокнот
U2 Микрофонный усилительMAX98141 Поиск в FivelВ блокнот
U3 МикроконтроллерMK10DX128VFM51 Поиск в FivelВ блокнот
U4 ДрайверFAN3111ESX1 Поиск в FivelВ блокнот
Q1 MOSFET-транзистор
BSZ086P03NS3E G
1 Поиск в FivelВ блокнот
Q2 MOSFET-транзистор
BSZ036NE2LS
1 Поиск в FivelВ блокнот
C1, C6 Конденсатор2.2 мкФ2 Поиск в FivelВ блокнот
C2, C3, C11 Конденсатор1 мкФ3 Поиск в FivelВ блокнот
C4, C5 Конденсатор0.47 мкФ2 Поиск в FivelВ блокнот
C7-C10 Конденсатор0.1 мкФ4 Поиск в FivelВ блокнот
C12 Конденсатор22 мкФ1 Поиск в FivelВ блокнот
R1, R2 Резистор
100 Ом
2 Поиск в FivelВ блокнот
R3 Резистор
2.2 кОм
1 Поиск в FivelВ блокнот
MK1 МикрофонCMC-5042PF-AC1 Поиск в FivelВ блокнот
D1 Подавитель статического зарядаPESD0603-2401 Поиск в FivelВ блокнот
L1 ДросельHI0805R800R-101 Поиск в FivelВ блокнот
L2, L3 ДросельMPZ1608S221A2 Поиск в FivelВ блокнот
J1 РазьёмPJ-002AH1 Поиск в FivelВ блокнот
J4-J8 КлеммникиOSTTC0201625 Поиск в FivelВ блокнот
Добавить все

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

Оригинал статьи

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

Теги:

Опубликована: 0 0
Я собрал 0 4
x

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

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

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

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

0
Алексей #
Здравствуйте! Данное устройство включается от свиста. А можно ли сделать, чтобы устройство включалось от разных частот, например анализировал звуковой диапазон и при нахождении частоты например 100Гц или 500Гц в интервале диапазона времени, включал реле?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Паяльная станция Hakko 936 Лазерный модуль 650нм 5мВт
вверх