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


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

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

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re: Контроллер электрофокусера
« Ответ #60 : 12 Фев 2006 [23:19:33] »
Друзья мои, а как люфт редуктора выбирать если не применять ШД и микроконтроллер? Или это не актуально? Практика что показывает?
Практика показывает, что фокусироваться с моторчиком так же тоскливо, как и без оного и отсутствие компенсации люфта решающей роли не играет.

Оффлайн serzg

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

Оффлайн serzg

  • *****
  • Сообщений: 2 828
  • Благодарностей: 21
    • Сообщения от serzg
Re: Контроллер электрофокусера
« Ответ #62 : 12 Фев 2006 [23:27:15] »
О как! Даже слог одинаковый, пока писал, уже опередили, получился плагиатором. ;)
Сергей Шарипов

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

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

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

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

Оффлайн serzg

  • *****
  • Сообщений: 2 828
  • Благодарностей: 21
    • Сообщения от serzg
Re: Конроллер электрофокусера
« Ответ #64 : 12 Фев 2006 [23:34:36] »
Для того, чтобы камень прошить, его нужно сначала запаять.
Антон! Видимо я правда индеец... ::) Объясни, камень это контроллер?
Сергей Шарипов

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

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

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

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

Оффлайн serzg

  • *****
  • Сообщений: 2 828
  • Благодарностей: 21
    • Сообщения от serzg
Re: Конроллер электрофокусера
« Ответ #66 : 12 Фев 2006 [23:57:00] »

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

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

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

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

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

Оффлайн Anton

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

Оффлайн Anton

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

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

  • *****
  • Сообщений: 24 111
  • Благодарностей: 434
  • Takahashi Россия и QHYCCD Poccия
    • Skype - gromozeka12    вайбер +7 903 610-62-15
    • Сообщения от Владимир Николаевич
Re: Конроллер электрофокусера
« Ответ #70 : 13 Фев 2006 [06:11:29] »

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

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

Володь? Какой шаг у данного девайса? Скока градусов?
Клевцов 470мм - 2экз, МАК Сантел 420 1\8 на передержке,  Доб 355мм SS, Доб 254, МАК Сантел 230мм, АПО 180мм на Losmandy Titan, подзорная труба 102\900ED SW,  бино 70ED, 70 Non-ED, 10х42ED, 10х50ED.

Оффлайн serzg

  • *****
  • Сообщений: 2 828
  • Благодарностей: 21
    • Сообщения от serzg
Re: Конроллер электрофокусера
« Ответ #71 : 13 Фев 2006 [08:45:22] »
Да - это микросхема, плоская, квадратная и во все четыре стороны из нее ноги торчат.  ;D
Ааа! Семен Семеныч! ;) А мне все в Дип корпусах мерещится.
Сергей Шарипов

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

  • *****
  • Сообщений: 3 681
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер электрофокусера
« Ответ #72 : 13 Фев 2006 [10:08:54] »
   Ниже схема электрофокусера, упрощена схема отсюда - https://astronomy.ru/forum/index.php/topic,8532.0.html , убрано все что касалось управления синхронным двигателем. Прошу обратить внимание на то, что основные связи между однокристалкой, резистивной сборкой R14, и драйвером шаговика микросхемой U3 (dip20) выполняются на макетке без проводов. Т.Е. спаиваемые ножки ставятся на один пятачок. Проще некуда. Схема поддерживает два двигателя. Не знаю зачем второй, но его из схемы не выкинуть. Можно не устанавливать кнопки S5, S6. HEX файл по ссылке выше. Москвичам микропроцессор прожгу. Можно и не москвичам, но не имею понятия как передать.

« Последнее редактирование: 13 Фев 2006 [10:12:31] от Александр Л. »

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

  • *****
  • Сообщений: 3 681
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер электрофокусера
« Ответ #73 : 13 Фев 2006 [10: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 Фев 2006 [10:20:24] от Александр Л. »

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

  • *****
  • Сообщений: 3 681
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер электрофокусера
« Ответ #74 : 13 Фев 2006 [10:24:09] »
   HEX файл в прицепе -


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

  • *****
  • Сообщений: 3 681
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Контроллер электрофокусера
« Ответ #75 : 13 Фев 2006 [10:35:11] »
   Внешний вид, внизу виден и привод оси склонений.


Оффлайн Alexey_Smirnov

  • *****
  • Сообщений: 1 367
  • Благодарностей: 12
    • Сообщения от Alexey_Smirnov
Re: Контроллер электрофокусера
« Ответ #76 : 13 Фев 2006 [10:37:07] »
Ув. Александр Л.

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

С уважением.

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

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

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

  • *****
  • Сообщений: 8 696
  • Благодарностей: 196
  • Игорь Панкратов
    • Сообщения от INPan
Re: Контроллер электрофокусера
« Ответ #78 : 13 Фев 2006 [21:55:37] »
Александр, интересная схема!
Опишите пожалуйста принцип работы устройства. Что делают четыре кнопки?

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

  • *****
  • Сообщений: 8 696
  • Благодарностей: 196
  • Игорь Панкратов
    • Сообщения от INPan
Re: Контроллер электрофокусера
« Ответ #79 : 13 Фев 2006 [22:18:54] »
А вот и обещанные платы.
Сначала сам контроллер.