Kit de projet Arduino Due : TFT, GPS, RTC, capteurs, Bluetooth et joystick – Liste complète des composants
Composants et fournitures
| Arduino Due | ×1 | de https://www.arduino.cc |
| Module TFT 3.2" 400x240 SD Tactile avec Shield pour Arduino Due | ×1 | Modèle Elechouse utilisé |
| RTC DS3231 | ×1 | Horloge temps réel d'eBay |
| GPS uBlox Neo 6M | ×1 | Module GPS d'eBay |
| Joystick PS2 pour Arduino | ×1 | d'eBay |
| Capteur température DHT22 | ×1 | Capteur température et humidité |
| Module Bluetooth HC-05 | ×1 | Module Bluetooth HC-05 d'eBay |
| DRV8825 | ×2 | Pilotes moteurs pas-à-pas |
| Moteurs NEMA 17 SY42STH47-1684B | ×2 | 44 N.cm couple |
| PCB | ×1 | Carte prototype électronique |
| Courroies et poulies | ×2 | 2 poulies 40 dents, 2 poulies 10 dents, 2 courroies adaptées à votre monture |
| Résistance 1k ohm | ×10 | |
| Condensateur 100 µF | ×1 | |
| Composants électroniques divers | ×1 | Fils + Interrupteurs (×3) + Connecteurs (2×5 broches pour RA & DEC, 12VDC et USB programmation) |
À propos de ce projet





