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
celkem278 603
tento týden742
dnes64