Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.astronomy.ru/forum/index.php/topic,13180.60.html
Дата изменения: Sun Apr 10 06:22:58 2016
Дата индексирования: Sun Apr 10 06:22:59 2016
Кодировка: Windows-1251
Контроллер электрофокусера - стр. 4 - Телескопостроение, оптика

A A A A Автор Тема: Контроллер электрофокусера  (Прочитано 114940 раз)

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

Оффлайн Anton

  • *****
  • Сообщений: 7 530
  • Рейтинг: +84/-10
Re: Контроллер электрофокусера
« Ответ #60 : 12.02.2006 [22:19:33] »
Друзья мои, а как люфт редуктора выбирать если не применять ШД и микроконтроллер? Или это не актуально? Практика что показывает?
Практика показывает, что фокусироваться с моторчиком так же тоскливо, как и без оного и отсутствие компенсации люфта решающей роли не играет.

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #61 : 12.02.2006 [22:22:44] »
похоже потенциометр выкручиваешь в определенное положение и мотор соответственно крутится туда-сюда .
??? ??? ??? Поясните?
Судя по схеме и описанию, потенциометр изменяет частоту вращения, причем здесь туда-сюда не понимаю. :-\
Друзья мои, а как люфт редуктора выбирать если не применять ШД и микроконтроллер? Или это не актуально? Практика что показывает?
Практика показывает, что лучший инструмент,- глаза! Фокусировался  по тестовым снимкам, меньше чем +/- 20-30 шагов по картинке не заметно, (теоретически, шаг 0.004мм) фокус 1260мм,  LX90 с редуктором 6.3, КАФ 400. Мне можно не верить, но Олег Чекалин может это подтвердить.
Сергей Шарипов

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #62 : 12.02.2006 [22:27:15] »
О как! Даже слог одинаковый, пока писал, уже опередили, получился плагиатором. ;)
Сергей Шарипов

Суворов Владимир

  • Гость
Re: Конроллер электрофокусера
« Ответ #63 : 12.02.2006 [22:29:03] »

Кроме этого я вчера был на Митино - видимо пошла новая волна разборок устройств с ШД - рынок просто завален б\у шаговиками 0.72-0.9град шаг по 50-100р. 

Вот Володя хорошо сработал.
Поехал сегодня и купил практическую часть.
« Последнее редактирование: 12.02.2006 [22:32:36] от Суворов Владимир »

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Конроллер электрофокусера
« Ответ #64 : 12.02.2006 [22:34:36] »
Для того, чтобы камень прошить, его нужно сначала запаять.
Антон! Видимо я правда индеец... ::) Объясни, камень это контроллер?
Сергей Шарипов

Суворов Владимир

  • Гость
Re: Конроллер электрофокусера
« Ответ #65 : 12.02.2006 [22:40:59] »

Володя, объясни  -  как там направление вращения изменяется. На схемке я не нашел :(

Не помню. Но точно есть.  Я под это дело переключатель на корпус выводил.

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Конроллер электрофокусера
« Ответ #66 : 12.02.2006 [22:57:00] »

Володя, объясни  -  как там направление вращения изменяется. На схемке я не нашел :(

Не помню. Но точно есть.  Я под это дело переключатель на корпус выводил.
Точно нет! ;D Но делается просто, переключением обмоток двигателя.
Сергей Шарипов

Суворов Владимир

  • Гость
Re: Конроллер электрофокусера
« Ответ #67 : 12.02.2006 [23:04:04] »
Точно нет! ;D Но делается просто, переключением обмоток двигателя.

Надо у Владимира спросить. Он(этот набор) сейчас у него.

Оффлайн Anton

  • *****
  • Сообщений: 7 530
  • Рейтинг: +84/-10
Re: Конроллер электрофокусера
« Ответ #68 : 12.02.2006 [23:10:23] »
Антон! Видимо я правда индеец... ::) Объясни, камень это контроллер?
Да - это микросхема, плоская, квадратная и во все четыре стороны из нее ноги торчат.  ;D
Прошивается она либо через специальный переходник, либо в запаянном в плату виде. В запаянном виде проще.

Оффлайн Anton

  • *****
  • Сообщений: 7 530
  • Рейтинг: +84/-10
Re: Контроллер электрофокусера
« Ответ #69 : 12.02.2006 [23:26:46] »
Фокусировался  по тестовым снимкам, меньше чем +/- 20-30 шагов по картинке не заметно, (теоретически, шаг 0.004мм) фокус 1260мм,  LX90 с редуктором 6.3, КАФ 400. Мне можно не верить, но Олег Чекалин может это подтвердить.
Чтобы не гадать на кофейной гуще вот график.
По вертикали допуск дефокусировки в микронах. По горизонтали D/F. Критерий Л/10.

Оффлайн Владимир Николаевич

  • *****
  • Сообщений: 18 268
  • Рейтинг: +223/-45
  • Takahashi Россия и QHYCCD Poccия
    • Skype - gromozeka12
Re: Конроллер электрофокусера
« Ответ #70 : 13.02.2006 [05:11:29] »

Кроме этого я вчера был на Митино - видимо пошла новая волна разборок устройств с ШД - рынок просто завален б\у шаговиками 0.72-0.9град шаг по 50-100р. 

Вот Володя хорошо сработал.
Поехал сегодня и купил практическую часть.

Володь? Какой шаг у данного девайса? Скока градусов?
Дядя Вова так владел интонацией, что фразой "твою мать.." мог и похвалить и поругать и поздороваться и даже выразить соболезнование!

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Конроллер электрофокусера
« Ответ #71 : 13.02.2006 [07:45:22] »
Да - это микросхема, плоская, квадратная и во все четыре стороны из нее ноги торчат.  ;D
Ааа! Семен Семеныч! ;) А мне все в Дип корпусах мерещится.
Сергей Шарипов

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #72 : 13.02.2006 [09:08:54] »
   Ниже схема электрофокусера, упрощена схема отсюда - http://www.astronomy.ru/forum/index.php/topic,8532.0.html , убрано все что касалось управления синхронным двигателем. Прошу обратить внимание на то, что основные связи между однокристалкой, резистивной сборкой R14, и драйвером шаговика микросхемой U3 (dip20) выполняются на макетке без проводов. Т.Е. спаиваемые ножки ставятся на один пятачок. Проще некуда. Схема поддерживает два двигателя. Не знаю зачем второй, но его из схемы не выкинуть. Можно не устанавливать кнопки S5, S6. HEX файл по ссылке выше. Москвичам микропроцессор прожгу. Можно и не москвичам, но не имею понятия как передать.

« Последнее редактирование: 13.02.2006 [09:12:31] от Александр Л. »

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #73 : 13.02.2006 [09:16:45] »
Микропрограммы написаны на ELPROG PASCAL. Компилятор очень старый. Но зато бесплатный, т.е. написанные на нем программы можно публиковать. Скачать можно здесь - http://www.geocities.com/SiliconValley/Campus/9592/index.html . Текст есть и в прицепе
Тексты микропрограмм ниже -

PROGRAM TAL_MOUNT_PULT;
(* $C+ *)
{   Standard predefinitions for AT89C51  hardware.    }
(* work version without powersave mode*)
CONST
(* 100 FOR 1 MC *)
DECSPEEDSLOW=5000;
DECSPEEDHIGH=250;
FOCUSERSPEEDSLOW=5000;
FOCUSERSPEEDHIGH=250;
var
  R0   AT $08 : INTERNAL BYTE;

  P0   at $80 : internal byte;  { Port P0 }
  P1   at $90 : internal byte;  { Port P1 }
  P2   at $A0 : internal byte;  { Port P2 }
  P3   at $B0 : internal byte;  { Port P3 }

  IP   at $B8 : internal byte;  { Interrupt Priority Control }

  IE   at $A8 : internal byte;  { Interrupt Enable Control   }

  TMOD at $89 : internal byte;  { Timer/Counter Mode Control }
  M00   at $89 : INTERNAL BIT;
  M01   AT $8A : INTERNAL BIT;
  CT0   AT $8B : INTERNAL BIT;
  GATE0 AT $8C : INTERNAL BIT;

  TCON at $88 : internal byte;  { Timer/Counter Control      }

  p10 at $90 : internal bit;
  p11 at $91 : internal bit;
  p12 at $92 : internal bit;
  p13 at $93 : internal bit;
  p14 at $94 : internal bit;
  p15 at $95 : internal bit;
  p16 at $96 : internal bit;
  p17 at $97 : internal bit;

  p20 at $A0 : internal bit;
  RS  at $A1 : internal bit;
  RW  at $A2 : internal bit;
  E   at $A3 : internal bit;
  p24 at $A4 : internal bit;
  p25 at $A5 : internal bit;
  p26 at $A6 : internal bit;
  p27 at $A7 : internal bit;

  TH0  at $8C : internal byte;  { Timer/Counter 0 High Byte  }
  TL0  at $8A : internal byte;  { Timer/Counter 0 Low  Byte  }
  TH1  at $8D : internal byte;  { Timer/Counter 1 High Byte  }
  TL1  at $8B : internal byte;  { Timer/Counter 1 Low  Byte  }

  SCON at $98 : internal byte;  { Serial Control             }

  SBUF at $99 : internal byte;  { Serial Date Buffer         }

  PCON at $87 : internal byte;  { Power Control              }

  B    at $F0 : internal byte;  {register b}

  ACC  at $E0 : internal byte;  {accumulator}

  PSW  at $D0 : internal byte;  {program status word}

  SP   at $81 : internal byte;  {stack pointer}

  DPH  at $82 : internal byte;

  DPL  at $83 : internal byte;

                 (*  Bit addressable variable  *)
  EA  at $AF : bit; { Enable or disables all interrupt            }
  ES  at $AC : bit; { Enable or disable serial port interrupt     }
  ET1 at $AB : bit; { Enable or disable Timer1 overflow interrupt }
  EX1 at $AA : bit; { Enable or disable External Interrupt 1      }
  ET0 at $A9 : bit; { Enable or disable Timer0 overflow interrupt }
  EX0 at $A8 : bit; { Enable or disable External interrupt 0      }

    (* IP Bits *)
  PS  at $BC : bit; { Defines the Serial Port interrupt priority level }
  PT1 at $BB : bit; { Defines the Timer 1 interrupt priority level     }
  PX1 at $BA : bit; { Defines the External Interrupt 1 priority level  }
  PT0 at $B9 : bit; { Defines the Timer 0 interrupt priority level     }
  PX0 at $B8 : bit; { Defines the External Interrupt 0 priority level  }

   (* TCON Bits *)
  TF1 at $8F : bit; { Timer 1 overflow flag          }
  TR1 at $8E : bit; { Timer 1 run control bit        }
  TF0 at $8D : bit; { Timer 0 overflow flag          }
  TR0 at $8C : bit; { Timer 0 run control bit        }
  IE1 at $8B : bit; { Exteranl Interrupt 1 edge flag }
  IT1 at $8A : bit; { Interrupt 1 type control bit   }
  IE0 at $89 : bit; { External Interrupt 0 edge flag }
  IT0 at $88 : bit; { Interrupt 0 type control bit   }

   (* SCON Bits *)
  SM0 at $9F : bit; { Serial Port mode specifier          }
  SM1 at $9E : bit; { Serial Port mode specifier          }
  SM2 at $9D : bit; { Multi/Single Processor Enviropment  }
  REN at $9C : bit; { Enable/Disable reception            }
  TB8 at $9B : bit; { 9th bit for transfering in Mode 2,3 }
  RB8 at $9A : bit; { 9th bit, received in Mode 2,3       }
  TI  at $99 : bit; { Transmit interrupt flag             }
  RI  at $98 : bit; { Receive interrupt flag              }
 
{----------------------------------------------------}

  P37    AT $B7  : INTERNAL BIT;
 
  lowfrq, highfrq, KEYCODE, KEYCODE1 : internal byte;
  fokuser_step_counter:internal byte;
  DEC_STEP_COUNTER : INTERNAL BYTE;
  I: INTERNAL WORD;
  deccounter,focusercounter,FOCUSERSPEED: INTERNAL WORD;
  DECSPEED: INTERNAL WORD;
  DEC_CLOCKWISE,fokuser_clockwise:internal boolean;
  PROCEDURE WAITFOK;
  BEGIN
   FOR I:=1 TO FOCUSERSPEED DO;
  END;

  PROCEDURE WAITDEC;
  BEGIN
   FOR i:=1 TO DECSPEED DO;
  END;

  PROCEDURE WAITKEY;
  BEGIN
   FOR i:=1 TO 100 DO;
  END;


  interrupt procedure (TIMER0);
   (* telescope main motor driver *)
   begin
    TR0:=0; (* disable count *)
    TF0:=0; (* reset overflow bit *)
    TL0:=lowfrq;
    TH0:=highfrq;(* timer data*)
    P37:=NOT P37; (* generator clock *)
    TR0:=1; (* timer pusk *)
(*_________________________________________________*)
         IF (((KEYCODE AND 4)=0) or ((keycode and 8)=0)) then
          BEGIN
           if deccounter<700 then deccounter:=deccounter+1;
          END;

         IF (((KEYCODE AND 4)=4) and ((keycode and 8)=8)) then
          BEGIN
           deccounter:=1;
          END;
        if deccounter=700 then decspeed:=decspeedhigh
             else decspeed:=decspeedslow;

         IF (((KEYCODE AND 16)=0) or ((keycode and 32)=0)) then
          BEGIN
           if FOCUSERcounter<700 then FOCUSERcounter:=FOCUSERcounter+1;
          END;

         IF (((KEYCODE AND 16)=16) and ((keycode and 32)=32)) then
          BEGIN
           FOCUSERcounter:=1;
          END;
        if FOCUSERcounter=700 then FOCUSERspeed:=FOCUSERspeedhigh
             else FOCUSERspeed:=FOCUSERspeedslow;


(*_________________________________________________*)

   END;

  PROCEDURE TIMER_SET_UP;
   BEGIN
    TMOD:=1;
  (*GATE0:=0; internal pusk by tr0
    CT0:=0;   count from internal generator
    M00:=1;   16 bit mode
    M01:=0;   16 bit mode *)

    PT0:=1;   (* timer 0 high priority interrupt level *)
    TL0:=lowfrq;
    TH0:=highfrq; (* timer data *)
    ET0:=1;   (* enable timer0 interrupt *)
    TR0:=1;   (* timer pusk *)
   END;


    PROCEDURE TWO_FASE_FOCUSER_FULL_STEP;
     BEGIN
      if fokuser_clockwise then
       begin
        if fokuser_step_counter<4 then fokuser_step_counter:=fokuser_step_counter+1
        else fokuser_step_counter:=1;
       end
        else
       begin
        if fokuser_step_counter>1 then fokuser_step_counter:=fokuser_step_counter-1
        else fokuser_step_counter:=4;
       end;
      case fokuser_step_counter of
       1:begin P10:=1; P11:=0; P12:=1; P13:=0; WAITFOK; end;
       2:begin P10:=0; P11:=1; P12:=1; P13:=0; WAITFOK; end;
       3:begin P10:=0; P11:=1; P12:=0; P13:=1; WAITFOK; end;
       4:begin P10:=1; P11:=0; P12:=0; P13:=1; WAITFOK; end;
      end;(*of case*)
     END;
   
    PROCEDURE TWO_FASE_DEC_FULL_STEP;
     BEGIN
      if DEC_clockwise then
       begin
        if DEC_step_counter<4 then DEC_step_counter:=DEC_step_counter+1
        else DEC_step_counter:=1;
       end
        else
       begin
        if DEC_step_counter>1 then DEC_step_counter:=DEC_step_counter-1
        else DEC_step_counter:=4;
       end;
      case DEC_step_counter of
       1:begin P14:=1; P15:=0; P16:=1; P17:=0; WAITDEC; end;
       2:begin P14:=0; P15:=1; P16:=1; P17:=0; WAITDEC; end;
       3:begin P14:=0; P15:=1; P16:=0; P17:=1; WAITDEC; end;
       4:begin P14:=1; P15:=0; P16:=0; P17:=1; WAITDEC; end;
      end;(*of case*)
     END;

 BEGIN (*MAIN*)
    ES:=0;   {  disable serial port interrupt     }
    ET1:=0;  {  disable Timer1 overflow interrupt }
    EX1:=0;  {  disable External Interrupt 1      }
    ET0:=0;  {  disable Timer0 overflow interrupt }
    EX0:=0;  {  disable External interrupt 0      }
    EA:=1;   (* INTERRUPT ENABLE *)

    P1:=$AA; (* SET FAZE    *)
    P3:=$FF; (* PORT3 INPUT *)

    lowfrq:=$3D;
    higHfrq:=$D9;  (* TIMER - 50.13 HZ  *)
    fokuser_step_counter:=1;
    DEC_STEP_COUNTER:=1;
    DECSPEED:=DECSPEEDSLOW;
    FOCUSERSPEED:=FOCUSERSPEEDSLOW;
    TIMER_SET_UP;

    repeat
      KEYCODE:=P3;
      KEYCODE:=P3 AND $3F;
      WAITKEY;
      KEYCODE1:=P3;
      KEYCODE1:=KEYCODE1 AND $3F;
        IF (KEYCODE=KEYCODE1) THEN (* CHECK DEBOUNCE *)
         BEGIN (* KEY DESHIFRATOR *)
          IF (((KEYCODE AND 1)=1) AND ((KEYCODE AND 2)=2)) THEN
            BEGIN
            LOWFRQ:=$3D;
            HIGHFRQ:=$D9;
            END; (* TIMER - 50 HZ D8EF, 50.13 hz with correction d93D *)
          IF ((KEYCODE AND $1)=0) THEN
           BEGIN
            LOWFRQ:=$2B;
            HIGHFRQ:=$CF;  (* TIMER - 40 HZ CF2B *)
           END;
          IF ((KEYCODE AND $2)=0) THEN
           BEGIN
            LOWFRQ:=$7B;
            HIGHFRQ:=$E1;  (* TIMER - 64 HZ E17B *)
           END;

          IF (((KEYCODE AND 4)=0) AND ((KEYCODE AND 8)=8)) THEN
            BEGIN
             DEC_CLOCKWISE:=TRUE;
             TWO_FASE_DEC_FULL_STEP;
            END; (* declination step forward *)
          IF (((KEYCODE AND 8)=0) AND ((KEYCODE AND 4)=4)) THEN
            BEGIN
             DEC_CLOCKWISE:=FALSE;
             TWO_FASE_DEC_FULL_STEP;
            END; (* declination step BACK *)

          IF (((KEYCODE AND 16)=0) AND ((KEYCODE AND 32)=32)) THEN
            BEGIN
             fokuser_clockwise:=true;
             TWO_FASE_FOCUSER_FULL_STEP;
            END; (* FOCUSER step forward *)
          IF (((KEYCODE AND 32)=0) AND ((KEYCODE AND 16)=16)) THEN
            BEGIN
             fokuser_clockwise:=false;
             TWO_FASE_FOCUSER_FULL_STEP;
            END; (* FOCUSER step BACK *)

         END;(* KEY DESHIFRATOR *)
    UNTIL FALSE;
 end.


« Последнее редактирование: 13.02.2006 [09:20:24] от Александр Л. »

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #74 : 13.02.2006 [09:24:09] »
   HEX файл в прицепе -


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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #75 : 13.02.2006 [09:35:11] »
   Внешний вид, внизу виден и привод оси склонений.


Оффлайн Alexey_Smirnov

  • *****
  • Сообщений: 1 351
  • Рейтинг: +27/-15
Re: Контроллер электрофокусера
« Ответ #76 : 13.02.2006 [09:37:07] »
Ув. Александр Л.

Скажите пожалуйста, а FreePascal Ваш чип не поддерживает?

С уважением.

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

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер электрофокусера
« Ответ #77 : 13.02.2006 [09:54:48] »
   Похоже, что нет. Если говорить о свободных компиляторах языков высокого уровня для микропрограммирования, то знаю еще один WINAVR - http://winavr.sourceforge.net/ . Это среда разработки с компилятором языка С для микроконтроллеров AVR фирмы ATMEL.

Оффлайн INPanАвтор темы

  • *****
  • Сообщений: 7 009
  • Рейтинг: +112/-1
  • Игорь Панкратов
Re: Контроллер электрофокусера
« Ответ #78 : 13.02.2006 [20:55:37] »
Александр, интересная схема!
Опишите пожалуйста принцип работы устройства. Что делают четыре кнопки?

Оффлайн INPanАвтор темы

  • *****
  • Сообщений: 7 009
  • Рейтинг: +112/-1
  • Игорь Панкратов
Re: Контроллер электрофокусера
« Ответ #79 : 13.02.2006 [21:18:54] »
А вот и обещанные платы.
Сначала сам контроллер.