Svet-Stranek.cz
Astrofotografie - Jan Filip

MobileTracker 1/3:Amatérská astrofotografie

MobileTracker 1/3

Vzhledem k tomu, že někdy cestuji a není možnost si vzít kompletní sestavu na focení, začal jsem uvažovat o nějakém jednoduchém malém zařízení, něco jako je Vixen Polarie či něco podobného. Při pohledu na cenu takového řešení jsem si řekl, ani náhodou - to si postavím sám :D

To jsem samozřejmě netušil, že úplně easy to nebude. Nicméně jsem se dokopal do nějaké použitelné finální obdoby.

Na článku i zařízení se stále pracuje, prosím o trpělivost.

A ne, celý kod programu zatím poskytovat nebudu, až po testech - třeba. Je nutné si uvědomit, že sestavení kódu a ladění mi trvalo neuvěřitelných 54 hodin. Jo, zkušený programátor by to měl výrazně rychleji, ale sehnat ho...:)

Článek je rozdělen na 3 části. 3 část není veřejně k dispozici, protože obsahuje kompletní výpis kódu.

První část dostupná zde:
http://astrofoto.freepage.cz/mobiletracker1/
Druhá část dostupná zde:
http://astrofoto.freepage.cz/mobiletracker2/

1. Úvod


o 1.1. Představení projektu MobileTracker


Smyslem projektu je pořizovat astronomické snímky mobilním telefonem s expoziční dobou kolem 1 minuty.


o 1.2. Srovnání s pantovým stolkem pro astrofotografii


Největším problémem pantových stolků je omezený celkový expoziční čas, maximálně několik desítek minut. Po uplynutí této doby se pantový stolek musí nastavit do výchozí polohy a znovu provést úpravy polohy záznamového zařízení. Dalším problémem je vytvoření oblouku na závitové tyči, což se v amatérských podmínkách provádí poměrně těžko. Všechny tyto aspekty, ve spojení s kloubem u paměťového stolku, přinášejí do zařízení mechanické nepřesnosti, které se na fotografii mohou negativně projevit. V případě problémů je velice obtížné zjistit, zda se jedná o mechanický či softwarový problém. Výhodou pantového stolku jsou zpravidla menší rozměry.


V tomto projektu tyto problémy odpadají, protože otáčení polohy osy je kontinuální o 360 stupňů a vzhledem k použité převodovce disponuje i větším kroutícím momentem. Díky tomuto řešení je zajištěna vyšší přesnost a stabilita při dlouhodobém sledování, což je klíčové pro kvalitní astrofotografii. Navíc, absence mechanických kloubů a pantů eliminuje riziko mechanických chyb a umožňuje plynulé a konzistentní otáčení, což je ve srovnání s tradičními pantovými stolky výraznou výhodou.


2. Cíle projektu


o 2.1. Hlavní cíl


Pořizovat kvalitní astronomické snímky mobilním telefonem s dlouhou expoziční dobou, která je umožněna přesným a stabilním otáčením zařízení.


o 2.2. Sekundární cíl


Pořizovat kvalitní astronomické snímky s DSLR a objektivem 50 mm, po dobu min.1 min. Tohoto cíle lze dosáhnout s motorem Nema17 s odpovídajícím driverem. Přichází v úvahu driver L298N (Half-Step plus převodovka 99.5:1), nebo A4988, DRV8833, DRV5585, TMC2209. V případě L298N stačí v programu upravit počet kroků na otáčku, časování kroku a převodový poměr. Při použití jiných driverů se musí definovat piny ENABLE, DIR a STEP a provést ty samé změny jako u L928N. 


3. Materiály a nástroje


o 3.1. Hardware


Seznam komponent:


Arduino UNO

Stepper motor 28BYJ-48 s převodovkou 10:1, 12V verze

OLED displej (Adafruit SSD1306)

Rezistory (R1=100 kΩ, R2=47 kΩ)

Rezistory (R3, R4, R5 pro LED cca 350Ω)

Baterie 3x18650 Li-ion (3200 mAh)

Tlačítka (BUTTON_PIN, BUTTON_STOP, BUTTON_REW, BUTTON_FFD)

LED indikátory (LED_SIDERAL, LED_LUNAR, LED_SOLAR)

3S pack pro 18650 baterie

Redukce fotografický šroub na M6

Převodovka 10:1, 120T – otvor 8 mm, 12T, otvor 5 mm, řemen 280 mm, šíře 10 mm

Ložiska upínací, průměr 8 mm (KLF08)


o 3.2. Software


Použité knihovny:

Wire.h

Adafruit_GFX.h

Adafruit_SSD1306.h

Fonts/FreeSerif9pt7b.h

math.h

Vývojové prostředí: Arduino IDE


o 3.3. Další nástroje


Pájka

Kalafuna nebo obdobné činidlo

Vrtačka

Lupínková pilka

Pilník

Izolační bužírka na spoje

Horkovzdušná pistole


4. Návrh a architektura systému


o 4.1. Schématické zapojení


Diagramy zapojení jednotlivých komponent.


Schéma pro dělič napětí (měření baterie):


   Baterie (+)

       |

       R1

       |

       +-----> A3 (Arduino)

       |

       R2

       |

   GND (Arduino)



Schéma pro LED: 

 

Arduino Pin D2 --- [220Ω] ---|>|--- GND

       (Siderální LED)


Arduino Pin D3 --- [220Ω] ---|>|--- GND

        (Lunární LED)


Arduino Pin D4 --- [220Ω] ---|>|--- GND

        (Solární LED)



Schéma pro tlačítka:

 

Arduino Pin 2 --- [Tlačítko] --- GND

        (BUTTON_PIN)


Arduino Pin 3 --- [Tlačítko] --- GND

        (BUTTON_STOP)


Arduino Pin 6 --- [Tlačítko] --- GND

        (BUTTON_REW)


Arduino Pin 7 --- [Tlačítko] --- GND

        (BUTTON_FFD)


Schéma pro OLED:


 +5V (Arduino) --- VCC OLED

 GND (Arduino) --- GND OLED

 A4 (SDA) (Arduino) --- SDA OLED

 A5 (SCL) (Arduino) --- SCL OLED


Schéma zapojení motoru – není zahrnuto napájení pro logiku +5V a GND. Napájení samotného motoru je řešeno odděleně (12V). Platné pro ULN2003. U L928N nezapojovat logiku 5V, viz datasheet na konci dokumentu!


Arduino Pin 8 ---[IN1]--- Stepper Motor

Arduino Pin 9 ---[IN2]--- Stepper Motor

Arduino Pin 10---[IN3]--- Stepper Motor

Arduino Pin 11---[IN4]--- Stepper Motor



o 4.2. Softwarová architektura


Struktura kódu, hlavní funkce a jejich interakce.


V této části je popsána softwarová architektura projektu „MobileTracker“, zaměřující se na strukturu kódu, hlavní funkce a jejich interakce. Cílem je poskytnout přehled o tom, jak jsou jednotlivé komponenty kódu organizovány a jak spolu vzájemně komunikují, aby zajistily správnou funkčnost celého systému.


4.2.1. Struktura Kódu


Kód je strukturován do několika hlavních částí, které jsou organizovány tak, aby byla zajištěna přehlednost, modularita a snadná údržba. Níže je uveden přehled hlavních částí kódu:


1. Inkluze knihoven

o Wire.h: Pro komunikaci přes I2C.

o Adafruit_GFX.h a Adafruit_SSD1306.h: Pro ovládání OLED displeje.

o Fonts/FreeSerif9pt7b.h: Pro použití specifického fontu na OLED displeji.

o math.h: Pro matematické výpočty.


2. Definice pinů a konstant

o Definice digitálních a analogových pinů pro tlačítka, LED diody, stepper motor a měření baterie.

o Konstanty pro napětí baterie, rezistory děliče napětí, sekvence kroků motoru a režimy rychlosti.


3. Inicializační funkce

o setup(): Inicializace všech komponent, nastavení pinů, inicializace OLED displeje, zobrazení startovací obrazovky a první měření baterie.


4. Hlavní smyčka

o loop(): Neustálé volání funkcí pro kontrolu tlačítek, ovládání LED diod, kontrolu baterie, ruční otáčení motoru a aktualizaci displeje.


5. Pomocné funkce

o checkButtons(): Detekce a zpracování stisknutí tlačítek.

o handleFastRotation(): Řízení rychlého přetáčení motoru při stisknutí tlačítek REW a FFD.

o toggleMode(): Přepínání mezi režimy rychlosti.

o stepMotor(): Provádění kroků motoru podle aktuálního režimu.

o energizeStep(): Aktivace jednotlivých pinů motoru podle sekvence kroků.

o handleLEDs(): Řízení stavu LED diod na základě aktuálního režimu a stavu motoru.

o updateDisplay(): Aktualizace informací na OLED displeji.

o handleBatteryCheck(): Periodické měření stavu baterie.

o measureBattery(): Výpočet napětí baterie na základě hodnoty z analogového pinu.

o showStartupScreen(): Zobrazení startovací obrazovky při spuštění zařízení.


4.2.2. Hlavní funkce a jejich interakce


Níže je podrobnější popis jednotlivých hlavních funkcí a jejich vzájemných interakcí:


1. setup()

o Úloha: Inicializuje všechny komponenty, nastavuje piny, inicializuje OLED displej, zobrazuje startovací obrazovku a provádí první měření baterie.

o Interakce: Volá showStartupScreen() a measureBattery().


2. loop()

o Úloha: Hlavní smyčka programu, která neustále kontroluje vstupy a aktualizuje výstupy.

o Interakce: Volá checkButtons(), handleLEDs(), handleBatteryCheck(), handleFastRotation(), stepMotor(), a updateDisplay().


3. checkButtons()

o Úloha: Detekuje stisknutí tlačítek a podle toho přepíná režimy nebo zastavuje motor.

o Interakce: Pokud je tlačítko stisknuto, volá toggleMode() nebo upravuje stav motoru.


4. handleFastRotation(int direction, const char* label)

o Úloha: Řídí rychlé přetáčení motoru při stisknutí tlačítek REW (zpětné) nebo FFD (vpřed).

o Interakce: Upravuje stepIndex a ovládá motor přímo, dočasně mění aktuální režim.


5. toggleMode()

o Úloha: Přepíná mezi režimy rychlosti (SIDERAL, LUNAR, SOLAR).

o Interakce: Mění currentMode a aktualizuje stepDelay podle nového režimu.


6. stepMotor()

o Úloha: Provádí jeden krok motoru podle aktuálního režimu a směru.

o Interakce: Volá energizeStep() a aktualizuje stepIndex a stepCount.


7. energizeStep(int idx)

o Úloha: Aktivuje jednotlivé piny motoru podle sekvence kroků.

o Interakce: Píše hodnoty na piny motoru definované v stepSequence.


8. handleLEDs()

o Úloha: Řídí stav LED diod podle aktuálního režimu a stavu motoru (aktivní nebo zastavený).

o Interakce: Ovládá piny LED diod A0, A1, A2.


9. updateDisplay()

o Úloha: Aktualizuje informace na OLED displeji, jako je aktuální režim, rychlost, stav motoru a stav baterie.

o Interakce: Čte piny motoru pro zobrazení jejich stavů, zobrazuje text a grafické prvky.


10. handleBatteryCheck() a measureBattery()

o Úloha: Periodicky měří stav baterie pomocí děliče napětí a aktualizuje procentuální stav baterie.

o Interakce: Čte analogový pin A3 a vypočítává napětí baterie.


11. readHemisfery()

o Čte stav pinu 13 pro určení, zda je vybrána severní nebo jižní polokoule

o Aktualizuje proměnnou reversed podle výsledku čtení

o Informuje ostatní funkce o aktuálním stavu hemisféry pro správné směrování motoru


12. showStartupScreen()

o Úloha: Zobrazuje startovací obrazovku s informacemi o zařízení a jeho nastavení.

o Interakce: Volá se pouze v setup().


4.2.3. Diagram interakcí funkcí (textová forma)


Níže je uveden textový přehled, jak jednotlivé funkce spolupracují:


setup()

  ├─ Initializes OLED displej

  ├─ Sets pin modes

  ├─ Displays startup screen (showStartupScreen())

  └─ Measures initial battery status (measureBattery())  

  └─ readHemisfery()


loop()

  ├─ checkButtons()

  │    ├─ Detects button presses

  │    └─ May call toggleMode() or set motorStopped

  ├─ handleLEDs()

  ├─ handleBatteryCheck()

  ├─ handleFastRotation() [if REW or FFD button pressed]

  ├─ stepMotor() [if motor is not stopped and delay has passed]

  └─ updateDisplay()


toggleMode()

  └─ Changes currentMode and updates stepDelay


stepMotor()

  ├─ Calls energizeStep()

  ├─ Updates stepIndex and stepCount

  └─ Checks if stepCount exceeds stepsPerRevolution


energizeStep(int idx)

  └─ Sets motor pins according to stepSequence[idx]


handleFastRotation(int direction, const char* label)

  └─ Temporarily changes stepIndex and stepDelay for fast rotation


handleLEDs()

  └─ Controls LED diodes based on currentMode and motorStopped


updateDisplay()

  └─ Updates OLED displej with current status and information


handleBatteryCheck()

  └─ Periodically calls measureBattery()


measureBattery()

  └─ Reads analog pin A3, calculates batteryVoltage and batteryPercent


4.2.4. Popis klíčových modulů a jejich role


1. Inicializační modul

o Funkce: setup()

o Role: Nastavuje počáteční stav systému, inicializuje hardware a zobrazuje úvodní informace.


2. Hlavní řídicí modul

o Funkce: loop()

o Role: Spravuje hlavní logiku aplikace, zajišťuje neustálé sledování vstupů a aktualizaci výstupů.


3. Modul ovládání tlačítek

o Funkce: checkButtons(), handleFastRotation(), toggleMode()

o Role: Zpracovává vstupy z tlačítek, přepíná mezi režimy a umožňuje ruční ovládání motoru.


4. Modul ovládání motoru

o Funkce: stepMotor(), energizeStep()

o Role: Ovládá krokový motor


5. Modul ovládání LED diody

o Funkce: handleLEDs()

o Role: Indikuje aktuální režim a stav motoru pomocí LED diod.


6. Modul zobrazení

o Funkce: updateDisplay(), showStartupScreen()

o Role: Zajišťuje aktualizaci a správné zobrazení informací na OLED displeji.


7. Modul měření baterie

o Funkce: handleBatteryCheck(), measureBattery()

o Role: Monitoruje stav baterie a aktualizuje procentuální hodnotu na displeji.


8. readHemisfery()

o Funkce: aktualizuje proměnou reversed podle výsledků čtení

o Role: nastavuje směr otáčení podle hemisféry, a otáčí REW a FFD směr 


4.2.5. Diagram toků (Flowchart) - textová forma


Níže je textový popis toků dat a řízení v rámci softwarové architektury:


Start -> setup()

           |

           v

       loop()

           |

           +--> checkButtons()

           |         |

           |         +--> toggleMode() / set motorStopped

           |

           +--> handleLEDs()

           |

           +--> handleBatteryCheck()

           |

           +--> handleFastRotation() [if REW/FFD pressed]

           |

           +--> stepMotor() [if motor not stopped]

           |

           +--> updateDisplay()

           |

           v

       [Repeat]



4.2.6. Interakce mezi moduly


Inicializační modul spustí systém a připraví všechny komponenty.

Hlavní řídicí modul neustále volá funkce, které zajišťují interakci mezi vstupy (tlačítka) a výstupy (LED diody, motor, displej).

Modul ovládání tlačítek reaguje na uživatelské vstupy a přepíná režimy nebo zastavuje motor.

Modul ovládání motoru řídí krokování motoru podle aktuálního režimu.

Modul ovládání LED diody vizuálně indikuje aktuální stav systému.

Modul zobrazení prezentuje informace uživateli prostřednictvím OLED displeje.

Modul měření baterie monitoruje napětí baterie a zajišťuje, že systém informuje uživatele o stavu napájení.


4.2.7. Návrh pro budoucí rozšíření


Softwarová architektura je navržena tak, aby umožnila snadné rozšíření funkcionalit:


Přidání dalších režimů: Můžete přidat nové režimy rychlosti nebo jiné funkce rozšířením enum SpeedMode a přidáním odpovídajících logik v toggleMode().


Integrace senzorů: Přidání dalších senzorů (např. teploměr, vlhkoměr, GPS) a jejich integrace do modulů pro zobrazení na OLED displeji.


Zlepšení uživatelského rozhraní: Implementace komplexnějšího rozhraní na OLED displeji s více informacemi a interaktivními prvky.


Optimalizace krokování motoru: Zavedení mikrostepping technik nebo použití pokročilejších motorových driverů pro přesnější ovládání motoru. Projekt lze jednoduše portovat i pro použití motoru NEMA17 s externí převodovkou a L928N. Nutno upravit v kódu: počet kroků na 1 otáčku, aktualizovat informace o převodovce, ponechat Half-Step sekvenci a upravit délku kroku.


4.2.8. Shrnutí


Softwarová architektura projektu „MobileTracker“ je pečlivě strukturována tak, aby jednotlivé moduly byly jasně odděleny a snadno spravovatelné. Hlavní funkce jsou navrženy pro specifické úlohy, což umožňuje efektivní řízení motoru, LED diod, tlačítek a OLED displeje. Modularita kódu usnadňuje budoucí rozšíření a údržbu systému, což přispívá k robustnosti a flexibilitě celého projektu.


o 4.3. Mechanická konstrukce


Popis mechanických částí projektu, způsob montáže motoru, upevnění OLED displeje atd.


Jako krabička posloužil výrobek od firmy Hamond, s rozměry 160x103x53.  Nedodopružuji použít menší, pro Arduino UNO je to akorát. Přetože projekt by měl jít portovat i na Arduino NANO,  čímž by se ušetřilo místo, mě se to nepodařilo a měl jsem s tím problémy. Neříkám, že je to vyloučeno, ale muíte počítat s důkladným testováním. Proto jsem zůstal radči u UNA.


Cěla krabičky můžete použít původní, jenom bude potřeba vyvrtat otvory pro LED a vypánače a vyříznout lupínkovou pilkou otvot pro OLED. Pro něj doporučuji koupit či vytisknou montážní rámeček.


5. Implementace


o 5.1. Hardwarová implementace


Postup zapojení komponent:


Popis zapojení


Arduino UNO


VCC +12V přímo ze zdroje, GND - GND


OLED Displej (SSD1306):


SDA (A4) připojeno k pinu A4 na Arduino.

SCL (A5) připojeno k pinu A5 na Arduino.

VCC připojeno k 5V či 3.3V, dle dokumentace na Arduino.

GND připojeno ke společné zemi (GND) na Arduino.


Stepper Motor 28BYJ48 s převodovkou 10:1:


MOTOR_PIN_1 (8) připojen k prvnímu kroku motoru.

MOTOR_PIN_2 (9) připojen k IN2 u driveru motoru.

MOTOR_PIN_3 (10) připojen k IN3 u driveru motoru.

MOTOR_PIN_4 (11) připojen k IN4 u driveru motoru.


Napájení motoru připojeno k 12V a GND přímo ke zdroji. 

Pro ULN2003 je nutno přivést na logiku +5V a GND


(Pokud bude potřeba, lze pro napájení zvolit step up, či step down měnič. Myslete ale na vyhlazení napájení a také na to, aby měření baterie probíhalo před měničem.)


Tlačítka:


BUTTON_PIN (2) připojeno k hlavnímu tlačítku pro volbu režimu.

BUTTON_STOP (3) připojeno k tlačítku pro okamžité zastavení motoru.

BUTTON_REW (6) připojeno k tlačítku pro přetáčení zpět (REW).

BUTTON_FFD (7) připojeno k tlačítku pro přetáčení dopředu (FFD).

Všechna tlačítka mají interní pull-up rezistory aktivované pro stabilní čtení stavu tlačítek. Společně jsou všechny připojeny k GND.


LED indikátory:


LED_SIDERAL (A0) připojeno k LED indikátoru Siderálního režimu.

LED_LUNAR (A1) připojeno k LED indikátoru Lunárního režimu.

LED_SOLAR (A2) připojeno k LED indikátoru Solárního režimu.

Každý LED indikátor je připojen přes vhodný rezistor pro omezení proudu. Společně jsou připojeny k GND.


Měření baterie:


Maximální napájení je stanovena na 15 V. Při překročení hrozí zničení Arduina. Optimální napájení je v rozmezí 11 - 13 V!


BATTERY_PIN (A3) připojeno k výstupu děliče rezistorů (R1=100kΩ, R2=47kΩ).

R1 je připojen mezi pozitivní pól baterie a A3.

R2 je připojen mezi A3 a GND na Arduino.


Tímto způsobem se měří napětí baterie bezpečně a nepřekračuje hodnotu 5 V pro vstup na A3.


Detekce hemisféry:


Pin 13 na Arduino je nastaven jako INPUT_PULLUP a připojen k senzoru nebo spínači pro detekci hemisféry (NORTH/SOUTH).


Pokud je pin 13 připojen k LOW signálu, projekt je nastaven na jih.


Pokud je pin 13 připojen k HIGH signálu, projekt je nastaven na sever.


Zapojení pro HIGH: D13 – GND


Bezpečnostní poznámky:


Napětí na analogových pinech: 


Díky rezistorovému děliči (R1=100kΩ, R2=47kΩ) je napětí měřeno na pinu A3 bezpečně sníženo a nepřekročí 5V, což je maximální napětí pro analogové vstupy Arduino UNO.


Pájení: 

Všechna spojení by měla být pečlivě provedená s použitím kvalitní pájky, aby se zabránilo krátkým spojům nebo neúmyslným odpojením.


Stabilní napájení: 

Ujistěte se, že baterie jsou správně připojeny a že je napájení stabilní, aby nedošlo k poškození komponent.


Pokud bude potřeba vyhladit napájení, zvolte:


Elektrolytický kondenzátor:

Hodnota: 1000 µF, 25V

Účel: Vyhlazení nízkofrekvenčních výkyvů napájení.

Umístění: Připojený paralelně k napájecímu zdroji (např. mezi +V a GND).

•       Keramický kondenzátor:

Hodnota: 0,1 µF (100 nF)

Účel: Filtrace vysokofrekvenčních šumů a rušení.

Umístění: Blízko napájecích pinů Arduino, motorových ovladačů a dalších citlivých komponent.


Tipy a triky pro úspěšné sestavení.


V případě použití měniče zvažte použití kombinace kondenzátorů, elektrolytického s keramického, pro vyhlazení.


Zvažte tisk či nákup rámečku na OLED display. Tento display (128x64) se prodává ve více variantách, zvolte správný rámeček.

GND od tlačítek a LED můžete propojit mezi sebou a k Arduinu přivést pouze jeden GND vodič ze skupiny.


Ověřte si jas diod a podle toho můžete změnit hodnotu rezistorů.


Pokud chcete zařízení pouze vyzkoušet, nemusíte vše pájet, stačí použít dupont vodiče.


o 5.2. Softwarová implementace 


Poslední verze ke stačení ZDE: dostupné na klik (vyžaduje heslo)

Aktuální verze: Firmware 2512 v.9bA3


6. Testování a ladění


o 6.1. Testovací scénáře

Provedené měření doby otáčení o zvolený úhel za určitý čas.


Pro ověření funkčnosti systému byly provedeny měření doby otáčení o zvolený úhel za určitý čas pro jednotlivé režimy. Níže jsou uvedeny tabulky s odhady doby otáčení pro různé úhly v jednotlivých režimech (Siderální, Lunární, Solární). Platné pro 28BYJ48. U NEMA17 časy budou stejné, ale počet kroků bude mírně jinak. 


Tabulka 1: Doba otáčení v Siderálním režimu 28BYJ48 12V

Úhel (°) Počet Kroků Doba Otáčení (s) Doba Otáčení h:m:s


5 569 1 197,807 00:19:58

10 1 138 2 395,614 00:39:56

15 1 707 3 593,421 00:59:53

20 2 276 4 791,228 01:19:51

25 2 845 5 989,035 01:38:09

30 3 414 7 186,842 01:59:46

35 3 983 8 384,649 02:19:44

40 4 552 9 582,456 02:39:42

45 5 121 10 780,263 03:00:56

180 20 480 43 082,000 11:58:02

360 40 960 86 164,000 23:56:04


Poznámka:


stepDelay pro Siderální režim je nastaven na 2,103 sekundy na krok.

Hodnoty jsou orientační a mohou se mírně lišit v závislosti na přesnosti měření a mechanických vlastnostech systému.




Tabulka 2: Doba otáčení v Lunárním režimu 28BYJ48 12V

Úhel (°) Počet kroků Doba otáčení (s) Doba otáčení H:m:s 


5 569 1 241,163 00:20:41

10 1 138 2 482,326 00:41:22

15 1 707 3 734,169 01:02:14

20 2 276 4 968,012 01:22:48

25 2 845 6 208,015 01:43:28

30 3 414 7 463,238 02:07:43

35 3 983 8 700,801 02:25:00

40 4 552 9 930,264 02:45:30

45 5 121 11 161,887 03:06:01

180 20 480 44 780,160 12:26:20

360 40 960 89 560,320 24:46:40


Poznámka:


stepDelay pro Lunární režim je nastaven na 2,187 sekund na krok.

Hodnoty jsou orientační a mohou se mírně lišit v závislosti na přesnosti měření a mechanických vlastnostech systému.

U režimu Lunar je pro výpočet nutno zohlednit nejenom oběh Měsíce kolem Země, ale i rotaci Země. 



Tabulka 2: Doba otáčení v Solárním režimu 28BYJ48 12V

Úhel (°) Počet Kroků Doba otáčení (s) Doba otáčení H:m:s 


5 569 1 197,807 00:19:58

10 1 138 2 395,614 00:39:56

15 1 707 3 593,421 00:59:53

20 2 276 4 791,228 01:19:51

25 2 845 5 989,035 01:38:09

30 3 414 7 186,842 01:59:46

35 3 983 8 384,649 02:19:44

40 4 552 9 582,456 02:39:42

45 5 121 10 780,263 03:00:56

180 20 480 43 200,000 12:00:00

360 40 960 86 400,000 24:00:00


Poznámka:


stepDelay pro Lunární režim je nastaven na 2,109 sekund na krok.

Hodnoty jsou orientační a mohou se mírně lišit v závislosti na přesnosti měření a mechanických vlastnostech systému.


Shrnutí:


Siderální Režim:

o 360° Otáčení: 23:56:04

Lunární Režim:

o 360° Otáčení: 24:46:40

Solární Režim:

o 360° Otáčení: 23:56:34


o 6.2. Výsledky testů


Popis výsledků, zjištěné problémy a jejich řešení.


o 6.3. Optimalizace


Úpravy provedené na základě testování pro zlepšení výkonu a stability:

Byly zadány přesné hodnoty rezistorů pro napěťový dělič a úroveň nabití baterie byla testována multimetrem.

Ověřeny hodnoty ve stepDelay

Upraven grafický vizuál baterie

Logičtější umístění tlačítek REW a FFD


7. Cena součástek 


Tabulka cen v CZK:

Komponenta 28BYJ48 Nema17


Arduino UNO 700 700

Stepper motor 28BYJ-48 150 200

Převodovka 10:1 set 800 200

I2C OLED displej 1,3 170 170

Rezistory (set) 80 80

Baterie 3x18650 Li-ion 600 800 (Parkside)

Tlačítka (sada) 100 100

LED indikátory (sada) 80 80

Další nástroje 

(pájka, spojovací materiál) 300 300

Ložiska 8 mm, 

upínací KFL08 100 x

3D tisk

Šroub redukce ¼ na M6 50 50

Kulová hlava 330 330

Držák na mobil 150 150

Hamond krabička 450 450

Celkem: 4060 3610


Konec první části.
návštěvníků stránky
celkem215 137
tento týden97
dnes43