Автор Тема: Ардуино контроллер поворотки  (Прочитано 364487 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #420 : 06 Ноябрь 2015, 11:49:02 »
И тут тонкий момент что имел в виду автор напряжение должно уменьшаться или увеличиваться из начальной точки ?
По логике если он пишет  крутите против часовой стрелки значит уменьшаться:(
А так главное расставить эти крайние точки.
Да, главное точки расставить, а там программа разберется.
Видимо автор заложил разные зависимости подключения датчиков:
- вращение по часовой -> увеличение напряжения на датчике.
- вращение по часовой -> уменьшение напряжения на датчике. (достаточно поменять местами + с - на потенциометре).
 
« Последнее редактирование: 06 Ноябрь 2015, 11:51:17 от RA9QAW Alexandr »
Moskva, Alexandr, R2BRZ, KO85rr

Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #421 : 06 Ноябрь 2015, 12:02:11 »
Видимо автор заложил разные зависимости подключения датчиков:
- вращение по часовой -> увеличение напряжения на датчике.
- вращение по часовой -> уменьшение напряжения на датчике. (достаточно поменять местами + с - на потенциометре).

Я бы если делал с резистором нашёл бы мин или макс напряжение и отградуировал с помощью O и  F  в другую сторону макс или мин через те градусы которые
советует протокол YAESU ( писал выше) тем самым расcтавил крайние точки.
Потом зная точный азимут  повернул бы антенну туда сделал команду  /A...  вместо точек азимут ,контролер будет показывать этот азимут и все проверить наведение .
ex: ua9-145-1000

Оффлайн ua4fkd Сергей

  • Ветеран
  • *****
  • Сообщений: 2811
  • Репутация: +230/-67
  • QRA: LO13HL
Re: Ардуино контроллер поворотки
« Ответ #422 : 06 Ноябрь 2015, 20:47:44 »
отличный ресурс для определения точного местонахождения , выдаёт квадрат QTH локатора 25x25 метров
карту надо увеличивать до тех пор, пока не появится номер дома,
а потом двойной клик по дому,и появляется 10 значный QTH локатор.
http://no.nonsense.ee/qth/map.html
https://disk.yandex.ru/d/tStqJhi7p4ubVg   досье на меня

https://www.instagram.com/ua4fkd  ЗАБЛОКИРОВАН НЕЗАКОННЫМИ ДЕЙСТВИЯМИ  США

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #423 : 07 Ноябрь 2015, 20:26:40 »
Потратил много времени на подключение к G450.
В итоге управлял PST-rotator и Орбитроном (WispDDE).
Недостатки:
1. Погрешности не только в середине, но и на начальных точках от 5 до 15 градусов(хаоично), причем не зависимо от места. Ставил калибровки  \A360, \A330, \A300 и тд с шагом в 30 градусов. Не помогло. Думаю, что это все от п.2.
2. Показания на дисплее Arduino скачут каждую секунду +-3 градуса (на хаотичное число), а на блоке G450 стрелка стоит намертво.
Предполагаю, что нужен отдельный УПТ или подключиться после УПТ в схему контролера YEASU.
Moskva, Alexandr, R2BRZ, KO85rr

Оффлайн RA3WDK

  • Ветеран
  • *****
  • Сообщений: 6993
  • Репутация: +782/-86
Re: Ардуино контроллер поворотки
« Ответ #424 : 07 Ноябрь 2015, 20:52:51 »
2. Показания на дисплее Arduino скачут каждую секунду +-3 градуса (на хаотичное число), а на блоке G450 стрелка стоит намертво.
Предполагаю, что нужен отдельный УПТ или подключиться после УПТ в схему контролера YEASU.

Нелинейность , которая есть в каждой поворотке YAESU выбирается потенциометром на плате управления и то не до конца. В контроллере Ардуино
это не учитывается. Так же нет программного фильтра при работе с АЦП. Тут или самому программу переделать или мириться с этим.
Могу только на ассемблере дать куски кода под AVR при работе с АЦП. Там есть мажорирование из 5 отсчетов - это убирает крупные выбросы и усреднение есть - это фильтр для шумов по цепям потенциометра.
Можно сделать аналоговый интегратор на ОУ. Но если есть микроконтроллер, то можно программным путем.


Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #425 : 07 Ноябрь 2015, 21:41:12 »
В контроллере Ардуино
это не учитывается.

В контролере Аrduino тоже можно убирать нелинейность датчиков.
настроив таблицу приходящие с датчиков и таблицу  корректировки....
Включается в rotator_features.h строчки:

//#define FEATURE_AZIMUTH_CORRECTION        // correct the azimuth using a calibration table in rotator_settings.h
//#define FEATURE_ELEVATION_CORRECTION      // correct the elevation using a calibration table in rotator_settings.h

таблица находится в файле rotator_setings.h  строчки:

#define AZIMUTH_CALIBRATION_FROM_ARRAY {180,630}            /* these are in "raw" degrees, i.e. when going east past 360 degrees, add 360 degrees*/
#define AZIMUTH_CALIBRATION_TO_ARRAY {180,630}


#define ELEVATION_CALIBRATION_FROM_ARRAY {-360,0,360}
#define ELEVATION_CALIBRATION_TO_ARRAY {-360,0,360}


ex: ua9-145-1000

Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #426 : 07 Ноябрь 2015, 23:18:16 »
убирает крупные выбросы и усреднение есть - это фильтр для шумов по цепям потенциометра.

Я думаю это тоже сделано в софте и настраивается в файле rotator_setings.h
строчки:

#define AZIMUTH_SMOOTHING_FACTOR 0      // value = 0 to 99.9   Коэфициент усреднения
#define ELEVATION_SMOOTHING_FACTOR 0    // value = 0 to 99.9

#define AZIMUTH_MEASUREMENT_FREQUENCY_MS 100        //Частота измерения
#define ELEVATION_MEASUREMENT_FREQUENCY_MS 100 
ex: ua9-145-1000

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #427 : 08 Ноябрь 2015, 00:43:43 »
В контролере Аrduino тоже можно убирать нелинейность датчиков.
настроив таблицу приходящие с датчиков и таблицу  корректировки....
Включается в rotator_features.h строчки:
Методом научных проб и ошибок практически устранил:
1. Прыжки индикации, точнее снизил дискретность до +-1гр. Подключился к точке 0-2.5в.
2. Устранил нелинейность. Пока предварительно и можно гораздо точнее, но уже результат очень хороший (было +22градуса в точке 180 на втором круге).
Для наглядности тем, кто будет повторять:

#define AZIMUTH_CALIBRATION_FROM_ARRAY {180,382,540,630}
#define AZIMUTH_CALIBRATION_TO_ARRAY {180,360,540,630}

Как я понял 180, 360, 540 - это относительно 180 градусов первого круга программы.
У меня ротатор с крутит 0-360-90.
Значит 180 - это 0 на моем индикаторе.
360 -> 180
540 -> 360 или 0 - начало перехлеста.
630 -> 90 градусов на 3 круге(450 градусов вращения ротатора G450).

Могу сделать более точно, через каждые 30 градусов:
Отключить коррекцию. Записать на листок погрешности. Включить коррекцию и заполнить массив своими данными:
#define AZIMUTH_CALIBRATION_FROM_ARRAY {180,281,382,461,540,630}
#define AZIMUTH_CALIBRATION_TO_ARRAY {180,270,360,450,540,630}


« Последнее редактирование: 08 Ноябрь 2015, 00:54:06 от RA9QAW Alexandr »
Moskva, Alexandr, R2BRZ, KO85rr

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #428 : 08 Ноябрь 2015, 17:32:04 »
Подключил актуатор. Мега 2560
Геркон на землю и на выход - Pin 2 (предварительно убрав ножку дисплея), от которого резистор 1кОм на +5в. Ножки геркона зашунтировал конденсатором 0,01.

#ifdef FEATURE_EL_POSITION_PULSE_INPUT
  #define el_position_pulse_pin 2               
  #define EL_POSITION_PULSE_PIN_INTERRUPT 0
#endif

#define FEATURE_EL_POSITION_PULSE_INPUT
#define EL_POSITION_PULSE_DEG_PER_PULSE 0.5

В 0 калибруется командой \B0

При вращении актуатора на дисплее хаотичные показания. Причем такого плана: -993.
При вращении в разные стороны могут либо увеличиваться, либо уменьшаться.

Еще проблема: Если ножка геркона вставлена во 2 контакт, то программы не заливаются. 

« Последнее редактирование: 08 Ноябрь 2015, 17:42:35 от RA9QAW Alexandr »
Moskva, Alexandr, R2BRZ, KO85rr

Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #429 : 08 Ноябрь 2015, 18:11:17 »
#define EL_POSITION_PULSE_DEG_PER_PULSE 0.5

Здесь надо начать :

#define EL_POSITION_PULSE_DEG_PER_PULSE 0.01  // подобрать цифру

И в rotator_features.h
включить это, остальное закоментить...

#define FEATURE_EL_POSITION_PULSE_INPUT
ex: ua9-145-1000

Оффлайн ra3lx Евгений

  • Ветеран
  • *****
  • Сообщений: 2179
  • Репутация: +341/-34
  • QRA: KO65RE
Re: Ардуино контроллер поворотки
« Ответ #430 : 08 Ноябрь 2015, 18:22:24 »
#define EL_POSITION_PULSE_DEG_PER_PULSE 0.5

Здесь надо начать :

#define EL_POSITION_PULSE_DEG_PER_PULSE 0.01  // подобрать цифру

И в rotator_features.h
включить это, остальное закоментить...

#define FEATURE_EL_POSITION_PULSE_INPUT
Доброго здоровья!
Дима, если я правильно понял, то фраза должна звучать так:

"И в rotator_features.h включить это:

#define FEATURE_EL_POSITION_PULSE_INPUT,

а остальное закомментировать...

Или не так?
73!

Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #431 : 08 Ноябрь 2015, 18:34:56 »
Да конечно))

Что относится к элевации датчикам закоментить.
ex: ua9-145-1000

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #432 : 08 Ноябрь 2015, 19:18:30 »
Здесь надо начать :

#define EL_POSITION_PULSE_DEG_PER_PULSE 0.01  // подобрать цифру
И в rotator_features.h
включить это, остальное закоментить...
#define FEATURE_EL_POSITION_PULSE_INPUT
Все сделано, но каким-то образом в памяти имеется значение "-2770."
После калибровки в 0 \B0  на дисплее 0.0. При нажатии например UP  сразу становится в "-2770." и это число начинает уменьшаться на 1, при DOWN  увеличиваться.  Т.е в обратные стороны.
При EL_POSITION_PULSE_DEG_PER_PULSE 0.5  изменяется быстрее. а при 0.01  очень медленно.
Moskva, Alexandr, R2BRZ, KO85rr

Оффлайн ua9olb Дима

  • Ветеран
  • *****
  • Сообщений: 1281
  • Репутация: +220/-37
  • Подпись находится в стадии разработки
  • QRA: NO15KI
Re: Ардуино контроллер поворотки
« Ответ #433 : 08 Ноябрь 2015, 19:51:02 »
Странно у меня такого небыло....
Пришлите мне свой скеч посмотреть.... на ua9olb@mail.ru

Такое впечатление что у Вас в EEPROM что то не так записывается...
« Последнее редактирование: 08 Ноябрь 2015, 19:55:40 от ua9olb Дима »
ex: ua9-145-1000

Оффлайн RA9QAW Alexandr

  • Ветеран
  • *****
  • Сообщений: 2536
  • Репутация: +532/-91
  • QRA: KO85RR
Re: Ардуино контроллер поворотки
« Ответ #434 : 08 Ноябрь 2015, 20:06:53 »
-2700 победил тем, что установил не 0.01, а 50 и вернул в положение 0.
Но это не решило проблемы. Считает импульсы хаотично в разные стороны и глючно.
При чтении импульсов происходят глюки в дисплее и прорисовываются битые символы.
Видимо геркон формирует сильнейший дребезг контактов.
« Последнее редактирование: 08 Ноябрь 2015, 20:23:56 от RA9QAW Alexandr »
Moskva, Alexandr, R2BRZ, KO85rr