Table des matières:

Raspberry Pi Planet Finder : 14 étapes (avec photos)
Raspberry Pi Planet Finder : 14 étapes (avec photos)

Vidéo: Raspberry Pi Planet Finder : 14 étapes (avec photos)

Vidéo: Raspberry Pi Planet Finder : 14 étapes (avec photos)
Vidéo: Astrophotography from $100 to $10,000 2024, Juillet
Anonim
Image
Image
De quoi as-tu besoin
De quoi as-tu besoin

À l'extérieur du Centre des sciences de ma ville, il y a une grande structure métallique qui pourrait tourner et pointer vers l'endroit où se trouvaient les planètes dans le ciel. Je ne l'ai jamais vu fonctionner, mais j'ai toujours pensé que ce serait magique de savoir où se trouvaient réellement ces autres mondes inaccessibles par rapport à mon petit moi.

Lorsque je suis passé récemment devant cette exposition morte depuis longtemps, j'ai pensé "Je parie que je pourrais faire ça" et c'est ce que j'ai fait !

Ceci est un guide sur la façon de créer le Planet Finder (avec la Lune) afin que vous puissiez vous aussi savoir où chercher lorsque vous vous sentez impressionné par l'espace.

Étape 1: ce dont vous avez besoin

De quoi as-tu besoin
De quoi as-tu besoin

1 x Raspberry Pi (version 3 ou supérieure pour le wifi embarqué)

1 x écran LCD (16 x 2) (comme celui-ci)

2 x moteurs pas à pas avec pilotes (28-BYJ48) (comme ceux-ci)

3 x boutons poussoirs (comme ceux-ci)

2 x coupleurs à bride (comme ceux-ci)

1 x boussole à boutons (comme celle-ci)

8 x boulons et écrous M3

Pièces imprimées en 3D pour le boîtier et le télescope

Étape 2: Coordonnées planétaires

Coordonnées planétaires
Coordonnées planétaires

Il existe différentes manières de décrire où se trouvent les objets astronomiques dans le ciel.

Pour nous, celui qui a le plus de sens à utiliser est le système de coordonnées horizontales, comme indiqué dans l'image ci-dessus. Cette image provient de la page Wikipedia liée ici:

en.wikipedia.org/wiki/Horizontal_coordinat…

Le système de coordonnées horizontales vous donne un angle par rapport au nord (l'azimut) et vers le haut par rapport à l'horizon (l'altitude), il est donc différent selon l'endroit d'où vous regardez dans le monde. Donc, notre chercheur de planète doit tenir compte de l'emplacement et avoir un moyen de trouver le Nord pour être une référence.

Plutôt que d'essayer de calculer l'altitude et l'azimut qui changent avec le temps et l'emplacement, nous utiliserons la connexion wifi à bord du Raspberry Pi pour rechercher ces données auprès de la NASA. Ils gardent une trace de ce genre de chose donc nous n'avons pas à le faire;)

Étape 3: Accéder aux données de la planète

Nous obtenons nos données du Jet Propulsion Laboratory (JPL) de la NASA -

Pour accéder à ces données, nous utilisons une bibliothèque appelée AstroQuery qui est un ensemble d'outils permettant d'interroger des formulaires Web et des bases de données astronomiques. La documentation de cette bibliothèque se trouve ici:

S'il s'agit de votre premier projet Raspberry Pi, commencez par suivre ce guide de configuration:

Si vous utilisez Raspbian sur votre Raspberry Pi (vous le serez si vous avez suivi le guide ci-dessus), alors vous avez déjà installé python3, assurez-vous que la version la plus récente est installée (j'utilise la version 3.7.3). Nous devons l'utiliser pour obtenir le pip. Ouvrez un terminal et tapez ce qui suit:

sudo apt installer python3-pip

Nous pouvons ensuite utiliser pip pour installer la version mise à niveau d'astroquery.

pip3 install --pre --upgrade astroquery

Avant de continuer avec le reste de ce projet, essayez d'accéder à ces données avec un simple script Python pour vous assurer que toutes les bonnes dépendances ont été installées correctement.

de astroquery.jplhorizons importer Horizons

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

Cela devrait vous montrer les détails de l'emplacement de Mars !

Vous pouvez vérifier si ces données sont correctes en utilisant ce site pour rechercher les positions des planètes en direct:

Pour décomposer un peu cette requête, l'id est le numéro associé à Mars dans les données du JPL, les époques sont l'heure à partir de laquelle nous voulons les données (Aucun signifie maintenant) et id_type demande les principaux corps du système solaire. L'emplacement est actuellement défini au Royaume-Uni car « 000 » est le code de localisation de l'observatoire de Greenwich. D'autres emplacements peuvent être trouvés ici:

Dépannage:

Si vous obtenez l'erreur: aucun module nommé 'keyring.util.escape'

essayez la commande suivante dans le terminal:

pip3 install --upgrade keyrings.alt

Étape 4: Coder

Le script python complet utilisé dans ce projet est joint à cette étape.

Pour trouver les données correctes pour votre emplacement, accédez à la fonction getPlanetInfo et modifiez l'emplacement en utilisant la liste des observatoires à l'étape précédente.

def getPlanetInfo(planète):

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

Étape 5: connexion du matériel

Matériel de connexion
Matériel de connexion
Matériel de connexion
Matériel de connexion
Matériel de connexion
Matériel de connexion

À l'aide de planches à pain et de câbles de démarrage, connectez deux moteurs pas à pas, l'écran LCD et trois boutons comme indiqué dans le schéma de circuit ci-dessus.

Pour connaître le numéro des broches de votre Raspberry Pi, rendez-vous sur le terminal et tapez

brochage

Cela devrait vous montrer l'image ci-dessus avec les numéros GPIO et les numéros de carte. Nous utilisons des numéros de carte pour définir les broches utilisées dans le code, je vais donc faire référence aux numéros entre parenthèses.

Pour aider au schéma électrique, voici les broches qui sont connectées à chaque partie:

1er moteur pas à pas - 7, 11, 13, 15

2ème moteur pas à pas - 40, 38, 36, 32

Bouton1 - 33

Bouton2 - 37

Bouton3 - 35

Écran LCD - 26, 24, 22, 18, 16, 12

Lorsque tout est connecté, exécutez le script python

python3 planetFinder.py

et vous devriez voir l'écran afficher le texte de configuration et les boutons devraient déplacer les moteurs pas à pas.

Étape 6: Conception du boîtier

Conception du boîtier
Conception du boîtier
Conception du boîtier
Conception du boîtier
Conception du boîtier
Conception du boîtier

Le boîtier a été conçu pour être facilement imprimé en 3D. Il se décompose en parties séparées qui sont ensuite collées une fois l'électronique fixée.

Les trous sont dimensionnés pour les boutons que j'ai utilisés et les boulons M3.

J'ai imprimé le télescope en plusieurs parties et les ai collées ensemble plus tard pour éviter trop de structure de support.

Les fichiers STL sont joints à cette étape.

Étape 7: Test des impressions

Tester les impressions
Tester les impressions
Tester les impressions
Tester les impressions
Tester les impressions
Tester les impressions
Tester les impressions
Tester les impressions

Une fois que tout est imprimé, assurez-vous que tout s'emboîte parfaitement avant de procéder au collage.

Mettez les boutons en place et fixez l'écran et les moteurs pas à pas avec des boulons M3 et donnez à tout un bon mouvement. Limez tous les bords rugueux, démontez le tout avant de passer à l'étape suivante.

Étape 8: Extension du moteur pas à pas

Extension du moteur pas à pas
Extension du moteur pas à pas
Extension du moteur pas à pas
Extension du moteur pas à pas
Extension du moteur pas à pas
Extension du moteur pas à pas

Le moteur pas à pas qui contrôlera l'angle d'élévation du télescope se trouvera au-dessus du boîtier principal et aura besoin d'un peu de mou dans les fils pour tourner. Les fils doivent être rallongés en les coupant entre le moteur pas à pas et sa carte de commande et en soudant une nouvelle longueur de fil entre les deux.

J'ai inséré le nouveau fil dans la tour de support à l'aide d'un morceau de fil pour aider à le faire passer car le fil que j'utilise est assez rigide et continue de se coincer. Une fois à travers, il peut être soudé au moteur pas à pas, en veillant à garder une trace de la couleur connectée afin de rattacher les bonnes à l'autre extrémité. N'oubliez pas d'ajouter du thermorétractable aux fils !

Une fois soudé, exécutez le script python pour vérifier que tout fonctionne toujours, puis repoussez les fils dans le tube jusqu'à ce que le moteur pas à pas soit en position. Il peut ensuite être fixé au boîtier du moteur pas à pas avec des boulons et des écrous M3 avant que l'arrière du boîtier ne soit collé en place.

Étape 9: Montez les boutons et l'écran LCD

Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD
Boutons de montage et écran LCD

Insérez les boutons et serrez les écrous pour les fixer en place avant de souder. J'aime utiliser un fil de terre commun qui passe entre eux pour plus de propreté.

Fixez l'écran LCD avec des boulons et des écrous M3. L'écran LCD veut un potentiomètre sur l'une de ses broches que j'ai également soudé à ce stade.

Testez à nouveau le code ! Assurez-vous que tout fonctionne encore avant de tout coller ensemble car c'est beaucoup plus facile à réparer à ce stade.

Étape 10: Ajout de brides

Ajout de brides
Ajout de brides
Ajout de brides
Ajout de brides
Ajout de brides
Ajout de brides
Ajout de brides
Ajout de brides

Pour connecter les pièces imprimées en 3D aux moteurs pas à pas, nous utilisons un accouplement à bride de 5 mm qui s'adapte sur l'extrémité du moteur pas à pas et est maintenu en place par de minuscules vis.

Une bride est collée à la base de la tour rotative et l'autre au télescope.

La fixation du télescope au moteur au sommet de la tour rotative est simple car il y a beaucoup d'espace pour accéder aux petites vis qui le maintiennent en place. L'autre bride est plus difficile à fixer, mais il y a suffisamment d'espace entre le boîtier principal et la base de la tour rotative pour insérer une petite clé Allen et serrer la vis.

Testez à nouveau!

Maintenant, tout devrait fonctionner car il sera dans son état final. Si ce n'est pas le cas, il est maintenant temps de corriger les bogues et de s'assurer que les connexions sont toutes sécurisées. Assurez-vous que les fils dénudés ne se touchent pas, faites le tour avec du ruban isolant et réparez tous les endroits qui pourraient poser problème.

Étape 11: Exécuter au démarrage

Plutôt que d'exécuter le code manuellement chaque fois que nous voulons trouver une planète, nous voulons que cela fonctionne comme une exposition autonome, nous allons donc le configurer pour exécuter notre code chaque fois que le Raspberry Pi s'allume.

Dans le terminal, tapez

crontab -e

Dans le fichier qui s'ouvre, ajoutez ce qui suit à la fin du fichier, suivi d'une nouvelle ligne.

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

J'ai enregistré mon code dans un dossier appelé PlanetFinder, donc /home/pi/PlanetFinder/planetFinder.py est l'emplacement de mon fichier. Si le vôtre est enregistré ailleurs, assurez-vous de le modifier ici.

Le & à la fin est important car il laisse le code s'exécuter en arrière-plan, de sorte qu'il ne retarde pas les autres processus qui se produisent également au démarrage.

Étape 12: Collez le tout ensemble

Collez le tout ensemble !
Collez le tout ensemble !
Collez le tout ensemble !
Collez le tout ensemble !

Tout ce qui n'est pas déjà collé en place doit maintenant être fixé.

Enfin, ajoutez la minuscule boussole au milieu de la base rotative.

Étape 13: Utilisation

Usage
Usage

Lorsque le Planet Finder s'allume, il invite l'utilisateur à ajuster l'axe vertical. Appuyez sur les boutons haut et bas pour déplacer le télescope, essayez de le mettre à niveau, pointant vers la droite, puis appuyez sur le bouton ok (en bas).

L'utilisateur sera alors invité à ajuster la rotation, utilisez les boutons pour faire tourner le télescope jusqu'à ce qu'il pointe vers le nord selon la petite boussole, puis appuyez sur ok.

Vous pouvez maintenant parcourir les planètes à l'aide des boutons haut/bas et sélectionner celle que vous souhaitez trouver avec le bouton ok. Il affichera l'altitude et l'azimut de la planète puis ira la pointer quelques secondes avant de se retourner pour faire face au nord.

Étape 14: Terminé

Fini
Fini

Terminé!

Amusez-vous à savoir où se trouvent toutes les planètes:)

Défi spatial
Défi spatial
Défi spatial
Défi spatial

Premier prix du Space Challenge

Conseillé: