@jjlmoya/utils-drones 1.23.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -0
- package/src/entries.ts +4 -0
- package/src/tests/diacritics_density.test.ts +8 -8
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/drone-battery-c-rating-calculator/i18n/es.ts +49 -49
- package/src/tool/fpv-drone-thrust-to-weight-ratio/bibliography.astro +6 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/bibliography.ts +18 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/component.astro +203 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/controller.ts +240 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/dom-views.ts +148 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/entry.ts +27 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/evaluator.ts +30 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/fpv-drone-thrust-to-weight-ratio.css +404 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/de.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/en.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/es.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/fr.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/id.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/it.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ja.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ko.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/nl.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/pl.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/pt.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ru.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/sv.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/tr.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/zh.ts +208 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/index.ts +10 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/logic.test.ts +93 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/logic.ts +147 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/seo.astro +16 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/storage.ts +19 -0
- package/src/tool/fpv-drone-thrust-to-weight-ratio/ui.ts +58 -0
- package/src/tools.ts +3 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--n-bg: #f8fafc;
|
|
3
|
+
--n-surface: #fff;
|
|
4
|
+
--n-card-bg: rgba(255, 255, 255, 0.95);
|
|
5
|
+
--n-border: #cbd5e1;
|
|
6
|
+
--n-text: #0f172a;
|
|
7
|
+
--n-text-muted: #475569;
|
|
8
|
+
--n-primary: #0284c7;
|
|
9
|
+
--n-primary-hover: #0369a1;
|
|
10
|
+
--n-accent: #8b5cf6;
|
|
11
|
+
--n-accent-cyan: #06b6d4;
|
|
12
|
+
--n-success: #10b981;
|
|
13
|
+
--n-warning: #f59e0b;
|
|
14
|
+
--n-danger: #ef4444;
|
|
15
|
+
--n-info: #0284c7;
|
|
16
|
+
--n-svg-card: #f1f5f9;
|
|
17
|
+
--n-svg-inner: #fff;
|
|
18
|
+
--n-svg-stroke: #cbd5e1;
|
|
19
|
+
--n-radius: 16px;
|
|
20
|
+
--n-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.08);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.theme-dark {
|
|
24
|
+
--n-bg: #070b12;
|
|
25
|
+
--n-surface: #0f172a;
|
|
26
|
+
--n-card-bg: rgba(15, 23, 42, 0.92);
|
|
27
|
+
--n-border: #1e293b;
|
|
28
|
+
--n-text: #f8fafc;
|
|
29
|
+
--n-text-muted: #94a3b8;
|
|
30
|
+
--n-primary: #38bdf8;
|
|
31
|
+
--n-primary-hover: #7dd3fc;
|
|
32
|
+
--n-accent: #a78bfa;
|
|
33
|
+
--n-accent-cyan: #22d3ee;
|
|
34
|
+
--n-success: #34d399;
|
|
35
|
+
--n-warning: #fbbf24;
|
|
36
|
+
--n-danger: #f87171;
|
|
37
|
+
--n-info: #38bdf8;
|
|
38
|
+
--n-svg-card: #0b1120;
|
|
39
|
+
--n-svg-inner: #1e293b;
|
|
40
|
+
--n-svg-stroke: #334155;
|
|
41
|
+
--n-shadow: 0 14px 35px -5px rgba(0, 0, 0, 0.6);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sc-fpv-cockpit {
|
|
45
|
+
display: grid;
|
|
46
|
+
grid-template-columns: 1fr;
|
|
47
|
+
gap: 2rem;
|
|
48
|
+
background-color: var(--n-card-bg);
|
|
49
|
+
border: 1px solid var(--n-border);
|
|
50
|
+
border-radius: var(--n-radius);
|
|
51
|
+
padding: 2rem;
|
|
52
|
+
box-shadow: var(--n-shadow);
|
|
53
|
+
backdrop-filter: blur(14px);
|
|
54
|
+
color: var(--n-text);
|
|
55
|
+
margin-bottom: 2rem;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media (min-width: 1024px) {
|
|
59
|
+
.sc-fpv-cockpit {
|
|
60
|
+
grid-template-columns: 380px 1fr;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.sc-cockpit-sidebar {
|
|
65
|
+
display: flex;
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
gap: 1.5rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.sc-cockpit-title {
|
|
71
|
+
font-size: 1.05rem;
|
|
72
|
+
font-weight: 700;
|
|
73
|
+
color: var(--n-text);
|
|
74
|
+
margin-bottom: 0.8rem;
|
|
75
|
+
letter-spacing: -0.01em;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.sc-preset-group {
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-wrap: wrap;
|
|
81
|
+
gap: 0.5rem;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.sc-preset-chip {
|
|
85
|
+
background-color: var(--n-surface);
|
|
86
|
+
border: 1px solid var(--n-border);
|
|
87
|
+
color: var(--n-text);
|
|
88
|
+
border-radius: 8px;
|
|
89
|
+
padding: 0.45rem 0.85rem;
|
|
90
|
+
font-size: 0.85rem;
|
|
91
|
+
font-weight: 600;
|
|
92
|
+
cursor: pointer;
|
|
93
|
+
transition: all 0.2s ease;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.sc-preset-chip:hover {
|
|
97
|
+
border-color: var(--n-primary);
|
|
98
|
+
color: var(--n-primary);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.sc-preset-chip.active {
|
|
102
|
+
background-color: var(--n-primary);
|
|
103
|
+
border-color: var(--n-primary);
|
|
104
|
+
color: #fff;
|
|
105
|
+
box-shadow: 0 0 14px rgba(56, 189, 248, 0.35);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.sc-field-group {
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: column;
|
|
111
|
+
gap: 0.4rem;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.sc-field-header {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: center;
|
|
117
|
+
justify-content: space-between;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.sc-field-header label {
|
|
121
|
+
font-size: 0.85rem;
|
|
122
|
+
font-weight: 600;
|
|
123
|
+
color: var(--n-text-muted);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.sc-input {
|
|
127
|
+
width: 100%;
|
|
128
|
+
background-color: var(--n-surface);
|
|
129
|
+
border: 1px solid var(--n-border);
|
|
130
|
+
border-radius: 8px;
|
|
131
|
+
padding: 0.55rem 0.8rem;
|
|
132
|
+
color: var(--n-text);
|
|
133
|
+
font-size: 0.95rem;
|
|
134
|
+
outline: none;
|
|
135
|
+
transition: border-color 0.2s ease;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.sc-input:focus {
|
|
139
|
+
border-color: var(--n-primary);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.sc-slider {
|
|
143
|
+
width: 100%;
|
|
144
|
+
accent-color: var(--n-primary);
|
|
145
|
+
cursor: pointer;
|
|
146
|
+
margin-top: 0.2rem;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.sc-throttle-box {
|
|
150
|
+
background-color: var(--n-surface);
|
|
151
|
+
border: 1px solid var(--n-border);
|
|
152
|
+
border-radius: 12px;
|
|
153
|
+
padding: 1rem;
|
|
154
|
+
display: flex;
|
|
155
|
+
flex-direction: column;
|
|
156
|
+
gap: 0.6rem;
|
|
157
|
+
border-left: 3px solid var(--n-accent-cyan);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.sc-throttle-label {
|
|
161
|
+
font-size: 0.9rem;
|
|
162
|
+
font-weight: 700;
|
|
163
|
+
color: var(--n-text);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.sc-throttle-badge {
|
|
167
|
+
background-color: var(--n-accent-cyan);
|
|
168
|
+
color: #000;
|
|
169
|
+
font-weight: 800;
|
|
170
|
+
font-size: 0.85rem;
|
|
171
|
+
padding: 0.15rem 0.55rem;
|
|
172
|
+
border-radius: 6px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.sc-throttle-slider {
|
|
176
|
+
accent-color: var(--n-accent-cyan);
|
|
177
|
+
height: 6px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.sc-snap-group {
|
|
181
|
+
display: grid;
|
|
182
|
+
grid-template-columns: repeat(4, 1fr);
|
|
183
|
+
gap: 0.35rem;
|
|
184
|
+
margin-top: 0.2rem;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.sc-snap-btn {
|
|
188
|
+
background-color: var(--n-bg);
|
|
189
|
+
border: 1px solid var(--n-border);
|
|
190
|
+
border-radius: 6px;
|
|
191
|
+
padding: 0.3rem 0.2rem;
|
|
192
|
+
font-size: 0.72rem;
|
|
193
|
+
font-weight: 700;
|
|
194
|
+
color: var(--n-text-muted);
|
|
195
|
+
cursor: pointer;
|
|
196
|
+
transition: all 0.2s ease;
|
|
197
|
+
text-align: center;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.sc-snap-btn:hover {
|
|
201
|
+
border-color: var(--n-accent-cyan);
|
|
202
|
+
color: var(--n-accent-cyan);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.sc-custom-select {
|
|
206
|
+
position: relative;
|
|
207
|
+
width: 100%;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.sc-select-trigger {
|
|
211
|
+
display: flex;
|
|
212
|
+
align-items: center;
|
|
213
|
+
justify-content: space-between;
|
|
214
|
+
background-color: var(--n-surface);
|
|
215
|
+
border: 1px solid var(--n-border);
|
|
216
|
+
border-radius: 8px;
|
|
217
|
+
padding: 0.6rem 0.8rem;
|
|
218
|
+
color: var(--n-text);
|
|
219
|
+
font-size: 0.95rem;
|
|
220
|
+
cursor: pointer;
|
|
221
|
+
user-select: none;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.sc-select-trigger svg {
|
|
225
|
+
transition: transform 0.2s ease;
|
|
226
|
+
fill: var(--n-text-muted);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.sc-custom-select.open .sc-select-trigger svg {
|
|
230
|
+
transform: rotate(180deg);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.sc-select-dropdown {
|
|
234
|
+
display: none;
|
|
235
|
+
position: absolute;
|
|
236
|
+
top: calc(100% + 4px);
|
|
237
|
+
left: 0;
|
|
238
|
+
right: 0;
|
|
239
|
+
background-color: var(--n-surface);
|
|
240
|
+
border: 1px solid var(--n-border);
|
|
241
|
+
border-radius: 8px;
|
|
242
|
+
box-shadow: var(--n-shadow);
|
|
243
|
+
z-index: 50;
|
|
244
|
+
overflow: hidden;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.sc-custom-select.open .sc-select-dropdown {
|
|
248
|
+
display: block;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.sc-select-option {
|
|
252
|
+
padding: 0.6rem 0.8rem;
|
|
253
|
+
font-size: 0.9rem;
|
|
254
|
+
color: var(--n-text);
|
|
255
|
+
cursor: pointer;
|
|
256
|
+
transition: background-color 0.2s ease;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.sc-select-option:hover,
|
|
260
|
+
.sc-select-option.active {
|
|
261
|
+
background-color: var(--n-primary);
|
|
262
|
+
color: #fff;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.sc-cockpit-telemetry {
|
|
266
|
+
display: flex;
|
|
267
|
+
flex-direction: column;
|
|
268
|
+
gap: 1.5rem;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.sc-telemetry-topbar {
|
|
272
|
+
display: flex;
|
|
273
|
+
align-items: center;
|
|
274
|
+
justify-content: space-between;
|
|
275
|
+
gap: 1rem;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.sc-safety-badge {
|
|
279
|
+
padding: 0.45rem 1.1rem;
|
|
280
|
+
border-radius: 20px;
|
|
281
|
+
font-weight: 700;
|
|
282
|
+
font-size: 0.85rem;
|
|
283
|
+
text-transform: uppercase;
|
|
284
|
+
letter-spacing: 0.04em;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.status-optimal {
|
|
288
|
+
background-color: rgba(16, 185, 129, 0.15);
|
|
289
|
+
color: var(--n-success);
|
|
290
|
+
border: 1px solid var(--n-success);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.status-info {
|
|
294
|
+
background-color: rgba(2, 132, 199, 0.15);
|
|
295
|
+
color: var(--n-info);
|
|
296
|
+
border: 1px solid var(--n-info);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.status-accent {
|
|
300
|
+
background-color: rgba(139, 92, 246, 0.15);
|
|
301
|
+
color: var(--n-accent);
|
|
302
|
+
border: 1px solid var(--n-accent);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.status-warning {
|
|
306
|
+
background-color: rgba(245, 158, 11, 0.15);
|
|
307
|
+
color: var(--n-warning);
|
|
308
|
+
border: 1px solid var(--n-warning);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.status-danger {
|
|
312
|
+
background-color: rgba(239, 68, 68, 0.15);
|
|
313
|
+
color: var(--n-danger);
|
|
314
|
+
border: 1px solid var(--n-danger);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.sc-hud-wrapper {
|
|
318
|
+
background-color: var(--n-surface);
|
|
319
|
+
border: 1px solid var(--n-border);
|
|
320
|
+
border-radius: 12px;
|
|
321
|
+
padding: 1rem;
|
|
322
|
+
display: flex;
|
|
323
|
+
justify-content: center;
|
|
324
|
+
align-items: center;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.sc-hud-metrics-grid {
|
|
328
|
+
display: grid;
|
|
329
|
+
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
330
|
+
gap: 1rem;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.sc-hud-card {
|
|
334
|
+
background-color: var(--n-surface);
|
|
335
|
+
border: 1px solid var(--n-border);
|
|
336
|
+
border-radius: 12px;
|
|
337
|
+
padding: 1rem;
|
|
338
|
+
display: flex;
|
|
339
|
+
flex-direction: column;
|
|
340
|
+
gap: 0.35rem;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.sc-hud-card.highlight-cyan {
|
|
344
|
+
border-color: var(--n-accent-cyan);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.sc-hud-card.highlight-purple {
|
|
348
|
+
border-color: var(--n-accent);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.sc-hud-label {
|
|
352
|
+
font-size: 0.8rem;
|
|
353
|
+
color: var(--n-text-muted);
|
|
354
|
+
font-weight: 600;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.sc-hud-val {
|
|
358
|
+
font-size: 1.35rem;
|
|
359
|
+
font-weight: 800;
|
|
360
|
+
color: var(--n-text);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.sc-tuning-grid {
|
|
364
|
+
display: grid;
|
|
365
|
+
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
366
|
+
gap: 1rem;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.sc-tuning-card {
|
|
370
|
+
background-color: var(--n-surface);
|
|
371
|
+
border: 1px solid var(--n-border);
|
|
372
|
+
border-radius: 12px;
|
|
373
|
+
padding: 0.85rem 1rem;
|
|
374
|
+
display: flex;
|
|
375
|
+
flex-direction: column;
|
|
376
|
+
gap: 0.3rem;
|
|
377
|
+
border-top: 2px solid var(--n-primary);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.sc-tuning-val {
|
|
381
|
+
font-size: 1.05rem;
|
|
382
|
+
font-weight: 800;
|
|
383
|
+
color: var(--n-primary);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.sc-flight-status-card {
|
|
387
|
+
background-color: var(--n-surface);
|
|
388
|
+
border: 1px solid var(--n-border);
|
|
389
|
+
border-radius: 12px;
|
|
390
|
+
padding: 1.2rem;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.sc-flight-status-card h4 {
|
|
394
|
+
font-size: 1rem;
|
|
395
|
+
font-weight: 700;
|
|
396
|
+
margin-bottom: 0.4rem;
|
|
397
|
+
color: var(--n-text);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.sc-flight-status-card p {
|
|
401
|
+
font-size: 0.9rem;
|
|
402
|
+
color: var(--n-text-muted);
|
|
403
|
+
line-height: 1.5;
|
|
404
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import type { FpvDroneThrustToWeightRatioLocaleContent } from '../entry';
|
|
2
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import type { SEOSection } from '../../../types';
|
|
4
|
+
import { BIBLIOGRAPHY_ITEMS } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'fpv-drohnen-schub-gewicht-verhaeltnis-rechner';
|
|
7
|
+
const title = 'FPV Drohnen Schub zu Gewicht Verhältnis und Flugtelemetrie Rechner';
|
|
8
|
+
const description = 'Berechnen Sie Maximalschub, nichtlineare Gaskurve, vertikale G-Kräfte, Schwebegas und 0 auf 100 Beschleunigung für FPV Drohnen und Multirotoren.';
|
|
9
|
+
|
|
10
|
+
const ui = {
|
|
11
|
+
title: 'FPV Drohnen Schub zu Gewicht Verhältnis Rechner',
|
|
12
|
+
subtitle: 'Analysieren Sie Schubkurven, Live Gashebel Reaktion, vertikale G Kräfte und Agilitätsklassen',
|
|
13
|
+
presetsHeader: 'Schnellkonfigurationen',
|
|
14
|
+
customPreset: 'Benutzerdefiniert',
|
|
15
|
+
whoop1sPreset: '1S TinyWhoop (65mm)',
|
|
16
|
+
freestyle35Preset: '4S Freestyle 3.5 Zoll',
|
|
17
|
+
freestyle5Preset: '6S Freestyle 5 Zoll Pro',
|
|
18
|
+
longrange7Preset: '6S Mountain LR 7 Zoll',
|
|
19
|
+
cinelifter8Preset: '8S Schwerer Cinelifter X8',
|
|
20
|
+
specsHeader: 'Drohnen und Antriebsdaten',
|
|
21
|
+
auwGramsLabel: 'Abfluggewicht mit Akku (g)',
|
|
22
|
+
motorCountLabel: 'Motorkonfiguration',
|
|
23
|
+
thrustPerMotorLabel: 'Maximaler Standschub pro Motor (g)',
|
|
24
|
+
propellerSizeLabel: 'Propellerdurchmesser (Zoll)',
|
|
25
|
+
propellerPitchLabel: 'Propellersteigung (Zoll)',
|
|
26
|
+
bladeCountLabel: 'Anzahl der Propellerblätter',
|
|
27
|
+
blade2Option: '2 Blätter (Zweiblatt - Maximale Effizienz)',
|
|
28
|
+
blade3Option: '3 Blätter (Dreiblatt - Freestyle Standard)',
|
|
29
|
+
blade4Option: '4 Blätter (Vierblatt - Maximaler Grip)',
|
|
30
|
+
throttleStickHeader: 'Live Gashebel Simulator',
|
|
31
|
+
throttleStickLabel: 'Gashebelposition (%)',
|
|
32
|
+
snapIdleLabel: 'Leerlauf (0%)',
|
|
33
|
+
snapHoverLabel: 'Schwebepunkt',
|
|
34
|
+
snapCruiseLabel: 'Reiseflug (50%)',
|
|
35
|
+
snapPunchLabel: 'Vollgas (100%)',
|
|
36
|
+
telemetryHeader: 'FPV Flugtelemetrie und Leistungsdiagnose',
|
|
37
|
+
twrRatioLabel: 'Schub zu Gewicht Verhältnis (TWR)',
|
|
38
|
+
hoverThrottleLabel: 'Schwebegas Punkt',
|
|
39
|
+
currentThrustLabel: 'Aktueller Schubleistungs Wert',
|
|
40
|
+
instantGForceLabel: 'Momentane vertikale G-Kraft',
|
|
41
|
+
zeroToHundredLabel: '0 auf 100 km/h Punch Zeit',
|
|
42
|
+
recommendedCamAngleLabel: 'Empfohlener FPV Kamerawinkel',
|
|
43
|
+
windResistanceLabel: 'Windwiderstandsfähigkeit',
|
|
44
|
+
totalMaxThrustLabel: 'Gesamter maximaler Standschub',
|
|
45
|
+
maxPitchAngleLabel: 'Maximaler Neigungswinkel',
|
|
46
|
+
tuningHeader: 'Betaflight PID und Firmware Empfehlungen',
|
|
47
|
+
tpaRecommendationLabel: 'Gas PID Dämpfung (TPA)',
|
|
48
|
+
dynamicIdleLabel: 'Empfohlenes Dynamic Idle',
|
|
49
|
+
propwashRiskLabel: 'Propwash Kontrollreserve',
|
|
50
|
+
tierUnderpoweredTitle: 'Untermotorisiert oder Winddrift Gefahr',
|
|
51
|
+
tierUnderpoweredDesc: 'TWR unter 2 zu 1 bietet zu wenig Steuerreserve für schnelle Abfangmanöver. Nur für ruhige Innenräume geeignet.',
|
|
52
|
+
tierCinematicTitle: 'Sanfter Cinematischer Flug',
|
|
53
|
+
tierCinematicDesc: 'TWR zwischen 2 zu 1 und 4 zu 1 sorgt für gleichmäßige Gasannahme und verwacklungsfreie Videoaufnahmen.',
|
|
54
|
+
tierFreestyleTitle: 'Sportlicher und Agiler Freestyle',
|
|
55
|
+
tierFreestyleDesc: 'TWR zwischen 4 zu 1 und 8 zu 1 liefert knackige Reaktionen, saubere Split-S Manöver und gute Akrobatik.',
|
|
56
|
+
tierAcroProTitle: 'Hochleistungs Acro und Bando Freestyle',
|
|
57
|
+
tierAcroProDesc: 'TWR zwischen 8 zu 1 und 13 zu 1 ermöglicht explosive vertikale Beschleunigung und sofortiges Abfangen von Turbulenzen.',
|
|
58
|
+
tierRacingExtremeTitle: 'Extremer Drohnenrennsport',
|
|
59
|
+
tierRacingExtremeDesc: 'TWR über 13 zu 1 liefert brachiale Kraft für professionelle FPV Rennkurse und engste Kurvenausgänge.',
|
|
60
|
+
hudThrustCurveTitle: 'Nichtlineare Schubverlaufskurve',
|
|
61
|
+
hudHoverMarker: 'Schwebepunkt',
|
|
62
|
+
hudCurrentStickMarker: 'Aktueller Hebel',
|
|
63
|
+
hudGForceLabel: 'G-Kräfte',
|
|
64
|
+
hudTiltAngleLabel: 'Kamerawinkel',
|
|
65
|
+
hudVectorPowerLabel: 'Live Antriebstelemetrie',
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const faqItems = [
|
|
69
|
+
{
|
|
70
|
+
question: 'Welches Schub zu Gewicht Verhältnis ist optimal für Freestyle FPV Drohnen?',
|
|
71
|
+
answer: 'Für Freestyle Quads ist ein TWR von 8 zu 1 bis 12 zu 1 ideal, um sturzflugartige Abfangmanöver und schnelle Richtungswechsel präzise zu steuern.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
question: 'Wie beeinflusst die nichtlineare Gaskurve das Schweben?',
|
|
75
|
+
answer: 'Bürstenlose Motoren erzeugen Schub proportional zum Quadrat der Drehzahl. Daher liegt der Schwebepunkt bei leistungsstarken Drohnen meist bei 20 bis 35 Prozent Hebelweg.',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: 'Warum hängt der FPV Kamerawinkel vom Schubverhältnis ab?',
|
|
79
|
+
answer: 'Drohnen mit hohem Schubverhältnis fliegen mit größerem Vorwärtsneigungswinkel. Um den Horizont in der Brille zentriert zu halten, neigen Piloten die Kamera um 35 bis 50 Grad nach oben.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
question: 'Wie verändert die Anzahl der Propellerblätter das Flugverhalten?',
|
|
83
|
+
answer: 'Zweiblattpropeller bieten maximale Flugzeit und Endgeschwindigkeit. Dreiblattpropeller bieten die beste Balance für Freestyle, während Vierblattpropeller extremen Halt in Kurven liefern.',
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
const howToSteps = [
|
|
88
|
+
{
|
|
89
|
+
name: 'Drohnengewicht eingeben oder Voreinstellung wählen',
|
|
90
|
+
text: 'Tragen Sie das gesamte Abfluggewicht inklusive LiPo Akku und HD Kamera in Gramm ein.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'Antriebsdaten und Propeller konfigurieren',
|
|
94
|
+
text: 'Wählen Sie die Motoranzahl, Blattanzahl und den Prüfstandsschub des Herstellers bei 100 Prozent Gas aus.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'Live Gashebel anpassen und Telemetrie prüfen',
|
|
98
|
+
text: 'Verschieben Sie den Live Gashebel, um Schubkraft, G-Kräfte und die Lage auf der Schubkurve zu analysieren.',
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
|
|
102
|
+
const seoSections: SEOSection[] = [
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'Aerodynamik des Schub zu Gewicht Verhältnisses bei FPV Drohnen',
|
|
106
|
+
level: 2,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'Das Schub zu Gewicht Verhältnis (TWR) ist die entscheidende aerodynamische Kennzahl für Beschleunigung und Steuerautorität von Multirotoren. Im FPV Freestyle und Renneinsatz ermöglicht ausreichender Leistungspuffer das blitzschnelle Abfangen nach freiem Fall und präzise Manöver an Hindernissen.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'title',
|
|
114
|
+
text: 'Klassifizierung von FPV Drohnen und Leistungsdaten',
|
|
115
|
+
level: 2,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'table',
|
|
119
|
+
headers: ['Plattform', 'Typisches Abfluggewicht', 'Ziel TWR', 'Schwebegas Anteil', '0 auf 100 Beschleunigung', 'Kameraneigung'],
|
|
120
|
+
rows: [
|
|
121
|
+
['1S TinyWhoop (65mm)', '32g', '4.5 zu 1', '35 Prozent', '1.20 s', '15 Grad bis 25 Grad'],
|
|
122
|
+
['4S Freestyle 3.5"', '250g', '12.0 zu 1', '24 Prozent', '0.28 s', '35 Grad bis 45 Grad'],
|
|
123
|
+
['6S Freestyle 5" Pro', '680g', '11.5 zu 1', '25 Prozent', '0.30 s', '35 Grad bis 50 Grad'],
|
|
124
|
+
['6S Mountain LR 7"', '1150g', '8.3 zu 1', '30 Prozent', '0.45 s', '20 Grad bis 30 Grad'],
|
|
125
|
+
['8S Cinelifter X8', '4200g', '6.1 zu 1', '38 Prozent', '0.70 s', '15 Grad bis 25 Grad'],
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Nichtlineare Schubkennlinie und Motordynamik',
|
|
131
|
+
level: 2,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'Elektromotoren und Propeller entfalten ihren Schub nicht linear zum PWM Signal. Die Strömungsdynamik erzeugt einen exponentiellen Verlauf, bei dem die oberen 20 Prozent des Gaswegs über 40 Prozent des Gesamtschubs erzeugen.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'list',
|
|
139
|
+
items: [
|
|
140
|
+
'Schwebegas Bereich (20 bis 35 Prozent): Hohe Auflösung für feinfühlige Positionskorrekturen.',
|
|
141
|
+
'Reiseflug Bereich (35 bis 65 Prozent): Ausgewogene Balance aus Vorwärtsfahrt und Akkueffizienz.',
|
|
142
|
+
'Vollgas Bereich (70 bis 100 Prozent): Maximaler Kraftzuwachs mit hohen vertikalen G-Kräften.',
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Propellerwahl und Betaflight Tuning Empfehlungen',
|
|
148
|
+
level: 2,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Für Drohnen mit einem TWR von über 10 zu 1 wird die Aktivierung der Throttle PID Attenuation (TPA) in Betaflight empfohlen, um Oszillationen bei Vollgaspassagen zuverlässig zu unterbinden.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'tip',
|
|
156
|
+
title: 'Tuninghinweis für Betaflight TPA',
|
|
157
|
+
html: 'Setzen Sie den TPA Schwellenwert auf 1250 oder 1350 mit einem Faktor von 0.65, um Vibrationen im oberen Gasbereich zu eliminieren.',
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
|
|
161
|
+
const schemas: FpvDroneThrustToWeightRatioLocaleContent['schemas'] = [
|
|
162
|
+
{
|
|
163
|
+
'@context': 'https://schema.org',
|
|
164
|
+
'@type': 'FAQPage',
|
|
165
|
+
mainEntity: faqItems.map((item) => ({
|
|
166
|
+
'@type': 'Question',
|
|
167
|
+
name: item.question,
|
|
168
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
169
|
+
})),
|
|
170
|
+
} as WithContext<FAQPage>,
|
|
171
|
+
{
|
|
172
|
+
'@context': 'https://schema.org',
|
|
173
|
+
'@type': 'HowTo',
|
|
174
|
+
name: title,
|
|
175
|
+
description,
|
|
176
|
+
step: howToSteps.map((s, index) => ({
|
|
177
|
+
'@type': 'HowToStep',
|
|
178
|
+
position: index + 1,
|
|
179
|
+
name: s.name,
|
|
180
|
+
text: s.text,
|
|
181
|
+
})),
|
|
182
|
+
} as WithContext<HowTo>,
|
|
183
|
+
{
|
|
184
|
+
'@context': 'https://schema.org',
|
|
185
|
+
'@type': 'SoftwareApplication',
|
|
186
|
+
name: title,
|
|
187
|
+
description,
|
|
188
|
+
applicationCategory: 'UtilityApplication',
|
|
189
|
+
operatingSystem: 'All',
|
|
190
|
+
offers: {
|
|
191
|
+
'@type': 'Offer',
|
|
192
|
+
price: '0',
|
|
193
|
+
priceCurrency: 'EUR',
|
|
194
|
+
},
|
|
195
|
+
} as WithContext<SoftwareApplication>,
|
|
196
|
+
];
|
|
197
|
+
|
|
198
|
+
export const content: FpvDroneThrustToWeightRatioLocaleContent = {
|
|
199
|
+
slug,
|
|
200
|
+
title,
|
|
201
|
+
description,
|
|
202
|
+
ui,
|
|
203
|
+
seo: seoSections,
|
|
204
|
+
faq: faqItems,
|
|
205
|
+
howTo: howToSteps,
|
|
206
|
+
bibliography: BIBLIOGRAPHY_ITEMS,
|
|
207
|
+
schemas,
|
|
208
|
+
};
|