Монк - Программируем Arduino. Профессиональная работа со скетчами.

Здесь есть возможность читать онлайн «Монк - Программируем Arduino. Профессиональная работа со скетчами.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Издательский дом Питер, Жанр: Программирование, Компьютерное железо, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программируем Arduino. Профессиональная работа со скетчами.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программируем Arduino. Профессиональная работа со скетчами.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.

Программируем Arduino. Профессиональная работа со скетчами. — читать онлайн бесплатно полную книгу (весь текст) целиком

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Рис 135Воспроизведение сигнала с частотой 1 кГц платой Arduino Uno Цифровая - фото 87

Рис. 13.5.Воспроизведение сигнала с частотой 1 кГц платой Arduino Uno

Цифровая обработка сигналов в Arduino Due

Теперь проведем тот же эксперимент с платой Arduino Due, способной производить замеры с более высокой частотой. Код для модели Uno из предыдущего раздела нельзя использовать с платой Due, так как она имеет иную архитектуру, не позволяющую использовать библиотеку TimerOne.

Аналоговые входы в модели Due способны принимать сигнал с напряжением до 3,3 В, поэтому сопротивление R 1 следует подключить к контакту питания 3.3V, а не 5V. Так как Due имеет истинный аналоговый выход, можно убрать низкочастотный RC -фильтр на элементах R 3 и C 2 и подключить осциллограф непосредственно к контакту DAC0. На рис. 13.6 изображена схема подключения Due.

Рис 136Использование Arduino Due для цифровой обработки сигнала Следующий - фото 88

Рис. 13.6.Использование Arduino Due для цифровой обработки сигнала

Следующий скетч выполняет замеры с частотой 100 кГц!

// sketch_13_04_null_filter_due

const long samplePeriod = 10L; // микросекунды

const int analogInPin = A0;

const int analogOutPin = DAC0;

void setup()

{

// http://www.djerickson.com/arduino/

REG_ADC_MR = (REG_ADC_MR & 0xFFF0FFFF) | 0x00020000;

analogWriteResolution(8);

analogReadResolution(8);

}

void loop()

{

static long lastSampleTime = 0;

long timeNow = micros();

if (timeNow > lastSampleTime + samplePeriod)

{

int raw = analogRead(analogInPin);

analogWrite(analogOutPin, raw);

lastSampleTime = timeNow;

}

}

В отличие от других моделей, Arduino Due позволяет изменять разрешение АЦП и ЦАП. Для простоты и скорости оба настраиваются на разрешение 8 бит.

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

REG_ADC_MR = (REG_ADC_MR & 0xFFF0FFFF) | 0x00020000;

Для управления частотой замеров скетч использует функцию micros. То есть замеры выполняются только по прошествии довольно большого числа микросекунд.

На рис. 13.7 показано, как эта схема воспроизводит входной сигнал с частотой 5 кГц. Как видите, в выходном сигнале имеются ступеньки, образованные 20 замерами на цикл, следующими с частотой 100 кГц.

Рис 137Воспроизведение сигнала с частотой 5 кГц платой Arduino Due - фото 89

Рис. 13.7.Воспроизведение сигнала с частотой 5 кГц платой Arduino Due

Генератор реализаций фильтров

Если потребуется организовать более сложную фильтрацию, обратитесь к онлайн-генератору кода, с помощью которого вы сможете спроектировать фильтр и скопировать строки сгенерированного кода в свой скетч. Найти генератор можно по адресу http://www.schwietering.com/jayduino/filtuino/.

Альтернативой ему является изучение сложнейших математических приемов!

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

В вашем распоряжении имеется масса параметров для настройки будущего фильтра. На рис. 13.8 демонстрируется проект полосового фильтра, целью применения которого является уменьшение амплитуды сигнала на частотах от 1 до 1,5 кГц. Начнем с первого ряда параметров в верхней части: Butterworth, band stop и 1st order. Butterworth (фильтр Баттерворта) — это конструкция фильтра, название которого соответствует оригиналу из электроники ( https://ru.wikipedia.org/wiki/Фильтр_Баттерворта). Фильтр Баттерворта хорошо подходит для разных целей и считается хорошим выбором по умолчанию.

Я также выбрал параметр 1st order (первого порядка). Большее значение этого параметра приведет к увеличению числа хранимых предшествующих замеров и крутизны затухания амплитудно-частотной характеристики (АЧХ) на частотах полосы подавления. Для данного примера вполне подойдет значение 1st order. Увеличение порядка потребует выполнения дополнительных вычислений и, возможно, уменьшения частоты следования замеров, чтобы плата Arduino успевала делать это.

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

Далее я определил верхний и нижний пороги полосы подавления. В эти поля можно вводить частоту в герцах или ноту MIDI.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программируем Arduino. Профессиональная работа со скетчами.»

Представляем Вашему вниманию похожие книги на «Программируем Arduino. Профессиональная работа со скетчами.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программируем Arduino. Профессиональная работа со скетчами.»

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

x