Sommario:

Raspberry Pi Planet Finder: 14 passaggi (con immagini)
Raspberry Pi Planet Finder: 14 passaggi (con immagini)

Video: Raspberry Pi Planet Finder: 14 passaggi (con immagini)

Video: Raspberry Pi Planet Finder: 14 passaggi (con immagini)
Video: И ЭТО ТОЖЕ ДАГЕСТАН? Приключения в долине реки Баараор. БОЛЬШОЙ ВЫПУСК (Путешествие по Дагестану #3) 2024, Dicembre
Anonim
Image
Image
Quello di cui hai bisogno
Quello di cui hai bisogno

Fuori dal Science Center della mia città c'è una grande struttura metallica che potrebbe girare e indicare dove si trovavano i pianeti nel cielo. Non l'ho mai visto funzionare, ma ho sempre pensato che sarebbe stato magico sapere dove fossero effettivamente questi irraggiungibili altri mondi in relazione al mio piccolo io.

Quando sono passato davanti a questa mostra morta da tempo, di recente, ho pensato "Scommetto che potrei farcela" e così ho fatto!

Questa è una guida su come creare il Planet Finder (con la Luna) in modo che anche tu possa sapere dove guardare quando ti senti intimorito dallo spazio.

Passaggio 1: cosa ti serve

Quello di cui hai bisogno
Quello di cui hai bisogno

1 x Raspberry Pi (versione 3 o successiva per Wi-Fi integrato)

1 x schermo LCD (16 x 2) (come questo)

2 x motori passo-passo con driver (28-BYJ48) (come questi)

3 x pulsanti (come questi)

2 x giunti flangiati (come questi)

1 x Bussola a bottone (come questa)

8 x M3 bulloni e dadi

Parti stampate in 3D per la custodia e il telescopio

Passaggio 2: coordinate planetarie

Coordinate planetarie
Coordinate planetarie

Esistono diversi modi per descrivere dove si trovano gli oggetti astronomici nel cielo.

Per noi, quello che ha più senso usare è il sistema di coordinate orizzontali come mostrato nell'immagine sopra. Questa immagine è tratta dalla pagina di Wikipedia collegata qui:

en.wikipedia.org/wiki/Horizontal_coordinat…

Il sistema di coordinate orizzontali ti dà un angolo dal nord (l'azimut) e verso l'alto dall'orizzonte (l'altitudine), quindi è diverso a seconda di dove stai guardando nel mondo. Quindi il nostro cercatore di pianeti deve prendere in considerazione la posizione e avere un modo per trovare il nord per essere un riferimento.

Piuttosto che provare a calcolare l'altitudine e l'azimut che cambiano con l'ora e la posizione, utilizzeremo la connessione wifi a bordo del Raspberry Pi per cercare questi dati dalla NASA. Tengono traccia di questo genere di cose, quindi non dobbiamo farlo noi;)

Passaggio 3: accesso ai dati del pianeta

Stiamo ottenendo i nostri dati dal Jet Propulsion Laboratory (JPL) della NASA -

Per accedere a questi dati, utilizziamo una libreria chiamata AstroQuery che è un insieme di strumenti per interrogare moduli web e database astronomici. La documentazione per questa libreria si trova qui:

Se questo è il tuo primo progetto Raspberry Pi, inizia seguendo questa guida alla configurazione:

Se stai usando Raspbian sul tuo Raspberry Pi (lo farai se hai seguito la guida sopra), allora hai già installato python3, assicurati di avere la versione più recente installata (sto usando la versione 3.7.3). Dobbiamo usarlo per ottenere pip. Apri un terminale e digita quanto segue:

sudo apt install python3-pip

Possiamo quindi usare pip per installare la versione aggiornata di astroquery.

pip3 install --pre --upgrade astroquery

Prima di continuare con il resto di questo progetto, prova ad accedere a questi dati con un semplice script Python per assicurarti che tutte le giuste dipendenze siano state installate correttamente.

da astroquery.jplhorizons import Horizons

mars = Horizons(id=499, location='000', epochs=Nessuno, id_type='majorbody') eph = mars.ephemerides() print(eph)

Questo dovrebbe mostrarti i dettagli della posizione di Marte!

Puoi verificare se questi dati sono corretti utilizzando questo sito per cercare le posizioni dei pianeti in tempo reale:

Per suddividere un po' questa query, l'id è il numero associato a Marte nei dati di JPL, epochs è l'ora in cui vogliamo i dati (Nessuno significa in questo momento) e id_type richiede i corpi principali del sistema solare. La posizione è attualmente impostata nel Regno Unito poiché "000" è il codice della posizione per l'osservatorio di Greenwich. Altre posizioni possono essere trovate qui:

Risoluzione dei problemi:

Se ricevi l'errore: nessun modulo chiamato 'keyring.util.escape'

prova il seguente comando nel terminale:

pip3 install --upgrade keyrings.alt

Passaggio 4: codice

In allegato a questo passaggio è lo script Python completo utilizzato in questo progetto.

Per trovare i dati corretti per la tua posizione, vai alla funzione getPlanetInfo e modifica la posizione utilizzando l'elenco degli osservatori nel passaggio precedente.

def getPlanetInfo(pianeta):

obj = Horizons(id=planet, location='000', epochs=Nessuno, id_type='majorbody') eph = obj.ephemerides() return eph

Passaggio 5: collegamento dell'hardware

Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware
Collegamento dell'hardware

Usando breadboard e ponticelli, collegare due motori passo-passo, lo schermo LCD e tre pulsanti come mostrato nello schema del circuito sopra.

Per scoprire quale numero sono i pin sul tuo Raspberry Pi, vai al terminale e digita

piedinatura

Questo dovrebbe mostrarti l'immagine sopra completa di numeri GPIO e numeri di scheda. Stiamo usando i numeri della scheda per definire quali pin sono usati nel codice, quindi farò riferimento ai numeri tra parentesi.

Come aiuto per lo schema elettrico, ecco i pin che sono collegati a ciascuna parte:

Primo motore passo-passo - 7, 11, 13, 15

2° motore passo-passo - 40, 38, 36, 32

Pulsante1 - 33

Pulsante2 - 37

Pulsante3 - 35

Schermo LCD - 26, 24, 22, 18, 16, 12

Quando tutto questo è connesso, esegui lo script python

python3 planetFinder.py

e dovresti vedere lo schermo che mostra il testo di configurazione e i pulsanti dovrebbero muovere i motori passo-passo.

Passaggio 6: progettazione della custodia

Progettare il caso
Progettare il caso
Progettare il caso
Progettare il caso
Progettare il caso
Progettare il caso

La custodia è stata progettata per essere facilmente stampata in 3D. Si scompone in parti separate che vengono poi incollate insieme una volta che l'elettronica è stata fissata in posizione.

I fori sono dimensionati per i pulsanti che ho usato e i bulloni M3.

Ho stampato il telescopio in parti e le ho incollate insieme in seguito per evitare troppa struttura di supporto.

I file STL sono allegati a questo passaggio.

Passaggio 7: test delle stampe

Testare le stampe
Testare le stampe
Testare le stampe
Testare le stampe
Testare le stampe
Testare le stampe
Testare le stampe
Testare le stampe

Una volta che tutto è stato stampato, assicurati che tutto si adatti perfettamente prima di eseguire l'incollaggio.

Montare i pulsanti in posizione e fissare lo schermo e i motori passo-passo con bulloni M3 e dare a tutto una buona oscillazione. Lima i bordi irregolari e smonta tutto di nuovo prima del passaggio successivo.

Passaggio 8: estensione del motore passo-passo

Estensione del motore passo-passo
Estensione del motore passo-passo
Estensione del motore passo-passo
Estensione del motore passo-passo
Estensione del motore passo-passo
Estensione del motore passo-passo

Il motore passo-passo che controllerà l'angolo di elevazione del telescopio si troverà sopra il case principale e ha bisogno di un po' di gioco nei fili per poter ruotare. I fili devono essere estesi tagliandoli tra lo stepper e la sua scheda driver e saldando una nuova lunghezza di filo in mezzo.

Ho inserito il nuovo filo nella torre di supporto usando un pezzo di filo per aiutarlo a farlo passare poiché il filo che sto usando è piuttosto rigido e continuava a bloccarsi. Una volta attraversato, può essere saldato al motore passo-passo, assicurandosi di tenere traccia di quale colore è collegato per ricollegare quelli giusti all'altra estremità. Non dimenticare di aggiungere un termorestringente ai fili!

Una volta saldato, esegui lo script Python per verificare che tutto funzioni ancora, quindi spingi nuovamente i fili lungo il tubo finché il motore passo-passo non è in posizione. Può quindi essere fissato all'alloggiamento del motore passo-passo con bulloni e dadi M3 prima che il retro dell'alloggiamento venga incollato in posizione.

Passaggio 9: montare i pulsanti e lo schermo LCD

Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD
Pulsanti di montaggio e schermo LCD

Inserire i pulsanti e serrare i dadi per fissarli in posizione prima della saldatura. Mi piace usare un filo di terra comune che corre tra di loro per la pulizia.

Fissare lo schermo LCD con bulloni e dadi M3. Il display LCD vuole un potenziometro su uno dei suoi pin che ho anche saldato in questa fase.

Prova di nuovo il codice! Assicurati che tutto funzioni ancora prima di incollare tutto insieme poiché è molto più facile da riparare in questa fase.

Passaggio 10: aggiunta di flange

Aggiunta di flange
Aggiunta di flange
Aggiunta di flange
Aggiunta di flange
Aggiunta di flange
Aggiunta di flange
Aggiunta di flange
Aggiunta di flange

Per collegare le parti stampate in 3D ai motori passo-passo, utilizziamo un accoppiamento flangiato da 5 mm che si inserisce nella parte superiore dell'estremità del motore passo-passo ed è tenuto in posizione da minuscole viti.

Una flangia è incollata alla base della torre rotante e l'altra al telescopio.

Fissare il telescopio al motore in cima alla torre rotante è semplice in quanto c'è molto spazio per accedere alle piccole viti che lo tengono in posizione. L'altra flangia è più difficile da fissare, ma c'è abbastanza spazio tra il case principale e la base della torre rotante per inserire una piccola chiave a brugola e stringere la vite.

Prova di nuovo!

Ora tutto dovrebbe funzionare come sarà nel suo stato finale. In caso contrario, ora è il momento di correggere i bug e assicurarsi che le connessioni siano tutte sicure. Assicurati che i fili scoperti non si tocchino, gira con del nastro isolante e rattoppa tutti i punti che potrebbero causare problemi.

Passaggio 11: esegui all'avvio

Piuttosto che eseguire il codice manualmente ogni volta che vogliamo trovare un pianeta, vogliamo che venga eseguito come una mostra indipendente, quindi lo configureremo per eseguire il nostro codice ogni volta che il Raspberry Pi si accende.

Nel terminale, digita

crontab -e

Nel file che si apre, aggiungi quanto segue alla fine del file, seguito da una nuova riga.

@reboot python3 /home/pi/PlanetFinder/planetFinder.py &

Ho salvato il mio codice in una cartella chiamata PlanetFinder, quindi /home/pi/PlanetFinder/planetFinder.py è la posizione del mio file. Se il tuo è salvato da qualche altra parte, assicurati di cambiarlo qui.

Il & alla fine è importante in quanto consente l'esecuzione del codice in background, quindi non sostiene altri processi che si verificano anche all'avvio.

Passaggio 12: incolla tutto insieme

Incolla tutto insieme!
Incolla tutto insieme!
Incolla tutto insieme!
Incolla tutto insieme!

Tutto ciò che non è già incollato dovrebbe ora essere riparato.

Infine, aggiungi la piccola bussola al centro della base rotante.

Passaggio 13: utilizzo

Utilizzo
Utilizzo

Quando il Planet Finder si accende, chiederà all'utente di regolare l'asse verticale. Premendo i pulsanti su e giù sposterai il telescopio, prova a farlo stare in piano, puntando a destra, quindi premi il pulsante ok (in basso).

All'utente verrà quindi chiesto di regolare la rotazione, utilizzare i pulsanti per far girare il telescopio fino a quando non punta a nord secondo la piccola bussola, quindi premere ok.

Ora puoi scorrere i pianeti usando i pulsanti su/giù e seleziona quello che desideri trovare con il pulsante ok. Mostrerà l'Altitudine e l'Azimut del pianeta, quindi andrà a puntarlo per alcuni secondi prima di voltarsi verso il Nord.

Passaggio 14: finito

Finito
Finito

Tutto fatto!

Divertiti a sapere dove sono tutti i pianeti:)

Sfida spaziale
Sfida spaziale
Sfida spaziale
Sfida spaziale

Primo Premio nella Sfida Spaziale

Consigliato: