6.4 KiB
ЭУМиРТС5-ДДС
Репозиторий студента для одной лабораторной работы.
Дисциплина: Электронные устройства мехатронных и робототехнических систем (ЭУМиРТС), Б1.В.06 Специальность: 15.03.06 «Мехатроника и робототехника» Семестр: 5 · Объём: 4 часа
Название репозитория расшифровывается так:
| Часть | Значение |
|---|---|
eumirts |
ЭУМиРТС — электронные устройства мехатронных и робототехнических систем |
5 |
пятый семестр |
dds |
Direct Digital Synthesis — генератор на RP2040, который вы собираете |
Черновик. Требует проверки преподавателем перед выдачей студентам.
О чём работа
Работа состоит из двух частей:
A. Стенд. Вы собираете DDS-генератор на RP2040 (Raspberry Pi Pico) и скрипт автоматического снятия АЧХ. Готового лабораторного генератора со свипом не оказалось, поэтому измерительный прибор делается своими руками.
B. Исследование. Этим стендом вы снимаете характеристики трёх схем — интегратора на ОУ, дифференциатора на ОУ и пассивного RC-фильтра — и сравниваете эксперимент с расчётом по передаточным функциям.
Полное задание — в task.md.
Что в репозитории
eumirts5-dds/
├── README.md ← этот файл
├── task.md ← задание (части A и B)
├── stub/ ← заготовки: генераторы и скрипт
│ ├── 01-dds-generator-rp2040.ino ← вариант 1: Arduino C++
│ ├── 01-dds-generator-rp2040-circuitpython.py ← вариант 2: CircuitPython
│ ├── 04-dds-pio-rp2040.py ← вариант 3: PIO + DMA
│ ├── 02-izmerenie-achh.py ← автоснятие АЧХ (на ПК)
│ └── 03-blank-otchyota.md ← бланк отчёта
└── print/ ← брошюра задания (DOCX)
Какой вариант генератора выбрать
| Файл | Кому | Особенности |
|---|---|---|
01-...ip2040.ino |
есть Arduino IDE | программный DDS, работает на обоих ядрах |
01-...-circuitpython.py |
есть CircuitPython | то же, но медленнее (интерпретатор) |
04-dds-pio-rp2040.py |
рекомендуется | аппаратный PIO + DMA, точная частота, CPU свободен |
Для варианта на PIO нужна библиотека adafruit_pioasm в папке /lib
на плате.
Быстрый старт
- Прошить генератор. Файл переименовать в
code.py(для CircuitPython) или открыть в Arduino IDE (для.ino). - Открыть консоль, ввести
HELP— увидеть список команд. - Собрать ФНЧ на выходе генератора (схема в
HELP):
GP15 ──[R1 1к]──┬──[R2 1к]──┬──► к схеме
│ │
[C1 47н] [C2 47н]
│ │
GND GND
- Проверить сигнал:
W S(синус),F 1000, посмотреть осциллографом (период ≈ 1 мс). - Калибровать частоту, если нужно: ввести
CAL <измеренное_значение>. - Снять АЧХ скриптом
02-izmerenie-achh.py(запускается на ПК).
Основные команды генератора
| Команда | Что делает |
|---|---|
HELP или ? |
подробная справка со всеми командами и схемой |
I |
текущие настройки: частота, факт, потолок, CPC |
W S / W Q |
режим синуса / прямоугольника |
F <Гц> |
частота |
M <0..127> |
амплитуда синуса |
D <0..255> |
скважность прямоугольника |
A |
измерить размах на ADC0 (GP26) |
SWEEP f0 f1 n мс |
логарифмический свип |
B <1..8> |
число бит порта |
N <16..4096> |
длина периода в сэмплах |
O <1..64> |
точек на сэмпл |
CLC <1..8> / CAL <Гц> |
калибровка CPC вручную / автоматически |
FN <имя> / FP <выражение> |
форма сигнала из набора / своя формула |
Пины стенда
| Пин | Назначение |
|---|---|
| GP8..GP15 | выход генератора (данные выровнены по старшему биту, MSB → GP15) |
| GP15 | ШИМ в режиме прямоугольника (W Q) |
| GP16 | синхроимпульс для осциллографа |
| GP26 (A0) | вход измерения ADC |
Внимание: на вход ADC подавать не более 3,3 В. Сигнал больше — только через делитель.
Порядок сдачи
- Собрать и откалибровать стенд (часть A).
- Снять характеристики трёх схем (часть B).
- Заполнить
stub/03-blank-otchyota.md. - Ответить на контрольные вопросы (в конце
task.md).
Баллы по заданиям — в task.md, раздел «Оформление и оценивание».
Зачёт при 6 и более баллах из 10.