Шум в приемнике вертолета

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Сделал я трехканальное управление для вертолета ( и пульт и приемник )
разработка здесь http://vg.ucoz.ru/forum/8-66-1
сигнал передается в формате PPM
Данные по проводам передаются нормально, а вот при подключении радио-модулей сервопривод начинает дергаться как эпилепсик.

Я сделал защиту от помех, но что-то толку от нее нету.

Подскажите, люди добрые, что можно еще сделать ? ( хотя бы теоретически, а над практической частью я подумаю сам. )
Вложения
помеха.txt
(22.36 КБ) 270 скачиваний
не зная броду не лезь к вольтмоду
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

эпилепсик
эпитептик наверное)
Что-то я потаскался по тому форуму и не смог найти исходники, хотелось бы посмотреть на вашу защиту от помех. Все это следствие шумов приемника.
Ставим плюсы: )
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

точно, эпилепТиик. :)

на том форуме можно было и не лазить... :) я же исходник прицепил...

вот этот участок кода

Код: Выделить всё

;**************************************************************************************************************
; фильтр шумов
;**************************************************************************************************************


squelch: 				; шумоподавление


	mov Temp, XL			; Копируем
	mov Temp1, XH

	Ldi YH, 0x2			; загружаем число 600 - помеха не может быть длиннее, чем пауза между импульсами
	Ldi YL, 0x58


	rcall compare_XY16		; сравниваем


	breq no_pomecha			; переход на обработку когда X=Y 
	brcs pomecha			; переход на обработку когда X<Y
	rjmp no_pomecha			; переход на обработку когда X>Y 



pomecha:				; это помеха



	lds ZL, channel_len		; загружаем (читаем ) в "z" длину уже принятых помех
	lds ZH, channel_len+1



	add XL, ZL			; складываем длину принятой помехи с длиной всех уже принятых помех
	adc XH, ZH			;



	STS CHANNEL_len, XL		; сохраняем общую длительность принятых помех 
	STS CHANNEL_len+1, XH		; 


	rjmp out_1			; выход







no_pomecha:				; длительность этого канала соответствует требованиям



	lds ZL, channel_len		; загружаем (читаем ) в "z" длительность уже принятых помех
	lds ZH, channel_len+1


	ldi Temp, 0			; обнуляем
	STS CHANNEL_len, Temp		;  
	STS CHANNEL_len+1, Temp		; 



	add XL, ZL			; складываем длительность канала с длительностью всех принятых помех
	adc XH, ZH			;


	rjmp prodolzaem	


вот так работает :

Помехи во время импульса прорваться вряд - ли смогут, а вот во время паузы - легко.
Пауза между импульсами 300 мкс
я сравниваю полученную длительность с 300 мкс
если полученная длительность короче чем 300 мкс - значит это помеха, сохраняю эту длительность в оперативке ( если их несколько, тоих длительности суммируются ), что бы потом прибавить ее к длительности канала.
если полученная длительность больше, чем 300 мкс - значит это - длительность канала, прибавляем к ней длительность всех полученных ранее помех и обнуляем в оперативке данные.
не зная броду не лезь к вольтмоду
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

Так радиотракт никто не делает. Проверка длительностей это немного колхоз, причем не эффективный. И напрасно Вы считаете что с единицей ничего случиться не может. Помеха точно так же опрокинет единицу как и перевернет ноль. Хотите получить приемлемый результат - применяйте помехоустойчивое кодирование (желательно с возможностью исправления ошибки) со стороны передатчика и аналогичное декодирование в приемнике. Книг по этой тематике пруд пруди.
ЗЫ. Схему не видел (искать ее в 30 с лишним листах влом), но Вы уверены что само сопряжение радиотракта с МК выполнено верно?
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Goodefine писал(а):но Вы уверены что само сопряжение радиотракта с МК выполнено верно?
Вот я это как раз так и подозреваю.

схему прикрепил, радио-модули у меня такие http://www.promelec.ru/pdf/TX_4M30SA10%28short%29.pdf и http://www.promelec.ru/pdf/RX-4MA2_%28short%29.pdf
( резистора нарисованного красным цветом по факту у меня нет.. )
14-ый контакт приемного радио-модуля напрямую подключен к 11-ой ножке МК.

вот тут описывал похожую проблему http://vg.ucoz.ru/forum/8-66-31 сообщение 459 ( приемник и передатчик при этом общались через провода )
у меня вход в прерывание настроен на захват падающего фронта ( так как паузы между импульсами одинаковые то можно и перенастроить )
почему то срабатывало прерывание, хотя не должно было...
я хотел добавить в линию передачи диод и соединить с общим ( а если захват будет по нарастающему фронту, то подтянуть к +5V ) через резистор в 10 Кило Ом, для того что бы получать четкие логические уровни...
Но делать этого я тогда не стал, потому что знал, что при подключении радио-модулей это может помешать...

мне кажется, что все дело в том, что радио-модули аналоговые.... были бы они цифровыми... Может туда емкость воткнуть?
как получить четкие логические уровни на выходе радио-модуля ?



