Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.astronomy.ru/forum/index.php/topic,22075.200.html
Дата изменения: Sun Apr 10 07:29:14 2016
Дата индексирования: Sun Apr 10 07:29:15 2016
Кодировка: Windows-1251
Контроллер КФ. - стр. 11 - Телескопостроение, оптика

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

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

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #200 : 22.12.2007 [16: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.12.2007 [17:00:37] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #201 : 22.12.2007 [17:02:15] »
А твоя схема-то уже работает?
Еще нет. :(
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #202 : 24.12.2007 [00:55:02] »
Тестирую алгоритм температурной компенсации.
Синий график - температура трубы ньютона (датчик прилеплен через термопасту, и прикрыт теплоизоляцией от воздуха).
Розовый - датчик болтается в воздухе.
Температура контроллером осредняется за 100сек.

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

На мой взгляд работает нормально, без нужды реверс не включается (на мелкие провалы температуры не реагирует).
И вполне видно, что датчик термокомпенсации нельзя оставлять в воздухе - температура скачет.
Интересно будет отследить - по этим скачкам можно-ли оценить состояние атмосферы...
« Последнее редактирование: 24.12.2007 [01:02:24] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #203 : 24.12.2007 [01:26:57] »
Что поменял в прошивке.

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

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

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

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

На фотке - "фокусер+колесо" на atmega16 и с 20-символьным экраном (4 температуры показывать), и отдельно "фокусер", на старой схеме. Все это работает с текущими прошивками.
« Последнее редактирование: 24.12.2007 [01:55:39] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #204 : 10.01.2008 [14:13:44] »
lazyBSD

Проверь с твоей прошивкой работу програмки и аском плагина.
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #205 : 10.01.2008 [15:20:03] »
Проверь с твоей прошивкой работу програмки и аском плагина.
Обязательно проверю, но только вечером. Спасибо!

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

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

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

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

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

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #207 : 10.01.2008 [17: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.01.2008 [20:58:18] от lazyBSD »
/ссылка запрещена правилами форума/

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #208 : 11.01.2008 [08:56:10] »
   Компаратор аналоговый, т.е. это схема, которая имеет большую точность сравнения напряжений - примерно 20 mv. Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора. Можно поставить внешний компаратор, но деталей будет больше.
    Вообще процесс совершенствования бесконечен. Можно конечно сделать так, что комбайн и за пивом будет ходить, но вряд ли нужно.  :)

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #209 : 11.01.2008 [09:06:33] »
Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора.
Спасибо, Александр, за разъяснения. Значит есть поле для экспериментов.

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

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #210 : 11.01.2008 [10:19:46] »
Использование в таком качестве цифровых входов затруднено большим разбросом напряжения перехода из нуля в единицу и обратно и его дрейфами, а также разбросом  напряжения перехода  конкретного процессора.
Спасибо, Александр, за разъяснения. Значит есть поле для экспериментов.

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

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #211 : 20.01.2008 [14:13:42] »
Ivan7enych, проверь, пожалуйста, работоспособность.

Привет!

По схеме замечание - при дребезге контактов в переменном сопростивлении на вход микроконтроллера проскакивает +12В. Либо переменник ставь между +12 и средней точкой, либо делай отвод на микросхему от среднего вывод переменника. И точные 1% сопротивления тут не нужны, хватит банальных 5% точности.
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

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

  • *****
  • Сообщений: 6 416
  • Рейтинг: +36/-1
  • "я видел воочью пространство и время"
Re: Контроллер КФ.
« Ответ #212 : 20.01.2008 [14:28:57] »
Ivan7enych, проверь, пожалуйста, работоспособность.

Привет!

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

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #213 : 20.01.2008 [15:01:29] »
Привет, Ivan7enych!
По схеме замечание
Спасибо! Ты проверил?
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #214 : 20.01.2008 [15:41:13] »
Спасибо! Ты проверил?

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

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

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

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

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

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

И по хорошему надо-бы схему и печатную плату опубликовать со всеми твоими изменениями. А то пока людям виден процесс, а взять текущий результат и воплотить - сложно.
« Последнее редактирование: 20.01.2008 [17:43:28] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #215 : 20.01.2008 [20:38:48] »
Пока заметил, что 2 дефайна ONE_WIRE и TWO_WIRE дублируют переменную m_TermometersType, её надо будет выкинуть.
100%. Я ее не выкидывал только для совместимости с программой управления.

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

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

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

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #216 : 20.01.2008 [23:02:44] »
Потом, ты под эти дефайны засунул кучу кода, а в чем смысл? У нас есть вариант фокусера без термодатчиков вообще?
Может у кого-то тяжело с термодатчиками или они им просто не нужны.

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

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

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

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

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

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

Прошивку боле-менее отладил, проверяй не напротил-ли что в твоем варианте.
Функции записи во флеш пришлось использовать библиотечные, местные функции портили данные во флеше, видимо из-за включения-выключения прерываний.
« Последнее редактирование: 20.01.2008 [23:44:05] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн lazyBSD

  • *****
  • Сообщений: 3 286
  • Рейтинг: +9/-0
Re: Контроллер КФ.
« Ответ #217 : 21.01.2008 [00: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.01.2008 [00:40:28] от lazyBSD »
/ссылка запрещена правилами форума/

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #218 : 21.01.2008 [11:05:43] »
У тебя есть старый игловский вариант? Пришли, я внесу изменения и попробую развести новую плату.
Может туда и реле добавить? А то опять переделывать...

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

Твои замечания по прошивке дома поправлю.
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267

Оффлайн Ivan7enych

  • Модератор
  • *****
  • Сообщений: 9 513
  • Рейтинг: +300/-3
  • Ионов Иван
  • Награды Победитель ежегодного конкурса астрофото
    • Астропроекты и астрософт
Re: Контроллер КФ.
« Ответ #219 : 22.01.2008 [00:46:35] »
Исправил замеченные недостатки.

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

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

Кстати, если хочется сделать опторазвязку компа от контроллера (т.е. компа от блока питания), то это это легко делается на ft232 и 2-х оптопарах, при этом ft232 питается от usb, а выходы оптопар - от питания контроллера. На max232 так легко не выйдет - надо придумывать независимое питание...
« Последнее редактирование: 22.01.2008 [09:02:12] от Ivan7enych »
ньютоны - 320 астросиб и 230 - Каминский, Televue NP101is, камеры QHY11 и QHY5II-L, монти WS180 и HEQ5Pro
сотовый 926 - О23-O267