{"id":13430,"date":"2026-10-08T15:35:13","date_gmt":"2026-10-08T13:35:13","guid":{"rendered":"https:\/\/spectro-uvex.tech\/?p=13430"},"modified":"2026-10-08T15:35:13","modified_gmt":"2026-10-08T13:35:13","slug":"un-focuser-economique-pour-evoguide-50ed","status":"publish","type":"post","link":"https:\/\/spectro-uvex.tech\/?p=13430","title":{"rendered":"Un focuser \u00e9conomique pour Evoguide 50ED"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"13430\" class=\"elementor elementor-13430\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-51754c9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"51754c9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1640ad2\" data-id=\"1640ad2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aebdf32 elementor-widget elementor-widget-html\" data-id=\"aebdf32\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.focuser-article {\n  --fa-text: #1f2328; --fa-muted: #5b636d; --fa-accent: #2f5d8a; --fa-accent-soft: #e7eef6;\n  --fa-border: #e2e0da; --fa-code-bg: #f3f1ec; --fa-surface: #ffffff; --fa-warn-border: #e0a43a; --fa-warn-bg: #fff5e0;\n  box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 0 0 40px;\n  color: var(--fa-text); font: 17px\/1.65 Georgia, \"Times New Roman\", serif;\n}\n.focuser-article * { box-sizing: border-box; }\n.focuser-article header.top { margin-bottom: 32px; }\n.focuser-article .kicker { font: 600 13px\/1.4 system-ui, -apple-system, \"Segoe UI\", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--fa-accent); margin-bottom: 8px; }\n.focuser-article .lede { font-size: 19px; color: var(--fa-muted); margin: 0; }\n.focuser-article h2 { font: 700 26px\/1.3 system-ui, -apple-system, \"Segoe UI\", sans-serif; margin: 48px 0 14px; padding-top: 16px; border-top: 1px solid var(--fa-border); color: var(--fa-text); }\n.focuser-article h3 { font: 650 19px\/1.35 system-ui, -apple-system, \"Segoe UI\", sans-serif; margin: 28px 0 8px; color: var(--fa-text); }\n.focuser-article p, .focuser-article ul, .focuser-article ol { margin: 0 0 16px; font-size: inherit; }\n.focuser-article li { margin-bottom: 6px; }\n.focuser-article a { color: var(--fa-accent); }\n.focuser-article code { font: .88em\/1.4 ui-monospace, \"Cascadia Code\", Consolas, monospace; background: var(--fa-code-bg); padding: 1px 5px; border-radius: 4px; }\n.focuser-article pre { background: var(--fa-code-bg); border: 1px solid var(--fa-border); border-radius: 8px; padding: 14px 16px; overflow-x: auto; font: 14px\/1.5 ui-monospace, \"Cascadia Code\", Consolas, monospace; margin: 0 0 20px; }\n.focuser-article pre code { background: none; padding: 0; font-size: inherit; }\n.focuser-article .table-wrap { overflow-x: auto; margin: 0 0 22px; }\n.focuser-article table { width: 100%; border-collapse: collapse; font: 15px\/1.45 system-ui, -apple-system, \"Segoe UI\", sans-serif; background: var(--fa-surface); margin: 0; }\n.focuser-article th, .focuser-article td { text-align: left; padding: 8px 10px; border: 0; border-bottom: 1px solid var(--fa-border); vertical-align: top; }\n.focuser-article th { background: var(--fa-accent-soft); font-weight: 600; }\n.focuser-article .note, .focuser-article .warn { border-left: 4px solid var(--fa-accent); background: var(--fa-accent-soft); padding: 12px 16px; border-radius: 0 8px 8px 0; margin: 0 0 22px; font-size: 16px; }\n.focuser-article .warn { border-color: var(--fa-warn-border); background: var(--fa-warn-bg); }\n.focuser-article .note p:last-child, .focuser-article .warn p:last-child { margin-bottom: 0; }\n.focuser-article .toc { background: var(--fa-surface); border: 1px solid var(--fa-border); border-radius: 10px; padding: 16px 20px; font: 15px\/1.6 system-ui, -apple-system, \"Segoe UI\", sans-serif; margin-bottom: 8px; }\n.focuser-article .toc ol { margin: 6px 0 0; padding-left: 20px; }\n.focuser-article .facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 24px 0; }\n.focuser-article .fact { background: var(--fa-surface); border: 1px solid var(--fa-border); border-radius: 10px; padding: 12px 14px; font-family: system-ui, -apple-system, \"Segoe UI\", sans-serif; }\n.focuser-article .fact b { display: block; font-size: 21px; color: var(--fa-accent); }\n.focuser-article .fact span { font-size: 13px; color: var(--fa-muted); }\n.focuser-article figure { margin: 28px 0; }\n.focuser-article figure img { display: block; width: 50%; height: auto; margin: 0 auto; border-radius: 10px; }\n.focuser-article figure.photo img { width: 140px; background: #fff; }\n.focuser-article figcaption { text-align: center; font: 14px\/1.4 system-ui, -apple-system, \"Segoe UI\", sans-serif; color: var(--fa-muted); margin-top: 8px; }\n.focuser-article footer { margin-top: 48px; padding-top: 16px; border-top: 1px solid var(--fa-border); font-size: 15px; color: var(--fa-muted); }\n.focuser-article a.download { display: inline-block; margin: 0 0 24px; padding: 10px 18px; border-radius: 8px; background: var(--fa-accent); color: #fff; font: 600 15px\/1.4 system-ui, -apple-system, \"Segoe UI\", sans-serif; text-decoration: none; }\n.focuser-article a.download:hover { opacity: .9; color: #fff; }\n@media (max-width: 520px) { .focuser-article figure img { width: 100%; } .focuser-article figure.photo img { width: 140px; } .focuser-article { font-size: 16px; } .focuser-article h2 { font-size: 22px; } }\n<\/style>\n<article class=\"focuser-article\">\n\n<header class=\"top\">\n  <div class=\"kicker\">Astronomie \u00b7 DIY \u00b7 Arduino \u00b7 ASCOM<\/div>\n  <p class=\"lede\">Un chercheur est tr\u00e8s utile en spectroscopie : il se substitue au guideur pour le pointage lorsque la focale de l'instrument devient cons\u00e9quente (&gt; 2 m). Ce projet d\u00e9crit la motorisation compl\u00e8te d'un chercheur Evoguide 50ED en utilisant des composants peu on\u00e9reux, que l'on trouve facilement sur les sites de commerce en ligne.<\/p>\n  <figure class=\"hero\">\n    <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/evoguide-50ed-motorise.jpg\" alt=\"Chercheur Evoguide 50ED motoris\u00e9 : moteur et engrenages imprim\u00e9s sur la bague de mise au point, carter \u00e9lectronique fix\u00e9 par le collier\" width=\"1400\" height=\"788\">\n    <figcaption>L'Evoguide 50ED motoris\u00e9 : \u00e0 droite le moteur et ses engrenages sur la bague de mise au point, en haut le carter \u00e9lectronique port\u00e9 par le collier.<\/figcaption>\n  <\/figure>\n<\/header>\n\n<nav class=\"toc\">\n  <strong>Sommaire<\/strong>\n  <ol>\n    <li><a href=\"#intro\">Introduction<\/a><\/li>\n    <li><a href=\"#stl\">Les pi\u00e8ces imprim\u00e9es en 3D (fichiers STL)<\/a><\/li>\n    <li><a href=\"#arduino\">Le programme Arduino Mega<\/a><\/li>\n    <li><a href=\"#ascom\">Le driver ASCOM<\/a><\/li>\n  <\/ol>\n<\/nav>\n\n<!-- ============================================================ -->\n<h2 id=\"intro\">1. Introduction<\/h2>\n\n<figure class=\"photo\">\n  <img decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/evoguide-50ed.jpg\" alt=\"Chercheur-guideur Sky-Watcher Evoguide 50ED sur son support\" width=\"708\" height=\"474\">\n  <figcaption>Le chercheur-guideur Sky-Watcher Evoguide 50ED, instrument motoris\u00e9 dans ce projet.<\/figcaption>\n<\/figure>\n\n<p>En astrophotographie, la mise au point est l'un des r\u00e9glages les plus d\u00e9licats. Toucher la molette du porte-oculaire fait vibrer le tube, la temp\u00e9rature fait d\u00e9river le foyer au fil de la nuit, et les routines d'autofocus des logiciels d'acquisition ont besoin d'un moteur qu'elles peuvent piloter seules. Les focusers motoris\u00e9s du commerce font tr\u00e8s bien ce travail, mais leur prix d\u00e9passe souvent celui d'un bon oculaire.<\/p>\n\n<p>Ce projet propose une alternative enti\u00e8rement maison, construite autour de composants tr\u00e8s r\u00e9pandus :<\/p>\n\n<ul>\n  <li>un <strong>Arduino Mega 2560<\/strong> (ici en version compacte \u00ab PRO Mini \u00bb), reli\u00e9 au PC par USB ;<\/li>\n  <li>un moteur pas \u00e0 pas <strong>28BYJ-48 5 V<\/strong> et sa carte pilote <strong>ULN2003<\/strong>, vendus ensemble pour quelques euros ;<\/li>\n  <li>un <strong>bo\u00eetier<\/strong> et un <strong>collier de fixation<\/strong> imprim\u00e9s en 3D ;<\/li>\n  <li>un <strong>driver ASCOM<\/strong> \u00e9crit en C#.<\/li>\n<\/ul>\n\n<div class=\"facts\">\n  <div class=\"fact\"><b>4 076<\/b><span>demi-pas par tour d'axe moteur<\/span><\/div>\n  <div class=\"fact\"><b>\u2248 0,07 \u00b5m<\/b><span>par pas (h\u00e9lico\u00efde 1 mm\/tour)<\/span><\/div>\n  <div class=\"fact\"><b>IFocuserV3<\/b><span>focuser absolu<\/span><\/div>\n  <div class=\"fact\"><b>~ 68 g<\/b><span>de PLA\/PETG au total<\/span><\/div>\n<\/div>\n\n<p>Cette r\u00e9solution d\u00e9coule de la cha\u00eene de transmission. Le moteur fait 4 076 demi-pas par tour ; son pignon (diam\u00e8tre primitif de 23 \u00e0 26 mm) entra\u00eene une couronne de 80,2 mm fix\u00e9e sur la bague de mise au point, soit un rapport d'environ 3,3. Il faut donc pr\u00e8s de 13 000 pas pour un tour de bague : avec un h\u00e9lico\u00efde de 1 mm par tour, chaque pas d\u00e9place le foyer d'environ 0,07 \u00b5m, tr\u00e8s en dessous de la zone de nettet\u00e9 de \u00b130 \u00b5m \u00e0 f\/4,8. Le d\u00e9tail du calcul figure dans la partie <a href=\"#arduino\">Arduino<\/a>.<\/p>\n\n<p>Le focuser est <strong>absolu<\/strong> : il conna\u00eet en permanence sa position, la m\u00e9morise en EEPROM et la retrouve apr\u00e8s une coupure de courant. Il compense le jeu m\u00e9canique (backlash) et coupe l'alimentation des bobines \u00e0 l'arr\u00eat pour que le moteur ne chauffe pas. Il a \u00e9t\u00e9 pens\u00e9 pour passer l'outil de validation officiel <strong>ConformU<\/strong>.<\/p>\n\n<h3>C\u00e2blage<\/h3>\n\n<p>Le sch\u00e9ma est volontairement minimaliste : quatre fils de commande entre l'Arduino et l'ULN2003, une masse commune, et une alimentation 5 V pour le moteur issue de l'Arduino Mega.<\/p>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Arduino Mega<\/th><th>Carte ULN2003<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td>D12<\/td><td>IN1<\/td><\/tr>\n    <tr><td>D10<\/td><td>IN2<\/td><\/tr>\n    <tr><td>D8<\/td><td>IN3<\/td><\/tr>\n    <tr><td>D6<\/td><td>IN4<\/td><\/tr>\n    <tr><td>GND<\/td><td>\u2212 (et GND de l'alimentation 5 V)<\/td><\/tr>\n    <tr><td>5V<\/td><td>+ : alimentation 5 V, 500 mA minimum<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<!-- ============================================================ -->\n<h2 id=\"stl\">2. Les pi\u00e8ces imprim\u00e9es en 3D (fichiers STL)<\/h2>\n\n<p>Les pi\u00e8ces sont fournies sous forme de <strong>fichiers STL<\/strong>, pr\u00eats \u00e0 trancher. Leur g\u00e9om\u00e9trie a \u00e9t\u00e9 valid\u00e9e par une s\u00e9rie de contr\u00f4les automatiques : collisions, \u00e9paisseurs, orientation des cartes et passage des connecteurs.<\/p>\n\n<p><a class=\"download\" href=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/focuser-evoguide50ed-stl.zip\" download>T\u00e9l\u00e9charger tous les fichiers STL (zip, 1,4 Mo)<\/a><\/p>\n\n<h3>Le carter \u00e9lectronique<\/h3>\n\n<p>Le bo\u00eetier principal regroupe la Mega 2560 PRO Mini et l'ULN2003 sur un seul niveau, angles arrondis R5.<\/p>\n\n<figure class=\"wide\">\n  <img decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/carter-electronique.jpg\" alt=\"Int\u00e9rieur du carter : carte ULN2003 \u00e0 gauche, Mega 2560 PRO Mini \u00e0 droite, c\u00e2bl\u00e9e\" width=\"1400\" height=\"788\">\n  <figcaption>Le carter ouvert : l'ULN2003 \u00e0 gauche, la Mega 2560 PRO Mini \u00e0 droite, le micro-USB face \u00e0 l'ouverture de la paroi.<\/figcaption>\n<\/figure>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Fichier<\/th><th>R\u00f4le<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td><code>Carter_Base.stl<\/code><\/td><td>Base<\/td><\/tr>\n    <tr><td><code>Carter_Couvercle.stl<\/code><\/td><td>Couvercle<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<figure class=\"wide\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/stl-carter.jpg\" alt=\"Base et couvercle du carter \u00e9lectronique dans le trancheur\" width=\"726\" height=\"601\">\n  <figcaption>La base (\u00e0 gauche) et le couvercle du carter \u00e9lectronique, pr\u00eats \u00e0 imprimer.<\/figcaption>\n<\/figure>\n\n<ul>\n  <li><strong>Encombrement :<\/strong> 110,7 \u00d7 56 \u00d7 24,6 mm, plus un berceau USB de 9 mm, soit 119,7 mm hors tout. Environ 26 g de PLA.<\/li>\n  <li><strong>Mega<\/strong> pos\u00e9e sur quatre bossages de 3 mm (deux viss\u00e9s, deux simples appuis) qui d\u00e9gagent les soudures. Les deux appuis suppl\u00e9mentaires emp\u00eachent la carte de basculer, ses deux trous de fixation \u00e9tant du m\u00eame c\u00f4t\u00e9.<\/li>\n  <li><strong>ULN2003<\/strong> viss\u00e9e sur quatre plots, avec 13 mm de d\u00e9gagement pour enficher la nappe moteur et des Dupont coud\u00e9s.<\/li>\n  <li><strong>Prise USB directe<\/strong> : le cordon traverse la paroi par une ouverture de 12 \u00d7 9 mm et se branche dans le micro-USB de la carte. Autour de l'ouverture, la paroi est amincie \u00e0 1,2 mm pour que la fiche atteigne le connecteur.<\/li>\n  <li><strong>Berceau ext\u00e9rieur en U<\/strong> : il soutient la fiche, et un serre-c\u00e2ble pass\u00e9 dans deux fentes bride le c\u00e2ble pour que rien ne tire sur le connecteur soud\u00e9.<\/li>\n  <li><strong>Sortie du c\u00e2ble moteur<\/strong> par une demi-lune de \u2300 7 mm au plan de joint.<\/li>\n  <li><strong>Fixation<\/strong> par deux vis M3 dans le fond, entraxe 35 mm, t\u00eates noy\u00e9es.<\/li>\n<\/ul>\n\n<div class=\"note\">\n  <p>Le bo\u00eetier ne pr\u00e9voit pas encore d'entr\u00e9e d\u00e9di\u00e9e pour le 5 V moteur. Le plus simple est de faire passer les deux fils par la demi-lune du c\u00e2ble moteur ; on peut aussi percer un jack sur la paroi droite, qui est libre.<\/p>\n<\/div>\n\n<p>Une variante plus petite, <strong>le carter ULN2003 seul<\/strong> (52,2 \u00d7 49,5 \u00d7 29,6 mm), loge uniquement la carte pilote pour ceux qui gardent l'Arduino ailleurs. Elle utilise le m\u00eame entraxe de fixation de 35 mm.<\/p>\n\n<h3>Le collier de fixation sur le chercheur<\/h3>\n\n<p>Le carter se fixe sur le tube du chercheur (\u2300 56,30 mm) \u00e0 l'aide d'un collier en deux demi-coquilles cylindriques serr\u00e9es par quatre vis M4.<\/p>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Fichier<\/th><th>R\u00f4le<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td><code>Collier_Long_Haut.stl<\/code><\/td><td>Coquille haute, qui porte le plateau du carter<\/td><\/tr>\n    <tr><td><code>Collier_Long_Bas.stl<\/code><\/td><td>Coquille basse<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<figure class=\"wide\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/stl-collier.jpg\" alt=\"Les deux demi-coquilles du collier de fixation dans le trancheur\" width=\"578\" height=\"536\">\n  <figcaption>Les deux demi-coquilles du collier de fixation sur le chercheur.<\/figcaption>\n<\/figure>\n\n<ul>\n  <li><strong>Encombrement :<\/strong> 80,4 \u00d7 46 \u00d7 82,9 mm, environ 42 g de mati\u00e8re.<\/li>\n  <li><strong>Carter dans l'axe du tube<\/strong>, pos\u00e9 sur un plateau de 46 \u00d7 46 mm.<\/li>\n  <li><strong>Embase sur\u00e9lev\u00e9e de 22 mm<\/strong> au-dessus du tube, pour passer au-dessus des colliers de la lunette.<\/li>\n  <li><strong>Vis de serrage t\u00eate par dessus<\/strong>, accessibles m\u00eame carter mont\u00e9.<\/li>\n  <li><strong>Anneau cylindrique<\/strong> \u2300 65,5 mm.<\/li>\n<\/ul>\n\n<p>L'al\u00e9sage fait 56,50 mm et il reste 1 mm de jeu par coquille au plan de joint : c'est ce jeu qui permet aux vis de r\u00e9ellement pincer le tube. Les \u00e9crous M4 sont captifs dans des logements hexagonaux, aucune cl\u00e9 n'est n\u00e9cessaire de leur c\u00f4t\u00e9.<\/p>\n\n<p>Le collier s'imprime <strong>sur le flanc, axe du tube vertical<\/strong>. Comme son profil est strictement constant sur toute la largeur, chaque couche est identique \u00e0 la pr\u00e9c\u00e9dente : aucun porte-\u00e0-faux, et un anneau vraiment rond sans support. Les couches se retrouvent en outre perpendiculaires \u00e0 l'effort de serrage, l\u00e0 o\u00f9 une pi\u00e8ce imprim\u00e9e est la plus r\u00e9sistante.<\/p>\n\n<h3>La transmission<\/h3>\n\n<p>La bague de mise au point de l'Evoguide est entra\u00een\u00e9e par une couronne \u00e0 denture en chevrons (55 dents, diam\u00e8tre primitif 80,2 mm) serr\u00e9e sur la bague, et par un petit pignon cal\u00e9 sur l'axe du 28BYJ-48. Le support moteur se serre sur le corps du chercheur ; ses deux fentes en arc permettent de faire pivoter le moteur pour r\u00e9gler l'engr\u00e8nement et limiter le jeu. Ces pi\u00e8ces sont adapt\u00e9es du mod\u00e8le <a href=\"https:\/\/www.printables.com\/model\/384386-belt-less-helical-gear-focuser-for-135mm-f2\">Belt-less, helical gear focuser<\/a> publi\u00e9 sur Printables.<\/p>\n\n<figure class=\"wide\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/spectro-uvex.tech\/wp-content\/uploads\/2026\/10\/stl-transmission.jpg\" alt=\"Support moteur, couronne et pignon \u00e0 chevrons dans le trancheur\" width=\"838\" height=\"549\">\n  <figcaption>Le support moteur (\u00e0 gauche), la couronne et le pignon \u00e0 chevrons (\u00e0 droite).<\/figcaption>\n<\/figure>\n\n<h3>Param\u00e8tres d'impression<\/h3>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Pi\u00e8ce<\/th><th>R\u00e9glages<\/th><th>Mati\u00e8re<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td>Carters<\/td><td>couche 0,2 mm, 3 p\u00e9rim\u00e8tres, remplissage 20 %, sans support<\/td><td>PLA, ou PETG si le mat\u00e9riel reste dehors la nuit<\/td><\/tr>\n    <tr><td>Colliers<\/td><td>couche 0,2 mm, 3 p\u00e9rim\u00e8tres, remplissage 40 %, sans support<\/td><td>PETG conseill\u00e9 : le PLA flue sous serrage permanent<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<p>Les STL sont livr\u00e9s d\u00e9j\u00e0 orient\u00e9s pour l'impression : il ne faut pas les tourner dans le trancheur.<\/p>\n\n<h3>Visserie<\/h3>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Qt\u00e9<\/th><th>Vis<\/th><th>Usage<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td>2<\/td><td>M3 \u00d7 6<\/td><td>Mega sur ses bossages<\/td><\/tr>\n    <tr><td>4<\/td><td>M3 \u00d7 8<\/td><td>ULN2003 sur ses plots<\/td><\/tr>\n    <tr><td>4<\/td><td>M3 \u00d7 12<\/td><td>couvercle du carter<\/td><\/tr>\n    <tr><td>2<\/td><td>M3 \u00d7 10<\/td><td>carter sur le collier<\/td><\/tr>\n    <tr><td>4 + 4<\/td><td>M4 \u00d7 20 CHC + \u00e9crous M4<\/td><td>serrage du collier<\/td><\/tr>\n    <tr><td>1<\/td><td>serre-c\u00e2ble 3,6 mm<\/td><td>bridage du cordon USB<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<p><strong>Ordre de montage :<\/strong> visser d'abord le carter sur son collier, depuis l'int\u00e9rieur, <em>avant<\/em> d'installer les cartes : les deux vis M3 se trouvent ensuite sous l'\u00e9lectronique et ne sont plus accessibles.<\/p>\n\n<!-- ============================================================ -->\n<h2 id=\"arduino\">3. Le programme Arduino Mega<\/h2>\n\n<p>Le firmware <code>FocuserMega.ino<\/code> ne d\u00e9pend d'aucune biblioth\u00e8que externe, seulement de <code>EEPROM.h<\/code> fournie avec l'IDE.<\/p>\n\n<h3>Installation<\/h3>\n\n<ol>\n  <li>Ouvrir <code>Arduino\/FocuserMega\/FocuserMega.ino<\/code> dans l'IDE Arduino.<\/li>\n  <li>Choisir la carte <strong>Arduino Mega or Mega 2560<\/strong>, processeur <strong>ATmega2560<\/strong>.<\/li>\n  <li>T\u00e9l\u00e9verser.<\/li>\n<\/ol>\n\n<p>Au premier d\u00e9marrage, le firmware \u00e9crit ses valeurs par d\u00e9faut en EEPROM et se place \u00e0 mi-course (32767 sur 65535). La position est sauvegard\u00e9e automatiquement une seconde apr\u00e8s chaque arr\u00eat du moteur.<\/p>\n\n<h3>Fonctionnement<\/h3>\n\n<ul>\n  <li><strong>Pilotage en demi-pas<\/strong> (s\u00e9quence \u00e0 8 phases), soit 4 075,8 pas par tour de l'axe de sortie du 28BYJ-48 (rapport r\u00e9el du r\u00e9ducteur 63,684:1, souvent arrondi \u00e0 4096).<\/li>\n  <li><strong>Mouvements non bloquants<\/strong> : la commande <code>MOVE<\/code> rend la main imm\u00e9diatement et le moteur avance dans la boucle principale, ce qui permet d'interroger la position ou d'envoyer <code>HALT<\/code> \u00e0 tout moment.<\/li>\n  <li><strong>Compensation du backlash<\/strong> : le firmware d\u00e9passe syst\u00e9matiquement la cible puis revient, si bien que la position finale est toujours atteinte dans le m\u00eame sens.<\/li>\n  <li><strong>Coupure des bobines \u00e0 l'arr\u00eat<\/strong> (d\u00e9sactivable) pour \u00e9viter l'\u00e9chauffement.<\/li>\n  <li><strong>Vitesse r\u00e9glable<\/strong> : 1500 \u00b5s par demi-pas par d\u00e9faut, soit environ 660 pas\/s. En dessous de 1100 \u00b5s, le moteur commence \u00e0 d\u00e9crocher.<\/li>\n<\/ul>\n\n<h3>Le protocole s\u00e9rie<\/h3>\n\n<p>La liaison fonctionne \u00e0 <strong>57600 bauds, 8N1<\/strong>, avec une commande ASCII par ligne termin\u00e9e par <code>\\n<\/code>. Chaque r\u00e9ponse tient sur une ligne, et une erreur renvoie <code>ERR:&lt;code&gt;<\/code> (<code>BADARG<\/code>, <code>RANGE<\/code>, <code>BUSY<\/code>, <code>UNKNOWN<\/code>, <code>OVERFLOW<\/code>). On peut donc tout tester au moniteur s\u00e9rie de l'IDE, fin de ligne r\u00e9gl\u00e9e sur \u00ab Nouvelle ligne \u00bb :<\/p>\n\n<pre><code>PING          \u2192  PONG:AFOC1\nGETPOS        \u2192  POS:32767\nMOVE:33000    \u2192  OK\nISMOVING      \u2192  MOV:1\nSTATUS        \u2192  ST:32812,33000,1,65535,0\nHALT          \u2192  OK<\/code><\/pre>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Commande<\/th><th>R\u00e9ponse<\/th><th>R\u00f4le<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td><code>PING<\/code><\/td><td><code>PONG:AFOC1<\/code><\/td><td>Identification<\/td><\/tr>\n    <tr><td><code>GETVER<\/code><\/td><td><code>VER:1.0.0<\/code><\/td><td>Version du firmware<\/td><\/tr>\n    <tr><td><code>STATUS<\/code><\/td><td><code>ST:pos,cible,moving,max,backlash<\/code><\/td><td>\u00c9tat complet en une requ\u00eate<\/td><\/tr>\n    <tr><td><code>GETPOS<\/code> \/ <code>GETTGT<\/code><\/td><td><code>POS:n<\/code> \/ <code>TGT:n<\/code><\/td><td>Position courante \/ cible<\/td><\/tr>\n    <tr><td><code>ISMOVING<\/code><\/td><td><code>MOV:0|1<\/code><\/td><td>Mouvement en cours<\/td><\/tr>\n    <tr><td><code>MOVE:n<\/code><\/td><td><code>OK<\/code><\/td><td>D\u00e9placement absolu<\/td><\/tr>\n    <tr><td><code>HALT<\/code><\/td><td><code>OK<\/code><\/td><td>Arr\u00eat imm\u00e9diat<\/td><\/tr>\n    <tr><td><code>SETPOS:n<\/code><\/td><td><code>OK<\/code><\/td><td>Recale la position sans bouger<\/td><\/tr>\n    <tr><td><code>SETMAX:n<\/code><\/td><td><code>OK<\/code><\/td><td>Course totale<\/td><\/tr>\n    <tr><td><code>SETDLY:n<\/code><\/td><td><code>OK<\/code><\/td><td>Dur\u00e9e d'un demi-pas (900 \u00e0 20000 \u00b5s)<\/td><\/tr>\n    <tr><td><code>SETBL:n<\/code> \/ <code>SETBLDIR:0|1<\/code><\/td><td><code>OK<\/code><\/td><td>Backlash (0 \u00e0 1000 pas) et sens d'approche<\/td><\/tr>\n    <tr><td><code>SETREV:0|1<\/code><\/td><td><code>OK<\/code><\/td><td>Inversion du sens<\/td><\/tr>\n    <tr><td><code>SETHOLD:0|1<\/code><\/td><td><code>OK<\/code><\/td><td>Maintien des bobines \u00e0 l'arr\u00eat<\/td><\/tr>\n    <tr><td><code>SETSTEP:f<\/code><\/td><td><code>OK<\/code><\/td><td>Taille d'un pas en microns<\/td><\/tr>\n    <tr><td><code>SAVE<\/code> \/ <code>RESET<\/code><\/td><td><code>OK<\/code><\/td><td>\u00c9criture EEPROM \/ valeurs d'usine<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<p>Chaque commande <code>SET\u2026<\/code> a son pendant <code>GET\u2026<\/code>. Un portage pour <strong>Arduino Nano<\/strong> (<code>FocuserNano.ino<\/code>, firmware 1.1.0) reprend exactement le m\u00eame protocole et le m\u00eame c\u00e2blage ; il bascule les quatre bobines en une seule \u00e9criture du port B et occupe 33 % de la flash du Nano.<\/p>\n\n<h3>R\u00e9solution<\/h3>\n\n<p>Le moteur entra\u00eene la bague de mise au point de l'Evoguide par un pignon et une couronne imprim\u00e9s \u00e0 denture en chevrons. La r\u00e9solution se calcule \u00e0 partir des diam\u00e8tres primitifs :<\/p>\n\n<pre><code>r\u00e9solution = pas de l'h\u00e9lico\u00efde \u00f7 (4 075,8 \u00d7 Dp couronne \u00f7 Dp pignon)<\/code><\/pre>\n\n<ul>\n  <li>couronne : Dp = <strong>80,2 mm<\/strong> (55 dents) ;<\/li>\n  <li>pignon : Dp \u2248 <strong>22,7 \u00e0 26,3 mm<\/strong> selon le r\u00e9glage de l'entraxe (fentes du support moteur) ;<\/li>\n  <li>rapport de 3,05 \u00e0 3,53, soit <strong>12 400 \u00e0 14 400 pas moteur par tour de bague<\/strong>.<\/li>\n<\/ul>\n\n<p>Pour un h\u00e9lico\u00efde de 1 mm par tour, chaque pas d\u00e9place le foyer d'environ <strong>0,07 \u00b5m<\/strong> (0,069 \u00e0 0,080 \u00b5m). \u00c0 f\/4,8, la zone de nettet\u00e9 de l'Evoguide fait environ \u00b130 \u00b5m : elle couvre pr\u00e8s de 1 000 pas, la finesse de r\u00e9glage est donc largement suffisante et c'est le jeu des engrenages qui limite la pr\u00e9cision. Cette valeur est \u00e0 renseigner dans le champ <em>Taille d'un pas<\/em> du driver, apr\u00e8s avoir mesur\u00e9 le pas r\u00e9el de l'h\u00e9lico\u00efde (avance du tube sur 5 tours de bague, divis\u00e9e par 5).<\/p>\n\n<h3>Calibrage<\/h3>\n\n<ul>\n  <li><strong>Course totale :<\/strong> partir de la but\u00e9e basse, envoyer <code>SETPOS:0<\/code>, puis remonter par paliers (<code>MOVE:2000<\/code>, <code>MOVE:4000<\/code>\u2026) jusqu'\u00e0 la but\u00e9e haute. La derni\u00e8re valeur, moins une petite marge, devient la course maximale.<\/li>\n  <li><strong>Backlash :<\/strong> sur une \u00e9toile, avancer de 200 pas puis reculer de 200, et compter les pas n\u00e9cessaires avant que l'image ne r\u00e9agisse au changement de sens.<\/li>\n<\/ul>\n\n<!-- ============================================================ -->\n<h2 id=\"ascom\">4. Le driver ASCOM<\/h2>\n\n<p>ASCOM est la norme qui permet aux logiciels d'astronomie sous Windows (N.I.N.A., MaxIm DL, SharpCap, APT\u2026) de piloter le mat\u00e9riel de mani\u00e8re uniforme. Le projet fournit un driver ASCOM COM \u00e9crit en C# (.NET Framework 4.8, ASCOM Platform 6.6), qui pilote le focuser par la liaison USB du PC Windows.<\/p>\n\n<h3>Compilation et installation du driver COM<\/h3>\n\n<p>Il faut l'<strong>ASCOM Platform 6.6<\/strong> et <strong>Visual Studio 2022<\/strong> avec la charge de travail \u00ab D\u00e9veloppement .NET desktop \u00bb. On ouvre <code>src\\ArduinoFocuser.sln<\/code> et on g\u00e9n\u00e8re en configuration Release.<\/p>\n\n<p>Pour l'enregistrement, copier <code>Install.bat<\/code> \u00e0 c\u00f4t\u00e9 de <code>ASCOM.ArduinoFocuser.Focuser.dll<\/code> et <strong>l'ex\u00e9cuter en administrateur<\/strong>. Le driver appara\u00eet alors dans le s\u00e9lecteur ASCOM :<\/p>\n\n<ul>\n  <li>ProgID : <code>ASCOM.ArduinoFocuser.Focuser<\/code><\/li>\n  <li>Nom affich\u00e9 : <strong>Arduino 28BYJ-48 Focuser<\/strong><\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<p>Le bouton <strong>Properties\u2026<\/strong> du s\u00e9lecteur ouvre la fen\u00eatre de r\u00e9glages : port COM (avec un bouton \u00ab Tester la connexion \u00bb), course totale, taille d'un pas en microns, dur\u00e9e d'un demi-pas, inversion du sens, maintien des bobines, jeu \u00e0 rattraper et sens d'approche, journal de trace. Ces param\u00e8tres sont enregistr\u00e9s dans le profil ASCOM <strong>et<\/strong> renvoy\u00e9s \u00e0 l'EEPROM de l'Arduino \u00e0 chaque connexion, pour que les deux c\u00f4t\u00e9s restent toujours coh\u00e9rents.<\/p>\n\n<h3>Conformit\u00e9 \u00e0 la norme<\/h3>\n\n<p>Le driver impl\u00e9mente l'interface <strong>IFocuserV3<\/strong> :<\/p>\n\n<ul>\n  <li><code>Absolute<\/code> vaut <code>True<\/code> ; <code>Move()<\/code> re\u00e7oit une position absolue et rend la main imm\u00e9diatement, <code>IsMoving<\/code> passant \u00e0 <code>True<\/code>.<\/li>\n  <li><code>MaxIncrement<\/code> est \u00e9gal \u00e0 <code>MaxStep<\/code> : n'importe quelle position est accessible en un seul mouvement.<\/li>\n  <li>Le montage n'a pas de sonde : <code>TempCompAvailable<\/code> vaut <code>False<\/code> et <code>Temperature<\/code> l\u00e8ve <code>PropertyNotImplementedException<\/code>, comme l'exige la sp\u00e9cification.<\/li>\n<\/ul>\n\n<p>La validation se fait avec <strong>ConformU<\/strong>, l'outil officiel de l'ASCOM Initiative :<\/p>\n\n<pre><code>conformu conformance ASCOM.ArduinoFocuser.Focuser --devicetype Focuser<\/code><\/pre>\n\n<h3>Actions personnalis\u00e9es<\/h3>\n\n<p>Via <code>Action(nom, param\u00e8tre)<\/code>, le driver expose <code>Sync<\/code>, <code>GetFirmwareVersion<\/code>, <code>GetBacklash<\/code>, <code>SetBacklash<\/code>, <code>GetStepDelay<\/code> et <code>SetStepDelay<\/code>. Les m\u00e9thodes <code>CommandString<\/code>, <code>CommandBlind<\/code> et <code>CommandBool<\/code> transmettent directement une commande du protocole s\u00e9rie.<\/p>\n\n<h3>D\u00e9pannage<\/h3>\n\n<div class=\"table-wrap\">\n<table>\n  <thead><tr><th>Sympt\u00f4me<\/th><th>Cause probable<\/th><\/tr><\/thead>\n  <tbody>\n    <tr><td>Aucun focuser d\u00e9tect\u00e9<\/td><td>Mauvais port COM, firmware absent, ou moniteur s\u00e9rie de l'IDE rest\u00e9 ouvert<\/td><\/tr>\n    <tr><td>Le moteur vibre sans tourner<\/td><td>Fils invers\u00e9s, ou dur\u00e9e de demi-pas trop courte<\/td><\/tr>\n    <tr><td>Le moteur chauffe \u00e0 l'arr\u00eat<\/td><td>\u00ab Maintenir les bobines \u00bb est coch\u00e9<\/td><\/tr>\n    <tr><td>Pas perdus en charge<\/td><td>Augmenter la dur\u00e9e du demi-pas (1800 \u00e0 2500 \u00b5s)<\/td><\/tr>\n    <tr><td>Position fausse apr\u00e8s red\u00e9marrage<\/td><td>Alimentation coup\u00e9e moins d'une seconde apr\u00e8s un mouvement<\/td><\/tr>\n    <tr><td>Absent du s\u00e9lecteur ASCOM<\/td><td><code>Install.bat<\/code> non lanc\u00e9 en administrateur<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<footer>\n  <p>Structure du driver COM d\u00e9riv\u00e9e du mod\u00e8le <em>ASCOM Focuser Driver (C#)<\/em> de l'ASCOM Initiative. Documentation d\u00e9veloppeur : <a href=\"https:\/\/ascom-standards.org\/COMDeveloper\/DriverImpl.htm\">ascom-standards.org<\/a>.<\/p>\n<\/footer>\n\n<\/article>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Astronomie \u00b7 DIY \u00b7 Arduino \u00b7 ASCOM Un chercheur est tr\u00e8s utile en spectroscopie : il se substitue au guideur pour le pointage lorsque la focale de l&rsquo;instrument devient cons\u00e9quente (&gt; 2 m). Ce projet d\u00e9crit la motorisation compl\u00e8te d&rsquo;un chercheur Evoguide 50ED en utilisant des composants peu on\u00e9reux, que l&rsquo;on trouve facilement sur les [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_front_end_style_editor":"no","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[172],"tags":[],"class_list":["post-13430","post","type-post","status-publish","format-standard","hentry","category-developpements","entry","owp-thumbs-layout-horizontal","owp-btn-normal","owp-tabs-layout-horizontal","has-no-thumbnails","has-product-nav"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/posts\/13430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13430"}],"version-history":[{"count":46,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/posts\/13430\/revisions"}],"predecessor-version":[{"id":13483,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=\/wp\/v2\/posts\/13430\/revisions\/13483"}],"wp:attachment":[{"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spectro-uvex.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}