Обновить
32K+
213

Embedded SW/Firmware Engineer

104,5
Рейтинг
541
Подписчики
Отправить сообщение

Вам не обязательно делать массив тесно поставленных излучателей и синхронное воспроизведение с формирование луча для того, чтобы определять направление на цель.

Можно сделать проще. Массив отдельных простых сонаров, расставленных на более существенном расстоянии друг от друга. Например 1-3 метра.

Или делать несколько последовательных измерений одним микрофоном и одним излучателем в разных местах вдоль прямой с известным шагом.

Получится набор из N коррелограмм.
На основе них можно математически рассчитать синтез апертуры и определить местоположение всех целей.

так выяснилось, что индуктивность штатной катушки на антенне - 1.34мГн.

Получилось измерить индуктивность.

Во-первых, отпаять от платы, чтобы ничего не мешало - концы, соответственно, уже без лака и с припоем.

Поздно. Уже оттяпал антенну бокорезами.

так выяснилось, что индуктивность штатной катушки на антенне - 1.34мГн.

Интересно как Вы измерили индуктивность катушки, если ее обмотка лакированная?
При подключении к тестеру на экране появляется No, unknown, on damaged part.

Как снять c концов обмоточной жилы лаковую изоляцию ?

E-диапазона (76 ГГц):

Как вообще генерируют такие огромные несущие частоты? Там что магнетрон работает?

Существуют ли готовые микросхемы радары?
RF-Front End.

По SPI загружать массивом семплов форму зондирующего импульса (ЛЧМ, ФКМ, и т п), конфигурировать несущую частоту, отправлять сигнал в эфир и тут же одновременно записывать эхо от целей в виде массива семплов.

Чтобы можно было подключать ASIC по SPI к микроконтроллеру (или процессору) и, тем самым, строить маломощные радарные приложения без FPGA.
Буквально работать в ближней зоне до 300 метров.

здесь в статье не совсем понятен механизм контроля,

Всё просто. Подергал подтяжку, измерил напряжения на ADC, проанализировал два числа, сделал вывод.

“он и ударился о небесную твердь.”

еще говорят “зарылся в атмосфере”

И килобит в секунду — это про радио. То, что видит наш софт, совсем другое: поверх радио сидит MQTT грида со своими контрольными суммами, поверх него наша обвязка, и всё это по очереди, туда-сюда. Очень много уходит на повторы и контроль ошибок при помехах. В итоге лучшее, что мы получали в космосе, — около 45 байт протокола верхнего уровня (то есть значимых) в секунду. Сорок пять байт! В секунду!

Не рассматривали отечественные 200 Mbit/s Downlink трансиверы?

High-speed X-band Downlink Transmitter 200 Msymb/s
https://www.sait-ltd.com/_files/ugd/3473d8_0f49fffb76a84281b98a79d0085088d4.pdf?index=true

“Ну и пришлось искать, как рассчитывать TLE самим: экстраполировать, подбирать баллистические модели, с полным геморроем. Видимо, военное время, американцы решили не делиться. Почему именно так и почему сейчас — непонятно. ОКБ написали американским военным. Те вежливо ответили: «Спасибо за ваш запрос, мы займёмся вашей проблемой». И, естественно, ничем не занялись. Тогда ОКБ срочно подключили МГУ, где есть подразделение, которое занимается космическими исследованиями и у которого своя методика движения небесных тел. Привет мехмату, кстати! По их модели стали вручную пересчитывать и корректировать те данные, что есть в TLE. Сделали несколько пробных замеров, вроде получается.”

Если бы Ваш спутник посылал радио-тон, то его можно было бы обнаружить и вычислить орбиту по частоте доплеровского смещения тона.
https://habr.com/ru/articles/813461/

не понимаю суть конечного автомата в данной интерпретации (давно, сильно давно мы их в универе проходили).

Конечные автоматы (FSM) сложно забыть.
В программировании микроконтроллеров FSM - это золотой шаблон проектирования.

Вот лишь малый перечень случаев, когда на практике пришлось проектировать FSM:

Обзор Протокола ISO-TP [ISO 15765-2] https://habr.com/ru/articles/798489/

Конечный Aвтомат Аппаратного I2C-Трансивера https://habr.com/ru/articles/856548/

Квантование на Триггерах Шмитта https://habr.com/ru/articles/1003262/

Конечный автомат инкрементного энкодера https://habr.com/ru/articles/1044930/

Принцип Определения Дальности Между UWB Трансиверами (Конечный Автомат Для DS-TWR) https://habr.com/ru/articles/723822/

Протокол TBFP https://habr.com/ru/articles/969948/

Пуск Беспроводной CLI на Микроконтроллере https://habr.com/ru/articles/929086/

Синтаксический разбор CSV строчек https://habr.com/ru/articles/765066/

Теория управления шаговым двигателем (или как вертеть PTZ камеру) https://habr.com/ru/articles/709500/

Техникум: Конечный Aвтомат Обработки Сигнала с Кнопки https://habr.com/ru/articles/760088/

Техникум: Распознавание Вещественного Числа из Строчки https://habr.com/ru/articles/757122/

Cross-Detect для Проверки Качества Пайки в Электронных Цепях https://habr.com/ru/articles/762142/

H-мост: Load Detect (или как выявлять вандализм) https://habr.com/ru/articles/709374/

Load-Detect для Проверки Качества Пайки https://habr.com/ru/articles/756572/

Что измеряют? Короткое замыкание - это токовый замер, обрыв - тоже токовый... Видимо стоит немного уточнить и дораскрыть тему.

load detect может преспокойно работать на измерениях напряжений. Измерять ток не обязательно.

Подключается или не подключается нагрузка (фара, фонарь, насос и так далее, диагностируется ошибка и выдаётся в виде кода ошибки или просто ничего не происходит?

Ну вот что-то мы выяснили, а потом...?

На прошлой работе у нас load-detect инициировал отправку на смартфон водителю автобуса push уведомления , если вандалы откручивали лампочки из фары.

Вовсе нет. Обыкновенная практическая задача и ее решение.

мы не можем определить КЗ в нагрузке. Нужен контроль тока.

Да. Однако некоторые экземпляры микросхем драйверов hi-side ключей обладают встроеннным амперметром. Например VNQ7E100AJ (Analog feedback of load current with high precision proportional current mirror).

Однако я не рекомендовал бы VNQ7E100AJ, так как он сигнал тока мультиплексирует с сигналом об ошибках.

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

Если можно через FFT, зачем FIR с n*n умножениями? 

Добавил и возможность вычислять свертку через FFT.
Получилось в 13 раз быстрее чем FIR фильтром!

bool sonar_fft_convolution(const char* const pulse_file_name, 
                           const char* const rec_file_name)

https://github.com/aabzel/trunk/blob/main/source/applications/sonar/sonar.c

Лог отработки программы

Ну и виртуозы!

Можно попробовать собрать can медиа конвертор. Вообще без микроконтроллера. Просто взять два чипа физики CAN трансивера и соединить их rx в tx. Подать питание.

Если можно через FFT, зачем FIR с n*n умножениями? Нужна низкая задержка?

Ответ тут.

https://docs.google.com/document/d/1dn7XiD1gflNLa3Fa8uzHeuW7kcJkWXkZej6qxXRT84k/edit?tab=t.0

Пока не получается.

Я прочитал теорему о свертке и попробовал вычислить свертку при помощи двух преобразований Фурье, перемножения спектров по правилу перемножения комплексных чисел и обратного преобразования Фурье.

И вычислить свертку по этой формуле

iDFT{    DFT( принятый сигнал) * [     комплексное сопряжение(  DFT(импульсный ЛЧМ-сигнал)   )    ]    }

Как и указано в формуле я предварительно сделал сопряжение комплексных чисел в спектре зондирующего импульса.

Опорный сигнал у меня:961 семплов 
Входная запись эхо:52800 семплов 
Я выровнял два сигнала до длины 53760 семплов
Как и было сказано в учебника Стивена Смитта “Цифровая Обработка Сигналов “

Количество гармоник, которые я рассчитываю равно 53759.

Вместо быстрого преобразования Фурье я использовал дискретное преобразования Фурье. Скорость вычислений меня пока не беспокоит. Хотелось бы просто получить корректный результат.

Однако на выходе iDFT я получил совсем не похожий результат на ту первоначальную светку, которую я предварительно на тех же данных рассчитал при помощи обыкновенного коррелятора.
Коррелограмма вычисленная при помощи преобразования Фурье совсем не совпадает с коррелограммой вычисленной при помощи коррелятора. FIR-фильтр работал, а DFT-метод нет.

Вот код вычисления DFT
https://github.com/aabzel/trunk/blob/main/source/computing/dsp/dft/dft.c

Вот функция sonar_dft_convolution вычисления свертка через DFT
https://github.com/aabzel/trunk/blob/main/source/applications/sonar/sonar.c
Где же ошибка?

1
23 ...

Информация

В рейтинге
56-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов