1° Forum di Astronomia Amatoriale Italiano

Il primo forum di astrofili per astrofili, nato nel 2000!
Oggi è sabato 20 aprile 2024, 5:53

Menu

* Home
* Iscriviti
* La Bacheca
* F.A.Q.
* Cerca
* Login/Logout 

Login

Nome utente:
Password:

 Ho dimenticato la password

In Linea

Visitano il forum: Nessuno e 25 ospiti

Regolamento

regolamento

Links

*
Astrocafè

Segnala bolide
* Meteoblue.com
* Previsioni seeing
* Il Meteo.it
Help Forum
 

Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 56 messaggi ]  Vai alla pagina 1, 2, 3, 4, 5, 6  Prossimo
Autore Messaggio
 Oggetto del messaggio: Un PushTo economico con Arduino
MessaggioInviato: mercoledì 15 gennaio 2014, 21:00 
Avatar utente

Iscritto il: sabato 10 gennaio 2009, 20:23
Messaggi: 3327
Località: Jesolo
Tipo di Astrofilo: Visualista
Gironzolando per la rete mi sono imbattuto in questo sito http://msfastro.net/articles/arduinodsc/ dove si descrive la costruzione di un sistema push to basato su arduino... i componenti necessari sono:

- scheda arduino
- encoders
- pc windows con cartes du ciel e piattaforma ascom 6
- drivers ascom appositi

avendo già i primi tre mi sono dovuto scaricare e installare i drivers ascom scritti da David Ek presenti in questa pagina http://eksfiles.net/digital-setting-circle...etting-circles/ (c'è anche una guida passo passo alla configurazione di cartes du ciel che può tornare utile più avanti)

Il passo successivo è stato quello di realizzare il collegamento tra arduino e i due encoders, cosa molto semplice come si capisce dal disegno
Immagine

Poi sono passato al caricamento del codice sulla scheda, sul sito mfastro c'è già il sorgente pronto purtroppo il codice è un po' datato quindi ho dovuto fare una piccola modifica per renderlo compatibile con la versione attuale di arduino
Codice:
/*
  Arduino based Digital Setting Circle

 Michael Fulbright 2010-06-06

 <mike.fulbright at pobox.com>

 Feel free to modify and share - please let me know if you make any changes so I can keep my version up to date

 2010-06-06:  Initial relase - supports 2X encoding

 */

// constants won't change. They're used here to
// set pin numbers:

const int AZ_enc_A = 6;  // digital pin 6 = PD6
const int AZ_enc_B = 7;  // digital pin 7 = PD7

const int ALT_enc_A = 9;   // digital pin 9 = PB1
const int ALT_enc_B = 10;  // digital pin 10 = PB2

const int RES = 4000;  // resolution of encoders

byte beenAligned = 0; 

long ALT_pos = RES/2;  // initial position of encoders is
long AZ_pos = RES/2;   // half their resolution

void setup() {

  // initialize the encoder inputs
  pinMode(ALT_enc_A, INPUT);
  pinMode(ALT_enc_B, INPUT);
  pinMode(AZ_enc_A, INPUT);
  pinMode(AZ_enc_B, INPUT);

  Serial.begin(9600);

  // Pin change interrupt control register - enables interrupt vectors
  // Bit 2 = enable PC vector 2 (PCINT23..16)
  // Bit 1 = enable PC vector 1 (PCINT14..8)
  // Bit 0 = enable PC vector 0 (PCINT7..0)
  PCICR |= (1 << PCIE2);
  PCICR |= (1 << PCIE0);

  // Pin change mask registers decide which pins are enabled as triggers
  PCMSK2 |= (1 << PCINT23);  // arduino pin 7 = PD7 = az encoder A
  PCMSK0 |= (1 << PCINT1);   // arduino pin 9 = PB1 = alt encoder A

  // enable interrupts
  interrupts();
}

void loop(){


  // see if command sent and reply if appropriate
  //

  byte inchar;
  while (!Serial.available())
  {
    delay(50);
  }
  inchar = Serial.read();

  // throw away rest of command - we don't need it
  Serial.flush();

  if (inchar == 'Q')
  {
    printEncoderValue(AZ_pos);
    Serial.print("\t");
    printEncoderValue(ALT_pos);
    Serial.print("\r");
  }
  else if (inchar == 'R' || inchar == 'Z' || inchar == 'I' || inchar == 'z')
  {
    // ignore command - just return proper code
    if (inchar == 'R' || inchar == 'I') 
      Serial.print("R");
    else if (inchar == 'Z')
      Serial.print("*");
    else if (inchar == 'z')
      Serial.print("r");
  }
  else if (inchar == 'r')
  {
    // print out resolution - hardcoded to 4000 tics/rev
    Serial.print("04000\t04000\r");
  }
  else if (inchar == 'V')
  {
    //version
    Serial.print("V1.0.0\r");
  }
  else if (inchar == 'T')
  {
    // test mode - output resolutions and error count
    Serial.print("04000,04000,00000\r");
  }
  else if (inchar == 'q')
  {
    // error count
    Serial.print("00000\r");
  }
  else if (inchar == 'P')
  {
    // encoder power up
    Serial.print("P");
  }
  else if (inchar == 'p')
  {
    //
    // dave eks error command
    Serial.print("00");
  }
  else if (inchar == 'h')
  {
    // report resolution in Dave Eks format
    Serial.write(0xA0);
    Serial.write(0x0F);
    Serial.write(0xA0);
    Serial.write(0x0F);
  }
  else if (inchar == 'y')
  {
    // report encoders in Dave Eks format
    printHexEncoderValue(ALT_pos);
    printHexEncoderValue(AZ_pos);
  } 
  else if (inchar == 'a')
  {
    if (beenAligned)
      Serial.print("Y");
    else
      Serial.print("N");
  }
  else if (inchar == 'A')
  {
    beenAligned = 1;
  }

#ifdef DEBUG
  Serial.print(digitalRead(AZ_enc_A));
  Serial.print(" ");
  Serial.print(digitalRead(AZ_enc_B));
  Serial.print(" ");
  Serial.print(digitalRead(ALT_enc_A));
  Serial.print(" ");
  wi
    Serial.print(digitalRead(ALT_enc_B));
  Serial.print("\r");

  //return;

  Serial.print(AZ_pos);
  Serial.print(" ");
  Serial.print(ALT_pos);
  Serial.print("\r");

  delay(500);
#endif


}


// print encoder value with leading zeros
void printEncoderValue(long val)
{
  unsigned long aval;

  if (val < 0)
    Serial.print("-");
  else
    Serial.print("+");

  aval = abs(val);

  if (aval < 10)
    Serial.print("0000");
  else if (aval < 100)
    Serial.print("000");
  else if (aval < 1000)
    Serial.print("00");
  else if (aval < 10000)
    Serial.print("0");

  Serial.print(aval); 
}

void printHexEncoderValue(long val)
{
  byte low, high;

  high = val / 256;

  low = val - high*256;

  Serial.write(low);
  Serial.write(high);

  return;
}


// we have to write our own interrupt vector handler..
ISR(PCINT2_vect){

  if (digitalRead(AZ_enc_A) == digitalRead(AZ_enc_B))
  {
    AZ_pos++;
    if (AZ_pos >= RES)
      AZ_pos = 0;
  }
  else
  {
    AZ_pos--;

    if (AZ_pos < 0)
      AZ_pos = RES - 1;
  }
}


ISR(PCINT0_vect){

  if (digitalRead(ALT_enc_A) == digitalRead(ALT_enc_B))
  {
    ALT_pos++;

    if (ALT_pos >= RES)
      ALT_pos = 0;
  }
  else
  {
    ALT_pos--;

    if (ALT_pos < 0)
      ALT_pos = RES - 1;
  }

}

una volta caricato il codice si può verificare il suo funzionamento aprendo il serial monitor, muovendo a mano gli encoders e premendo il tasto Q si dovrebbe vedere variare i valori sullo schermo
Appurato che tutto funziona si tratta di configurare cartes du ciel (ma dovrebbe funzionare con qualsiasi software ascom-compatibile) quindi:
1) si va su "telescopio" -> "impostazione" e si seleziona ASCOM
2) "telescopio" -> "pannello di controllo" -> "configura" e si apre la finestra di configurazione dei drivers
3) in "Interface type" si seleziona "Dave Ek's DSC" e si compilano gli altri campi come Mount, Ticks/Rev, Serial Port e site info con i relativi valori
Immagine
4) a questo punto si connette il telescopio clikkando su "connetti"
5) ora si deve fare l'allineamento a due stelle clikkando su sync e seguendo la guida che si apre
6) fatto tutto quanto sopra si è pronti a cercare gli oggetti, click destro sull'oggetto desiderato -> "telescopio" -> "muovi alla posizione del cursore"
7) si aprirà adesso una finestra con due valori az e alt, dovremo muovere il telescopio a mano fino ad azzerare i due numeri... fatto questo saremo sopra l'oggetto ricercato...

La procedura l'ho verificata personalmente e funziona, o quanto meno funziona indoor dato che non l'ho ancora provata sul cielo... :P

_________________
Dob 16" JB

---> DOBSONIANI <---


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: giovedì 16 gennaio 2014, 11:13 
Moderatore
Avatar utente

Iscritto il: martedì 6 maggio 2008, 11:59
Messaggi: 9268
Località: San Francesco al Campo [TO]
Tipo di Astrofilo: Visualista e Fotografo
Bellissimo, ma quindi è un puntamento passivo? Non ho capito una cosa: va solo per i dobson?

_________________
Simone Martina
(a.k.a. gaeeb)
- - - - - - - - - - - - - - - - - - - -
Gruppo Astrofili Edward Emerson Barnard
Home Page: www.gaeeb.org
Facebook: facebook.com/gaeeb
Twitter: twitter.com/gaeeb_org

autocostruttite.wordpress.com


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: giovedì 16 gennaio 2014, 11:32 
Avatar utente

Iscritto il: sabato 10 gennaio 2009, 20:23
Messaggi: 3327
Località: Jesolo
Tipo di Astrofilo: Visualista
si è un puntamento passivo, tu spingi e lui ti dice quanto manca all'oggetto e contemporaneamente visualizza sullo schermo dove ti trovi in quel momento... in teoria dovrebbe andar bene per qualsiasi montatura altazimutale sulla quale si riesce a montare i due encoders

dei dati presenti in questa finestra

Immagine

alcuni sono obbligatori e alcuni sono opzionali, quelli obbligatori sono:
- Mount, nella sezione "telescope info"
- tutta la sezione "encoder info"

la sezione "site info" è opzionale ma consigliata

Il valore della porta seriale (COM) dovrebbe aggiornarsi da solo, se non lo fa è sufficiente andare (dopo aver collegato arduino) nel pannello di controllo -> sistema -> hardware -> Gestione periferiche -> porte (COM e LPT) e vedere a quale è associata la scheda arduino, solitamente è una COM maggiore di 3

_________________
Dob 16" JB

---> DOBSONIANI <---


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 17:57 
Vendor
Avatar utente

Iscritto il: mercoledì 30 dicembre 2015, 23:52
Messaggi: 886
Località: Provincia di Treviso
Tipo di Astrofilo: Visualista
So che si puo' fare qualcosa con Android. Qualcuno sa come?

_________________
R.E.E.G.O. inventor


Top
  Profilo    
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 18:42 
Amministratore
Avatar utente

Iscritto il: venerdì 10 febbraio 2006, 0:42
Messaggi: 26641
Località: 41°N 16°E
Tipo di Astrofilo: Visualista
Quando mi stancherò di puntare a mano, farò questo:

http://www.stellarjourney.com/index.php ... ent_onstep

https://www.youtube.com/watch?v=Cd4J3zLSb9E

:mrgreen:

PS: Andrea, puoi postare le foto direttamente sul forum? Così evitiamo di perderle tra qualche tempo. Grazie

_________________
volpetta.com


Da dove osservo? - Dobson 60cm f/4 - Dobson 30cm f/5 - Vixen VMC260L - Skywatcher 120ED - Borg 76ED - Lunt LS50THa PT600


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 18:55 
Moderatore
Avatar utente

Iscritto il: martedì 6 maggio 2008, 11:59
Messaggi: 9268
Località: San Francesco al Campo [TO]
Tipo di Astrofilo: Visualista e Fotografo
Già... peccato che non funzioni. Ho già provato a realizzarlo e le informazioni sul sito sono completamente obsolete, bisogna iscriversi a quello schifo di gruppo Yahoo ed è molto difficile capire come realizzare la scheda. Tra l'altro l'App è penosa e ho avuto grandissimi problemi a collegare il bluetooth.

Negativissimo. :thumbdown:

_________________
Simone Martina
(a.k.a. gaeeb)
- - - - - - - - - - - - - - - - - - - -
Gruppo Astrofili Edward Emerson Barnard
Home Page: www.gaeeb.org
Facebook: facebook.com/gaeeb
Twitter: twitter.com/gaeeb_org

autocostruttite.wordpress.com


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 19:50 
Vendor
Avatar utente

Iscritto il: mercoledì 30 dicembre 2015, 23:52
Messaggi: 886
Località: Provincia di Treviso
Tipo di Astrofilo: Visualista
Dove vado ad osservare c'erano dei ragazzi con dei sistemi pushto autocostruiti collegati a skysafari. In pratica spostando il telescopio si sposta il cursore su skysafari fino al target scelto. Mi piacerebbe replicare il sistema..

_________________
R.E.E.G.O. inventor


Top
  Profilo    
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 19:52 
Amministratore
Avatar utente

Iscritto il: venerdì 10 febbraio 2006, 0:42
Messaggi: 26641
Località: 41°N 16°E
Tipo di Astrofilo: Visualista
Come lo fanno funzionare?
Puntano delle coordinate con i cerchi digitali e poi controllano su SkySafari la posizione accurata di quello che stanno puntando?

_________________
volpetta.com


Da dove osservo? - Dobson 60cm f/4 - Dobson 30cm f/5 - Vixen VMC260L - Skywatcher 120ED - Borg 76ED - Lunt LS50THa PT600


Top
  Profilo   WWW  
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: sabato 20 gennaio 2018, 19:56 
Vendor
Avatar utente

Iscritto il: mercoledì 30 dicembre 2015, 23:52
Messaggi: 886
Località: Provincia di Treviso
Tipo di Astrofilo: Visualista
Hanno degli encoder passivi ovviamente che muovono il cursore su skysafari. Usano un normalissimo smart android con schermo oled. Adesso non ricordo se c'era un sistema di frecce che aiutava a muovere il tele nella direzione giusta..

_________________
R.E.E.G.O. inventor


Top
  Profilo    
 
 Oggetto del messaggio: Re: Un PushTo economico con Arduino
MessaggioInviato: martedì 23 gennaio 2018, 8:40 

Iscritto il: domenica 6 marzo 2016, 10:43
Messaggi: 100
Località: Zona Nord Varese
Tipo di Astrofilo: Visualista
C'è anche una roba tipo questa:

https://m.youtube.com/watch?v=TyiaPmaP8TU

EZ push to; mi sembra che il kit completo costi sui 100€

_________________
Mak SW 127/1500


Top
  Profilo    
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 56 messaggi ]  Vai alla pagina 1, 2, 3, 4, 5, 6  Prossimo

Tutti gli orari sono UTC + 1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010