Compare commits
3 Commits
3d14c75365
...
49c7009ca5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49c7009ca5 | ||
|
|
9f7387ec2c | ||
|
|
923e6bec78 |
@@ -47,20 +47,80 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. Требования безопасности
|
## 4. Наличное оборудование
|
||||||
|
|
||||||
Обязательны к исполнению. Это правило 8 проекта, оно не формальное.
|
Подтверждено по состоянию на 10 августа 2026 года.
|
||||||
|
|
||||||
1. Выход передатчика соединяется с входом приёмника **только кабелем через аттенюатор**. Рекомендуемое ослабление 30 дБ.
|
| Позиция | Состояние |
|
||||||
2. **Антенну на передатчик не подключать.** Выход в эфир в этой лабораторной не выполняется ни при каких условиях.
|
|---|---|
|
||||||
3. Передатчик не включать при отключённом кабеле: выход без нагрузки вреден для оконечного каскада.
|
| **Pluto+** — SDR, 2 приёмника и 2 передатчика, гигабитный Ethernet | есть |
|
||||||
4. Усиление передатчика начинать с минимального и поднимать только при необходимости.
|
| RTL-SDR — приёмный донгл | есть, понадобится в Lab043 |
|
||||||
|
| Кабели SMA | будут найдены |
|
||||||
|
| Антенны: штыревые на магнитном основании, короткая штыревая | есть, **в Lab042 не используются** |
|
||||||
|
| Рамочная антенна Donut AM (0,5–2 МГц) | к проекту отношения не имеет |
|
||||||
|
| **Аттенюатор AT30S**, 30 дБ, до 200 Вт, разъёмы SMA | есть |
|
||||||
|
|
||||||
|
Аппаратных препятствий к началу работы нет. Запас по мощности у аттенюатора избыточен на много порядков — рассчитан на передатчики в сотни ватт, а у нас доли милливатта, — но это никак не мешает: ослабление от уровня сигнала не зависит.
|
||||||
|
|
||||||
|
Важно: устройство — **Pluto+**, а не оригинальный ADALM-PLUTO. Отличия, которые имеют значение:
|
||||||
|
|
||||||
|
- связь по Ethernet, а не по USB; адрес `ip:192.168.2.1` уже подтверждён работой Lab024a;
|
||||||
|
- два приёмных и два передающих канала; в Lab042 используется только первый канал каждого;
|
||||||
|
- класс `adi.Pluto` в Lab024a отработал на приёме. Начинать с него. Если передача на этом классе не пойдёт из-за двухканальности, перейти на `adi.ad9361` с тем же адресом. Это единственное разрешённое отступление от задания, и о нём нужно сообщить.
|
||||||
|
|
||||||
|
## 5. Требования к схеме и сохранности оборудования
|
||||||
|
|
||||||
|
Разрешения на работу в эфире у владельца проекта есть, вопрос законности здесь не рассматривается. Перечисленное ниже защищает оборудование и чистоту опыта.
|
||||||
|
|
||||||
|
1. **Антенны убрать со стола до начала работы.** Причина техническая: антенна на передатчике или приёмнике создаёт паразитный путь распространения параллельно кабельному. Уровень на входе приёмника перестаёт соответствовать расчёту, появляется переотражённый сигнал, и при отказе будет невозможно понять, что именно не сработало. Кабельная петля ценна тем, что в ней известно всё; антенна это свойство разрушает.
|
||||||
|
2. Передатчик не включать при отключённом кабеле: выход без нагрузки вреден для оконечного каскада.
|
||||||
|
3. Аттенюатор AT30S включается **в разрыв** между выходом передатчика и входом приёмника. Не параллельно, не на свободный порт — именно последовательно в тракт.
|
||||||
|
4. Перед первым включением передатчика убедиться глазами, что аттенюатор действительно в цепи. Это единственное, что стоит между опечаткой в настройке усиления и сгоревшим приёмником.
|
||||||
|
|
||||||
|
### Расчёт уровней
|
||||||
|
|
||||||
|
| Величина | Значение |
|
||||||
|
|---|---|
|
||||||
|
| Выход передатчика Pluto+ при усилении 0 дБ | около **+7 дБм** |
|
||||||
|
| Предельно допустимый уровень на входе приёмника | около **+2,5 дБм** |
|
||||||
|
| Ослабление аттенюатора | 30 дБ |
|
||||||
|
| Уровень на входе приёмника при усилении 0 дБ | около **−23 дБм** |
|
||||||
|
|
||||||
|
Вывод: **с аттенюатором в разрыве весь диапазон `tx_hardwaregain_chan0` от −89 до 0 дБ безопасен для приёмника.** Запас до порога повреждения составляет более 25 дБ даже в самом худшем случае.
|
||||||
|
|
||||||
|
**Порядок подбора усиления:**
|
||||||
|
|
||||||
|
1. Начать с `tx_hardwaregain_chan0 = -30`. Это даёт около −53 дБм на входе приёмника — заведомо чистый и заведомо безопасный уровень.
|
||||||
|
2. Если сигнал слишком слаб, поднимать шагами по 10 дБ.
|
||||||
|
3. Если созвездие разваливается при сильном сигнале — это насыщение приёмника, лечится **уменьшением** усиления, а не увеличением.
|
||||||
|
|
||||||
|
Без аттенюатора работать запрещено даже при малом усилении: защита нужна не от расчётного уровня, а от ошибки оператора.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Параметры тракта
|
## 6. Программное окружение: препятствие, которое надо снять первым
|
||||||
|
|
||||||
Все значения взяты из Lab018 и менять их в этой лабораторной **запрещено**. Причина: переход на железо сам по себе вносит достаточно неизвестных. Менять одновременно и параметры сигнала — значит потерять возможность понять причину отказа.
|
Проверка окружения 10 августа 2026 года показала следующее.
|
||||||
|
|
||||||
|
Интерпретатор, доступный в командной строке — `C:\Users\user\AppData\Local\Programs\Python\Python313\python.exe`, версия 3.13.1. В нём **отсутствуют `pyadi-iio` и `libiio`**, то есть работать с Pluto+ из него невозможно. Также отсутствует `scipy`, который нужен лабораторным Lab020–Lab022, Lab024b и Lab025.
|
||||||
|
|
||||||
|
При этом Lab024a когда-то отработала с настоящим устройством. Значит, существует второе окружение — по всей видимости, среда Anaconda, — где всё установлено, и запуск шёл оттуда.
|
||||||
|
|
||||||
|
**Первое действие исполнителя: определить, в каком окружении запускаются лабораторные, и зафиксировать это.** Пока это не сделано, невозможно ни повторить Lab024a, ни начать Lab042.
|
||||||
|
|
||||||
|
Требуется:
|
||||||
|
|
||||||
|
1. Найти окружение, где установлены `pyadi-iio` и `libiio`, и проверить связь с устройством.
|
||||||
|
2. Записать в отчёт: путь к интерпретатору, версию Python, версии `pyadi-iio` и `libiio`.
|
||||||
|
3. Если такого окружения нет — установить `pyadi-iio` и `libiio`, зафиксировав версии.
|
||||||
|
|
||||||
|
Расчётные лабораторные, включая Lab041, в окружении без `pyadi-iio` запускаются нормально — им нужны только `numpy`, `matplotlib` и `opencv`. Разделение аппаратных и расчётных зависимостей относится к этапу стабилизации и в Lab042 не решается, но результат проверки надо записать: он понадобится при составлении описания окружения.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Параметры тракта
|
||||||
|
|
||||||
|
Значения тракта взяты из Lab018 и менять их в этой лабораторной **запрещено**. Причина: переход на железо сам по себе вносит достаточно неизвестных. Менять одновременно и параметры сигнала — значит потерять возможность понять причину отказа.
|
||||||
|
|
||||||
| Параметр | Значение | Источник |
|
| Параметр | Значение | Источник |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -84,7 +144,7 @@
|
|||||||
| Несущая передачи и приёма | 435 МГц | обе одинаковые |
|
| Несущая передачи и приёма | 435 МГц | обе одинаковые |
|
||||||
| Частота дискретизации | 640 000 | совпадает с трактом |
|
| Частота дискретизации | 640 000 | совпадает с трактом |
|
||||||
| Полоса радиочастотного тракта | 200 000 Гц | минимум Pluto, сигнал занимает около 27 кГц |
|
| Полоса радиочастотного тракта | 200 000 Гц | минимум Pluto, сигнал занимает около 27 кГц |
|
||||||
| Усиление передатчика | начать с −40 дБ | допустимый диапазон от −89 до 0 |
|
| Усиление передатчика | начать с −30 дБ | с аттенюатором безопасен весь диапазон, см. раздел 5 |
|
||||||
| Режим усиления приёмника | `manual` | автоматика мешает измерениям |
|
| Режим усиления приёмника | `manual` | автоматика мешает измерениям |
|
||||||
| Усиление приёмника | начать с 20 дБ | подобрать по амплитуде |
|
| Усиление приёмника | начать с 20 дБ | подобрать по амплитуде |
|
||||||
| Циклический буфер передачи | **выключен** | см. раздел 7 |
|
| Циклический буфер передачи | **выключен** | см. раздел 7 |
|
||||||
@@ -93,7 +153,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. Порядок работы
|
## 8. Порядок работы
|
||||||
|
|
||||||
**Передающая сторона**
|
**Передающая сторона**
|
||||||
|
|
||||||
@@ -116,7 +176,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. Ловушки, на которых спотыкаются в первый раз
|
## 9. Ловушки, на которых спотыкаются в первый раз
|
||||||
|
|
||||||
Перечислено то, что почти наверняка будет сделано неправильно без предупреждения.
|
Перечислено то, что почти наверняка будет сделано неправильно без предупреждения.
|
||||||
|
|
||||||
@@ -136,7 +196,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. Что считается выполненной работой
|
## 10. Что считается выполненной работой
|
||||||
|
|
||||||
Лабораторная принимается, если выполнено всё перечисленное.
|
Лабораторная принимается, если выполнено всё перечисленное.
|
||||||
|
|
||||||
@@ -158,7 +218,7 @@
|
|||||||
| Полное время передачи, секунды | измерение |
|
| Полное время передачи, секунды | измерение |
|
||||||
| Фактическая полезная скорость, кбит/с | расчёт из двух предыдущих |
|
| Фактическая полезная скорость, кбит/с | расчёт из двух предыдущих |
|
||||||
| Усиление передатчика и приёмника | из настроек устройства |
|
| Усиление передатчика и приёмника | из настроек устройства |
|
||||||
| Ослабление аттенюатора, дБ | из состава схемы |
|
| Ослабление аттенюатора, дБ | 30, AT30S |
|
||||||
|
|
||||||
**Обязательные файлы в `data/processed/lab042`**
|
**Обязательные файлы в `data/processed/lab042`**
|
||||||
|
|
||||||
@@ -178,14 +238,14 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 9. Что в этой лабораторной делать не надо
|
## 11. Что в этой лабораторной делать не надо
|
||||||
|
|
||||||
Перечислено, чтобы не расширять объём.
|
Перечислено, чтобы не расширять объём.
|
||||||
|
|
||||||
- Не реализовывать повторную передачу потерянных фрагментов. Потери фиксируются, но не восстанавливаются.
|
- Не реализовывать повторную передачу потерянных фрагментов. Потери фиксируются, но не восстанавливаются.
|
||||||
- Не подключать исправление стираний из `protocol/packet_erasure_fec.py`.
|
- Не подключать исправление стираний из `protocol/packet_erasure_fec.py`.
|
||||||
- Не поднимать скорость и не менять модуляцию.
|
- Не поднимать скорость и не менять модуляцию.
|
||||||
- Не выходить в эфир и не подключать антенну.
|
- Не выходить в эфир и не подключать антенну. Это вопрос не разрешений, а объёма: эфирная передача — предмет Lab044, и смешивать её с первым включением передатчика нельзя.
|
||||||
- Не работать с двумя устройствами.
|
- Не работать с двумя устройствами.
|
||||||
- Не трогать логику сеансов, аварийной остановки и приоритетов — она к передаче картинки отношения не имеет.
|
- Не трогать логику сеансов, аварийной остановки и приоритетов — она к передаче картинки отношения не имеет.
|
||||||
|
|
||||||
@@ -193,18 +253,18 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. Порядок приёмки
|
## 12. Порядок приёмки
|
||||||
|
|
||||||
1. Исполнитель выполняет работу и сообщает о готовности.
|
1. Исполнитель выполняет работу и сообщает о готовности.
|
||||||
2. Проверяется `python tools/quick_gate.py` — должен проходить.
|
2. Проверяется `python tools/quick_gate.py` — должен проходить.
|
||||||
3. Проводится аудит: соответствие разделу 8, отсутствие вписанных результатов, происхождение каждого числа в отчёте.
|
3. Проводится аудит: соответствие разделу 10, отсутствие вписанных результатов, происхождение каждого числа в отчёте.
|
||||||
4. При наличии замечаний они оформляются списком с указанием файла и строки.
|
4. При наличии замечаний они оформляются списком с указанием файла и строки.
|
||||||
5. После приёмки в `PROJECT_LOG.md` добавляется новая запись по принятому в проекте образцу.
|
5. После приёмки в `PROJECT_LOG.md` добавляется новая запись по принятому в проекте образцу.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 11. Что дальше
|
## 13. Что дальше
|
||||||
|
|
||||||
- **Lab043** — разведение на два устройства: передаёт PlutoSDR, принимает RTL-SDR. Появляется настоящий уход несущей частоты и расхождение часов. Здесь понадобятся Lab021–Lab023.
|
- **Lab043** — разведение на два устройства: передаёт PlutoSDR, принимает RTL-SDR. Появляется настоящий уход несущей частоты и расхождение часов. Здесь понадобятся Lab021–Lab023.
|
||||||
- **Lab044** — выбор рабочего диапазона и первый выход в эфир на малой мощности.
|
- **Lab044** — выбор рабочего диапазона и первый выход в эфир на малой мощности. Разрешения имеются, поэтому вопрос сводится к техническому выбору диапазона, мощности и антенны.
|
||||||
- Повышение скорости, исправление стираний и передача последовательности кадров — после того, как картинка устойчиво проходит.
|
- Повышение скорости, исправление стираний и передача последовательности кадров — после того, как картинка устойчиво проходит.
|
||||||
|
|||||||
Reference in New Issue
Block a user