Rev 3002 Rev 3004
Line 43... Line 43...
43 \newpage 43 \newpage
44   44  
45 \section{Automatický vypouštěč meteobalónů} 45 \section{Automatický vypouštěč meteobalónů}
46   46  
47 Celý systém by měl být robotizovaným doplňkem sítě 47 Celý systém by měl být robotizovaným doplňkem sítě
48 \href{/doku.php?id=cs:rmds}{radiových detektorů meteorů}, případně pak i 48 \href{http://wiki.mlab.cz/doku.php?id=cs:rmds}{radiových detektorů meteorů}, případně pak i
49 její vizuální varianty (video pozorování 49 její vizuální varianty (video pozorování a bolidové kamery).
50 \textsuperscript{\href{\#fn\_\_1}{1)}} a bolidové kamery). -  
51   50  
52 Účel zařízení je zpřesnit odhad trajektorie temné dráhy meteoritu v 51 Účel zařízení je zpřesnit odhad trajektorie temné dráhy meteoritu v
53 atmosféře zavedením korekcí na proudění vzduchových mas během letu. A 52 atmosféře zavedením korekcí na proudění vzduchových mas během letu. A
54 tím v důsledku zmenšit plochu dopadové elipsy. 53 tím v důsledku zmenšit plochu dopadové elipsy meteoritu na zemský povrch.
55   54  
56 Údaje o proudech v atmosféře budou získány balónovou sondou vypuštěnou 55 Údaje o proudech v atmosféře budou získány balónovou sondou vypuštěnou
57 bezprostředně po detekci průletu bolidu atmosférou. Místo vypuštění 56 bezprostředně po detekci průletu bolidu atmosférou. Místo vypuštění
58 balónové sondy by mělo být zvoleno automaticky na základě odhadu dráhy 57 balónové sondy by mělo být zvoleno automaticky na základě odhadu dráhy
59 meteoru a známých souřadnic balónových sil v síti. 58 meteoru a známých souřadnic balónových sil v síti.
Line 65... Line 64...
65 meteorologických 64 meteorologických
66 \href{http://en.wikipedia.org/wiki/Radiosonde}{radiosond}. 65 \href{http://en.wikipedia.org/wiki/Radiosonde}{radiosond}.
67   66  
68 \subsection{Pozemní vypouštěcí box} 67 \subsection{Pozemní vypouštěcí box}
69   68  
70 Pozemní stanici balónové sítě bude tvořit kompaktní krabice obsahující 69 Pozemní stanici balónové sítě tvoří kompaktní krabice obsahující
71 techniku potřebnou k vypuštění balónové sondy. Zařízení musí být 70 techniku potřebnou k vypuštění balónové sondy. Zařízení je
72 konstruováno tak, aby bylo schopné vydržet řádově několik roků v 71 konstruováno tak, aby bylo schopné vydržet řádově několik roků v
73 pohotovostním režimu, a čekat na příkaz k vypouštění sondy. 72 pohotovostním režimu, a čekat na příkaz k vypouštění sondy.
74   73  
75 \subsubsection{Technické požadavky} 74 \subsubsection{Technické parametry}
76   75  
77 Většinu řídící elektroniky lze složit z modulů 76 Většinu řídící elektroniky je složena z modulů
78 \href{http://www.mlab.cz/}{stavebnice MLAB} 77 \href{http://www.mlab.cz/}{stavebnice MLAB}
79   78  
80 \paragraph{Komunikace se sítí stanic} 79 Komunikace s řídícím systémem sítě stanic je aktuálně řešena terminálem na RS232 tvořeného modulem \href{http://www.mlab.cz/PermaLink/RS232SINGLE01A}{RS232SINGLE01A} respektive jeho USB variantou \href{http://www.mlab.cz/PermaLink/USB232R01B}{USB232R01B}. Další možnosti připojení jsou následující:
81   80  
82 \begin{itemize} 81 \begin{itemize}
83 \item 82 \item
84 Ethernet - modulem \href{/doku.php?id=cs:eth}{ETH01A} 83 Ethernet - modulem \href{http://www.mlab.cz/PermaLink/ETH01A}{ETH01A}
85 \item 84 \item
86 RS232 - \href{/doku.php?id=cs:rs232single}{RS232SINGLE01A} 85 Konvertor z TTL na sběrnici CAN \href{http://www.mlab.cz/PermaLink/TTLCAN01B}{TTLCAN01B}
-   86 \item
-   87 Konvertor z TTL na sběrnici RS485. \href{http://www.mlab.cz/PermaLink/TTLRS48501A}{TTLRS48501A}
87 \item 88 \item
88 GSM (pro odlehlé oblasti) 89 GSM (pro odlehlé oblasti)
89 \end{itemize} 90 \end{itemize}
90 Zároveň bude potřeba také vybavení pro příjem telemetrie z již -  
91 vypuštěných radiosond \textsuperscript{\href{\#fn\_\_2}{2)}} z jiných -  
92 stanic. -  
93   91  
94 Tyto požadavky splňuje modul 92 Jako hlavní řídící MCU této jednotky byl vybrán ARM STM32F103R8T v modulu
95 \href{/doku.php?id=cs:stm32f10xrxt}{STM32F10xRxT01A} 93 \href{/doku.php?id=cs:stm32f10xrxt}{STM32F10xRxT01A}
96   94  
97 \paragraph{Napájení systému} 95 \paragraph{Napájení systému}
98   96  
99 \begin{itemize} -  
100 \item -  
101 lokální (stand-alone) - Fotovoltaický panel 97 Ve vývojové fázi funkčního vzoru je napájení systému řešeno PC ATX zdrojem, ze kterého jsou využity +5 V a +12 V větve. Toto řešení se neukázalo jako příliš optimální vzhledem ke špatné spolehlivosti PC zdrojů při provozu s nízkou zátěží v dalším prototypu bude proto ATX zdroj pravděpodobně nahrazen jiným spínaným zdrojem určeným pro tento druh aplikace.
102 \item 98  
103 Síťové napájení (síťový adaptér + UPS) -  
104 \end{itemize} -  
105 \paragraph{Diagnostika poruch} 99 \subsubsection{Diagnostika poruch}
106   100  
107 \begin{itemize} 101 \begin{itemize}
108 \item 102 \item
109 Kontrola úspěšného startu (měření vztlaku balónu) 103 Kontrola úspěšného startu (měření vztlaku balónu)
110 \item 104 \item
111 Měření teplot, tlaku plynové náplně, průtoku média do balónu. 105 Měření teplot, tlaku plynové náplně, průtoku média do balónu.
112 \item 106 \item
113 Vlhkost uvnitř krabice (průsak a ztráta vodotěsnosti proražením víka a 107 Vlhkost uvnitř krabice (průsak a ztráta vodotěsnosti proražením víka a
114 podobně) 108 podobně)
115 \end{itemize} 109 \end{itemize}
116 \paragraph{Meteorologická data} -  
117   110  
118 \begin{itemize} 111 \subsubsection{Meteorologická data}
119 \item 112  
120 Základní meteorologická čidla (teplota, tlak, rychlost větru) - k 113 Základní meteorologické veličiny nutné pro rozhodnutí o startu jsou snímány lokálně (teplota, tlak, relativní vlhkost, směr rychlost větru) jsou snímány meteostanicí \href{http://wiki.mlab.cz/doku.php?id=cs:aws}{AWS01B} a lokálně zaznamenáván společně s údaji z \href{/doku.php?id=cs:gps}{GPS01A} (pozice stanice a přesný čas) logu a reportu o průběhu startu.
121 určení možnosti startu. \href{/doku.php?id=cs:aws}{AWS01B} -  
122 \item 114  
123 GPS (pozice stanice a přesný čas) log reportu o startu. -  
124 \href{/doku.php?id=cs:gps}{GPS01A} -  
125 \end{itemize} 115  
126 \paragraph{Mechanická konstrukce} 116 \subsubsection{Mechanická konstrukce}
127   117  
128 \begin{itemize} -  
129 \item -  
130 Svařovaná plastová bedna s odstranitelným víkem. Dostatečně těsná, aby 118 Svařovaná plastová bedna s odstranitelným víkem. Dostatečně těsná, aby
131 nebyla zajímavá pro hlodavce a další havěť. 119 nebyla zajímavá pro hlodavce a další havěť.
132 \item -  
133 Konstrukce navržená tak, aby umožnila vypouštění i současných 120 Konstrukce navržená tak, aby umožnila vypouštění i současných
134 profesionálních balónových sond. 121 profesionálních balónových sond.
135 \item -  
136 Aktivace mechanických prvků přepálením vlákna 122 Aktivace mechanických prvků přepálením vlákna
137 \item -  
138 uzavření balónu zatavením hrdla 123 uzavření balónu zatavením hrdla
-   124  
139 \end{itemize} 125  
140 \subparagraph{Akční členy} 126 \subparagraph{Akční členy}
141   127  
142 Většina akčních členů by měla být konstruována s důrazem na maximální 128 Většina akčních členů je konstruována s důrazem na maximální
143 spolehlivost. Akční členy proto pravděpodobně budou pružiny s 129 spolehlivost. Akční členy proto jsou pružiny s
144 přepalovacími PE pojistkami (silonové vlákno, nebo stuha 130 přepalovacími PE pojistkami (silonové vlákno, nebo stuha
145 přepalovaná výkonovým rezistorem) ke spínáni proudu do rezistorů může 131 přepalovaná výkonovým rezistorem) ke spínáni proudu do rezistorů může
146 být využit modul \href{/doku.php?id=cs:nfet4x}{NFET4X01B} 132 je využit modul \href{http://www.mlab.cz/PermaLink/NFET4X01B}{NFET4X01B}
147   133  
148 \section{Firmware} 134 \section{Firmware pozemní stanice}
149   135  
150 \subsection{Real-time operační systém} 136 \subsection{Real-time operační systém}
151 Pro ovládání celého systému byl zvolen real-time operační systém (ROS). Ten byl zvolen především pro zjednušení programování vypouštěče, konkrétně nastavování periférií procesoru a řízení vícevláknové aplikace na něm běžící.\\ 137 Pro ovládání celého systému byl zvolen real-time operační systém (ROS). Ten byl zvolen především pro zjednušení programování vypouštěče, konkrétně nastavování periférií procesoru a řízení vícevláknové aplikace na něm běžící.\\
152 Jako ROS pro tuto aplikaci tak byl zvolen ChibiOS, který splňuje standardní požadavky na ROS a také s ním máme zkušenosti s programováním jiných aplikací pod procesory ARM. 138 Jako ROS pro tuto aplikaci tak byl zvolen ChibiOS, který splňuje standardní požadavky na ROS a také s ním máme zkušenosti s programováním jiných aplikací pod procesory ARM.
153 \subsection{Vysvětlení funkce firmwaru} 139 \subsection{Vysvětlení funkce firmwaru}
Line 165... Line 151...
165 Tím je otevření ventilu a tím pádem zahájení napouštění balónu. Tento krok není nijak v současné chvíli zpětnovazebně snímán - je dán pouze čas kdy je ventil otevřen. Do budoucna bychom rádi použili měření průtoku k získání informace, zda je balón opravdu napuštěn daným množstvím plynu.\\ 151 Tím je otevření ventilu a tím pádem zahájení napouštění balónu. Tento krok není nijak v současné chvíli zpětnovazebně snímán - je dán pouze čas kdy je ventil otevřen. Do budoucna bychom rádi použili měření průtoku k získání informace, zda je balón opravdu napuštěn daným množstvím plynu.\\
166 Třetím krokem celé sekvence je přepálení plastové pojistky, která spouští tavící lis. Po pevně dané časové prodlevě, která by měla stačit pro přetavení, je pomocí koncového spínače zjištěno, zda se pojistka přetavila. Pokud ano, pokračuje se posledním krokem, pokud ne, dochází opět k přerušení sekvence a návrat do výchozího stavu.\\ 152 Třetím krokem celé sekvence je přepálení plastové pojistky, která spouští tavící lis. Po pevně dané časové prodlevě, která by měla stačit pro přetavení, je pomocí koncového spínače zjištěno, zda se pojistka přetavila. Pokud ano, pokračuje se posledním krokem, pokud ne, dochází opět k přerušení sekvence a návrat do výchozího stavu.\\
167 Posledním krokem je zatavení naplněného balónu. V tomto kroku je opět nadefinován čas, po který dochází k zatavování balónu pomocí odporového drátu. Po uplynutí nadefinované doby je balón zataven a na terminál je vypsána informace o ukončení vypouštění a všechny výstupy jsou v neaktivním stavu.\\ 153 Posledním krokem je zatavení naplněného balónu. V tomto kroku je opět nadefinován čas, po který dochází k zatavování balónu pomocí odporového drátu. Po uplynutí nadefinované doby je balón zataven a na terminál je vypsána informace o ukončení vypouštění a všechny výstupy jsou v neaktivním stavu.\\
168 Ad. 2. V případě příjmu zprávy, která přikazuje ukončení procesu odpalování, se deaktivují výstupy aktivní během vypouštění a uživatel je informován o úspěšném přerušení celé sekvence.\\ 154 Ad. 2. V případě příjmu zprávy, která přikazuje ukončení procesu odpalování, se deaktivují výstupy aktivní během vypouštění a uživatel je informován o úspěšném přerušení celé sekvence.\\
169 Ad. 3. Pro přesné časování během celého procesu odpalování je využito funkce časovače. Ten se v každém kroku odpalování sepne na určitou dobu, která je celočíselným násobkem celkové doby, kterou se čeká v daném kroku. Tento postup byl zvolen z toho důvodu, aby mohla být průběžně aktualizována zpráva pro uživatele vyjadřující čas, který zbývá do ukončení daného úkolu. 155 Ad. 3. Pro přesné časování během celého procesu odpalování je využito funkce časovače. Ten se v každém kroku odpalování sepne na určitou dobu, která je celočíselným násobkem celkové doby, kterou se čeká v daném kroku. Tento postup byl zvolen z toho důvodu, aby mohla být průběžně aktualizována zpráva pro uživatele vyjadřující čas, který zbývá do ukončení daného úkolu.
-   156  
170 \subsubsection{Příjem příkazu od uživatele} 157 \subsubsection{Příjem příkazu od uživatele}
-   158  
171 Pro komunikaci s uživatelem je využito sériové linky. Ta se využívá jak pro informování uživatele o aktuálním stavu programu tak zároveň k příjmu příkazů od uživatele. Celý algoritmus příjmu příkazu spočívá ve vyčítání znaků zadaných uživatelem znak za znakem až do té chvíle, kdy je stisknut ENTER a nebo je překročena maximální délka příkazu. Poté se buď zadaný příkaz dekóduje a následně provede a nebo je vypsána informace, že příkaz nebyl rozeznán. 159 Pro komunikaci s uživatelem je využito sériové linky. Ta se využívá jak pro informování uživatele o aktuálním stavu programu tak zároveň k příjmu příkazů od uživatele. Celý algoritmus příjmu příkazu spočívá ve vyčítání znaků zadaných uživatelem znak za znakem až do té chvíle, kdy je stisknut ENTER a nebo je překročena maximální délka příkazu. Poté se buď zadaný příkaz dekóduje a následně provede a nebo je vypsána informace, že příkaz nebyl rozeznán.
-   160  
172 \subsubsection{Příjem dat z GPS modulu} 161 \subsubsection{Příjem dat z GPS modulu}
-   162  
173 Posledním vláknem využívaném ve firmwaru vypouštěče je vlákno, které se stará o příjem a dekódování NMEA zprávy posílané po sériové lince z GPS modulu 163 Posledním vláknem využívaném ve firmwaru vypouštěče je vlákno, které se stará o příjem a dekódování NMEA zprávy posílané po sériové lince z GPS modulu
174 \cite{GPS_ublox}. Každou vteřinu je vyčítána NMEA zpráva a z ní je vybrána GPRMC zpráva, ze které je následně získána informace o aktuálním čase, datu a poloze stanice. Tato informace slouží jednat pro přesné logování událostí a zároveň v budoucnu pro snadné lokalizování vypouštěcí stanice.\subsection{Uživatelské rozhraní terminálu} 164 \cite{GPS_ublox}. Každou vteřinu je vyčítána NMEA zpráva a z ní je vybrána GPRMC zpráva, ze které je následně získána informace o aktuálním čase, datu a poloze stanice. Tato informace slouží jednat pro přesné logování událostí a zároveň v budoucnu pro snadné lokalizování vypouštěcí stanice.\subsection{Uživatelské rozhraní terminálu}
175 Při spuštění terminálu se po resetu programu procesoru vypíše úvodní zpráva s nápovědou, na které výstupní kontakty procesoru jsou připojeny jednotlivé akční členy. Následně je program v pohotovostním režimu a očekává příkaz. Jednotlivé příkazy jsou:\\ 165 Při spuštění terminálu se po resetu programu procesoru vypíše úvodní zpráva s nápovědou, na které výstupní kontakty procesoru jsou připojeny jednotlivé akční členy. Následně je program v pohotovostním režimu a očekává příkaz. Jednotlivé příkazy jsou:
-   166  
176 \begin{enumerate} 167 \begin{enumerate}
177 \item odpal 168 \item odpal
178 \item zrus (nebo písmeno "s") 169 \item zrus (nebo písmeno "s")
179 \item help 170 \item help
180 \item check 171 \item check
181 \end{enumerate} 172 \end{enumerate}
-   173  
182 Příkaz \textbf{odpal} spustí vypouštěcí sekvenci probuzením daného vlákna pro vypouštění. Příkaz \textbf{zrus} zastaví vypouštěcí sekvenci, pokud byla zahájena a indormuje o tom výpisem o ukončení vypouštění. Zároveň jde vypouštění zrušit okamžitě stisknutím "s" bez nutnosti potvrzovat příkaz enterem. Příkaz \textbf{help} vypíše stejnou úvodní zprávu jako po resetu programu. Poslední příkaz \textbf{check} lze použít pro kontrolu stavu vypouštěče před začátkem vypouštění. Po zadání tohoto příkazu jsou na terminál vypsány informace o aktuálních stavech použitých senzorů. Lze tak například zkontrolovat, že střecha není zajištěna, nebo že je lis již spuštěn. 174 Příkaz \textbf{odpal} spustí vypouštěcí sekvenci probuzením daného vlákna pro vypouštění. Příkaz \textbf{zrus} zastaví vypouštěcí sekvenci, pokud byla zahájena a indormuje o tom výpisem o ukončení vypouštění. Zároveň jde vypouštění zrušit okamžitě stisknutím "s" bez nutnosti potvrzovat příkaz enterem. Příkaz \textbf{help} vypíše stejnou úvodní zprávu jako po resetu programu. Poslední příkaz \textbf{check} lze použít pro kontrolu stavu vypouštěče před začátkem vypouštění. Po zadání tohoto příkazu jsou na terminál vypsány informace o aktuálních stavech použitých senzorů. Lze tak například zkontrolovat, že střecha není zajištěna, nebo že je lis již spuštěn.
183   175  
184 \begin{figure}[hbtp] 176 \begin{figure}[hbtp]
185 \centering 177 \centering
186 \includegraphics[scale=0.6]{./img/program_flow.png} 178 \includegraphics[height=200mm]{./img/program_flow.png}
187 \caption{Funkční diagram firmwaru Automatického vypouštěče} 179 \caption{Funkční diagram firmwaru Automatického vypouštěče}
188 \label{Diag_firmware} 180 \label{Diag_firmware}
189 \end{figure} 181 \end{figure}
190   182  
191   183