roboforum.ru

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

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

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

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

Сообщение blindman » 10 июн 2009, 14:22

Ну например если и на маяках и на объекте есть и приемник, и передатчик, и принять, что если приемник на объекте может слышать маяк, то верно и обратное - то можно разрешить маяку вещать некоторое время только после того, как его попросят.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение USER777 » 10 июн 2009, 14:29

Идея оч хорошая. Сложновато просто.Сам с AT86RF211S работал. (Но есть проще модули)
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

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

Сообщение contr » 10 июн 2009, 14:59

Переключая антенны имеем 4 отклонения от частоты несущей, т.е четыре отсчета. Любой чип FM приемника выдаст их в виде 4x уровней. Откуда взялись синусоиды, 500Гц на входе АЦП и пр.? Сделали один цикл измерений - вычислили направление, запомнили. Сотня измерений - усреднили и вывели на какой-нибудь графический индикатор.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение USER777 » 10 июн 2009, 15:05

Переключая антенны имеем 4 отклонения от частоты несущей, т.е четыре отсчета. Любой чип FM приемника выдаст их в виде 4x уровней. Откуда взялись синусоиды, 500Гц на входе АЦП и пр.?

спорить не буду, берешь осциллограф и видишь синусоиду на выходе приемника.
Как правило в приемниках уже есть фильтр НЧ и ВЧ поэтому происходит сглаживание.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

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

Сообщение boez » 10 июн 2009, 15:23

500 гц - частота "вращения" антенного переключателя (ну то есть период полного обхода 2 мс), кстати ее совпадение со значением допплеровского сдвига вовсе и не обязательно, как я понял.
Переключая антенны, мы имеем 4 сдвига фазы, а не частоты. FM приемник выдаст их в виде 4 импульсов, а не уровней. Амплитуда и форма импульса зависит от полосы пропускания приемника. Плюс там куча шумов. А вот после узкополосного 500 Гц фильтра из этой хитрой 4-импульсной кривулины останется только ее первая гармоника. И ее фаза достаточно точно будет отражать азимут. Хотя 100% линейности может и не быть, тут я согласен.

А что касается навигации - для мелкого робота наверное радиоволны не подойдут. Хотя если на 170 МГц антенны разносят на 30-40 см, то для 2.4 ГГц может и можно сделать что-то мелкое... Ну или переходить на ультразвук - там скорости уже совсем другие, все можно сдлать небольшим.

Добавлено спустя 6 минут 29 секунд:
USER777 писал(а):Голова!!
только вот эт
Вот. Убедиться, что это сигнал, а не шум, можно будет наблюдая за полученным значением. Если оно скачет как дурное по всему кругу - значит это шум. Если стоит примерно в одном месте -

не совсем понятно.
Минимум 2 замера в любом случае?

Не факт. Я ж писал - надо на модуль полученного комплексного числа тоже смотреть. Если задача практическая - я бы это оставил на второй этап. Ну то есть сделать железо, написать прогу, которая выводит предполагаемый азимут и модуль куда-то (экранчик, по уарту в ПК) и дальше в поле на него смотреть. Вполне может оказаться, что определение того, реальный сигнал или нет, лучше поручить человеку с его нейронными сетями в мозгу :) А может и придет в голову какой алгоритм определения, сигнал это или нет, то ли по нескольким замерам, то ли по модулю.
Последний раз редактировалось boez 10 июн 2009, 15:30, всего редактировалось 1 раз.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

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

Сообщение blindman » 10 июн 2009, 15:23

boez писал(а):500 гц - частота "вращения" антенного переключателя (ну то есть период полного обхода 2 мс), кстати ее совпадение со значением допплеровского сдвига вовсе и не обязательно, как я понял.

Не обязательно, но удобно когда они кратны - например при реализации фильтра на переключаемых конденсаторах, от одного генератора можно через делители тактировать и фильтр, и схему вращения
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение boez » 10 июн 2009, 15:29

