Resolvi então usar a cabeça e bolar uma motorização para a eq2. Defini que tinha que ser barata, ser rústica ("bruta mesmo"), e precisa. Eu tinha um arduíno em casa e fui atrás de informação. Eis os materiais usados!
Motor de passo retirado de um sistema de iluminação de festa. Nema 23, 14v, 0,35a, 1,8segundos por passo. Me cobraram 25 reais por isso. Qualquer motor de passo bipolar com tensão até 14, e corrente até 500mA serve, embora seja melhor usar um com resolução de 1,8º.
Sucata de impressora. Pedi umas engrenagens numa assistência técnica, e o dono me deu essa carcaça(ainda ganhei uns motores cc e várias partes de aço galvanizado). Free
Caixa patola, botões, pinos terminais e uma placa universal para prototipagem. Custou 15 reais numa loja de materiais eletrônicos.
Aqui o motor já fixado no suporte. A engrenagem substituiu a engrenagem metálica original. Como o eixo é cônico, ultrapassei apenas a ponta do ferro de soldar, e coloquei o parafuso como ficava na engrenagem original. Nesse caso a relação das engrenagens ficou apenas 2-1. Mas como elas não custaram nada, ficou ótimo.
O arduíno e o "shield" com o ci l297d.
O Arduíno(acima) custa em média 45 reais
Custo total, 85 reais. Com microsteps, ficou um treco muito, muito mais robusto as que motorizações que existem à venda, e bastante preciso. A resolução ficou 0,197 segundos de arco por passo. Se colocar um 130mm na montagem, pelo critério de rayleigh a resolução o telescópio dá 1,07s de arco , então a resolução da motorização está bem abaixo da resolução máxima do 130mm..
Finalmente testei a montagem no bequinho de casa, só deu pra tirar uma foto, com tempo de exposição de 60s, da estrela Spica, com alinhamento mais ou menos.
Nesse projeto se faz necessário o uso de uma fonte 12v, 0,5A no mínimo. Se quiser sair de casa precisarei de uma bateria 12v7ah dessas de moto eletrica de criança. Vai alimentar a montagem e o aquecedor anti-orvalho que estou fazendo por dezenas de horas.
Abaixo o código para arduíno em 32microsteps,
int A = 3;
int B = 9;
int C = 11;
int D = 10;
long d25 = 64;
long d50 = 127;
long d75 = 191;
long dutyCycle = 127; //Preguiça de mudar checa-botão, rsrs...
int sobe2x = 2;
int desce2x = 4;
int sobe8x = 5;
int desce8x = 6;
long tempoPasso = 197;
void setup() {
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(sobe2x, INPUT_PULLUP);
pinMode(desce2x, INPUT_PULLUP);
pinMode(sobe8x, INPUT_PULLUP);
pinMode(desce8x, INPUT_PULLUP);
}
void p1(long velocidade){
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("1");
}
void p2(long velocidade,long d){
digitalWrite(A, HIGH);
analogWrite(B, d);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("2");
}
void p3(long velocidade){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("3");
}
void p4(long velocidade, long d){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
analogWrite(D, d);
delay(velocidade);
Serial.println("4");
}
void p5(long velocidade){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
delay(velocidade);
Serial.println("5");
}
void p6(long velocidade, long d){
analogWrite(A, d);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
delay(velocidade);
Serial.println("6");
}
void p7(long velocidade){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
delay(velocidade);
Serial.println("7");
}
void p8(long velocidade, long d){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
analogWrite(C, d);
digitalWrite(D, HIGH);
delay(velocidade);
Serial.println("8");
}
void p9(long velocidade){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
delay(velocidade);
Serial.println("9");
}
void p10(long velocidade, long d){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
analogWrite(D, d);
delay(velocidade);
Serial.println("10");
}
void p11(long velocidade){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("11");
}
void p12(long velocidade, long d){
digitalWrite(A, LOW);
analogWrite(B, d);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("12");
}
void p13(long velocidade){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("13");
}
void p14(long velocidade, long d){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
analogWrite(C, d);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("14");
}
void p15(long velocidade){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("15");
}
void p16(long velocidade, long d){
analogWrite(A, d);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(velocidade);
Serial.println("16");
}
void motorOff(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void checaBotao(long tempoPasso){
while(digitalRead(sobe2x)==LOW&&digitalRead(desce2x)==HIGH&&digitalRead(sobe8x)==HIGH&&digitalRead(desce8x)==HIGH){
p1(tempoPasso/4);
p2(tempoPasso/4, dutyCycle);
p3(tempoPasso/4);
p4(tempoPasso/4, dutyCycle);
p5(tempoPasso/4);
p6(tempoPasso/4, dutyCycle);
p7(tempoPasso/4);
p8(tempoPasso/4, dutyCycle);
p9(tempoPasso/4);
p10(tempoPasso/4, dutyCycle);
p11(tempoPasso/4);
p12(tempoPasso/4, dutyCycle);
p13(tempoPasso/4);
p14(tempoPasso/4, dutyCycle);
p15(tempoPasso/4);
p16(tempoPasso/4, dutyCycle);
}
while(digitalRead(sobe2x)==HIGH&&digitalRead(desce2x)==LOW&&digitalRead(sobe8x)==HIGH&&digitalRead(desce8x)==HIGH){
p16(tempoPasso/4, dutyCycle);
p15(tempoPasso/4);
p14(tempoPasso/4, dutyCycle);
p13(tempoPasso/4);
p12(tempoPasso/4, dutyCycle);
p11(tempoPasso/4);
p10(tempoPasso/4, dutyCycle);
p9(tempoPasso/4);
p8(tempoPasso/4, dutyCycle);
p7(tempoPasso/4);
p6(tempoPasso/4, dutyCycle);
p5(tempoPasso/4);
p4(tempoPasso/4, dutyCycle);
p3(tempoPasso/4);
p2(tempoPasso/4, dutyCycle);
p1(tempoPasso/4);
}
while(digitalRead(sobe2x)==HIGH&&digitalRead(desce2x)==HIGH&&digitalRead(sobe8x)==LOW&&digitalRead(desce8x)==HIGH){
p1(tempoPasso/32);
p2(tempoPasso/32, dutyCycle);
p3(tempoPasso/32);
p4(tempoPasso/32, dutyCycle);
p5(tempoPasso/32);
p6(tempoPasso/32, dutyCycle);
p7(tempoPasso/32);
p8(tempoPasso/32, dutyCycle);
p9(tempoPasso/32);
p10(tempoPasso/32, dutyCycle);
p11(tempoPasso/32);
p12(tempoPasso/32, dutyCycle);
p13(tempoPasso/32);
p14(tempoPasso/32, dutyCycle);
p15(tempoPasso/32);
p16(tempoPasso/32, dutyCycle);
}
while(digitalRead(sobe2x)==HIGH&&digitalRead(desce2x)==HIGH&&digitalRead(sobe8x)==HIGH&&digitalRead(desce8x)==LOW){
p16(tempoPasso/32, dutyCycle);
p15(tempoPasso/32);
p14(tempoPasso/32, dutyCycle);
p13(tempoPasso/32);
p12(tempoPasso/32, dutyCycle);
p11(tempoPasso/32);
p10(tempoPasso/32, dutyCycle);
p9(tempoPasso/32);
p8(tempoPasso/32, dutyCycle);
p7(tempoPasso/32);
p6(tempoPasso/32, dutyCycle);
p5(tempoPasso/32);
p4(tempoPasso/32, dutyCycle);
p3(tempoPasso/32);
p2(tempoPasso/32, dutyCycle);
p1(tempoPasso/32);
}
}
// the loop routine runs over and over again forever:
void loop() {
p1(tempoPasso);
p2(tempoPasso, d75);
p2(tempoPasso, d50);
p2(tempoPasso, d25);
checaBotao(tempoPasso);
p3(tempoPasso);
p4(tempoPasso, d25);
p4(tempoPasso, d50);
p4(tempoPasso, d75);
checaBotao(tempoPasso);
p5(tempoPasso);
p6(tempoPasso, d75);
p6(tempoPasso, d50);
p6(tempoPasso, d25);
checaBotao(tempoPasso);
p7(tempoPasso);
p8(tempoPasso, d25);
p8(tempoPasso, d50);
p8(tempoPasso, d75);
checaBotao(tempoPasso);
p9(tempoPasso);
p10(tempoPasso, d75);
p10(tempoPasso, d50);
p10(tempoPasso, d25);
checaBotao(tempoPasso);
p11(tempoPasso);
p12(tempoPasso, d25);
p12(tempoPasso, d50);
p12(tempoPasso, d75);
checaBotao(tempoPasso);
p13(tempoPasso);
p14(tempoPasso, d75);
p14(tempoPasso, d50);
p14(tempoPasso, d25);
checaBotao(tempoPasso);
p15(tempoPasso);
p16(tempoPasso, d25);
p16(tempoPasso, d50);
p16(tempoPasso, d75);
checaBotao(tempoPasso);
}










show!! voce faria para venda a parte?
ResponderExcluir