2026-10-27 20:23:07 +04:00
|
|
|
|
# ЭУМиРТС5-ДДС
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
Репозиторий студента для одной лабораторной работы.
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
**Дисциплина:** Электронные устройства мехатронных и робототехнических
|
|
|
|
|
|
систем (ЭУМиРТС), Б1.В.06
|
|
|
|
|
|
**Специальность:** 15.03.06 «Мехатроника и робототехника»
|
|
|
|
|
|
**Семестр:** 5 · **Объём:** 4 часа
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
Название репозитория расшифровывается так:
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
| Часть | Значение |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| `eumirts` | ЭУМиРТС — электронные устройства мехатронных и робототехнических систем |
|
|
|
|
|
|
| `5` | пятый семестр |
|
|
|
|
|
|
| `dds` | Direct Digital Synthesis — генератор на RP2040, который вы собираете |
|
|
|
|
|
|
|
|
|
|
|
|
> Черновик. Требует проверки преподавателем перед выдачей студентам.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## О чём работа
|
|
|
|
|
|
|
|
|
|
|
|
Работа состоит из двух частей:
|
|
|
|
|
|
|
|
|
|
|
|
**A. Стенд.** Вы собираете DDS-генератор на RP2040 (Raspberry Pi Pico) и
|
|
|
|
|
|
скрипт автоматического снятия АЧХ. Готового лабораторного генератора со
|
|
|
|
|
|
свипом не оказалось, поэтому измерительный прибор делается своими руками.
|
|
|
|
|
|
|
|
|
|
|
|
**B. Исследование.** Этим стендом вы снимаете характеристики трёх схем —
|
|
|
|
|
|
интегратора на ОУ, дифференциатора на ОУ и пассивного RC-фильтра — и
|
|
|
|
|
|
сравниваете эксперимент с расчётом по передаточным функциям.
|
|
|
|
|
|
|
|
|
|
|
|
Полное задание — в **[task.md](task.md)**.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Что в репозитории
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
|
|
|
|
|
```
|
2026-10-27 20:23:07 +04:00
|
|
|
|
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)
|
2026-10-26 15:19:12 +04:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
### Какой вариант генератора выбрать
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
| Файл | Кому | Особенности |
|
|
|
|
|
|
|---|---|---|
|
|
|
|
|
|
| `01-...ip2040.ino` | есть Arduino IDE | программный DDS, работает на обоих ядрах |
|
|
|
|
|
|
| `01-...-circuitpython.py` | есть CircuitPython | то же, но медленнее (интерпретатор) |
|
|
|
|
|
|
| `04-dds-pio-rp2040.py` | **рекомендуется** | аппаратный PIO + DMA, точная частота, CPU свободен |
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
Для варианта на PIO нужна библиотека `adafruit_pioasm` в папке `/lib`
|
|
|
|
|
|
на плате.
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
---
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
## Быстрый старт
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
1. **Прошить генератор.** Файл переименовать в `code.py` (для CircuitPython)
|
|
|
|
|
|
или открыть в Arduino IDE (для `.ino`).
|
|
|
|
|
|
2. **Открыть консоль**, ввести `HELP` — увидеть список команд.
|
|
|
|
|
|
3. **Собрать ФНЧ** на выходе генератора (схема в `HELP`):
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
|
|
|
|
|
```
|
2026-10-27 20:23:07 +04:00
|
|
|
|
GP15 ──[R1 1к]──┬──[R2 1к]──┬──► к схеме
|
|
|
|
|
|
│ │
|
|
|
|
|
|
[C1 47н] [C2 47н]
|
|
|
|
|
|
│ │
|
|
|
|
|
|
GND GND
|
2026-10-26 15:19:12 +04:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
4. **Проверить сигнал:** `W S` (синус), `F 1000`, посмотреть осциллографом
|
|
|
|
|
|
(период ≈ 1 мс).
|
|
|
|
|
|
5. **Калибровать частоту**, если нужно: ввести `CAL <измеренное_значение>`.
|
|
|
|
|
|
6. **Снять АЧХ** скриптом `02-izmerenie-achh.py` (запускается на ПК).
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
---
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
## Основные команды генератора
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
| Команда | Что делает |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| `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 <выражение>` | форма сигнала из набора / своя формула |
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
---
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
## Пины стенда
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
| Пин | Назначение |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| GP8..GP15 | выход генератора (данные выровнены по старшему биту, MSB → GP15) |
|
|
|
|
|
|
| GP15 | ШИМ в режиме прямоугольника (`W Q`) |
|
|
|
|
|
|
| GP16 | синхроимпульс для осциллографа |
|
|
|
|
|
|
| GP26 (A0) | вход измерения ADC |
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
**Внимание:** на вход ADC подавать не более **3,3 В**. Сигнал больше —
|
|
|
|
|
|
только через делитель.
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
---
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
## Порядок сдачи
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
1. Собрать и откалибровать стенд (часть A).
|
|
|
|
|
|
2. Снять характеристики трёх схем (часть B).
|
|
|
|
|
|
3. Заполнить `stub/03-blank-otchyota.md`.
|
|
|
|
|
|
4. Ответить на контрольные вопросы (в конце `task.md`).
|
2026-10-26 15:19:12 +04:00
|
|
|
|
|
2026-10-27 20:23:07 +04:00
|
|
|
|
Баллы по заданиям — в `task.md`, раздел «Оформление и оценивание».
|
|
|
|
|
|
Зачёт при **6 и более** баллах из 10.
|