@jjlmoya/utils-drones 1.23.0 → 1.24.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.
Files changed (35) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -0
  3. package/src/entries.ts +4 -0
  4. package/src/tests/locale_completeness.test.ts +2 -2
  5. package/src/tests/tool_validation.test.ts +2 -2
  6. package/src/tool/fpv-drone-thrust-to-weight-ratio/bibliography.astro +6 -0
  7. package/src/tool/fpv-drone-thrust-to-weight-ratio/bibliography.ts +18 -0
  8. package/src/tool/fpv-drone-thrust-to-weight-ratio/component.astro +203 -0
  9. package/src/tool/fpv-drone-thrust-to-weight-ratio/controller.ts +240 -0
  10. package/src/tool/fpv-drone-thrust-to-weight-ratio/dom-views.ts +148 -0
  11. package/src/tool/fpv-drone-thrust-to-weight-ratio/entry.ts +27 -0
  12. package/src/tool/fpv-drone-thrust-to-weight-ratio/evaluator.ts +30 -0
  13. package/src/tool/fpv-drone-thrust-to-weight-ratio/fpv-drone-thrust-to-weight-ratio.css +404 -0
  14. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/de.ts +208 -0
  15. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/en.ts +208 -0
  16. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/es.ts +208 -0
  17. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/fr.ts +208 -0
  18. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/id.ts +208 -0
  19. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/it.ts +208 -0
  20. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ja.ts +208 -0
  21. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ko.ts +208 -0
  22. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/nl.ts +208 -0
  23. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/pl.ts +208 -0
  24. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/pt.ts +208 -0
  25. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/ru.ts +208 -0
  26. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/sv.ts +208 -0
  27. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/tr.ts +208 -0
  28. package/src/tool/fpv-drone-thrust-to-weight-ratio/i18n/zh.ts +208 -0
  29. package/src/tool/fpv-drone-thrust-to-weight-ratio/index.ts +10 -0
  30. package/src/tool/fpv-drone-thrust-to-weight-ratio/logic.test.ts +93 -0
  31. package/src/tool/fpv-drone-thrust-to-weight-ratio/logic.ts +147 -0
  32. package/src/tool/fpv-drone-thrust-to-weight-ratio/seo.astro +16 -0
  33. package/src/tool/fpv-drone-thrust-to-weight-ratio/storage.ts +19 -0
  34. package/src/tool/fpv-drone-thrust-to-weight-ratio/ui.ts +58 -0
  35. package/src/tools.ts +3 -0