ЗЫ: Со мной лучше на "ты", так мне роднее.... :)
Вложения
приемник - копия.gif
(22.96 КБ) 365 скачиваний
не зная броду не лезь к вольтмоду
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

uwrtey писал(а): Но делать этого я тогда не стал, потому что знал, что при подключении радио-модулей это может помешать...
Подтяжку стоит сделать (модулю это вряд ли помешает), лучше к плюсу наверное - хотя бы внутренними резисторами МК. Попробуйте в настройках прерывания установить подавление реакции на дребезг фронта (см. соответствующий регистр).
uwrtey писал(а): как получить четкие логические уровни на выходе радио-модуля ?
Хорошо это или плохо, но если судить по структурной схеме, все уже сделано в модуле - и фильтр, и компаратор... Тут либо помехи, либо ложные срабатывания из-за отсутствия подтяжки в том числе. Может иголки на выходе. На малом расстоянии больших траблов с передачей/приемом быть не должно. Положите их в микроволновку например (выключенную разумеется) - там внешних помех минимум. Так постепенно проблема может локализоваться.

Если позволить скорость, лучше перейти на пакетную связь - гораздо более гибкая система получится
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Спасибо, как посветлеет попробую сделать:
1) ICNC1=1 / фильтр шума на контакте ICP // с английским я ни как... :( а гугл переводчик так перевел что я ни чего не понял..
Спойлер
Установка этого бита (одному) активирует входной шум Capture Canceler.
Когда шум компенсатор активирована, входной сигнал от контактного входного Capture (ICP1) фильтруется.
Функция фильтрации требует четырех последовательных равных ценятся образцы ICP1 штифт для изменения его выхода.
Захвата входа поэтому задерживается на четыре цикла Осциллятор когда шум компенсатор включен
чего "четырех равных последовательных" ???
2) Подтянуть к +5 V ? Каким сопротивлением ? ( нужно же как то рассчитать, что бы приемник смог обеспечить четкий лог_0 )
не зная броду не лезь к вольтмоду
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

Насчет бита - не помню, завтра скажу. А резистор - для начала внутренняя подтяжка хотя бы
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Ни подтяжка ни ICNC1=1 не помогли. Как по отдельности, так и вместе...

При чем устройство начинает работать еще хуже...

Может мне осциллограмму снять с приемника ? Правда у меня хорошего записывающего осциллографа нету. Но я могу записать линейным входом звуковой карты...
не зная броду не лезь к вольтмоду
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

Осциллограмма бы точно не помешала. Вход прерываний очень быстрый и может ловить такие иголки, которые карта не увидит никогда. Но попробовать можно. Кроме того можно изменить подход - попробуйте отбрасывать битые пакеты совсем- суммировать глюки не надо. Если все известные заранее длительности (как стробы так и несущие информацию - т.е. в любой момент времени должны знать, какой импульс сейчас принимается и его допустимая длительность. )попали в допустимый интервал (как 0 так и 1) всех импульсов то только тогда подавайте управляющее воздействие - придется писать во временные переменные информацию по каналам и в случае успешной посылки применять их. Попал битый сигнал - сразу бракуйте всю посылку и через некоторое время (таймаут - подобрать экспериментально, но примерно половина времени между пакетами) начинайте прием снова.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Осциллограмму постараюсь в субботу вечером сделать..
Goodefine писал(а):Кроме того можно изменить подход - попробуйте отбрасывать битые пакеты совсем
А как быть, если все пакеты будут битые ?
Я умудряюсь помех наловить когда расстояние между приемником и передатчиком всего 20 см, а что будет на расстоянии 100 метров ?

на всякий случай расскажу про PPM
Изображение
длительность пакета = 20 мс ( 0,02 сек. )
длительность канала = от 1000 мкс до 2023 мкс ( от 0,001 сек. до 0,002023 сек. )
пауза между импульсами = 300 мкс (0,0003 сек. )
длительность импульса = длительность канала -минус- длительность паузы = от 700 мкс до 1723 мкс ( от 0,0007 сек. до 0,001723 сек. )


в моем случае три канала

вот тут еще можно глянуть http://www.rcdesign.ru/articles/radio/ppm_pcm

В моем приемнике организован вход в прерывание по захвату падающего фронта, а это значит, что я сразу замеряю длительность КАНАЛА (канал=импульс+пауза) и по этому для меня важно суммировать ложные срабатывания.... Но раз помеха может возникнуть и во время импульса, то это наверное значит, что нужно пересмотреть сам принцип передачи данных по радио-тракту...
не зная броду не лезь к вольтмоду
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

uwrtey писал(а): А как быть, если все пакеты будут битые ?
Я умудряюсь помех наловить когда расстояние между приемником и передатчиком всего 20 см, а что будет на расстоянии 100 метров ?
Надо решать проблемы по мере их поступления - даже один битый пакет на 10-20 может вызывать дерганье. Например при приеме ИК-посылок с пульта битых чуть ли не четверть. Простое отбрасывание решает проблему. 20 см - не нужно, лучше разнесите по комнате, может быть банальный перегруз приемника.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

