roboforum.ru

Технический форум по робототехнике.


Доплеровский пеленгатор на Аtmega128

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 09 июн 2009, 22:19

Привет всем!
Разрабатываю пеленгатор УКВ частоты (150-170 МГц).
В качестве контроллера выбрал Atmega128 который будет заниматься следующим:
1. Переключать по кругу (4 или 8 антенн)(1,2,3,4,5,6,7,8,1....)
2. Записывать через аналог. вход в память контроллера синусоиду с УНЧ приемника (~500Гц) 1 круг антенн.Затем сравнить ее с 2 кругом. т.е сравнить
2 синусоиды. Если очень "похожи" то вычислить угол по пику синусоиды
3 Выводить результат на комп через первый USART0, на светодиоды.
4 Поддерживать опред. уровень сигнала на аналог входе (АРУ) с помощью ШИМ.
5 через второй USART1 управлять частотой радиоприемника
Точность измерения теоретич = 2 град
на 1 круг 360/2 =180 байт

Вопрос как правильно сравнить 2 синусоиды не теряя много времени
180 байт 1-го круга похожи(не обязательно равны) на 180 байт второго круга
И пик вычислять лучше во время набора байт или после???

Спасибо заранее..
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Duhas » 09 июн 2009, 22:23

что в синусоидах должно расходится? частота? амплитуда? сдвиг фаз?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 09 июн 2009, 22:25

И амплитуда и сдвиг фаз. В основном амплитуда.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение galex1981 » 09 июн 2009, 22:26

Интересует вопрос: зачем использовать Мегу 128 если она наполовину даже задействована не будет в вашем проекте (видел гдето аналогичную схему на ATTiny2313), можно подешевле МК использовать.
2 синусоиды можно сравнивать по набору, учитывая некоторую погрешность (можно программно задать). Пик можно вычислять сразу
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Duhas » 09 июн 2009, 22:28

амплитуду по идее можно сравнить по нескольким экстремумам.. усреднить и сравнивать... со сдвигом фаз хуже дело .. хотя вроде корреляционной функцией решается..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 09 июн 2009, 22:38

2 USARTa + дисплей 16х2 дело не в цене, Аtmega128 на работе есть пару десяток. Главное что бы заработало


2 синусоиды можно сравнивать по набору, учитывая некоторую погрешность (можно программно задать)
эт как?

Добавлено спустя 6 минут 41 секунду:
амплитуду по идее можно сравнить по нескольким экстремумам.. усреднить и сравнивать... со сдвигом фаз хуже дело .. хотя вроде корреляционной функцией решается.

На 16 меге делал по 4 точкам работала. А вот с "корреляционной функцией" еще не пробывал. Для манчестерского кода применял, результат не очень.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение MiBBiM » 09 июн 2009, 22:46

хм. я бы вначале прошелся по двум массивам в поисках значений максимумов (паралллельно запоминаю номер макс элемента первого массива), после я могу сказать об отношении амплитуд; иду влево и вправо по массиву от максимума, в поисках точки (m2*A1/A2-m1)<погрешности. дельта найденной и запомненной точек и есть сдвиг фаз.
получается два полных и один неполный прохода по массиву. не совсем оптимально :)
Вложения
123.png
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Доплеровский пеленгатор на Аtmega128

Сообщение galex1981 » 09 июн 2009, 22:48

Duhas сказал только другими словами
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение MiBBiM » 09 июн 2009, 23:02

а как это вообще :crazy: есть литература для ньюби?
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Доплеровский пеленгатор на Аtmega128

Сообщение contr » 09 июн 2009, 23:06

вообще сравнивают не синусоиды, а уровни сигналов с 4 антенн, разнесенных на 1/4 длины волны. Полагаю, лучше начинать с аппаратной части, а не математической.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Сергей » 09 июн 2009, 23:08

Если выбирать МК в ценовом диапазоне 200р-300р то лучше взять какой-нибудь простой LPC2000 за эту же цену. Просто ARM7 пошустрей будут.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Доплеровский пеленгатор на Аtmega128

Сообщение MiBBiM » 09 июн 2009, 23:08

сорри, я о сравнивании синусоид по корр-функции :D
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Доплеровский пеленгатор на Аtmega128

Сообщение galex1981 » 09 июн 2009, 23:15

Я конечно соглашусь что ARM шустрее будет, но куда еге использовать если у топикстартера нересурсоемкая задача

Добавлено спустя 1 минуту 38 секунд:
Я к тому, что ему проще и дешевсле все-таки использовать AVR МК
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Сергей » 09 июн 2009, 23:30

я же сказал - если ценовой диапазон МК выберут 200р-300р то лучше ARM взять. А если AVR то тогда брать mega8 за 50р )
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Tracer » 09 июн 2009, 23:44

USER777 писал(а):И амплитуда и сдвиг фаз. В основном амплитуда.

Вообщето Допплер говорил об изменении частоты. Амплитуда и фаза вас уведет в другую степь.
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0