@@ -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 = 'calculateur-rapport-poussee-poids-drone-fpv';
7
+ const title = 'Calculateur de Rapport Poussee Poids et Telemetrie de Vol Drone FPV';
8
+ const description = 'Calculez la poussee statique maximale, la courbe de gaz non lineaire, les forces G verticales, le point de stationnaire et le temps 0 a 100 pour drones FPV.';
9
+
10
+ const ui = {
11
+ title: 'Calculateur de Rapport Poussee Poids pour Drone FPV',
12
+ subtitle: 'Analysez les courbes de poussee, la reponse des gaz en direct, les forces G et la categorie de vol',
13
+ presetsHeader: 'Configurations Rapides',
14
+ customPreset: 'Personnalise',
15
+ whoop1sPreset: '1S TinyWhoop (65mm)',
16
+ freestyle35Preset: '4S Freestyle 3.5 Pouces',
17
+ freestyle5Preset: '6S Freestyle 5 Pouces Pro',
18
+ longrange7Preset: '6S Mountain LR 7 Pouces',
19
+ cinelifter8Preset: '8S Cinelifter Lourd X8',
20
+ specsHeader: 'Caracteristiques du Drone et Propulsion',
21
+ auwGramsLabel: 'Masse Totale avec Batterie (g)',
22
+ motorCountLabel: 'Configuration des Moteurs',
23
+ thrustPerMotorLabel: 'Poussee Statique Max par Moteur (g)',
24
+ propellerSizeLabel: 'Diametre Helice (pouces)',
25
+ propellerPitchLabel: 'Pas de Helice (pouces)',
26
+ bladeCountLabel: 'Nombre de Pales',
27
+ blade2Option: '2 Pales (Bipale - Efficacite Maximale)',
28
+ blade3Option: '3 Pales (Tripale - Standard Freestyle)',
29
+ blade4Option: '4 Pales (Quadripale - Adherence Maximale)',
30
+ throttleStickHeader: 'Simulateur de Manette des Gaz en Direct',
31
+ throttleStickLabel: 'Position des Gaz (%)',
32
+ snapIdleLabel: 'Ralenti (0%)',
33
+ snapHoverLabel: 'Stationnaire',
34
+ snapCruiseLabel: 'Croisiere (50%)',
35
+ snapPunchLabel: 'Plein Gaz (100%)',
36
+ telemetryHeader: 'Telemetrie de Vol FPV et Diagnostic',
37
+ twrRatioLabel: 'Rapport Poussee Poids (TWR)',
38
+ hoverThrottleLabel: 'Point de Gaz en Stationnaire',
39
+ currentThrustLabel: 'Poussee Actuelle Generee',
40
+ instantGForceLabel: 'Force G Verticale Instantanee',
41
+ zeroToHundredLabel: 'Temps 0 a 100 km/h en Punch',
42
+ recommendedCamAngleLabel: 'Inclinaison de Camera FPV Conseillee',
43
+ windResistanceLabel: 'Vitesse de Penetration Face au Vent',
44
+ totalMaxThrustLabel: 'Poussee Statique Totale Maximale',
45
+ maxPitchAngleLabel: 'Angle Inclinaison Soutenable',
46
+ tuningHeader: 'Recommandations de Reglage Betaflight et PID',
47
+ tpaRecommendationLabel: 'Attenuation PID des Gaz (TPA)',
48
+ dynamicIdleLabel: 'Ralenti Dynamique Recommande',
49
+ propwashRiskLabel: 'Autorite sur Turbulences Propwash',
50
+ tierUnderpoweredTitle: 'Sous Motorise ou Risque de Derive au Vent',
51
+ tierUnderpoweredDesc: 'TWR inferieur a 2 pour 1 insuffisant pour rattraper les chutes rapides. Adapte uniquement au vol interieur calme.',
52
+ tierCinematicTitle: 'Vol Cinematique Fluide',
53
+ tierCinematicDesc: 'TWR entre 2 pour 1 et 4 pour 1 assurant un controle souple des gaz et des prises de vue stables.',
54
+ tierFreestyleTitle: 'Freestyle Sportif et Agile',
55
+ tierFreestyleDesc: 'TWR entre 4 pour 1 et 8 pour 1 offrant des reponses vives et de bonnes reprises acrobatiques.',
56
+ tierAcroProTitle: 'Acrobatie Haute Performance et Freestyle Bando',
57
+ tierAcroProDesc: 'TWR entre 8 pour 1 et 13 pour 1 delivrant des accelerations explosives et une annulation nette du propwash.',
58
+ tierRacingExtremeTitle: 'Course de Drones Extreme',
59
+ tierRacingExtremeDesc: 'TWR superieur a 13 pour 1 fournissant la puissance necessaire aux circuits de competition FPV.',
60
+ hudThrustCurveTitle: 'Courbe de Reponse de Poussee Non Lineaire',
61
+ hudHoverMarker: 'Point Stationnaire',
62
+ hudCurrentStickMarker: 'Manette Actuelle',
63
+ hudGForceLabel: 'Forces G',
64
+ hudTiltAngleLabel: 'Angle Camera',
65
+ hudVectorPowerLabel: 'Telemetrie de Puissance en Direct',
66
+ };
67
+
68
+ const faqItems = [
69
+ {
70
+ question: 'Quel est le rapport poussee poids ideal pour un drone FPV freestyle?',
71
+ answer: 'Pour un quadcopter freestyle, un TWR compris entre 8 pour 1 et 12 pour 1 offre l acceleration requise pour arreter les plongeons et enchainer les figures sans vibration.',
72
+ },
73
+ {
74
+ question: 'Comment la courbe non lineaire des gaz influence le vol stationnaire?',
75
+ answer: 'Les moteurs brushless generent une poussee proportionnelle au carre de la vitesse de rotation. Le point de stationnaire se situe generalement entre 20 et 35 pour cent de gaz.',
76
+ },
77
+ {
78
+ question: 'Pourquoi l angle de camera FPV depend du rapport poussee poids?',
79
+ answer: 'Les drones puissants volent vite avec une inclinaison vers l avant prononcee. Pour maintenir l horizon au centre du casque FPV, les pilotes inclinent la camera de 35 a 50 degres.',
80
+ },
81
+ {
82
+ question: 'Quel est l impact du nombre de pales de l helice sur le pilotage?',
83
+ answer: 'Les bipales offrent une excellente autonomie et vitesse de pointe. Les tripales sont la reference pour le freestyle, tandis que les quadripales maximisent l accroche en virage serre.',
84
+ },
85
+ ];
86
+
87
+ const howToSteps = [
88
+ {
89
+ name: 'Saisir le poids du drone ou choisir un profil',
90
+ text: 'Indiquez la masse totale en ordre de vol en grammes comprenant la batterie et la camera.',
91
+ },
92
+ {
93
+ name: 'Configurer les moteurs et les helices',
94
+ text: 'Renseignez le nombre de moteurs, de pales et la poussee maximale au banc a 100 pour cent de gaz.',
95
+ },
96
+ {
97
+ name: 'Ajuster la manette des gaz en direct',
98
+ text: 'Deplacez le curseur de gaz pour observer la poussee resultante, les forces G et la position sur la courbe de puissance.',
99
+ },
100
+ ];
101
+
102
+ const seoSections: SEOSection[] = [
103
+ {
104
+ type: 'title',
105
+ text: 'Aerodynamique du Rapport Poussee Poids en Drone FPV',
106
+ level: 2,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Le rapport poussee poids (TWR) conditionne l acceleration et la reactivite des multirotors. En freestyle et course FPV, une reserve de puissance suffisante permet aux pilotes d arreter des plongeons a vitesse maximale et de manœuvrer avec precision.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Classification des Drones FPV et Performances Types',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Plateforme', 'Masse AUW Typique', 'TWR Cible', 'Gaz en Stationnaire', 'Acceleration 0 a 100', 'Inclinaison Camera'],
120
+ rows: [
121
+ ['1S TinyWhoop (65mm)', '32g', '4.5 pour 1', '35 pour cent', '1.20 s', '15 deg a 25 deg'],
122
+ ['4S Freestyle 3.5"', '250g', '12.0 pour 1', '24 pour cent', '0.28 s', '35 deg a 45 deg'],
123
+ ['6S Freestyle 5" Pro', '680g', '11.5 pour 1', '25 pour cent', '0.30 s', '35 deg a 50 deg'],
124
+ ['6S Mountain LR 7"', '1150g', '8.3 pour 1', '30 pour cent', '0.45 s', '20 deg a 30 deg'],
125
+ ['8S Cinelifter X8', '4200g', '6.1 pour 1', '38 pour cent', '0.70 s', '15 deg a 25 deg'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Reponse Non Lineaire des Moteurs et Courbes de Poussee',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: 'Les moteurs electriques developpent leur poussee de maniere exponentielle. Les 20 derniers pour cent de course de gaz delivrent plus de 40 pour cent de la force totale disponible.',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ 'Zone de stationnaire (20 a 35 pour cent): Precision fine pour le vol rasant.',
141
+ 'Zone de croisiere (35 a 65 pour cent): Vol translate fluide avec consommation moderee.',
142
+ 'Zone de plein gaz (70 a 100 pour cent): Forte acceleration verticale avec forces G elevees.',
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Choix des Helices et Parametrage Betaflight',
148
+ level: 2,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Pour les configurations avec un TWR superieur a 10 pour 1, il est recommande d activer la fonction Throttle PID Attenuation (TPA) dans Betaflight pour eviter les oscillations a plein gaz.',
153
+ },
154
+ {
155
+ type: 'tip',
156
+ title: 'Conseil de Reglage Betaflight TPA',
157
+ html: 'Definissez le seuil TPA a 1250 ou 1350 avec une attenuation de 0.65 afin de preserver la fluidite en ligne droite rapide.',
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
+ };
@@ -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 = 'kalkulator-rasio-daya-dorong-terhadap-berat-drone-fpv';
7
+ const title = 'Kalkulator Rasio Daya Dorong Terhadap Berat dan Telemetri Terbang Drone FPV';
8
+ const description = 'Hitung gaya dorong statis maksimum, kurva respons throttle non-linear, gaya G vertikal, titik hover, dan akselerasi 0 ke 100 untuk drone FPV.';
9
+
10
+ const ui = {
11
+ title: 'Kalkulator Rasio Daya Dorong Terhadap Berat Drone FPV',
12
+ subtitle: 'Analisis kurva dorong, respons throttle langsung, gaya G vertikal, dan klasifikasi kelincahan',
13
+ presetsHeader: 'Profil Siap Pakai',
14
+ customPreset: 'Kustom',
15
+ whoop1sPreset: '1S TinyWhoop (65mm)',
16
+ freestyle35Preset: '4S Freestyle 3.5 Inci',
17
+ freestyle5Preset: '6S Freestyle 5 Inci Pro',
18
+ longrange7Preset: '6S Mountain LR 7 Inci',
19
+ cinelifter8Preset: '8S Cinelifter Berat X8',
20
+ specsHeader: 'Spesifikasi Drone dan Penggerak',
21
+ auwGramsLabel: 'Berat Total dengan Baterai (g)',
22
+ motorCountLabel: 'Konfigurasi Motor',
23
+ thrustPerMotorLabel: 'Daya Dorong Maksimum per Motor (g)',
24
+ propellerSizeLabel: 'Diameter Baling-baling (inci)',
25
+ propellerPitchLabel: 'Pitch Baling-baling (inci)',
26
+ bladeCountLabel: 'Jumlah Bilah Baling-baling',
27
+ blade2Option: '2 Bilah (Bibilah - Efisiensi Maksimal)',
28
+ blade3Option: '3 Bilah (Tribilah - Standar Freestyle)',
29
+ blade4Option: '4 Bilah (Caturwilah - Cengkeraman Maksimal)',
30
+ throttleStickHeader: 'Simulator Tuas Throttle Langsung',
31
+ throttleStickLabel: 'Posisi Tuas Throttle (%)',
32
+ snapIdleLabel: 'Idle (0%)',
33
+ snapHoverLabel: 'Titik Hover',
34
+ snapCruiseLabel: 'Jelajah (50%)',
35
+ snapPunchLabel: 'Throttle Penuh (100%)',
36
+ telemetryHeader: 'Telemetri Terbang FPV dan Diagnostik',
37
+ twrRatioLabel: 'Rasio Daya Dorong ke Berat (TWR)',
38
+ hoverThrottleLabel: 'Posisi Throttle Saat Hover',
39
+ currentThrustLabel: 'Daya Dorong Saat Ini',
40
+ instantGForceLabel: 'Gaya G Vertikal Instan',
41
+ zeroToHundredLabel: 'Waktu Akselerasi 0 ke 100 km/j',
42
+ recommendedCamAngleLabel: 'Sudut Kamera FPV Disarankan',
43
+ windResistanceLabel: 'Batas Hambatan Angin',
44
+ totalMaxThrustLabel: 'Total Daya Dorong Statis Maksimal',
45
+ maxPitchAngleLabel: 'Sudut Kemiringan Maksimal',
46
+ tuningHeader: 'Rekomendasi Setelan Betaflight dan PID',
47
+ tpaRecommendationLabel: 'Atenuasi PID Throttle (TPA)',
48
+ dynamicIdleLabel: 'Rekomendasi Dynamic Idle',
49
+ propwashRiskLabel: 'Otoritas Kontrol Propwash',
50
+ tierUnderpoweredTitle: 'Kurang Tenaga atau Risiko Terbawa Angin',
51
+ tierUnderpoweredDesc: 'TWR di bawah 2 banding 1 tidak cukup kuat untuk menahan penurunan cepat. Hanya cocok untuk dalam ruangan tenang.',
52
+ tierCinematicTitle: 'Penerbangan Sinematik Halus',
53
+ tierCinematicDesc: 'TWR antara 2 banding 1 hingga 4 banding 1 memberikan kendali throttle mulus untuk rekaman video stabil.',
54
+ tierFreestyleTitle: 'Freestyle Sporty dan Lincah',
55
+ tierFreestyleDesc: 'TWR antara 4 banding 1 hingga 8 banding 1 menghasilkan respons cepat dan manuver akrobatik bersih.',
56
+ tierAcroProTitle: 'Akrobatik Performa Tinggi dan Freestyle Bando',
57
+ tierAcroProDesc: 'TWR antara 8 banding 1 hingga 13 banding 1 memberikan akselerasi vertikal eksplosif dan redaman propwash instan.',
58
+ tierRacingExtremeTitle: 'Balap Drone FPV Ekstrem',
59
+ tierRacingExtremeDesc: 'TWR di atas 13 banding 1 menghasilkan tenaga luar biasa untuk sirkuit balap kompetitif.',
60
+ hudThrustCurveTitle: 'Kurva Respons Daya Dorong Non-Linear',
61
+ hudHoverMarker: 'Titik Hover',
62
+ hudCurrentStickMarker: 'Tuas Saat Ini',
63
+ hudGForceLabel: 'Gaya G',
64
+ hudTiltAngleLabel: 'Sudut Kamera',
65
+ hudVectorPowerLabel: 'Telemetri Daya Langsung',
66
+ };
67
+
68
+ const faqItems = [
69
+ {
70
+ question: 'Berapa rasio daya dorong terhadap berat yang ideal untuk drone freestyle FPV?',
71
+ answer: 'Untuk drone freestyle, TWR antara 8 banding 1 hingga 12 banding 1 memberikan akselerasi eksplosif yang diperlukan untuk menahan dive dan bermanuver tajam.',
72
+ },
73
+ {
74
+ question: 'Bagaimana kurva throttle non-linear memengaruhi kemampuan hover?',
75
+ answer: 'Motor brushless menghasilkan daya dorong sebanding dengan kuadrat putaran RPM. Pada drone bertenaga tinggi titik hover biasanya berada di kisaran 20 hingga 35 persen tuas.',
76
+ },
77
+ {
78
+ question: 'Mengapa sudut kamera FPV bergantung pada rasio daya dorong?',
79
+ answer: 'Drone dengan TWR tinggi melaju lebih cepat dengan sudut condong ke depan yang lebih curam. Pilot memiringkan kamera 35 hingga 50 derajat agar horizon tetap berada di tengah kacamata.',
80
+ },
81
+ {
82
+ question: 'Bagaimana jumlah bilah baling-baling memengaruhi sensasi terbang?',
83
+ answer: 'Baling-baling 2 bilah memberikan waktu terbang terlama dan kecepatan puncak tinggi. 3 bilah adalah standar seimbang untuk freestyle, sedangkan 4 bilah memberi cengkeraman maksimal di tikungan.',
84
+ },
85
+ ];
86
+
87
+ const howToSteps = [
88
+ {
89
+ name: 'Masukkan berat drone atau pilih profil',
90
+ text: 'Isi total berat siap terbang dalam gram termasuk baterai dan kamera aksi.',
91
+ },
92
+ {
93
+ name: 'Konfigurasikan motor dan baling-baling',
94
+ text: 'Tentukan jumlah motor, bilah, dan data dorong statis maksimal dari pabrikan.',
95
+ },
96
+ {
97
+ name: 'Atur simulator tuas throttle langsung',
98
+ text: 'Geser tuas throttle untuk melihat daya dorong yang dihasilkan, gaya G, dan posisi pada kurva tenaga.',
99
+ },
100
+ ];
101
+
102
+ const seoSections: SEOSection[] = [
103
+ {
104
+ type: 'title',
105
+ text: 'Aerodinamika Rasio Daya Dorong Terhadap Berat Drone FPV',
106
+ level: 2,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Rasio daya dorong terhadap berat (TWR) menentukan akselerasi dan kelincahan terbang multirotor. Pada freestyle dan balap FPV, cadangan daya yang memadai memungkinkan pilot menghentikan dive bebas dan bermanuver di celah sempit dengan presisi.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Klasifikasi Drone FPV dan Tolok Ukur Kinerja',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Platform', 'Berat AUW Tipikal', 'Target TWR', 'Throttle Saat Hover', 'Akselerasi 0 ke 100', 'Sudut Kamera'],
120
+ rows: [
121
+ ['1S TinyWhoop (65mm)', '32g', '4.5 banding 1', '35 persen', '1.20 s', '15 hingga 25 derajat'],
122
+ ['4S Freestyle 3.5"', '250g', '12.0 banding 1', '24 persen', '0.28 s', '35 hingga 45 derajat'],
123
+ ['6S Freestyle 5" Pro', '680g', '11.5 banding 1', '25 persen', '0.30 s', '35 hingga 50 derajat'],
124
+ ['6S Mountain LR 7"', '1150g', '8.3 banding 1', '30 persen', '0.45 s', '20 hingga 30 derajat'],
125
+ ['8S Cinelifter X8', '4200g', '6.1 banding 1', '38 persen', '0.70 s', '15 hingga 25 derajat'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Respons Throttle Non-Linear dan Karakteristik Motor',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: 'Motor listrik menghasilkan gaya dorong secara eksponensial. Rentang 20 persen teratas dari pergerakan tuas throttle menghasilkan lebih dari 40 persen total daya dorong yang tersedia.',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ 'Zona hover (20 hingga 35 persen): Resolusi halus untuk kendali posisi dekat tanah.',
141
+ 'Zona jelajah (35 hingga 65 persen): Penerbangan maju stabil dengan konsumsi daya efisien.',
142
+ 'Zona throttle penuh (70 hingga 100 persen): Akselerasi vertikal maksimal dengan gaya G tinggi.',
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Pemilihan Baling-baling dan Penyetelan Betaflight',
148
+ level: 2,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Untuk drone dengan TWR di atas 10 banding 1, disarankan mengaktifkan Throttle PID Attenuation (TPA) pada Betaflight guna mencegah osilasi motor pada kecepatan tinggi.',
153
+ },
154
+ {
155
+ type: 'tip',
156
+ title: 'Tips Penyetelan Betaflight TPA',
157
+ html: 'Atur breakpoint TPA pada 1250 atau 1350 dengan nilai atenuasi 0.65 untuk menghilangkan getaran pada tarikan throttle penuh.',
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: 'USD',
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
+ };
@@ -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 = 'calcolatore-rapporto-spinta-peso-drone-fpv';
7
+ const title = 'Calcolatore Rapporto Spinta Peso e Telemetria di Volo Drone FPV';
8
+ const description = 'Calcola spinta statica massima, curva del gas non lineare, forze G verticali, punto di hovering ed accelerazione 0 a 100 per droni FPV e multirotori.';
9
+
10
+ const ui = {
11
+ title: 'Calcolatore Rapporto Spinta Peso per Drone FPV',
12
+ subtitle: 'Analizza curve di spinta, risposta del comando gas in tempo reale, forze G e categorie di volo',
13
+ presetsHeader: 'Profili Rapidi',
14
+ customPreset: 'Personalizzato',
15
+ whoop1sPreset: '1S TinyWhoop (65mm)',
16
+ freestyle35Preset: '4S Freestyle 3.5 Pollici',
17
+ freestyle5Preset: '6S Freestyle 5 Pollici Pro',
18
+ longrange7Preset: '6S Mountain LR 7 Pollici',
19
+ cinelifter8Preset: '8S Cinelifter Pesante X8',
20
+ specsHeader: 'Specifiche Drone e Propulsione',
21
+ auwGramsLabel: 'Peso Totale con Batteria (g)',
22
+ motorCountLabel: 'Configurazione Motori',
23
+ thrustPerMotorLabel: 'Spinta Statica Massima per Motore (g)',
24
+ propellerSizeLabel: 'Diametro Elica (pollici)',
25
+ propellerPitchLabel: 'Passo Elica (pollici)',
26
+ bladeCountLabel: 'Numero di Pale',
27
+ blade2Option: '2 Pale (Bipala - Massima Efficienza)',
28
+ blade3Option: '3 Pale (Tripala - Standard Freestyle)',
29
+ blade4Option: '4 Pale (Quadripala - Massimo Grip)',
30
+ throttleStickHeader: 'Simulatore Comando Gas in Tempo Reale',
31
+ throttleStickLabel: 'Posizione Comando Gas (%)',
32
+ snapIdleLabel: 'Minimo (0%)',
33
+ snapHoverLabel: 'Hovering',
34
+ snapCruiseLabel: 'Crociera (50%)',
35
+ snapPunchLabel: 'Pieno Gas (100%)',
36
+ telemetryHeader: 'Telemetria di Volo FPV e Diagnostica',
37
+ twrRatioLabel: 'Rapporto Spinta Peso (TWR)',
38
+ hoverThrottleLabel: 'Punto di Gas in Hovering',
39
+ currentThrustLabel: 'Spinta Attuale Erogata',
40
+ instantGForceLabel: 'Forza G Verticale Istantanea',
41
+ zeroToHundredLabel: 'Tempo 0 a 100 km/h in Punch',
42
+ recommendedCamAngleLabel: 'Inclinazione Telecamera FPV Consigliata',
43
+ windResistanceLabel: 'Velocità di Penetrazione del Vento',
44
+ totalMaxThrustLabel: 'Spinta Statica Totale Massima',
45
+ maxPitchAngleLabel: 'Angolo Massimo di Inclinazione',
46
+ tuningHeader: 'Raccomandazioni di Regolazione Betaflight e PID',
47
+ tpaRecommendationLabel: 'Attenuazione PID del Gas (TPA)',
48
+ dynamicIdleLabel: 'Minimo Dinamico Consigliato',
49
+ propwashRiskLabel: 'Autorità Controllo Propwash',
50
+ tierUnderpoweredTitle: 'Sottomotorizzato o Rischio Deriva da Vento',
51
+ tierUnderpoweredDesc: 'TWR inferiore a 2 a 1 non garantisce autorità sufficiente per arrestare discese rapide. Consigliato solo per interni calmi.',
52
+ tierCinematicTitle: 'Volo Cinematico Fluido',
53
+ tierCinematicDesc: 'TWR tra 2 a 1 e 4 a 1 assicura un controllo morbido del gas e riprese video stabili.',
54
+ tierFreestyleTitle: 'Freestyle Sportivo e Agile',
55
+ tierFreestyleDesc: 'TWR tra 4 a 1 e 8 a 1 offre risposte scattanti e ottime manovre acrobatiche.',
56
+ tierAcroProTitle: 'Acrobazia ad Alte Prestazioni e Freestyle Bando',
57
+ tierAcroProDesc: 'TWR tra 8 a 1 e 13 a 1 garantisce accelerazioni verticali fulminee e annullamento istantaneo del propwash.',
58
+ tierRacingExtremeTitle: 'Gare di Droni Estreme',
59
+ tierRacingExtremeDesc: 'TWR superiore a 13 a 1 fornisce la potenza necessaria per i circuiti da competizione professionale FPV.',
60
+ hudThrustCurveTitle: 'Curva di Risposta di Spinta Non Lineare',
61
+ hudHoverMarker: 'Punto Hovering',
62
+ hudCurrentStickMarker: 'Comando Attuale',
63
+ hudGForceLabel: 'Forze G',
64
+ hudTiltAngleLabel: 'Angolo Telecamera',
65
+ hudVectorPowerLabel: 'Telemetria di Potenza in Tempo Reale',
66
+ };
67
+
68
+ const faqItems = [
69
+ {
70
+ question: 'Quale rapporto spinta peso è ideale per un drone FPV freestyle?',
71
+ answer: 'Per droni freestyle, un TWR compreso tra 8 a 1 e 12 a 1 offre l accelerazione necessaria per arrestare tuffi in caduta libera e superare virate strette.',
72
+ },
73
+ {
74
+ question: 'Come influisce la curva non lineare del gas sul volo stazionario?',
75
+ answer: 'I motori brushless erogano spinta proporzionale al quadrato della velocità di rotazione. Il punto di hovering si colloca solitamente tra il 20 e il 35 per cento di corsa del gas.',
76
+ },
77
+ {
78
+ question: 'Perché l inclinazione della telecamera FPV dipende dalla spinta?',
79
+ answer: 'I droni più veloci volano con un assetto inclinato in avanti. Per mantenere l orizzonte centrato nel visore FPV, i piloti inclinano la telecamera tra 35 e 50 gradi.',
80
+ },
81
+ {
82
+ question: 'In che modo il numero di pale modifica il comportamento di volo?',
83
+ answer: 'Le eliche bipala massimizzano l autonomia e la velocità massima. Le tripala offrono il miglior equilibrio per il freestyle, mentre le quadripala aumentano l aderenza in curva.',
84
+ },
85
+ ];
86
+
87
+ const howToSteps = [
88
+ {
89
+ name: 'Inserire il peso del drone o scegliere un profilo',
90
+ text: 'Immetti il peso totale in ordine di volo inclusa la batteria e la telecamera in grammi.',
91
+ },
92
+ {
93
+ name: 'Configurare motori ed eliche',
94
+ text: 'Specifica il numero di motori, di pale e la spinta statica al banco dichiarata dal produttore.',
95
+ },
96
+ {
97
+ name: 'Regolare il comando gas in tempo reale',
98
+ text: 'Sposta il cursore del gas per visualizzare la spinta, le forze G e la posizione sulla curva di risposta.',
99
+ },
100
+ ];
101
+
102
+ const seoSections: SEOSection[] = [
103
+ {
104
+ type: 'title',
105
+ text: 'Aerodinamica del Rapporto Spinta Peso nei Droni FPV',
106
+ level: 2,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Il rapporto spinta peso (TWR) determina l accelerazione e la precisione di controllo nei droni multirotore. Nel volo acrobatico FPV, una riserva di potenza adeguata consente di recuperare manovre complesse con totale sicurezza.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Classificazione dei Droni FPV e Metriche di Riferimento',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Piattaforma', 'Peso AUW Tipico', 'TWR Obiettivo', 'Gas in Hovering', 'Accelerazione 0 a 100', 'Inclinazione Telecamera'],
120
+ rows: [
121
+ ['1S TinyWhoop (65mm)', '32g', '4.5 a 1', '35 per cento', '1.20 s', '15 deg a 25 deg'],
122
+ ['4S Freestyle 3.5"', '250g', '12.0 a 1', '24 per cento', '0.28 s', '35 deg a 45 deg'],
123
+ ['6S Freestyle 5" Pro', '680g', '11.5 a 1', '25 per cento', '0.30 s', '35 deg a 50 deg'],
124
+ ['6S Mountain LR 7"', '1150g', '8.3 a 1', '30 per cento', '0.45 s', '20 deg a 30 deg'],
125
+ ['8S Cinelifter X8', '4200g', '6.1 a 1', '38 per cento', '0.70 s', '15 deg a 25 deg'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Curva di Risposta Non Lineare e Dinamica dei Motori',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'paragraph',
135
+ html: 'I motori elettrici generano spinta con andamento esponenziale rispetto al comando. L ultimo 20 per cento di escursione del gas sviluppa oltre il 40 per cento della forza totale.',
136
+ },
137
+ {
138
+ type: 'list',
139
+ items: [
140
+ 'Zona di hovering (20 a 35 per cento): Controllo fine per passaggi ravvicinati.',
141
+ 'Zona di crociera (35 a 65 per cento): Volo rettilineo equilibrato con consumi contenuti.',
142
+ 'Zona di pieno gas (70 a 100 per cento): Massima spinta verticale con forze G elevate.',
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Scelta delle Eliche e Sintonizzazione Betaflight',
148
+ level: 2,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Per droni con TWR superiore a 10 a 1 è opportuno abilitare la funzione Throttle PID Attenuation (TPA) in Betaflight per prevenire oscillazioni a pieno gas.',
153
+ },
154
+ {
155
+ type: 'tip',
156
+ title: 'Consiglio di Regolazione Betaflight TPA',
157
+ html: 'Imposta la soglia TPA a 1250 o 1350 con fattore 0.65 per garantire stabilità e assenza di vibrazioni ad alta velocità.',
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
+ };