А как Вы предлагаете поступить?
У меня считывается длительность всего канала ( канал= пауза + импульс )
помехой я считаю любой канал длительностью меньше 300 мкс
может есть смысл увеличить это число до 1000 мкс ?
так как длительность нормального импульса варьируется в пределах от 1000 мкс до 2023 мкс
не зная броду не лезь к вольтмоду
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

по радиоканалу либо восстанавливать сигнал из битого, либо отбрасывать битый канал полностью.
во первых нужно проверять входит ли длительность канала в возможные рамки аналогично проверять и длительность паузы.
во вторых проверять пакет вцелом на количество получившихся каналов (в случае если помеха залезет, то может получиться и больше трех)
и в третьих я бы сохранял предыдущее значение канала, сравнивал его с вновь поступившим (за 20мс сильно не может поменяется, я полагаю?). Если изменение сильное отбрасывать это значение и ждать следующего пакета, оставив значение прежним
Ставим плюсы: )
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

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

А пока я размышляю над ВСЕМ выше сказанным... :write:
Goodefine писал(а):Простое отбрасывание решает проблему
Вы думаете ? а как же быть если все посылки будут битые ?
ibiza11 писал(а):по радиоканалу либо восстанавливать сигнал из битого, либо отбрасывать битый канал полностью.
отбрасывать я не рискую - боюсь получить огромную задержку в управлении.
А вот восстановить-то я и пытаюсь.
не зная броду не лезь к вольтмоду
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Вот осциллограмма. Осциллограмму я снимал при включенном передатчике, каждый канал соответствует среднему положению рулей.
Напоминаю, что делал я ее звуковой картой ( вход закрытый ).
Все графики инвертированы ( вверху лог_0, внизу лог_1 )
Графики нужно смотреть в порядке возрастания номеров присвоенных их именам.
На каждом графике - красным контуром отмечен тот участок, который будет увеличен ( в масштабе ) на следующем графике.
Вложения
Сжатая ZIP-папка.zip
(33.87 КБ) 251 скачивание
не зная броду не лезь к вольтмоду
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

Из осциллограммы видно, что на выходе приемника какая то белиберда... :shock:
не зная броду не лезь к вольтмоду
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

не силен в аналоговой технике, но мне кажется на первом графике видно, что вход звуковухи не согласован с выходом приемника.
на последнем графике(5) видны несколько пакетов длительностью 20 мс. еще видна экспонентциальная составляющая, которая постепенно поднимает график.
для получения точных осциллограмм, я вам советую собрать систему так, как она должна работать, т.е. передающий контроллер соединить с передатчиком, а приемный контроллер соединить с приемником. потом собрать отдельно высокоомный повторитель на ОУ, выход которого подключите к звуковой карте, а вход к месту, где нужно измерить сигнал (две точки: 1) точка соединения передающего контроллера и передатчика 2) точка соединения приемника и приемного контроллера.)
это чтобы посмотреть, что вообще передается и что вообще принимается. может у вас на передающей стороне проблемы?
Ставим плюсы: )
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2309
Зарегистрирован: Пт июл 17, 2009 07:34:07
Откуда: Свердловская обл.

Сообщение uwrtey »

ibiza11 писал(а):вход звуковухи не согласован с выходом приемника.
А как Вы это увидели ?
В прошлом проекте ( где я учился делать дискретное управление ), я подключал звуковуху именно так ( ни чего не согласовывая, и без использования высокоомного повторителя ) и получал нормальные графики.... ( Ну если нужно, то я готов это сделать )
ibiza11 писал(а):еще видна экспонентциальная составляющая, которая постепенно поднимает график.
Что это такое ? и откуда оно взялось? С передающего контроллера постоянно летят пакеты длительностью 20 мс, без всяческих пауз..
И по идее, кроме этих пакетов, там больше ни чего не должно быть! :shock:
ibiza11 писал(а): где нужно измерить сигнал (две точки: 1) точка соединения передающего контроллера и передатчика 2) точка соединения приемника и приемного контроллера.)
Точно! нужно еще в месте соединения передающего контроллера и передатчика посмотреть...
А эту осциллограмму я снимал как положено - в месте соединения приемника и приемного контроллера.

А еще у меня подозрение, что с питанием приемного радио-модуля не все в порядке ...
судя по первому графику, как будто приемный радио-модуль постоянно перезапускается по питанию...
Надо бы диод с конденсатором в линию питания добавить..
( а еще меня настораживает почему в приемном радио-модуле два контакта питания +5V?
В прошлые разы, когда я использовал эти радио-модули, я даже не задумывался над этим... )
не зная броду не лезь к вольтмоду
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Какая-нибудь емкость. Может ФНЧ в карте или конденсатор на входе, вроде как защита от постоянного смещения. Точно не знаю, но выглядит похоже.
Ответить

Вернуться в «AVR»