А какое отношение доппл. сдвиг имеет к фильтру? Фильтр тоже на частоту вращения, именно ее нам и надо выделить... А сдвиг вообще будет еще и от частоты принимаемого сигнала зависеть. И он может быть и 200 герц - просто тогда амплитуда сигнала с ЧМ приемника упадет в 2.5 раза.

Да, а вообще я кажется догадываюсь почему так. Равенство частотного сдвига и частоты модуляции соответствует фазовой модуляции с максимальной амплитудой - 180 градусов. Соответственно получим макс. соотношение сигнал/шум.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

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

Сообщение blindman » 10 июн 2009, 15:47

Допплеровская частота прямо пропорциональна частоте вращения. Но от частоты несущей и радиуса вращения естественно тоже зависит. А выделять надо именно допплеровскую частоту.

Добавлено спустя 9 минут 11 секунд:
Гоню. Фильтр надо на частоту вращения. А сдвиг определяет амплитуду сигнала.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение USER777 » 10 июн 2009, 16:42

Сделал в EXСEL как boez посоветовал
A = sum(U_k*cos(Alfa_k)), Alfa_k = 2*k град., k=0..179
B = sum(U_k*sin(Alfa_k)), Alfa_k = 2*k град., k=0..179

Эти числа - ни что иное, как действительная и мнимая части первого коэффициента преобразования Фурье входного сигнала - соответствующего основной гармонике, т.е. частоте "вращения" антенного переключателя. По ним легко определить азимут - это просто фаза этой гармоники, то есть arg(A+i*B), считается обычно через арктангенс (его тоже задают таблицей на отрезке от -1 до 1):

если А>B и A>-B, то Phi = arctg(B/A);
если А<B и A>-B, то Phi = 90 град. - arctg(A/B);
если А<B и A<-B, то Phi = arctg(B/A) + 180 град.;
если А>B и A<-B, то Phi = 270 град. - arctg(B/A);

распределил значения от (1-90)(0-178град) и (89-0)(180-358 град) 180 значений пик приходится на 178 град
Получились след значения
A=-0,541161201
В=0,990553448
для этого подходит второе выражение
если А<B и A>-B, то Phi = 90 град. - arctg(A/B)=90,50001507, значение
которого равно примерно 46 среди значений 0-90.
Если я правильно понял boez
полученное значение Phi(1) будет почти равно Phi(2)будет почти равно Phi(3) и тд
что свидетельствует, о том что, это не просто шум,а (доплеровский сигнал).
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

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

Сообщение contr » 10 июн 2009, 17:36

FM приемник выдаст их в виде 4 импульсов, а не уровней

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

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

Сообщение boez » 10 июн 2009, 18:06

USER777 писал(а):Сделал в EXСEL как boez посоветовал
распределил значения от (1-90)(0-178град) и (89-0)(180-358 град) 180 значений пик приходится на 178 град
Получились след значения
A=-0,541161201
В=0,990553448
для этого подходит второе выражение
если А<B и A>-B, то Phi = 90 град. - arctg(A/B)=90,50001507, значение
которого равно примерно 46 среди значений 0-90.
Если я правильно понял boez
полученное значение Phi(1) будет почти равно Phi(2)будет почти равно Phi(3) и тд
что свидетельствует, о том что, это не просто шум,а (доплеровский сигнал).


Не, тут что-то не так. Во-первых у меня смутное подозрение, что эксель взял арктангенс в радианах... На глаз из этих A и B должно получиться что-то порядка 120 градусов. А во вторых, А и В тоже странные, для 180 должно явно получиться А=-1, В=0

Да, а полочки у нас получатся в том случае, если у приемника детектор именно фазовый, а не частотный. Вообще говоря современные приемники действительно построены на основе фазового детектора, но он охвачен петлей ФАПЧ и все же сигнал на выходе пропорционален частоте. Это если я хоть что-нибудь понимаю в частотной модуляции...

А теперь даже предположим, что у нас фазовый детектор в приемнике и полочки. И мы измерили их уровни. Чтобы отфильтровать шумы - усредняем кучку замеров вдоль каждой полочки и вычитаем противоположные полочки. Что эти уровни собой представляют? Фазовые сдвиги. Они пропорциональны косинусу и синусу азимута, а значит тем числам А и В, что были в моем варианте. Таким образом вариант с полочками эквивалентен моему варианту, только умножение на синус и косинус заменено прямоугольными периодическими хреновинами вида +1,0,-1,0. А кол-во вычислений такое же.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

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

Сообщение USER777 » 10 июн 2009, 18:39

Вот мой не очень удачный опыт, что касается импульсов (на 2 антенны)
http://www.radioscanner.ru/forum/topic27707.html

Не, тут что-то не так. Во-первых у меня смутное подозрение, что эксель взял арктангенс в радианах... На глаз из этих A и B должно получиться что-то порядка 120 градусов. А во вторых, А и В тоже странные, для 180 должно явно получиться А=-1, В=0

да все в радианах поэтому и цифры такие.
Вот так?
А=-3281,139704 В=114,5799233 Угол=178 град
Код: Выделить всёРазвернуть
1   0   1   0   
2   2   1,998781654   0,069798993   
3   4   2,992692151   0,209269421   
4   6   3,978087581   0,418113853   
5   8   4,951340344   0,695865505   
6   10   5,908846518   1,041889066   
7   12   6,847033205   1,455381836   
8   14   7,76236581   1,935375165   
9   16   8,651355263   2,480736202   
10   18   9,510565163   3,090169944   
11   20   10,33661883   3,762221577   
12   22   11,12620625   4,495279121   
13   24   11,87609095   5,28757636   
14   26   12,58311665   6,137196055   
15   28   13,24421389   7,042073442   
16   30   13,85640646   8   
17   32   14,41681763   9,008627492   
18   34   14,92267631   10,06547226   
19   36   15,37132289   11,16791979   
20   38   15,76021507   12,31322951   
21   40   16,08693331   13,4985398   
22   42   16,34918616   14,72087334   
23   44   16,54481541   15,97714252   
24   46   16,67180089   17,26415521   
25   48   16,72826516   18,57862064   
26   50   16,71247785   19,91715552   
27   52   16,62285983   21,27629035   
28   54   16,45798706   22,65247584   
29   56   16,2165942   24,0420896   
30   58   15,89757793   25,44144288   
31   60   15,5   26,84678752   
32   62   15,02309001   28,25432297   
33   64   14,46624784   29,66020353   
34   66   13,82904586   31,06054556   
35   68   13,11123077   32,45143491   
36   70   12,31272516   33,82893435   
37   72   11,43362879   35,1890911   
38   74   10,47421952   36,52794445   
39   76   9,434953928   37,84153332   
40   78   8,316467633   39,12590403   
41   80   7,119575284   40,37711787   
42   82   5,84527024   41,59125889   
43   84   4,494723921   42,7644415   
44   86   3,069284845   43,89281821   
45   88   1,570477352   44,97258722   
46   90   2,81784E-15   46   
47   92   -1,640276345   46,97136887   
48   94   -3,34831074   47,88307441   
49   96   -5,1218947   48,73157287   
50   98   -6,958655048   49,51340344   
51   100   -8,856057061   50,2251954   
52   102   -10,81140792   50,86367524   
53   104   -12,82186047   51,42567349   
54   106   -14,88441721   51,90813158   
55   108   -16,99593469   52,3081084   
56   110   -19,15312803   52,62278676   
57   112   -21,35257582   52,84947971   
58   114   -23,5907253   52,98563654   
59   116   -25,86389766   53,02884873   
60   118   -28,16829377   52,97685557   
61   120   -30,5   52,82754963   
62   122   -32,85499438   52,57898196   
63   124   -35,22915292   52,22936707   
64   126   -37,61825615   51,77708764   
65   128   -40,0179959   51,22069898   
66   130   -42,42398224   50,55893325   
67   132   -44,83175063   49,79070331   
68   134   -47,23676919   48,91510642   
69   136   -49,63444622   47,93142756   
70   138   -52,02013778   46,83914245   
71   140   -54,38915546   45,63792029   
72   142   -56,73677426   44,32762622   
73   144   -59,05824059   42,90832342   
74   146   -61,34878037   41,38027486   
75   148   -63,60360721   39,74394482   
76   150   -65,81793069   38   
77   152   -67,98696465   36,14931033   
78   154   -70,10593561   34,19294945   
79   156   -72,17009115   32,1321948   
80   158   -74,17470837   29,96852747   
81   160   -76,11510228   27,70363161   
82   162   -77,98663434   25,33939354   
83   164   -79,78472076   22,87790053   
84   166   -81,50484101   20,32143923   
85   168   -83,14254606   17,67249372   
86   170   -84,69346676   14,93374328   
87   172   -86,15332198   12,10805978   
88   174   -87,51792679   9,198504768   
89   176   -88,78320047   6,208326163   
90   178   -89,94517443   3,140954703   
89   180   -89   1,09038E-14   
88   182   -87,94639278   -3,07115571   
87   184   -86,78807237   -6,068813216   
86   186   -85,528883   -8,989447841   
85   188   -84,17278584   -11,82971358   
84   190   -82,72385125   -14,58644692   
83   192   -81,18625086   -17,25667034   
82   194   -79,56424955   -19,83759544   
81   196   -77,86219737   -22,32662582   
80   198   -76,0845213   -24,72135955   
79   200   -74,23571704   -27,01959132   
78   202   -72,32034066   -29,21931429   
77   204   -70,34300024   -31,31872152   
76   206   -68,30834752   -33,31620716   
75   208   -66,22106946   -35,21036721   
74   210   -64,08587988   -37   
73   212   -61,90751102   -38,68410629   
72   214   -59,69070522   -40,26188905   
71   216   -57,4402066   -41,73275291   
70   218   -55,16075275   -43,09630327   
69   220   -52,85706658   -44,35234507   
68   222   -50,53384813   -45,50088123   
67   224   -48,19576662   -46,54211082   
66   226   -45,84745245   -47,47642682   
65   228   -43,49348941   -48,30441366   
64   230   -41,13840702   -49,02684436   
63   232   -38,78667295   -49,64467748   
62   234   -36,44268564   -50,15905365   
61   236   -34,11076711   -50,57129193   
60   238   -31,79515585   -50,88288577   
59   240   -29,5   -51,09549882   
58   242   -27,22935064   -51,21096039   
57   244   -24,98715537   -51,23126064   
56   246   -22,77725201   -51,15854563   
55   248   -20,60336264   -50,995112   
54   250   -18,46908774   -50,74340152   
53   252   -16,3779007   -50,40599536   
52   254   -14,3331425   -49,98560819   
51   256   -12,33801668   -49,48508204   
50   258   -10,39558454   -48,90738004   
49   260   -8,508760706   -48,2555799   
48   262   -6,680308846   -47,5328673   
47   264   -4,912837774   -46,74252908   
46   266   -3,208797792   -45,88794631   
45   268   -1,570477352   -44,97258722   
44   270   -8,08598E-15   -44   
43   272   1,500678358   -42,97380556   
42   274   2,929771897   -41,89769011   
41   276   4,285666994   -40,77539771   
40   278   5,566924038   -39,61072275   
39   280   6,772278929   -38,40750237   
38   282   7,900644251   -37,16960883   
37   284   8,951110137   -35,90094187   
36   286   9,922944809   -34,60542105   
35   288   10,8155948   -33,28697807   
34   290   11,62868487   -31,94954911   
33   292   12,36201758   -30,5970672   
32   294   13,01557258   -29,23345464   
31   296   13,58950555   -27,86261544   
30   298   14,08414688   -26,48842779   
29   300   14,5   -25,11473671   
28   302   14,8377394   -23,74534669   
27   304   15,09820839   -22,38401446   
26   306   15,28241656   -21,03444185   
25   308   15,39153688   -19,70026884   
24   310   15,42690263   -18,38506663   
23   312   15,39000395   -17,09233099   
22   314   15,28248415   -15,82547561   
21   316   15,10613581   -14,58782578   
20   318   14,86289651   -13,38261213   
19   320   14,55484442   -12,21296458   
18   322   14,18419356   -11,08190656   
17   324   13,7532889   -9,992349289   
16   326   13,26460116   -8,947086456   
15   328   12,72072144   -7,948788963   
14   330   12,12435565   -7   
13   332   11,47831871   -6,103130316   
12   334   10,78552856   -5,260453761   
11   336   10,04900003   -4,474103074   
10   338   9,271838546   -3,746065934   
9   340   8,457233587   -3,07818129   
8   342   7,60845213   -2,472135955   
7   344   6,728831872   -1,929461491   
6   346   5,821774358   -1,451531374   
5   348   4,890738004   -1,039558454   
4   350   3,939231012   -0,694592711   
3   352   2,970804206   -0,417519303   
2   354   1,989043791   -0,209056927   
1   356   0,99756405   -0,069756474   
0   358   0   0   
      -3281,139704   114,5799233   178

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

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

Сообщение contr » 11 июн 2009, 14:44

Вот мой не очень удачный опыт, что касается импульсов (на 2 антенны)

Минимальным кол-вом считают 4, а не две антенны.
Отличить сигнал от шумов очень просто. На уже упомянутом выходе квадратурного детектора и УПЧ2 присутствуют ВЧ шумы эфира. Их уровень управляет работой шумодава. Гляньте dsh МС3362 или 3361 там есть примеры.
При использовании готового приемника, Вам нужно найти выход детектора, выход управления СШП, входы и коды синтезатора. Еще нужна система из 4..8 антенн с коммутатором и удаленный источник непрерывной несущей.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение USER777 » 12 июн 2009, 10:42

приемник (МС3361),синтезатор (LMX2306), контроллер(Atmega16)
входы и коды синтезатора
С этим разобрался.
В схеме приемника есть шумодав(к аналог. входу контр. подвязан) , уровень которого программируется.
источник непрерывной несущей.

Хотелось бы и прерывный поймать, объясню почему.
Бывает и такое, зависает контроллер на скважине, срабатывает (WD(сторож))
контроллер перезагружается кидает пару импульсов виснет и опять по кругу (пока не отключишь).
С шумодавом в этом случае ...,(ИМХО) лучше без него (поэтому в начале темы сравнения 2-х синусоид ) Какой бы он шустрый не был.
Теоретический такие пеленгаторы могут определить направление даже если сигнал очень слабый (практически одно шипение ).
Еще нужна система из 4..8 антенн

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

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

Сообщение contr » 12 июн 2009, 14:41

Обкатку проще сделать на непрерывном сигнале. Потом можно будет автоматически включать "вращение" по наличию несущей, используя сигнал отключения СШП.
У Вас явный баг в программе. МК зависать не должен.
Проще и точнее сравнивать не синусоиды, а каждые 4 уровня после RC на pin9.
В ЧМ уровень несущей определяют по шумам, т.е. контролируют не сам сигнал, а подавление им ВЧ шумов. В простейшей схеме это емкость с выхода (pin9) на вход усилителя шумов (pin10) и выпрямителем/интегратором на pin11. Поскольку
В схеме приемника есть шумодав(к аналог. входу контр. подвязан) , уровень которого программируется.

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

Пред.След.

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

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

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