====== AROM, PyDirectMount ====== [[PyDirectMount]] je python knihovna ovládající montáže astronomických dalekohledů, které mají nahrazené originální řídící HW/SW hardwarem z [[cs:start|MLAB]]. Tento přístup umožňuje kompletní kontrolu nad montáží pomocí známého komunikačního protokolu. Komunikace s montáží probíhá pouze přes I2C. Pro větší vzdálenost mezi řídícím PC a montáží je možné použít [[cs:i2cdiff|diferenciální vedení I2C]] nebo vedení RS232 a převodník z [[cs:I2CRS232|RS232 na I2C]]. Pro ovládání motorů montáže byl zvolen inteligentní budič krokových motorů [[cs:hbstep|HBSTEP]]. Budič komunikuje přes [[cs:spi|SPI]] a je přímo na montáži použit převodník z [[cs:i2cspi|I²C na SPI]]. ===== Hardware ===== Testování tohoto softwaru probíhá na upravené montáži HEQ5, která je řízena krokovými motory. Veškerá původní elektronika montáže byla odpojena a nahrazena moduly z MLABu. ===== Software ===== Knihovna pro řízení montáže se nachází na [[https://github.com/Robozor-network/pyDirectMount|GitHubu]]. Software je funkční samostatně i bez použití [[cs:ros|ROSu]] nebo [[cs:robozor:arom|AROMu]]. Vyžaduje pouze fungující [[cs:pymlab|PyMLAB]]. ==== Metody použité pro řízení montáže ==== * connect - připojení k montáži * Slew - přejet na požadované souřadnice, nezapínat hodinový stroj * Track - Zapnout hodinový stroj * TrackTLE - Sledovat TLE objekt * TrackStop - Vypnout hodinový stroj * SetTrack - Nastavit rychlost hodinového stroje * GoTo - //Slew// + //Track// * GoToTLE - //Slew// + //TrackTLE// * GoToHome - přejet do 'home' polohy * Park - uzamknout montáž proti pohybu * UnPark - odemknout montáž proti pohybu * Sync - sesynchronizovat předpokládané souřadnice a reálné * AddAlignment - Přidat kalibrační bod * Shutdown - //GoToHome// + //Park// * Start - //UnPark// ==== Meridian-flip==== Paralaktické montáže na svislém sloupku mají problém, že při pozorování přes místní meridián můžou pak narazit do svého sloupku. Tento problém řeší přestavení montáže (meridian-flip) při přiblížení meridiánu. Celý proces spočívá v otočení RA i DEC osy o 180°. ====Ustavení montáže==== Správné ustavení montáže (alignment) při skládání pozorovací sestavy má obrovský vliv na kvalitu pozorování. Některé montáže poskytují polární hledáček, ale ustavení pomocí hledáčku není dostatečně přesné. Existuje několik různých postupů pro přesné ustavení. ===DARV=== Ustavení DARV (Drift Alignment by Robert Vice method) spočívá v několika jednoduchých krocích, kterými se ustavení velmi zpřesní. Při této metodě je potřeba kamera. - Zaměřit jasnější Hvězdu v okolí průsečíku meridiánu a deklinace (Ha = 0, Dec = 0) - Spustit expozici kamery (cca 2 min) - Na začátku expozice chvíli (5s) mít spuštěný tracking - Vypnout tracking (zpomalit) a počkat 1 minutu - Zrychlit tracking ve směru pohybu hvězd (zrychlit) a počkat do konce expozice - Pokud hvězda vykreslila tvar písmena V upravíme azimut montáže a opakujeme bod 2 do doby, než vykreslený tvar je úsečka (obě části stopy se překrývají) - Montáž namíříme na západ (nebo východ) blízko k deklinaci na jasnější hvězdu. - Opakujeme bod 2. Při trajektorii ve tvaru V měníme elevaci montáže do doby, než nezískáme úsečku. - Správnost můžeme zkontrolovat na druhé straně (východ/západ) oblohy. ==== Absolutní poloha ==== Pro získání polohy například po výpadku proudu nebo naražení montáže je nutné získat absolutní polohu pro bezpečné zaparkování. K tomu je dobré použít [[cs:mag|magnetometr]] umístěný na tubusu dalekohledu. Získaná poloha pravděpodobně nebude dostatečně přesná pro najíždění na hvězdy. ==== GoTo ==== Pro přejezd montáže na zadané souřadnice je potřeba ovladači předat souřadnice pomocí ROS zpráv. Z terminálu lze zprávu poslat například takto: rostopic pub /mount/controll std_msgs/String "altaz 0 90" rostopic pub /mount/controll std_msgs/String "name sirius" rostopic pub /mount/controll std_msgs/String "name m31" rostopic pub /mount/controll std_msgs/String "name NGC224" rostopic pub /mount/controll std_msgs/String "name V416_Aql" rostopic pub /mount/controll std_msgs/String "solar sun" rostopic pub /mount/controll std_msgs/String "solar venus" rostopic pub /mount/controll std_msgs/String "solar moon" Lze poslat přímo souřadnice v AltAz formátu, nebo jméno objektu z některých katalogů. Dostupnost požadovaného objektu v katalogu systému si můžete ověřit na stránkách [[http://cds.u-strasbg.fr/cgi-bin/Sesame|Sesame]]. Taktéž lze zadávat požadavky na objekty sluneční soustavy. ==== Zpětná vazba ==== Zpětná vazba poskytuje informace o stavu montáže. Těmito stavy se myslí poloha montáže (hadec resp. altaz souřadnice), její příkon a další informace. === Poloha montáže === Poloha montáže může být získávána několika způsoby. Buď z čítače kroků budiče krokových motorů [[cs:hbstep|HBSTEP]], pomocí dodatečných enkodérů (optických nebo [[cs:rps|magnetických]]) nebo absolutním odměřováním pomocí [[cs:mag|magnetometru]]. Poslední varianta by měla být pouze orientační pro zjištění velké nepřesnosti. Například po naražení montáže, uvolnění spojky nebo ztráty parkovací pozice. ROS wrapper pro [[PyDirectMount]] [[cs:robozor:mount|AROM/mount]] posílá pomocí ROSmsg ''/mount/status/coordinates/RaDec'' svou pozici. Tato zpráva může být přijímána například webovou mapou zobrazující aktuální pozici montáže nebo jiným planetáriem (Stellarium, Kstars, ...) ==== Instalace ==== sudo apt install python-astropy python-ephem python3-astropy python3-ephem Je vyžadována verze astropy v1.3 a vyšší. Starší verze neobsahují všechny potřebné moduly. git clone https://github.com/Robozor-network/pyDirectMount.git cd pyDirectMount python setup.py develop ===== Příklady ===== V repozitáři je připraveno několik příkladů, které umí fungovat samostatně. ==== Kalibrace ==== Jeden z příkladů lze použít jako nástroj pro změření počtu kroků na 1 otočení v případě, že tuto informaci přesně neznáme. Počet kroků na jedno otočení je nezbytná informace pro správné fungování zbytku ovladače. Po spuštění příkladu se provede inicializace [[cs:hbstep|driverů krokových motorů]] a montáž se rozjede požadovaném směrem. Při otáčení montáž vypisuje počet kroků od začátku. Program ukončíme po ujetí nějakého definovaného úhlu a z vypsaných hodnot spočítáme počet kroků na celé otočení.