
+++ README.html
... | ... | @@ -0,0 +1,617 @@ |
1 | +<!doctype html> | |
2 | +<html> | |
3 | +<head> | |
4 | +<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'> | |
5 | + | |
6 | +<link href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color: #ffffff; --text-color: #333333; --select-text-bg-color: #B5D6FC; --select-text-font-color: auto; --monospace: "Lucida Console",Consolas,"Courier",monospace; --title-bar-height: 20px; } | |
7 | +.mac-os-11 { --title-bar-height: 28px; } | |
8 | +html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; } | |
9 | +h1, h2, h3, h4, h5 { white-space: pre-wrap; } | |
10 | +body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; } | |
11 | +iframe { margin: auto; } | |
12 | +a.url { word-break: break-all; } | |
13 | +a:active, a:hover { outline: 0px; } | |
14 | +.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); } | |
15 | +#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; } | |
16 | +#write.first-line-indent p { text-indent: 2em; } | |
17 | +#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; } | |
18 | +#write.first-line-indent li { margin-left: 2em; } | |
19 | +.for-image #write { padding-left: 8px; padding-right: 8px; } | |
20 | +body.typora-export { padding-left: 30px; padding-right: 30px; } | |
21 | +.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; } | |
22 | +.typora-export .task-list-item input { pointer-events: none; } | |
23 | +@media screen and (max-width: 500px) { | |
24 | + body.typora-export { padding-left: 0px; padding-right: 0px; } | |
25 | + #write { padding-left: 20px; padding-right: 20px; } | |
26 | +} | |
27 | +#write li > figure:last-child { margin-bottom: 0.5rem; } | |
28 | +#write ol, #write ul { position: relative; } | |
29 | +img { max-width: 100%; vertical-align: middle; image-orientation: from-image; } | |
30 | +button, input, select, textarea { color: inherit; font: inherit; } | |
31 | +input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; } | |
32 | +*, ::after, ::before { box-sizing: border-box; } | |
33 | +#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; } | |
34 | +#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; } | |
35 | +p { line-height: inherit; } | |
36 | +h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; } | |
37 | +p { orphans: 4; } | |
38 | +h1 { font-size: 2rem; } | |
39 | +h2 { font-size: 1.8rem; } | |
40 | +h3 { font-size: 1.6rem; } | |
41 | +h4 { font-size: 1.4rem; } | |
42 | +h5 { font-size: 1.2rem; } | |
43 | +h6 { font-size: 1rem; } | |
44 | +.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; } | |
45 | +.hidden { display: none; } | |
46 | +.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; } | |
47 | +a { cursor: pointer; } | |
48 | +sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; } | |
49 | +sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; } | |
50 | +#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; } | |
51 | +figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; } | |
52 | +figure > table { margin: 0px; } | |
53 | +thead, tr { break-inside: avoid; break-after: auto; } | |
54 | +thead { display: table-header-group; } | |
55 | +table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; } | |
56 | +table.md-table td { min-width: 32px; } | |
57 | +.CodeMirror-gutters { border-right: 0px; background-color: inherit; } | |
58 | +.CodeMirror-linenumber { user-select: none; } | |
59 | +.CodeMirror { text-align: left; } | |
60 | +.CodeMirror-placeholder { opacity: 0.3; } | |
61 | +.CodeMirror pre { padding: 0px 4px; } | |
62 | +.CodeMirror-lines { padding: 0px; } | |
63 | +div.hr:focus { cursor: none; } | |
64 | +#write pre { white-space: pre-wrap; } | |
65 | +#write.fences-no-line-wrapping pre { white-space: pre; } | |
66 | +#write pre.ty-contain-cm { white-space: normal; } | |
67 | +.CodeMirror-gutters { margin-right: 4px; } | |
68 | +.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; } | |
69 | +.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; } | |
70 | +#write .md-fences.mock-cm { white-space: pre-wrap; } | |
71 | +.md-fences.md-fences-with-lineno { padding-left: 0px; } | |
72 | +#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; } | |
73 | +.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; } | |
74 | +.CodeMirror-line, twitterwidget { break-inside: avoid; } | |
75 | +svg { break-inside: avoid; } | |
76 | +.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; } | |
77 | +.footnotes + .footnotes { margin-top: 0px; } | |
78 | +.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; } | |
79 | +li div { padding-top: 0px; } | |
80 | +blockquote { margin: 1rem 0px; } | |
81 | +li .mathjax-block, li p { margin: 0.5rem 0px; } | |
82 | +li blockquote { margin: 1rem 0px; } | |
83 | +li { margin: 0px; position: relative; } | |
84 | +blockquote > :last-child { margin-bottom: 0px; } | |
85 | +blockquote > :first-child, li > :first-child { margin-top: 0px; } | |
86 | +.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; } | |
87 | +#write .footnote-line { white-space: pre-wrap; } | |
88 | +@media print { | |
89 | + body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; } | |
90 | + #write { margin-top: 0px; border-color: transparent !important; padding-top: 0px !important; padding-bottom: 0px !important; } | |
91 | + .typora-export * { -webkit-print-color-adjust: exact; } | |
92 | + .typora-export #write { break-after: avoid; } | |
93 | + .typora-export #write::after { height: 0px; } | |
94 | + .is-mac table { break-inside: avoid; } | |
95 | + #write > p:nth-child(1) { margin-top: 0px; } | |
96 | + .typora-export-show-outline .typora-export-sidebar { display: none; } | |
97 | + figure { overflow-x: visible; } | |
98 | +} | |
99 | +.footnote-line { margin-top: 0.714em; font-size: 0.7em; } | |
100 | +a img, img a { cursor: pointer; } | |
101 | +pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; } | |
102 | +p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; } | |
103 | +#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; } | |
104 | +p > .md-image:only-child { display: inline-block; width: 100%; } | |
105 | +#write .MathJax_Display { margin: 0.8em 0px 0px; } | |
106 | +.md-math-block { width: 100%; } | |
107 | +.md-math-block:not(:empty)::after { display: none; } | |
108 | +.MathJax_ref { fill: currentcolor; } | |
109 | +[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; } | |
110 | +.md-task-list-item { position: relative; list-style-type: none; } | |
111 | +.task-list-item.md-task-list-item { padding-left: 0px; } | |
112 | +.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; } | |
113 | +.math { font-size: 1rem; } | |
114 | +.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; } | |
115 | +.md-toc-content { position: relative; margin-left: 0px; } | |
116 | +.md-toc-content::after, .md-toc::after { display: none; } | |
117 | +.md-toc-item { display: block; color: rgb(65, 131, 196); } | |
118 | +.md-toc-item a { text-decoration: none; } | |
119 | +.md-toc-inner:hover { text-decoration: underline; } | |
120 | +.md-toc-inner { display: inline-block; cursor: pointer; } | |
121 | +.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; } | |
122 | +.md-toc-h2 .md-toc-inner { margin-left: 2em; } | |
123 | +.md-toc-h3 .md-toc-inner { margin-left: 4em; } | |
124 | +.md-toc-h4 .md-toc-inner { margin-left: 6em; } | |
125 | +.md-toc-h5 .md-toc-inner { margin-left: 8em; } | |
126 | +.md-toc-h6 .md-toc-inner { margin-left: 10em; } | |
127 | +@media screen and (max-width: 48em) { | |
128 | + .md-toc-h3 .md-toc-inner { margin-left: 3.5em; } | |
129 | + .md-toc-h4 .md-toc-inner { margin-left: 5em; } | |
130 | + .md-toc-h5 .md-toc-inner { margin-left: 6.5em; } | |
131 | + .md-toc-h6 .md-toc-inner { margin-left: 8em; } | |
132 | +} | |
133 | +a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; } | |
134 | +.footnote-line a:not(.reversefootnote) { color: inherit; } | |
135 | +.reversefootnote { font-family: ui-monospace, sans-serif; } | |
136 | +.md-attr { display: none; } | |
137 | +.md-fn-count::after { content: "."; } | |
138 | +code, pre, samp, tt { font-family: var(--monospace); } | |
139 | +kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; } | |
140 | +.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); } | |
141 | +code { text-align: left; vertical-align: initial; } | |
142 | +a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; } | |
143 | +.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; } | |
144 | +.md-diagram-panel > svg { max-width: 100%; } | |
145 | +[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; } | |
146 | +[lang="mermaid"] .node text { font-size: 1rem; } | |
147 | +table tr th { border-bottom: 0px; } | |
148 | +video { max-width: 100%; display: block; margin: 0px auto; } | |
149 | +iframe { max-width: 100%; width: 100%; border: none; } | |
150 | +.highlight td, .highlight tr { border: 0px; } | |
151 | +mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); } | |
152 | +.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; } | |
153 | +.md-expand mark .md-meta { opacity: 0.3 !important; } | |
154 | +mark .md-meta { color: rgb(0, 0, 0); } | |
155 | +@media print { | |
156 | + .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; } | |
157 | +} | |
158 | +.md-diagram-panel .messageText { stroke: none !important; } | |
159 | +.md-diagram-panel .start-state { fill: var(--node-fill); } | |
160 | +.md-diagram-panel .edgeLabel rect { opacity: 1 !important; } | |
161 | +.md-fences.md-fences-math { font-size: 1em; } | |
162 | +.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; } | |
163 | +.md-fences-advanced:not(.md-focus) { background: inherit; } | |
164 | +.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; } | |
165 | +.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; } | |
166 | +.typora-export-show-outline #write { --webkit-flex: 2; flex: 2 1 0%; } | |
167 | +.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; } | |
168 | +@media screen and (max-width: 1024px) { | |
169 | + .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; } | |
170 | +} | |
171 | +@media screen and (max-width: 800px) { | |
172 | + .typora-export-sidebar { display: none; } | |
173 | +} | |
174 | +.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; overflow-wrap: anywhere; } | |
175 | +.outline-content ul { margin-top: 0px; margin-bottom: 0px; } | |
176 | +.outline-content strong { font-weight: 400; } | |
177 | +.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; } | |
178 | +.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; } | |
179 | +.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; } | |
180 | +.outline-expander:hover::before { content: ""; } | |
181 | +.outline-h1 > .outline-item { padding-left: 0px; } | |
182 | +.outline-h2 > .outline-item { padding-left: 1em; } | |
183 | +.outline-h3 > .outline-item { padding-left: 2em; } | |
184 | +.outline-h4 > .outline-item { padding-left: 3em; } | |
185 | +.outline-h5 > .outline-item { padding-left: 4em; } | |
186 | +.outline-h6 > .outline-item { padding-left: 5em; } | |
187 | +.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; } | |
188 | +.outline-label:hover { text-decoration: underline; } | |
189 | +.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); } | |
190 | +.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; } | |
191 | +.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; } | |
192 | +.outline-item-open > .outline-item > .outline-expander::before { content: ""; } | |
193 | +.outline-children { display: none; } | |
194 | +.info-panel-tab-wrapper { display: none; } | |
195 | +.outline-item-open > .outline-children { display: block; } | |
196 | +.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; } | |
197 | +.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; } | |
198 | +.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; } | |
199 | +.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; } | |
200 | +.typora-export-collapse-outline .outline-children { display: none; } | |
201 | +.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; } | |
202 | +.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; } | |
203 | +.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; } | |
204 | +.md-inline-math-container mjx-container { zoom: 0.95; } | |
205 | +mjx-container { break-inside: avoid; } | |
206 | +.md-alert.md-alert-note { border-left-color: rgb(9, 105, 218); } | |
207 | +.md-alert.md-alert-important { border-left-color: rgb(130, 80, 223); } | |
208 | +.md-alert.md-alert-warning { border-left-color: rgb(154, 103, 0); } | |
209 | +.md-alert.md-alert-tip { border-left-color: rgb(31, 136, 61); } | |
210 | +.md-alert.md-alert-caution { border-left-color: rgb(207, 34, 46); } | |
211 | +.md-alert { padding: 0px 1em; margin-bottom: 16px; color: inherit; border-left: 0.25em solid rgb(0, 0, 0); } | |
212 | +.md-alert-text-note { color: rgb(9, 105, 218); } | |
213 | +.md-alert-text-important { color: rgb(130, 80, 223); } | |
214 | +.md-alert-text-warning { color: rgb(154, 103, 0); } | |
215 | +.md-alert-text-tip { color: rgb(31, 136, 61); } | |
216 | +.md-alert-text-caution { color: rgb(207, 34, 46); } | |
217 | +.md-alert-text { font-size: 0.9rem; font-weight: 700; } | |
218 | +.md-alert-text svg { fill: currentcolor; position: relative; top: 0.125em; margin-right: 1ch; overflow: visible; } | |
219 | +.md-alert-text-container::after { content: attr(data-text); text-transform: capitalize; pointer-events: none; margin-right: 1ch; } | |
220 | + | |
221 | + | |
222 | +:root { | |
223 | + --side-bar-bg-color: #fafafa; | |
224 | + --control-text-color: #777; | |
225 | +} | |
226 | + | |
227 | +@include-when-export url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext); | |
228 | + | |
229 | +/* open-sans-regular - latin-ext_latin */ | |
230 | + /* open-sans-italic - latin-ext_latin */ | |
231 | + /* open-sans-700 - latin-ext_latin */ | |
232 | + /* open-sans-700italic - latin-ext_latin */ | |
233 | + html { | |
234 | + font-size: 16px; | |
235 | + -webkit-font-smoothing: antialiased; | |
236 | +} | |
237 | + | |
238 | +body { | |
239 | + font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif; | |
240 | + color: rgb(51, 51, 51); | |
241 | + line-height: 1.6; | |
242 | +} | |
243 | + | |
244 | +#write { | |
245 | + max-width: 860px; | |
246 | + margin: 0 auto; | |
247 | + padding: 30px; | |
248 | + padding-bottom: 100px; | |
249 | +} | |
250 | + | |
251 | +@media only screen and (min-width: 1400px) { | |
252 | + #write { | |
253 | + max-width: 1024px; | |
254 | + } | |
255 | +} | |
256 | + | |
257 | +@media only screen and (min-width: 1800px) { | |
258 | + #write { | |
259 | + max-width: 1200px; | |
260 | + } | |
261 | +} | |
262 | + | |
263 | +#write > ul:first-child, | |
264 | +#write > ol:first-child{ | |
265 | + margin-top: 30px; | |
266 | +} | |
267 | + | |
268 | +a { | |
269 | + color: #4183C4; | |
270 | +} | |
271 | +h1, | |
272 | +h2, | |
273 | +h3, | |
274 | +h4, | |
275 | +h5, | |
276 | +h6 { | |
277 | + position: relative; | |
278 | + margin-top: 1rem; | |
279 | + margin-bottom: 1rem; | |
280 | + font-weight: bold; | |
281 | + line-height: 1.4; | |
282 | + cursor: text; | |
283 | +} | |
284 | +h1:hover a.anchor, | |
285 | +h2:hover a.anchor, | |
286 | +h3:hover a.anchor, | |
287 | +h4:hover a.anchor, | |
288 | +h5:hover a.anchor, | |
289 | +h6:hover a.anchor { | |
290 | + text-decoration: none; | |
291 | +} | |
292 | +h1 tt, | |
293 | +h1 code { | |
294 | + font-size: inherit; | |
295 | +} | |
296 | +h2 tt, | |
297 | +h2 code { | |
298 | + font-size: inherit; | |
299 | +} | |
300 | +h3 tt, | |
301 | +h3 code { | |
302 | + font-size: inherit; | |
303 | +} | |
304 | +h4 tt, | |
305 | +h4 code { | |
306 | + font-size: inherit; | |
307 | +} | |
308 | +h5 tt, | |
309 | +h5 code { | |
310 | + font-size: inherit; | |
311 | +} | |
312 | +h6 tt, | |
313 | +h6 code { | |
314 | + font-size: inherit; | |
315 | +} | |
316 | +h1 { | |
317 | + font-size: 2.25em; | |
318 | + line-height: 1.2; | |
319 | + border-bottom: 1px solid #eee; | |
320 | +} | |
321 | +h2 { | |
322 | + font-size: 1.75em; | |
323 | + line-height: 1.225; | |
324 | + border-bottom: 1px solid #eee; | |
325 | +} | |
326 | + | |
327 | +/*@media print { | |
328 | + .typora-export h1, | |
329 | + .typora-export h2 { | |
330 | + border-bottom: none; | |
331 | + padding-bottom: initial; | |
332 | + } | |
333 | + | |
334 | + .typora-export h1::after, | |
335 | + .typora-export h2::after { | |
336 | + content: ""; | |
337 | + display: block; | |
338 | + height: 100px; | |
339 | + margin-top: -96px; | |
340 | + border-top: 1px solid #eee; | |
341 | + } | |
342 | +}*/ | |
343 | + | |
344 | +h3 { | |
345 | + font-size: 1.5em; | |
346 | + line-height: 1.43; | |
347 | +} | |
348 | +h4 { | |
349 | + font-size: 1.25em; | |
350 | +} | |
351 | +h5 { | |
352 | + font-size: 1em; | |
353 | +} | |
354 | +h6 { | |
355 | + font-size: 1em; | |
356 | + color: #777; | |
357 | +} | |
358 | +p, | |
359 | +blockquote, | |
360 | +ul, | |
361 | +ol, | |
362 | +dl, | |
363 | +table{ | |
364 | + margin: 0.8em 0; | |
365 | +} | |
366 | +li>ol, | |
367 | +li>ul { | |
368 | + margin: 0 0; | |
369 | +} | |
370 | +hr { | |
371 | + height: 2px; | |
372 | + padding: 0; | |
373 | + margin: 16px 0; | |
374 | + background-color: #e7e7e7; | |
375 | + border: 0 none; | |
376 | + overflow: hidden; | |
377 | + box-sizing: content-box; | |
378 | +} | |
379 | + | |
380 | +li p.first { | |
381 | + display: inline-block; | |
382 | +} | |
383 | +ul, | |
384 | +ol { | |
385 | + padding-left: 30px; | |
386 | +} | |
387 | +ul:first-child, | |
388 | +ol:first-child { | |
389 | + margin-top: 0; | |
390 | +} | |
391 | +ul:last-child, | |
392 | +ol:last-child { | |
393 | + margin-bottom: 0; | |
394 | +} | |
395 | +blockquote { | |
396 | + border-left: 4px solid #dfe2e5; | |
397 | + padding: 0 15px; | |
398 | + color: #777777; | |
399 | +} | |
400 | +blockquote blockquote { | |
401 | + padding-right: 0; | |
402 | +} | |
403 | +table { | |
404 | + padding: 0; | |
405 | + word-break: initial; | |
406 | +} | |
407 | +table tr { | |
408 | + border: 1px solid #dfe2e5; | |
409 | + margin: 0; | |
410 | + padding: 0; | |
411 | +} | |
412 | +table tr:nth-child(2n), | |
413 | +thead { | |
414 | + background-color: #f8f8f8; | |
415 | +} | |
416 | +table th { | |
417 | + font-weight: bold; | |
418 | + border: 1px solid #dfe2e5; | |
419 | + border-bottom: 0; | |
420 | + margin: 0; | |
421 | + padding: 6px 13px; | |
422 | +} | |
423 | +table td { | |
424 | + border: 1px solid #dfe2e5; | |
425 | + margin: 0; | |
426 | + padding: 6px 13px; | |
427 | +} | |
428 | +table th:first-child, | |
429 | +table td:first-child { | |
430 | + margin-top: 0; | |
431 | +} | |
432 | +table th:last-child, | |
433 | +table td:last-child { | |
434 | + margin-bottom: 0; | |
435 | +} | |
436 | + | |
437 | +.CodeMirror-lines { | |
438 | + padding-left: 4px; | |
439 | +} | |
440 | + | |
441 | +.code-tooltip { | |
442 | + box-shadow: 0 1px 1px 0 rgba(0,28,36,.3); | |
443 | + border-top: 1px solid #eef2f2; | |
444 | +} | |
445 | + | |
446 | +.md-fences, | |
447 | +code, | |
448 | +tt { | |
449 | + border: 1px solid #e7eaed; | |
450 | + background-color: #f8f8f8; | |
451 | + border-radius: 3px; | |
452 | + padding: 0; | |
453 | + padding: 2px 4px 0px 4px; | |
454 | + font-size: 0.9em; | |
455 | +} | |
456 | + | |
457 | +code { | |
458 | + background-color: #f3f4f4; | |
459 | + padding: 0 2px 0 2px; | |
460 | +} | |
461 | + | |
462 | +.md-fences { | |
463 | + margin-bottom: 15px; | |
464 | + margin-top: 15px; | |
465 | + padding-top: 8px; | |
466 | + padding-bottom: 6px; | |
467 | +} | |
468 | + | |
469 | + | |
470 | +.md-task-list-item > input { | |
471 | + margin-left: -1.3em; | |
472 | +} | |
473 | + | |
474 | +@media print { | |
475 | + html { | |
476 | + font-size: 13px; | |
477 | + } | |
478 | + pre { | |
479 | + page-break-inside: avoid; | |
480 | + word-wrap: break-word; | |
481 | + } | |
482 | +} | |
483 | + | |
484 | +.md-fences { | |
485 | + background-color: #f8f8f8; | |
486 | +} | |
487 | +#write pre.md-meta-block { | |
488 | + padding: 1rem; | |
489 | + font-size: 85%; | |
490 | + line-height: 1.45; | |
491 | + background-color: #f7f7f7; | |
492 | + border: 0; | |
493 | + border-radius: 3px; | |
494 | + color: #777777; | |
495 | + margin-top: 0 !important; | |
496 | +} | |
497 | + | |
498 | +.mathjax-block>.code-tooltip { | |
499 | + bottom: .375rem; | |
500 | +} | |
501 | + | |
502 | +.md-mathjax-midline { | |
503 | + background: #fafafa; | |
504 | +} | |
505 | + | |
506 | +#write>h3.md-focus:before{ | |
507 | + left: -1.5625rem; | |
508 | + top: .375rem; | |
509 | +} | |
510 | +#write>h4.md-focus:before{ | |
511 | + left: -1.5625rem; | |
512 | + top: .285714286rem; | |
513 | +} | |
514 | +#write>h5.md-focus:before{ | |
515 | + left: -1.5625rem; | |
516 | + top: .285714286rem; | |
517 | +} | |
518 | +#write>h6.md-focus:before{ | |
519 | + left: -1.5625rem; | |
520 | + top: .285714286rem; | |
521 | +} | |
522 | +.md-image>.md-meta { | |
523 | + /*border: 1px solid #ddd;*/ | |
524 | + border-radius: 3px; | |
525 | + padding: 2px 0px 0px 4px; | |
526 | + font-size: 0.9em; | |
527 | + color: inherit; | |
528 | +} | |
529 | + | |
530 | +.md-tag { | |
531 | + color: #a7a7a7; | |
532 | + opacity: 1; | |
533 | +} | |
534 | + | |
535 | +.md-toc { | |
536 | + margin-top:20px; | |
537 | + padding-bottom:20px; | |
538 | +} | |
539 | + | |
540 | +.sidebar-tabs { | |
541 | + border-bottom: none; | |
542 | +} | |
543 | + | |
544 | +#typora-quick-open { | |
545 | + border: 1px solid #ddd; | |
546 | + background-color: #f8f8f8; | |
547 | +} | |
548 | + | |
549 | +#typora-quick-open-item { | |
550 | + background-color: #FAFAFA; | |
551 | + border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee; | |
552 | + border-style: solid; | |
553 | + border-width: 1px; | |
554 | +} | |
555 | + | |
556 | +/** focus mode */ | |
557 | +.on-focus-mode blockquote { | |
558 | + border-left-color: rgba(85, 85, 85, 0.12); | |
559 | +} | |
560 | + | |
561 | +header, .context-menu, .megamenu-content, footer{ | |
562 | + font-family: "Segoe UI", "Arial", sans-serif; | |
563 | +} | |
564 | + | |
565 | +.file-node-content:hover .file-node-icon, | |
566 | +.file-node-content:hover .file-node-open-state{ | |
567 | + visibility: visible; | |
568 | +} | |
569 | + | |
570 | +.mac-seamless-mode #typora-sidebar { | |
571 | + background-color: #fafafa; | |
572 | + background-color: var(--side-bar-bg-color); | |
573 | +} | |
574 | + | |
575 | +.mac-os #write{ | |
576 | + caret-color: AccentColor; | |
577 | +} | |
578 | + | |
579 | +.md-lang { | |
580 | + color: #b4654d; | |
581 | +} | |
582 | + | |
583 | +/*.html-for-mac { | |
584 | + --item-hover-bg-color: #E6F0FE; | |
585 | +}*/ | |
586 | + | |
587 | +#md-notification .btn { | |
588 | + border: 0; | |
589 | +} | |
590 | + | |
591 | +.dropdown-menu .divider { | |
592 | + border-color: #e5e5e5; | |
593 | + opacity: 0.4; | |
594 | +} | |
595 | + | |
596 | +.ty-preferences .window-content { | |
597 | + background-color: #fafafa; | |
598 | +} | |
599 | + | |
600 | +.ty-preferences .nav-group-item.active { | |
601 | + color: white; | |
602 | + background: #999; | |
603 | +} | |
604 | + | |
605 | +.menu-item-container a.menu-style-btn { | |
606 | + background-color: #f5f8fa; | |
607 | + background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0)); | |
608 | +} | |
609 | + | |
610 | + | |
611 | + | |
612 | +</style><title>README</title> | |
613 | +</head> | |
614 | +<body class='typora-export'><div class='typora-export-content'> | |
615 | +<div id='write' class=''><h1 id='5+1-dof-로봇-펌웨어'><span>5+1 DOF 로봇 펌웨어</span></h1><p><span>이 펌웨어는 아래의 로봇을 조종하는 펌웨어입니다. </span></p><p><img src="asset/robot.jpg" referrerpolicy="no-referrer" alt="robot"></p><p><span>아래의 로봇은 아두이노 우노 rev.3 보드와 SensorShield v5.0 이 합체되어 로봇의 6개 서보를 조종합니다.</span></p><p><span>조이스틱 컨트롤러는 아날로그신호에 연결되어있으나, 기능은 없습니다. 수입사 SCIPIA가 제공한 코드를 바탕으로 로봇을 테스트하기위하여 부착되어있으며, 이 코드는 SCIPIA 코드와 무관합니다. </span></p><p><span>로봇은 반드시 12v DC 전원장치를 SensorShield v5.0에 연결해야 작동합니다. 없이는 전원이 부족하여 작동하지 않습니다. 현재 보유중인 장치는 DC 입력과 점퍼캐이블, 볼티지 레귤레이터가 다 달려 꽃기만 하면 됩니다. 없다면 최악의 경우 볼티지 레귤레이터 부품을 직접 만들어야 할 수도 있습니다. 다른 모든 부품은 중국에서 수입만 했는데 볼티지 레귤레이터만 SCIPIA가 직접 만들고 인증 받은것으로 보입니다.</span></p><h3 id='예시-전원-장치'><span>예시 전원 장치</span></h3><p><img src="asset/IMG_6651.jpg" referrerpolicy="no-referrer" alt="IMG_6651"></p><p> </p><h2 id='로봇-제어-방법'><span>로봇 제어 방법</span></h2><h3 id='서보-설정'><span>서보 설정</span></h3><p><span>서보는 0번부터 시작하여 5번까지 번호가 매겨져있으며 0번이 맨 아래이고 순서대로 번호가 매겨져 5번이 집게를 열고 닫는 역할을 합니다.</span></p><p><span>3번 서보와 5번 서보는 기동 각도가 다른 서보와 다르며, 3번은 130도, 5번은 105~8도 정도입니다. </span></p><p><span>5번이 0도일때 집게가 열린 상태이고 108도일때 완전히 닫힌 상태입니다.</span></p><p><strong><span>기동 불가능한 범위에 서보를 강제로 작동 시키거나, 서보 모터에 토크락이 걸린 상태에서 무리하게 서보를 움직이면 서보모터의 회로에 "스탈 토크"라는 현상이 일어나 과전류가 흐르고, 내부가 </span><u><span>불타 망가져버리니</span></u><span> 조심하시길 부탁드립니다.</span></strong></p><p><strong><span>이것은 특히 무거운 물건을 들어올릴려 할때 문제가 크게 됩니다. 100g 이상의 물건을 들어올리려 하지 마십시오.</span></strong><span> </span></p><p><span>0번 서보는 3번 포트에, 1번은 2번에 3번은 8번에, 4번은 12번에, 5번은 13번에 꽃혀있으며 이는 코드상에서 변경 가능합니다. </span></p><h3 id='시리얼-통신'><span>시리얼 통신</span></h3><p><span>아두이노의 Serial Monitor나 시리얼 통신 터미널을 통하여 명령을 내릴 수 있습니다.</span></p><video src="asset/monitor.webm"></video><h4 id='직접조종'><span>직접조종</span></h4><p><code>{S<서보번호>:각도, ...}</code><span>형태의 명령어를 통해 서보를 직접 조종할 수 있으며, 코드에 미리 정의된 한계각도범위를 벗어나면 수정됩니다. </span><code>SERVO_MAX</code><span> </span><code>SERVO_MIN</code><span> 행렬 변수에 의하여 코드상에서 선언되어 있습니다.</span></p><h4 id='녹화'><span>녹화</span></h4><p><code>RECORD</code><span> 명령어를 통하여 행동에 대한 녹화가 가능하며, 1초에 한번의 명령을 수행한다고 할때, 약 30초의 명령을 저장 할 수 있을 것입니다. 아두이노 우노 기준으로 이미 SRAM이 부족해 이 이상은 어려우며, 하드코딩으로 30초 제한을 걸어두었습니다. 만약 다른 ESP32기기에 이식하게 된다면, 그때는 </span><code>RECORD_TIMEOUT_MS</code><span> 변수를 수정해 변경하는것을 고려 해 보십시오. 행동에 대한 녹화는 앞서 언급한 서보 직접 조종 명령어를 기록하여 수행됩니다.</span></p><h4 id='중지'><span>중지</span></h4><p><code>STOP</code><span>은 </span><code>RECORD</code><span>, </span><code>PLAY</code><span> 와 </span><code>SEQUENCE</code><span>를 중단하는 기능입니다. </span></p><h4 id='재생'><span>재생</span></h4><p><code>PLAY</code><span> 는 </span><code>RECORD</code><span>로 기록한 행동을 다시 재생합니다.</span></p><h4 id='시연-용-움직임-재생'><span>시연 용 움직임 재생</span></h4><p><code>SEQUENCE</code><span>는 코드상에 하드코딩된 행동을 재생합니다. 현재 들어가 있는 명령어는 병뚜껑을 잡아 오른쪽에 있는 컵에 넣는 행위를 기록한 것입니다. 빠른 시연을 위하여 만들어졌습니다. 아래의 영상을 참조하세요.</span></p><video src="asset/demonstration.mp4"></video><video src="asset/demonstration.webm"></video></div></div> | |
616 | +</body> | |
617 | +</html>(파일 끝에 줄바꿈 문자 없음) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?