Телескопы покупают здесь


A A A A Автор Тема: Контроллер КФ.  (Прочитано 105112 раз)

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

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #200 : 22 Дек 2007 [17:59:06] »
Патч для step_motors.h:
- double delayMs = (500.0 * EEData.m_MotorStep) / currSpeed - 0.43;
+ double delayMs = (500.0 * EEData.m_MotorStep) / (int)currSpeed - 0.43;

Патч для filterwheel2.c:
-tempers[ i ] = ((float)count * tempers[ i ] + temper) / ((float)(count + 1));
+tempers[ i ] = ((int)count * tempers[ i ] + (int)temper) / (int)(count + 1);

Иван, проверь, пожалуйста, работоспособность.

Интересное дело, получается надо избегать только умножений float * float, a float * int и float / int не требуют некой библиотеки...

Я проверю.

А твоя схема-то уже работает?
« Последнее редактирование: 22 Дек 2007 [18:00:37] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #201 : 22 Дек 2007 [18:02:15] »
А твоя схема-то уже работает?
Еще нет. :(
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #202 : 24 Дек 2007 [01:55:02] »
Тестирую алгоритм температурной компенсации.
Синий график - температура трубы ньютона (датчик прилеплен через термопасту, и прикрыт теплоизоляцией от воздуха).
Розовый - датчик болтается в воздухе.
Температура контроллером осредняется за 100сек.

Красный - отмасштабированная позиция фокусера (коэфициент поставил 50 шагов на градус, люфт=6)

На мой взгляд работает нормально, без нужды реверс не включается (на мелкие провалы температуры не реагирует).
И вполне видно, что датчик термокомпенсации нельзя оставлять в воздухе - температура скачет.
Интересно будет отследить - по этим скачкам можно-ли оценить состояние атмосферы...
« Последнее редактирование: 24 Дек 2007 [02:02:24] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #203 : 24 Дек 2007 [02:26:57] »
Что поменял в прошивке.

1. Разбил весь код по дефайнам
#define _FOCUSER_
#define _FILTERWHEEL_

Чтобы можно было по одним исходникам скомпилировать "фокусер+колесо", либо что-то одно из них под старую схему (как я понимаю, она у многих уже спаяна). 

2. перешел на тактовую 8мгц (мучал I2C, скорости мне не хватало)
При желании, достаточно в makefile вписать нужную частоту и откомпилировать под неё.

2. в прошивке извел полностью все упоминания о float и double (код резко сократился на 1кб)
осреднение температур сейчас работает на int32 арифметике

На фотке - "фокусер+колесо" на atmega16 и с 20-символьным экраном (4 температуры показывать), и отдельно "фокусер", на старой схеме. Все это работает с текущими прошивками.
« Последнее редактирование: 24 Дек 2007 [02:55:39] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #204 : 10 Янв 2008 [15:13:44] »
lazyBSD

Проверь с твоей прошивкой работу програмки и аском плагина.
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #205 : 10 Янв 2008 [16:20:03] »
Проверь с твоей прошивкой работу програмки и аском плагина.
Обязательно проверю, но только вечером. Спасибо!

Да, забыл сказать, а может добавить в схему внешний eeprom? Например, AT24C01A-10PI (PU) -2.7 PDIP8. И записывать данные после каждой коррекции фокуса, не парясь с питанием? По даташиту - 1M write cycles.

« Последнее редактирование: 10 Янв 2008 [16:35:26] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #206 : 10 Янв 2008 [17:21:03] »
   Для защиты входа от перенапряжения можно поставить стабилитрон на 5 вольт параллельно резистору R2, например КС147. Не знаю только надо ли. Если только кто-нибудь будет использовать высоковольтные шаговики.
   Ограниченный ресурс флашки является слабым местом и контроллера фокусера и комбайна. Меня также посещали определенные сомнения по поводу применения подобной системы. Однако во первых такой фокусер, точнее контроллер, существует серийный. Он просто запоминает свое положение после каждого перемещения. Модель не помню, но не из дешевых. Во вторых ресурс флашки больше заявленного. Был случай у моего знакомого, совсем недавно. Он случайно в контроллере запоминал время во флашке каждую секунду. Контроллеры были выпущены партией в 50 штук. Первый загнулся через только через 3 месяца. Работали контроллеры круглосуточно. Процессор правда был другой, но тоже фирмы ATMEL. С учетом возможных перемещений фокусера в реальной системе и кол-ва ночей съемки должно хватить за глаза.
   Если не лень и есть желание помучиться, то существует широко распространенный способ решения этой проблемы, который не был использован в контроллере фокусера из-за ограничений по размеру ПЗУ и недостаточному кол-ву ног - прерывание по сбою питания. В управляющих системах использовались процессоры в былые времена которые имели зарезервированный вектор прерывания для отработки сбою питания.
   Сделать это можно так. В любой меге есть встроенный компаратор, один из входов которого можно подключить к встроенному источнику опорного напряжения. Второй вход компаратора можно подключить через резистивный делитель к входному напряжению и рассчитать цепочку так, чтобы переброс компаратора происходил например при 8.5 вольтах. В случае использования стабилизатора на 5 вольт с малым падением напряжения между входом и выходом (1158ен5) останется еще время на запись во флаш, поскольку входное напряжение будет падать до 6 вольт при еще работоспособном процессоре. Емкость конденсатора, который сглаживает напряжение – условно 12 вольт – должен быть достаточно большим для обеспечения нужного времени разряда. Надо предусмотреть цепь обеспечивающую невозможность разряда конденсатора во входную цепь в виде диода. По перебросу компаратора есть возможность организовать прерывание, причем предусмотрены широкие возможности – по любому фронту и по моему по уровню. Два резистора это меньше чем лишняя флаш.
   В случае проблем с памятью нет необходимости жаться – есть mega32, цоколь вроде тот же, но ПЗУ больше.

  Запись во флаш в этом случае будет производиться только при выключении питания.
 
« Последнее редактирование: 10 Янв 2008 [17:26:16] от Александр Л. »

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #207 : 10 Янв 2008 [18:50:51] »
   Сделать это можно так.
Спасибо за хорошую наводку! В связи с этим возникла мысль. Может проще это сделать сгенерировав внешнее прерывание INT0?
Ведь есть возможность:

даташит atmega32
Цитата

ISC01 ISC00  Description
  0     0     The low level of INT0 generates an interrupt request.


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

DC Characteristics, из того же даташита:
Цитата
Input Low Voltage except XTAL1 and RESET pins       Min: -0.5 Max: 0.2Vcc
Соответственно, если на INT0 будет 1.2-1.3V во время нормальной работы, прерывание не будет сгенерировано.


Проверь с твоей прошивкой работу програмки и аском плагина.

Работает. А куда ей деваться. Колесо видится, фильтры менять пытается. :) Для фокусера драйвера пока нет.
« Последнее редактирование: 10 Янв 2008 [21:58:18] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #208 : 11 Янв 2008 [09:56:10] »
   Компаратор аналоговый, т.е. это схема, которая имеет большую точность сравнения напряжений - примерно 20 mv. Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора. Можно поставить внешний компаратор, но деталей будет больше.
    Вообще процесс совершенствования бесконечен. Можно конечно сделать так, что комбайн и за пивом будет ходить, но вряд ли нужно.  :)

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #209 : 11 Янв 2008 [10:06:33] »
Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора.
Спасибо, Александр, за разъяснения. Значит есть поле для экспериментов.

Можно конечно сделать так, что комбайн и за пивом будет ходить, но вряд ли нужно.  :)
Не, бегать не нужно, но охлаждать пиво и греть котлету мы его научим. :)
/ссылка запрещена правилами форума/

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 682
  • Благодарностей: 49
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер КФ.
« Ответ #210 : 11 Янв 2008 [11:19:46] »
Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора.
Спасибо, Александр, за разъяснения. Значит есть поле для экспериментов.

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

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #211 : 20 Янв 2008 [15:13:42] »
Ivan7enych, проверь, пожалуйста, работоспособность.

Привет!

По схеме замечание - при дребезге контактов в переменном сопростивлении на вход микроконтроллера проскакивает +12В. Либо переменник ставь между +12 и средней точкой, либо делай отвод на микросхему от среднего вывод переменника. И точные 1% сопротивления тут не нужны, хватит банальных 5% точности.
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Дядя Вова

  • *****
  • Сообщений: 8 093
  • Благодарностей: 95
    • Сообщения от Дядя Вова
Re: Контроллер КФ.
« Ответ #212 : 20 Янв 2008 [15:28:57] »
Ivan7enych, проверь, пожалуйста, работоспособность.

Привет!

По схеме замечание - при дребезге контактов в переменном сопростивлении на вход микроконтроллера проскакивает +12В. Либо переменник ставь между +12 и средней точкой, либо делай отвод на микросхему от среднего вывод переменника. И точные 1% сопротивления тут не нужны, хватит банальных 5% точности.
imho lостаточно объеденить выводы A и S переменника
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg
Meade ETX-90PE

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #213 : 20 Янв 2008 [16:01:29] »
Привет, Ivan7enych!
По схеме замечание
Спасибо! Ты проверил?
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #214 : 20 Янв 2008 [16:41:13] »
Спасибо! Ты проверил?

Прошивку - только начал разбираться.

Пока заметил, что 2 дефайна ONE_WIRE и TWO_WIRE дублируют переменную m_TermometersType, её надо будет выкинуть.

Потом, ты под эти дефайны засунул кучу кода, а в чем смысл? У нас есть вариант фокусера без термодатчиков вообще?

Дефайн LaZY хорошо-бы переименовать в что-то типа VOLTAGE_METER.

По прерыванию - сейчас по любому броску напряжения (к примеру, паралельно включили емкостную нагрузку) контроллер зависнет напрочь. Это не дело. По падению напряжения надо записывать позицию во флеш и ждать поднятия напряжения (вдруг поднимется), после чего работать нормально дальше.

Я спаяю схемку и проверю как работает, потом выложу код со всеми исправлениями.

И по хорошему надо-бы схему и печатную плату опубликовать со всеми твоими изменениями. А то пока людям виден процесс, а взять текущий результат и воплотить - сложно.
« Последнее редактирование: 20 Янв 2008 [18:43:28] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #215 : 20 Янв 2008 [21:38:48] »
Пока заметил, что 2 дефайна ONE_WIRE и TWO_WIRE дублируют переменную m_TermometersType, её надо будет выкинуть.
100%. Я ее не выкидывал только для совместимости с программой управления.

Потом, ты под эти дефайны засунул кучу кода, а в чем смысл? У нас есть вариант фокусера без термодатчиков вообще?
Может у кого-то тяжело с термодатчиками или они им просто ненужны.

Я спаяю схемку и проверю как работает, потом выложу код со всеми исправлениями.
Хорошо.

И по хорошему надо-бы схему и печатную плату опубликовать со всеми твоими изменениями. А то пока людям виден процесс, а взять текущий результат и воплотить - сложно.
У тебя есть старый игловский вариант? Пришли, я внесу изменения и попробую развести новую плату.
Может туда и реле добавить? А то опять переделывать...
« Последнее редактирование: 20 Янв 2008 [23:49:03] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #216 : 21 Янв 2008 [00:02:44] »
Потом, ты под эти дефайны засунул кучу кода, а в чем смысл? У нас есть вариант фокусера без термодатчиков вообще?
Может у кого-то тяжело с термодатчиками или они им просто не нужны.

Код фокусера с датчиками ds1621 сейчас в 7кб влезает, в atmega8 с запасом. Мы и так уже кучей дефайнов код замусорили... Я пока опустил их.

У тебя есть старый игловский вариант? Пришли, я внесу изменения и попробую развести новую плату.
Может туда и реле добавить? А то опять переделывать...
Хорошо, завтра на работе поищу.

Я спаяю схемку и проверю как работает, потом выложу код со всеми исправлениями.
Хорошо.

Схемка заработала. Подбором сопротивлений выставил напряжения срабатывания 8 вольт.
Запись 4-х байт требует 25мс, я после кренки поставил конденсатор 1000мкФ, за время записи во флеш напряжение падает с 5 до 4 вольт, пишется стабильно.

Конденсатор в основном разряжается питанием подсветки экрана, если ее вывести отдельно, то конденсатор можно сильно уменьшить.

Для отладки, на соседний вывод PD3 вывожу "0" в процессе записи во флеш.

Прошивку боле-менее отладил, проверяй не напротил-ли что в твоем варианте.
Функции записи во флеш пришлось использовать библиотечные, местные функции портили данные во флеше, видимо из-за включения-выключения прерываний.
« Последнее редактирование: 21 Янв 2008 [00:44:05] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 335
  • Благодарностей: 10
    • Сообщения от lazyBSD
Re: Контроллер КФ.
« Ответ #217 : 21 Янв 2008 [01:20:17] »
Прошивку боле-менее отладил, проверяй не напротил-ли что в твоем варианте.
По мелочи...

1. char ee_t0[]      EEPROM_SECTION ="Focuser FilterWheel";
Не лезет в 16 символов.

eeprom_data.h

#if defined(_FOCUSER_) && defined(_FILTERWHEEL_)
   #if (LCD_WIDTH > 16)
      char ee_t0[]      EEPROM_SECTION ="Focuser FilterWheel";
   #else
      char ee_t0[]      EEPROM_SECTION ="* Focuser + FW *";
   #endif
#else
   #ifdef _FOCUSER_
      char ee_t0[]   EEPROM_SECTION ="*   Focuser    *";
   #else
      char ee_t0[]   EEPROM_SECTION ="* Filter Wheel *";
   #endif
#endif


2. Почему нельзя обойтись только lcd_clean_fast()?

3. Кнопки зачем поменял местами? :)
« Последнее редактирование: 21 Янв 2008 [01:40:28] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #218 : 21 Янв 2008 [12:05:43] »
У тебя есть старый игловский вариант? Пришли, я внесу изменения и попробую развести новую плату.
Может туда и реле добавить? А то опять переделывать...

Вложил в архиве.

Твои замечания по прошивке дома поправлю.
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 12 059
  • Благодарностей: 764
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Ivan7enych
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #219 : 22 Янв 2008 [01:46:35] »
Исправил замеченные недостатки.

И реализовал максимальное число шагов от фильтра к фильтру (хранится в EEPROM).
Теперь, если с колесом что-то не то (обрыв соединения, заклинило колесо, слишком высокая скорость мотора...)
 вместо имени фильтра покажется "? ? ?" .

В таком "ошибочном" состоянии любая команда смены фильтра сначала попытается найти датчик "Home", только затем (если получилось) поедет к нужному фильтру.

Кстати, если хочется сделать опторазвязку компа от контроллера (т.е. компа от блока питания), то это это легко делается на ft232 и 2-х оптопарах, при этом ft232 питается от usb, а выходы оптопар - от питания контроллера. На max232 так легко не выйдет - надо придумывать независимое питание...
« Последнее редактирование: 22 Янв 2008 [10:02:12] от Ivan7enych »
Видео отчеты мастерской
телескопы - 230мм/4 самодельный ньютон для поездок, Televue NP101is на удаленке, 500мм ньютон в постройке.
Просьбы о ремонте пишите мне в телеграм, не в личку.