Description
Le premier système de contrôle de télescope Goto autonome basé sur Arduino au monde.
Tous les contrôles de télescope open source existants utilisent soit un Raspberry Pi (consommation électrique élevée), soit un Arduino en extension d'un ordinateur, smartphone ou tablette. rDUINOScope est le premier dispositif autonome basé sur Arduino permettant aux astronomes amateurs de profiter du ciel nocturne.
L'idée initiale était de créer une alternative bon marché et facile à construire aux produits GOTO commerciaux comme ceux de SkyWatcher, Orion, Vixen, etc. L'architecture matérielle repose sur une carte Arduino Due et des capteurs bon marché du marché. Les instructions de construction et le guide utilisateur sont sur le site du projet. Au cœur du système, un Arduino Due chargé d'un logiciel en développement constant pour ajouter des fonctionnalités.
rDUINOScope avec Stellarium :
Détails
rDUINOScope est un système de contrôle de télescope (GOTO) open source, basé sur Arduino Due. Conçu comme système autonome, il n'a pas besoin de PC, tablette, téléphone, ni connexion Internet pour fonctionner et offrir des vues époustouflantes !
Il intègre une base de données avec les 250 meilleurs objets stellaires (catalogues Messier et Trésors Cachés) et 200 étoiles, calcule leur position dans le ciel et pointe le télescope. Les procédures d'alignement implémentées permettent une expérience « toujours dans l'oculaire » lors du pointage vers les objets sélectionnés, et une fois l'objet dans l'oculaire, le système assure son suivi.
Si vous souhaitez utiliser vos appareils électroniques, rDUINOScope utilise la communication Bluetooth (configuration sans fil) pour se connecter à tous les appareils et accepter les commandes basées sur le protocole de communication MEADE LX200.
Le système fonctionne avec des moteurs pas-à-pas de tous types et peut être monté sur des montures DIY ou des produits commerciaux comme SkyWatcher, MEADE, Orion, Vixen, etc.
Fonctionnalités
Qu'y a-t-il dans rDUINOScope ?
- Base de données 250 objets (Messier + Hidden Treasures) + 200 étoiles
- Calcul position céleste (HA/DEC) et pointage automatique
- Procédures d'alignement (1-2-3 étoiles)
- Suivi sidéral précis
- Interface tactile TFT 3.2"
- Communication Bluetooth (protocole MEADE LX200)
- Compatible Stellarium et autres logiciels planétarium
- Gestion moteurs pas-à-pas (DRV8825, micro-pas 1/16)
- RTC DS3231 pour heure précise
- GPS uBlox Neo 6M pour position/heure auto
- Capteur DHT22 (température/humidité)
- Joystick PS2 pour contrôle manuel
- Buzzer piézo pour alertes
- Mode jour/nuit pour l'écran
rDUINOScope GitHub : https://github.com/dEskoG/rDUINOScope
Instructions de construction
ÉTAPE 1 – Préparation
Avant de commencer, il est important de comprendre comment le logiciel fonctionne pour pouvoir le modifier et le personnaliser. C'est l'une des plus grandes forces de ce projet !
Pour comprendre cette partie, téléchargez le code depuis les fichiers du projet, avec les fichiers « libraries »... ou téléchargez le paquet complet depuis : https://rduinoscope.co.nf/downloads.php. Tous les numéros de ligne référencés correspondent au code v2.1 Boiana EQ.
Vous devez savoir comment fonctionne le code Arduino. Habituellement, un programme Arduino a 2 sections : SETUP() et LOOP(). SETUP() s'exécute au début et initialise le système ; LOOP() est une boucle constante qui s'exécute plusieurs fois par seconde. Pour éviter que l'écran ne scintille à cause de LOOP(), nous avons inventé un mécanisme pour laisser Arduino savoir ce que l'utilisateur attend. Ainsi dans LOOP() vous ne verrez qu'une petite portion de code disant « Considérer Touch... » ou « Considérer Temps... ». Le reste des activités se passe dans ces fonctions, ce qui permet d'altérer le flux du programme pour que les écrans ne se rafraîchissent pas plusieurs fois par seconde.
Calculs
J'ai utilisé des informations trouvées sur internet pour calculer la position des objets stellaires. La plupart vient de : https://www.stargazing.net/kepler/altaz.html – Décrit les formules et l'approche pour calculer l'Angle Horaire (HA), connaissant la position, l'heure actuelle, et l'AD/DEC de l'objet stellaire.
Une fois le code pour calculer HA créé (void calculateLST_HA() ligne 678), j'ai vérifié sur : https://www.jgiesen.de/astro/astroJS/siderealClock/, et plus tard avec la base d'objets Messier, j'ai utilisé Stellarium (https://www.stellarium.org/) pour les mêmes vérifications.
Le problème principal n'était pas les formules, mais la façon dont Arduino gère les types de variables et la précision des calculs.
Une fois HA et DEC calculés pour un objet, on veut faire pointer la monture. Pour cela, il faut savoir le rapport vis-sans-fin – combien de tours le vis doit faire pour que l'engrenage fasse 360°. J'ai une Vixen Super Polaris et une recherche rapide a révélé qu'elle utilise un engrenage de 144 dents pour les axes AR et DEC. J'ai créé un fichier Excel simple (Gears_Stepper_Calculation.xlsx) pour calculer combien les moteurs doivent tourner une fois HA et DEC calculés, et à quelle fréquence « tirer » les moteurs pour compenser la rotation terrestre.
Le même modèle mathématique est implémenté dans le code. Il suffit de substituer les valeurs de votre monture au début du code (lignes 34-37) :
// ICI VONT LES INFOS MONTURE, ENGRENAGES ET ENTRAINEMENT
// ... utilisé pour calculer le ratio AngleHoraire vers microPas
// METTEZ À JOUR CETTE PARTIE SELON VOTRE CONFIGURATION
// ---------------------------------------------
// NB: AR et DEC utilisent le même ratio d'engrenage (144 dents dans mon cas)!
//----------------------------------------------
int WORM = 144;
int REDUCTOR = 4; // réduction d'engrenage 1:4
int DRIVE_STP = 200; // Moteur pas-à-pas 200 pas/révolution
int MICROSteps = 16; // Mode micro-pas 1/16 pour vitesse sidérale - détermine la vitesse LA PLUS BASSE
Une fois les ratios calculés, le code sait combien tourner les moteurs pour pointer le télescope aux coordonnées correspondantes et quelle horloge pour le suivi. Les fonctions concernées commencent aux lignes 906 et 917 :
void Sidereal_rate() { }
void cosiderSlewTo() { }
Considérations importantes
Ce n'est pas un produit grand public prêt à l'emploi. Il permet la personnalisation, donc très flexible, mais avec la flexibilité viennent des inconvénients. Cette section « considérations » assure qu'ils ne sont pas oubliés.
- Montage des moteurs : Tâche simple mais impacte les calculs. Dans mon cas, Vixen Super Polaris a les engrenages d'origine à droite de l'arbre du vis. J'ai trouvé ces arbres trop courts pour remplacer les engrenages par des poulies, donc j'ai mis les poulies du côté opposé (gauche). Cela a inversé le sens de rotation du moteur pour augmenter la position du télescope, nécessitant une révision du code. Vous devez absolument réviser les sens de rotation de vos moteurs, sinon vous aurez un comptage de pas erroné, donc une position fausse. Exemple ligne 1028 où je commande
STP_BACKmais ligne 1031 j'incrémente le compteur += ...
if (SLEW_RA_microsteps > RA_microSteps) {
digitalWrite(RA_DIR, STP_BACK);
digitalWrite(RA_STP, HIGH);
digitalWrite(RA_STP, LOW);
RA_microSteps += RA_mode_steps;
} else {
digitalWrite(RA_DIR, STP_FWD);
digitalWrite(RA_STP, HIGH);
digitalWrite(RA_STP, LOW);
RA_microSteps -= RA_mode_steps;
}
ACTION : Réviser : void consider_Manual_Move(int xP, int yP), void cosiderSlewTo() et void Sidereal_rate().
- Hémisphère Nord vs Sud : Le code inverse aussi le mouvement AVANT selon l'hémisphère. C'est fait dans la partie gérant les entrées tactiles. Vous devrez peut-être réviser cette section.
- Engrenages sur axes DEC et AR : Mon code suppose que les deux axes utilisent un engrenage de 144 dents (cas Vixen Super Polaris). Si votre configuration diffère, vous devrez réviser certaines parties du code. Si vous avez du mal à identifier ces parties, contactez-moi !
Planifier les activités
Estimation : 2-3 jours pour compléter le système si vous avez tout (matériel, outils, matériaux). Moi, ça m'a pris 4-5 mois (travail nocturne, recherche). L'assemblage final a pris :
- 1 jour pour construire la carte Shield et mettre le système en route
- 1 jour pour tout mettre en boîte
- 1 jour pour fixer moteurs et poulies sur la monture
ÉTAPE 2 – Matériaux
Maintenant qu'on comprend le programme, planifiez l'approvisionnement.
Liste des matériaux (BOM) : La plupart vient de fournisseurs chinois en ligne. Quelques-uns achetés localement (GPS, Bluetooth, Joystick) pour éviter les délais. Coût total ~ 190 USD, vraiment peu cher comparé aux systèmes commerciaux. Liste complète avec prix et sources sur le site : https://rduinoscope.co.nf/rDUINO_step2.html, aussi dans la section « COMPOSANTS » ici.
Si vous trouvez moins cher ou plus rapide, faites-le !
Selon votre design, vous pourriez aussi avoir besoin : câble 40 broches avec connecteurs pour le TFT, boulons plastique pour fixer le joystick, câble USB pour programmer l'Arduino Due une fois dans le boîtier, ventilateur, etc.
Si vous n'avez pas : matériel de soudure, étain, pinces, multimètre numérique, etc.
Logiciels nécessaires :
- Téléchargez Arduino IDE : https://www.arduino.cc/en/Main/Software. L'installation installe aussi les drivers pour que l'ordinateur reconnaisse l'Arduino.
- Dans Arduino IDE : Outils → Carte → Gestionnaire de cartes, téléchargez et installez « Arduino SAM Boards (32-bit ARM Cortex-M3) » pour l'Arduino Due.
- Téléchargez le pack de bibliothèques utilisé dans le programme et copiez-les dans le dossier « libraries » de votre installation Arduino IDE. (NOTE : « libraries » est un dossier sur votre ordinateur, mais aussi un dossier dans le PAQUET COMPLET sur le site du projet : https://rduinoscope.co.nf/downloads.php. Téléchargez le paquet, renommez en .ZIP, ouvrez-le et copiez le contenu du dossier « _libraries » du ZIP vers le dossier « libraries » sur votre ordinateur.)
- Redémarrez l'IDE et ouvrez le fichier principal « _02_Boiana_EQ.ino ». 4 autres fichiers s'ouvriront dans des onglets séparés (fichiers support pour différentes parties du logiciel).
Vous devriez maintenant pouvoir compiler et charger le code sur l'Arduino Due après l'avoir connecté à l'ordinateur.
Note : Si vous ne savez pas comment fonctionne l'Arduino IDE, consultez : https://www.arduino.cc/en/Tutorial/HomePage
ÉTAPE 3 – Assemblage
Pour instructions détaillées, visitez le site du projet : https://rduinoscope.co.nf/rDUINO_step3.html
Créez la carte Shield (carte à broches qu'on empile sur l'Arduino Due). Répartition :
- Carte Shield : les deux DRV8825, RTC3231, Bluetooth HC-05, buzzer piézo, connecteur 12V et broches pour les autres composants
- Montés sur le boîtier : GPS NEO 6M (RX pour antenne vers le ciel), DHT22 (sorti par un trou), Joystick PS2, Écran TFT, tous les interrupteurs (ON/OFF et Jour/Nuit). Trous percés pour connecteurs moteurs, alimentation 12V et port USB vers port natif Arduino Due pour mises à jour logicielles sans ouvrir la boîte.
Connexions composants → Arduino Due
| Composant | Broche Hardware | Broche Arduino |
|---|---|---|
| GPS | ||
| GPS NEO 6M | RX | 16 |
| GPS NEO 6M | TX | 17 |
| RTC | ||
| RTC DS3231 | SDA | A4 |
| RTC DS3231 | SCL | A5 |
| Bluetooth | ||
| BT HC-05 | TXD | 14 |
| BT HC-05 | RXD | 15 |
| DHT | ||
| DHT22 | out | 3 |
| Haut-parleur | ||
| Buzzer piézo | – | 2 |
| PS2 Joystick | ||
| PS2 joystick | VRx | A1 |
| PS2 joystick | VRy | A0 |
| DRV8825 Déclinaison (DEC) | ||
| DEC DRV8825 | STEP | 6 |
| DEC DRV8825 | DIR | 7 |
| DEC DRV8825 | M0 | 10 |
| DEC DRV8825 | M1 | 9 |
| DEC DRV8825 | M2 | 8 |
| DEC DRV8825 | RESET / SLEEP | – |
| DRV8825 Ascension Droite (RA) | ||
| RA DRV8825 | STEP | 4 |
| RA DRV8825 | DIR | 5 |
| RA DRV8825 | M0 | 11 |
| RA DRV8825 | M1 | 13 |
| RA DRV8825 | M2 | 12 |
| RA DRV8825 | RESET / SLEEP | – |
| Écran TFT | ||
| TFT Shield | broches (22-53) + SPI | – |
| Jour/Nuit Switch | – | A3 |
Maintenant, assemblez la carte Shield. Prenez un PCB de prototypage et évaluez comment le découper pour tenir tous les composants, laisser de la place pour le câblage, et avoir les broches soudées pour l'empiler sur l'Arduino. Soudez toutes les broches utilisées par l'Arduino et connectez-les soit aux composants sur le Shield, soit à un connecteur sur ce Shield pour les composants sur le boîtier.



Une fois fait, j'ai connecté la carte et testé le Shield ! Ça ne marchait pas ! :( J'ai vérifié le câblage et découvert un pont entre 2 connexions, corrigé. Vérifiez toutes les soudures ! Suivez le schéma de câblage pour DRV8825 et moteurs, c'est important.

Utilisez une alimentation adaptée (12V, 1.6A) et connectez les drivers moteurs AVANT de mettre sous tension ! NB : Ne connectez jamais les drivers moteurs quand le DRV8825 est sous tension, ça peut les griller !
Maintenant que tous les composants sont soudés, connectez les drivers moteurs, chargez le logiciel sur l'Arduino et testez l'ensemble. Ça doit marcher sans accroc.
Vous pouvez maintenant jouer avec le logiciel et découvrir l'interface utilisateur. Pour aider, j'ai créé un GUIDE UTILISATEUR sur le site : https://rduinoscope.co.nf/guide.html


ÉTAPE 4 – Tout mettre en boîte
Une fois le Shield prêt, prenez le boîtier et disposez les composants restants, planifiez les trous à percer. La meilleure façon de découper est avec un petit couteau de poche. La forme n'importe pas (rond ou carré). Pour l'écran, il faut une découpe longue, droite et carrée – j'ai demandé à mon père sur ses machines de découpe.
Une fois satisfait de la disposition, commencez à découper. C'est long et salissant, mais 2-3 heures max. Parfois j'ai utilisé des forets pour les trous ronds (connecteur 12V, connecteurs moteurs RA/DEC).

Préparez le pistolet à colle chaude et collez les composants comme ci-dessous :




Tout est connecté et en boîte, sauf les composants sur la face avant : écran TFT, joystick PS2, interrupteur Jour/Nuit. Pour l'écran TFT, j'ai fait une connexion nappe avec connecteurs mâle/femelle. Mais ça n'a pas marché ! Les broches étaient miroitées, l'écran ne fonctionnait plus. J'ai dû faire des conversions 2D→3D complexes avec les connecteurs de la nappe pour résoudre le problème.
En résumé : Ce n'est pas de la science-fiction, mais ça m'a donné du fil à retordre. Une solution moche, mais qui marche depuis un an. Voici ce que j'ai fait :



- Câble nappe
- Connecteurs femelle 40 broches
- Broches à souder sur PCB découpé en array (2 × 20 broches)
Ça a marché parfaitement et m'a permis de finir la boîte !




ÉTAPE 5 – La monture équatoriale allemande
Je ne peux pas partager comment connecter les drivers moteurs à votre monture, car chaque fabricant a son design. Je utilise une Vixen Super Polaris des années 80 et la méthode ci-dessous fonctionne pour elle. Rappelez-vous que les décisions de l'ÉTAPE 1 (valeurs dans le code) affectent maintenant notre travail. Voici mon montage poulies/courroies :
J'ai acheté 2 jeux. Pas sûr du fonctionnement, j'ai pris un jeu réduction 1:4 et un 1:3. La taille des courroies diffère selon la réduction. Avec une bonne planification, on peut décider à l'avance et économiser, mais j'étais pressé. Il fallait que ça marche !

Avec poulies, courroies et monture devant moi, j'ai choisi la réduction 1:4 car tout semblait s'adapter parfaitement. J'ai travaillé sur le boîtier moteur et après une demi-journée :


J'ai testé l'ensemble et dû modifier le logiciel (mettre la variable à 4 ligne 35) pour refléter ma décision finale. Retesté et tout marchait parfaitement.
J'ai attendu une nuit étoilée pour tester correctement, mais en attendant, j'ai réalisé que quelque chose n'allait pas !
J'avais le meilleur système GOTO pour télescope, bien meilleur que ce que mon budget hobby pouvait acheter, mais l'apparence n'était pas bonne. Il fallait des finitions, ce qui plus tard m'a rendu fier de mon rDUINOScope !

Finalement, mon rDUINOScope Vixen SP look Ferrari comme je le sentais !



Fichiers
- _READ_ME.txt : Description de la version finale v2.1 Boiana EQ avec FAQ.
- _02_Boiana_EQ.ino : Fichier Arduino principal
- graphic_screens.ino : Fichier graphismes – lié au principal
- touch_inputs.ino : Fichier entrées tactiles – lié au principal
- BT.ino : Communication Bluetooth – lié au principal
- regular_updates.ino : Mises à jour temporelles – lié au principal
Extraits de code
Configuration monture (lignes 34-37)
// ICI VONT LES INFOS MONTURE, ENGRENAGES ET ENTRAINEMENT
// ... utilisé pour calculer le ratio AngleHoraire vers microPas
// METTEZ À JOUR CETTE PARTIE SELON VOTRE CONFIGURATION
// ---------------------------------------------
// NB: AR et DEC utilisent le même ratio d'engrenage (144 dents dans mon cas)!
//----------------------------------------------
int WORM = 144;
int REDUCTOR = 4; // réduction d'engrenage 1:4
int DRIVE_STP = 200; // Moteur pas-à-pas 200 pas/révolution
int MICROSteps = 16; // Mode micro-pas 1/16 pour vitesse sidérale - détermine la vitesse LA PLUS BASSE
Contrôle moteur RA (exemple ligne 1028+)
if (SLEW_RA_microsteps > RA_microSteps) {
digitalWrite(RA_DIR, STP_BACK);
digitalWrite(RA_STP, HIGH);
digitalWrite(RA_STP, LOW);
RA_microSteps += RA_mode_steps;
} else {
digitalWrite(RA_DIR, STP_FWD);
digitalWrite(RA_STP, HIGH);
digitalWrite(RA_STP, LOW);
RA_microSteps -= RA_mode_steps;
}
GitHub
https://github.com/dEskoG/rDUINOScope
Schémas
Câblage moteurs pas-à-pas et DRV8825 vers Arduino Due

Câblage tous les capteurs vers Arduino Due

Processus de fabrication
- Photographie Haute Vitesse : Capturez les Gouttes d'Eau avec Arduino Nano
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- JX Wave Generator – Générateur DDS compatible Arduino avec affichage OLED
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth