dig: lab_3_ardu [Tobi Delbruck wiki]

  1. Лаборатория 3 В этом упражнении давайте построим микрофонный предусилитель на плате, получим аудиосигналы...
  2. Стартовый проект Arduino
  3. ШИМ - широтно-импульсная модуляция
  4. Выборка аудио и обработка сигналов
  5. Отладка переключением GPIO
  6. Преобразование входа микрофона
  7. Обработка сигнала
  8. Желаемое поведение

Лаборатория 3

В этом упражнении давайте построим микрофонный предусилитель на плате, получим аудиосигналы на ATmega328P с помощью АЦП, обработаем слуховой сигнал для измерения среднеквадратичной мощности (громкости звука), а затем используем среднюю громкость звука за последние несколько сотен мс времени, чтобы установить положение серводвигателя. В lab_4 Вы превратите свой прототип в схему печатной платы.

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

Шаги для этого упражнения

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

  1. Нарисуйте схему (блок-схему) вашего приложения, включая преобразование AD, сервоуправление, обработку сигналов. Какая периферия от ATmega328P вам понадобится?

  2. Начать новый проект Arduino.

  3. использование analogRead () функция, которая использует АЦП для чтения выходного сигнала предусилителя микрофона.
  4. Напишите код DSP (цифровая обработка сигналов) для обработки выборок АЦП для контроля положения сервопривода.

  5. Документируйте свой код с комментариями.

  6. Продемонстрируйте свою рабочую систему Tobi и отправьте ваш проект по электронной почте в виде zip (или .7z) архива Тоби Дельбрюк ,
  • UC - Arduino для программных инструментов микроконтроллера и пример установки прошивки
  • сервоприводы - информация о хобби серводвигателях RC

Стартовый проект Arduino

Самый простой способ начать - открыть базовый пример из меню «Файл» и использовать его в качестве шаблона, например, 01-Basic⇒Blink.

Давайте изменим этот эскиз так, чтобы мы генерировали подходящий выходной сигнал сервопривода в ответ на дискретизированные звуки от АЦП.

Контакты заголовка, которые мы вставляем в макетную плату без припоя, находятся здесь:

ШИМ - широтно-импульсная модуляция

  1. Выберите новый выходной контакт ШИМ для ваших серво выходных импульсов. Глядя на Arduino Nano электрическая схема а также таблица данных ATmega328P Мы видим, что плата nano-платы жестко соединяет PB5 (D13) с желтым светодиодным анодом, сигнал PD0 (D0) с UART RX и сигнал PD1 (D1) с UART TX. Это контакты 17, 30 и 31 на ATmega328P. Если вы внимательно посмотрите в таблице данных, вы обнаружите, что не все цифровые контакты заголовков Arduino Nano могут быть использованы. Выясните, какой таймер / счетчик используется библиотекой сервоприводов, а затем выберите правильный вывод.

Выясните, какой таймер / счетчик используется библиотекой сервоприводов, а затем выберите правильный вывод

Вот краткий пример использования библиотеки сервоприводов:

#include <Servo.h> int led = 13; char i = 0; // Вы можете создать новую переменную типа Servo, которая соответствует объекту несколькими полезными методами. Сервомеханизм; // процедура установки запускается один раз, когда вы нажимаете reset: void setup () {// инициализируете цифровой вывод как выход. pinMode (led, INPUT); // инициализировать сервопривод на выводе D9, минимальное максимальное время 1 мс и максимальное 2 мс. myservo. приложить (9, 1000, 2000); // начать с ШИМ-сигнала периода 20 мс (значение по умолчанию) и 1 мс высокого времени (0 градусов). написать (0); } // процедура цикла выполняется снова и снова навсегда: void loop () {delay (10); // ждать 10 миллисекунд myservo. написать (я% 180); // обновить ШИМ для сервоконтроллера новым рабочим циклом (высокое время)}

Чтобы увидеть, что все это значит, посмотрите на следующую блок-схему из таблицы. Существует три таймера, которые можно использовать для генерации до 6 сигналов ШИМ, но для сервоуправления можно использовать только Таймер 1 из-за требований к сигналу периода ШИМ сервопривода. Каждый таймер имеет два генератора сигналов (A и B). В зависимости от значения таймера и значений регистров OCR1A или OCR1B генерируется сигнал ШИМ. Timer1 переполняет выходной сигнал сброса генератора сигналов, и когда Timer1 достигает значения, сохраненного в регистре OCR1x, генератор сигналов инвертирует состояние выходного сигнала.

Источник часов Timer1 может поступать извне (внешний вывод T1) или это могут быть предварительно масштабированные часы из схемы системных часов микроконтроллера. Таймер1 имеет несколько режимов работы, которые допускают разные разрешения по частоте для сигналов ШИМ. Счетчик может быть использован в одном направлении (после того, как счетчик TOP достигнут, он изменяется на BOTTOM и запускается снова), или в двух направлениях (от подсчета BOTTOM до TOP, а затем от обратного отсчета TOP до BOTTOM, получая двойное разрешение).

Вы можете попробовать его с серводвигателем, используя USB VBUS + 5V для питания сервопривода и длинный контактный разъем для подключения к плате и сервоприводу, следуя приведенным выше инструкциям в соответствии с вашим типом сервопривода. Используйте электролитический конденсатор емкостью 10000 мкФ и блокирующий диод 1N4007, чтобы обойти VBUS на землю на плате, иначе вы получите огромное количество шумов двигателя, появляющихся в VBUS! Вы получите около 4 В для питания сервопривода, который находится на нижней стороне, но он все еще должен работать.

Выборка аудио и обработка сигналов

Мы уже построили схему предусилителя микрофона на плате, используя микрофон JEFT ( техническая спецификация ), резисторы, конденсаторы и LM324N Quad Opamp ,

Теперь давайте напишем основной цикл, который дискретизирует вход микрофона, вычисляет среднеквадратичный уровень звука, фильтрует его нижние частоты и устанавливает сервопривод в соответствии с этой громкостью звука. В идеале вы должны производить выборку с обычной скоростью, установленной прерыванием по таймеру. Помните, что Timer1 уже используется генератором ШИМ и что Timer0 используется некоторыми внутренними функциями Arduino (например, с задержкой 1), поэтому давайте использовать оставшийся таймер для управления правильной частотой дискретизации для АЦП Timer2. Для того, чтобы легко управлять Timer2, вы можете скачать Библиотека MsTimer2 и установите его в папку Arduino / библиотеки, разархивировав там этот zip-файл. Каждый раз, когда вы устанавливаете новую библиотеку в папку с библиотеками, вы должны перезапускать программное обеспечение Arduino. Затем вы можете использовать его в своем коде, как в этом примере:

#include <MsTimer2.h> // процедура установки запускается один раз, когда вы нажимаете reset: void setup () {// инициализируйте переполнение timer2 и функцию, которая будет вызываться во время ISR. MsTimer2 :: set (1000, t2_ovf); MsTimer2 :: start (); } // подпрограмма цикла выполняется снова и снова навсегда: void loop () {// ждем значения АЦП и обрабатываем его, используя цепочку DSP. } void t2_ovf () {// сделать что-то вроде установки ФЛАГА для цикла чтения АЦП}

Псевдокод для обработки сигнала должен выглядеть следующим образом:

  1. Получить образец АЦП

  2. Обновите среднее значение выборки. Нам нужно вычесть это из выборки, чтобы получить отклонение от среднего.

  3. Вычислите квадрат разности выборки от среднего замирания.

  4. Обновите среднеквадратичное значение затухания.

  5. Используйте это значение для установки положения сервопривода.

Помните, что у вас есть только оборудование с фиксированной точкой. Выборки АЦП представляют собой 10 битов, выраженных как 10 фунтов значения int . Вы можете добавить несколько 10-битных значений в 16-битное значение или перейти к длинной переменной

Отладка переключением GPIO

Вы используете строку C-кода, чтобы инвертировать состояние вывода для целей отладки:

digitalWrite (11,! digitalRead (11));

Этот вызов переключает D11. Вы можете отслеживать D11 на осциллографе, чтобы увидеть, как программа попадает в эту строку кода и как часто / быстро она это делает.

Преобразование входа микрофона

Мы рекомендуем две возможные процедуры использования АЦП:

1. analogRead (n): эта функция будет возвращать 10-разрядное значение, полученное от АЦП, после завершения преобразования. Ничто не может быть сделано процессором во время преобразования.

adcval = analogRead (0); dsp_process (adcval);

2. используя ISR: вы можете запустить АЦП и выполнить другой код во время работы АЦП. Вам необходимо запрограммировать ISR, чтобы продолжить работу с преобразованным значением АЦП. Этот ISR будет выполняться каждый раз, когда заканчивается АЦП.

void adc_start () {ADCSRA = B11001111; } ISR (ADC_vect) {unsigned char adc_l = ADCL; знак без знака adc_h = ADCH; adcval = adc_h * 256 + adc_l; dsp_process (adcval); }

Обработка сигнала

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

Вам, вероятно, следует выполнять обработку сигналов, используя 32-битные целые числа со знаком и без знака ( int и unsigned int , или S32 и U32 ). В complier.h вы можете найти эти удобные определения:

typedef со знаком char S8; //! <8-разрядное целое число со знаком. typedef unsigned char U8; //! <8-битное целое число без знака. typedef с короткой подписью int S16; //! <16-разрядное целое число со знаком. typedef unsigned short int U16; //! <16-разрядное целое число без знака. typedef со знаком long int S32; //! <32-разрядное целое число со знаком. typedef unsigned long int U32; //! <32-разрядное целое число без знака. typedef подписал long long int S64; //! <64-разрядное целое число со знаком. typedef unsigned long long int U64; //! <64-разрядное целое число без знака. typedef float F32; //! <32-битное число с плавающей точкой. typedef double F64; //! <64-битное число с плавающей точкой.

Некоторые советы по обработке сигналов с использованием фиксированной точки:

  • Чтобы умножить на дробь, умножьте на числитель и затем разделите на знаменатель.

  • Остерегайтесь переполнения, так как они будут обтекать.

  • Деление на ноль не приведет ни к какому исключению.

  • Быстрое деление или умножение на степени 2 осуществляется с помощью операторов сдвига «или».

Желаемое поведение

Ваша демка должна в конечном итоге реагировать на кратковременное увеличение громкости звука, поворачивая сервопривод. Вы можете установить руку и руку на сервопривод, используя один из сервомашин и немного горячего клея, например, чтобы создать руку «БЕСШУМНО».

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

Если вам, наконец, придется отказаться от нехватки времени или успеха, посмотрите, как заставить работать приложение mic-servo ,

Документация

Похожие

Аудио инструментарий: Creative Sound Blaster Roar SR20 Страница 2
Примечание по выравниванию и приложениям Два раза в прошлом месяце я сталкивался с интеллектуальными потоковыми
Creative Labs хочет, чтобы люди снова полюбили звук ПК. Это сложная задача в то время, когда даже геймеры, кот...
Creative Labs хочет, чтобы люди снова полюбили звук ПК. Это сложная задача в то время, когда даже геймеры, которые теряют большие деньги на обновлениях видеокарт, считают звуковые карты анахронизмом. Стратегия Creative: Покройте все базы новым семейством USB-аудиоустройств и усилителей для наушников по цене от 50 до 400 долларов. С момента публикации этой истории мы подготовили обширный практический обзор Sound Blaster X7 по адресу
Аудио драйверы повреждены после последнего обновления Windows 10 для некоторых пользователей
Windows 10 Октябрь 2018 Обновление вызывает проблемы со звуком на определенных компьютерах, когда пользователи сообщают об ошибке «Устройство вывода звука не установлено». Кажется, есть простой способ вернуться к функциональной аудиосистеме, поскольку сотрудник Microsoft поделился трюком, который поможет вам преодолеть эту ситуацию. Несколько пользователей сообщили о проблема на
Сравнительный тест: Citroën DS4 1.6 THP 200 л.с. Volvo V40 T4 1.6 180 л.с.
... ить гегемонию Германии в сегменте компактных седанов премиум-класса, Citroën DS4 и Volvo V40 являются отличной альтернативой бестселлерам на рынке. Красивые, хорошо оборудованные и эффективные на дороге, у каждого из участников дня есть своя философия. Более спортивный для французов, больше семьи для шведа. Место для матча! Сильно отставая от многофункционального сегмента городских автомобилей и его доли рынка в 36,8%, категория компактных седанов по-прежнему выходит из игры с увеличением
Lenovo YOGA 310-11IAP (80U2005EPB) Белый
офис 365 Personal (годовая подписка) На этом устройстве предустановлено полное программное обеспечение Office 365 Personal (годовая подписка), которое должно быть активировано в течение 6 месяцев после запуска системы. Windows , * В рамках Office 365 Personal вы получаете 1 ТБ дискового пространства
Sony Ericsson W995 в тесте: Walkman и камера телефона
... обработка Подключение к компьютеру Walkman функции испытание слуха
Проект вентиляции - руководство по восстановлению в односемейных домах
Руководящие принципы для системы вентиляции с рекуперацией тепла в односемейных домах были подготовлены в рамках деятельности Вентиляционной группы в односемейных

Комментарии

Потому что - давайте будем честными, ладно?
Потому что - давайте будем честными, ладно? - никто никогда не покупал суперкар, потому что они хотят обойти Нюрбургринг за четыре секунды. Суперкары способны развивать скорость до 200 миль в час, но их покупают, в основном, за 1% этой скорости в Найтсбридже. И когда дело доходит до бродяжничества, ничто не выглядит так же хорошо, как у большого Ламбо. Это шедевр. И почему вы беспокоитесь об основах Audi, которые я начал с этого? Что бы вы предпочли? Итальянская электрика?
Какие цвета самые модные в этом году?
Какие цвета самые модные в этом году? Ставка на специальные желтые, красные, фуксии и васильки. Интересным выбором будут также бирюзовые модели и оттенки фиолетового - ознакомьтесь с предложениями от Lamoda.pl. Что касается кроя, просто выберите крой, который идеально подходит под вашу фигуру, и порадуйте гостей радостной стилизацией. Толстые платья идеально подходят для семейных торжеств Вы ищете платье размера XXL, где вы будете чувствовать себя действительно особенным?
Тебе действительно нужны знания об этом?
Тебе действительно нужны знания об этом? Википедия скажет вам, что «осознанность является преднамеренной, принимающей и не осуждающей концентрации вашего внимания на эмоциях, мыслях и ощущениях, возникающих в данный момент». Вики также дает вам много других определений и предполагает, что эта концепция исходит из дальневосточных практик медитации. Один из моих коллег, Роб
Аудио ренессанс?
Аудио ренессанс? Я думаю, что мы находимся в разгар компьютерного аудио ренессанса. Ad Lib, а затем Creative вывели нас из темной эры аудиосигналов на ПК, когда компьютеры генерировали только звуковые сигналы. В средние века (середина и конец 1990-х годов) произошли огромные улучшения в игровом звуке, когда Aureal Semiconductor и Creative боролись за то, чтобы выяснить, кто может создавать лучшие позиционные аудиоэффекты для компьютерных игр (Creative в конечном итоге победил, хотя победа

Какая периферия от ATmega328P вам понадобится?
Потому что - давайте будем честными, ладно?
И почему вы беспокоитесь об основах Audi, которые я начал с этого?
Что бы вы предпочли?
Итальянская электрика?
Какие цвета самые модные в этом году?
Какие цвета самые модные в этом году?
Толстые платья идеально подходят для семейных торжеств Вы ищете платье размера XXL, где вы будете чувствовать себя действительно особенным?
Тебе действительно нужны знания об этом?
Тебе действительно нужны знания об этом?

Разделы

» Ваз

» Двигатель

» Не заводится

» Неисправности

» Обзор

» Новости


Календарь

«    Август 2017    »
ПнВтСрЧтПтСбВс
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Архив

О сайте

Затраты на выполнение норм токсичности автомобилей в США на период до 1974 г.-1975 г произошли существенные изменения. Прежде всего следует отметить изменение характера большинства работ по электромобилям: работы в подавляющем большинстве стали носить чисто утилитарный характер. Большинство созданных в начале 70х годов электромобилей поступили в опытную эксплуатацию. Выпуск электромобилей в размере нескольких десятков штук стал обычным не только для Англии, но и для США, ФРГ, Франции.

ПОПУЛЯРНОЕ

РЕКЛАМА

www.school4mama.ru © 2016. Запчасти для автомобилей Шкода