@jjlmoya/utils-drones 1.29.0 → 1.31.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 (44) 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/index.ts +1 -1
  5. package/src/tests/locale_completeness.test.ts +1 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/drone-flight-time/i18n/ja.ts +16 -16
  8. package/src/tool/drone-flight-time/i18n/nl.ts +16 -16
  9. package/src/tool/drone-flight-time/i18n/pl.ts +16 -16
  10. package/src/tool/drone-flight-time/i18n/pt.ts +16 -16
  11. package/src/tool/drone-flight-time/i18n/ru.ts +16 -16
  12. package/src/tool/drone-flight-time/i18n/sv.ts +16 -16
  13. package/src/tool/drone-flight-time/i18n/tr.ts +16 -16
  14. package/src/tool/drone-flight-time/i18n/zh.ts +16 -16
  15. package/src/tool/drone-motor-propeller-calculator/bibliography.astro +6 -0
  16. package/src/tool/drone-motor-propeller-calculator/bibliography.ts +12 -0
  17. package/src/tool/drone-motor-propeller-calculator/component.astro +109 -0
  18. package/src/tool/drone-motor-propeller-calculator/controller.ts +174 -0
  19. package/src/tool/drone-motor-propeller-calculator/dom-views.ts +78 -0
  20. package/src/tool/drone-motor-propeller-calculator/drone-motor-propeller-calculator.css +562 -0
  21. package/src/tool/drone-motor-propeller-calculator/entry.ts +27 -0
  22. package/src/tool/drone-motor-propeller-calculator/evaluator.ts +14 -0
  23. package/src/tool/drone-motor-propeller-calculator/i18n/de.ts +202 -0
  24. package/src/tool/drone-motor-propeller-calculator/i18n/en.ts +202 -0
  25. package/src/tool/drone-motor-propeller-calculator/i18n/es.ts +202 -0
  26. package/src/tool/drone-motor-propeller-calculator/i18n/fr.ts +202 -0
  27. package/src/tool/drone-motor-propeller-calculator/i18n/id.ts +192 -0
  28. package/src/tool/drone-motor-propeller-calculator/i18n/it.ts +192 -0
  29. package/src/tool/drone-motor-propeller-calculator/i18n/ja.ts +192 -0
  30. package/src/tool/drone-motor-propeller-calculator/i18n/ko.ts +192 -0
  31. package/src/tool/drone-motor-propeller-calculator/i18n/nl.ts +192 -0
  32. package/src/tool/drone-motor-propeller-calculator/i18n/pl.ts +192 -0
  33. package/src/tool/drone-motor-propeller-calculator/i18n/pt.ts +192 -0
  34. package/src/tool/drone-motor-propeller-calculator/i18n/ru.ts +192 -0
  35. package/src/tool/drone-motor-propeller-calculator/i18n/sv.ts +192 -0
  36. package/src/tool/drone-motor-propeller-calculator/i18n/tr.ts +192 -0
  37. package/src/tool/drone-motor-propeller-calculator/i18n/zh.ts +192 -0
  38. package/src/tool/drone-motor-propeller-calculator/index.ts +11 -0
  39. package/src/tool/drone-motor-propeller-calculator/logic.test.ts +56 -0
  40. package/src/tool/drone-motor-propeller-calculator/logic.ts +108 -0
  41. package/src/tool/drone-motor-propeller-calculator/seo.astro +12 -0
  42. package/src/tool/drone-motor-propeller-calculator/storage.ts +26 -0
  43. package/src/tool/drone-motor-propeller-calculator/ui.ts +55 -0
  44. package/src/tools.ts +3 -0
@@ -0,0 +1,202 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SEOSection } from '../../../types';
3
+ import type { DroneMotorPropellerLocaleContent } from '../entry';
4
+ import { BIBLIOGRAPHY_ITEMS } from '../bibliography';
5
+
6
+ const slug = 'drohne-motor-propeller-rechner';
7
+ const title = 'Drohnen Motor und Propeller Rechner';
8
+ const description = 'Schätzen Sie Schub, Drehzahl unter Last, Strahlgeschwindigkeit, Leistung und Stromstärke von Drohnenmotoren aus KV, Akkuspannung, Propellergeometrie und Fluggewicht.';
9
+
10
+ const ui = {
11
+ presetsHeader: 'Flugprofil wählen',
12
+ presetTinyCruiser: 'Leichter Micro Cruiser 3.5 Zoll',
13
+ presetFreestyle: 'Five Inch Freestyle',
14
+ presetLongRange: 'Seven Inch Long Range',
15
+ presetCinelifter: 'Cinelifter 8 Motoren',
16
+ unitHeader: 'Anzeigeeinheiten',
17
+ metricUnit: 'Metrisch',
18
+ imperialUnit: 'Imperial',
19
+ setupHeader: 'Antrieb und Rahmen',
20
+ motorKvLabel: 'Motor KV (U/min/V)',
21
+ batteryVoltageLabel: 'Akkuspannung',
22
+ propDiameterLabel: 'Propellerdurchmesser',
23
+ propPitchLabel: 'Propellersteigung',
24
+ bladeCountLabel: 'Blattanzahl',
25
+ motorCountLabel: 'Motoranzahl',
26
+ droneWeightLabel: 'Abfluggewicht (RTV)',
27
+ benchDataHeader: 'Hersteller Messpunkt',
28
+ benchThrustLabel: 'Schub pro Motor',
29
+ benchVoltageLabel: 'Testspannung',
30
+ optionalLabel: 'Optional',
31
+ twoBlades: '2 Blätter',
32
+ threeBlades: '3 Blätter',
33
+ fourBlades: '4 Blätter',
34
+ twoMotors: '2 Motoren',
35
+ fourMotors: '4 Motoren',
36
+ sixMotors: '6 Motoren',
37
+ eightMotors: '8 Motoren',
38
+ resultsHeader: 'Schub und Auftriebsbilanz',
39
+ estimatedLabel: 'Reine Physikberechnung.',
40
+ benchBasedLabel: 'Skaliert nach Messpunkt.',
41
+ loadedRpmLabel: 'Drehzahl unter Last',
42
+ pitchSpeedLabel: 'Theoretische Strahlgeschwindigkeit',
43
+ thrustPerMotorLabel: 'Schub pro Motor',
44
+ totalThrustLabel: 'Gesamter Statischer Schub',
45
+ totalPowerLabel: 'Geschätzte Leistung',
46
+ totalCurrentLabel: 'Geschätzte Stromstärke',
47
+ thrustMarginLabel: 'Auftriebsreserve',
48
+ hoverThrottleLabel: 'Schwebegas',
49
+ sceneCaption: 'Propellerdrehzahl unter Last',
50
+ underpoweredStatus: 'Geringe Reserve',
51
+ workableStatus: 'Brauchbare Reserve',
52
+ headroomStatus: 'Starke Reserve',
53
+ underpoweredAdvice: 'Das Setup bietet weniger als das doppelte Fluggewicht an Schub. Erwarten Sie begrenzte Abfangfähigkeit und wenig Spielraum bei Wind oder Voltage Sag.',
54
+ workableAdvice: 'Praktische Reserve für normalen Flug. Überprüfen Sie die Temperatur von Motor und ESC nach längerem Schwebeflug.',
55
+ headroomAdvice: 'Großzügige statische Auftriebsreserve. Erhöht die Steuerautorität, kann jedoch höhere Ströme fordern.',
56
+ sourceNote: 'Ein Messpunkt kalibriert nur den Schub. Leistung und Strom bleiben Modellwerte.',
57
+ modelSourceNote: 'Kein Messpunkt. Schub nutzt das transparente Koeffizientenmodell.',
58
+ manufacturerNote: 'Verwenden Sie nach Möglichkeit Messwerte desselben Motors mit Propeller und Spannung.',
59
+ modelNote: 'Statischer Schub, Strom und Leistung sind Schätzungen. Reale Ergebnisse hängen von Luftdichte, Motorverlusten und Voltage Sag ab.',
60
+ safetyNote: 'Nutzen Sie diesen Rechner nie als Ersatz für einen echten Schubprüfstand. Prüfen Sie Leistungsgrenzen vor dem Flug.',
61
+ thrustAxisLabel: 'Schubrichtung',
62
+ weightAxisLabel: 'Drohnengewicht',
63
+ clearBenchData: 'Messpunkt löschen',
64
+ };
65
+
66
+ const faq = [
67
+ {
68
+ question: 'Was berechnet dieser Drohnenmotor und Propeller Rechner?',
69
+ answer: 'Er schätzt Drehzahl unter Last, Strahlgeschwindigkeit, Schub pro Motor, Gesamt Statikschub, Leistung und Stromverbrauch basierend auf KV, Akkuspannung, Propellermaßen, Motoranzahl und Fluggewicht.',
70
+ },
71
+ {
72
+ question: 'Wie passe ich Drohnenmotor und Propeller optimal aneinander an?',
73
+ answer: 'Starten Sie mit den Herstellempfehlungen für KV und Propellergröße. Vergleichen Sie den Gesamtschub mit dem Abfluggewicht und prüfen Sie Strom und Temperatur auf dem Prüfstand.',
74
+ },
75
+ {
76
+ question: 'Warum ist ein Hersteller Messpunkt genauer als das reine Physikmodell?',
77
+ answer: 'Ein Messpunkt berücksichtigt die reale Propellergeometrie und Verluste. Der Rechner skaliert diesen Wert auf die gewählte Spannung.',
78
+ },
79
+ {
80
+ question: 'Wie wirkt sich die Propellergröße auf den Schub aus?',
81
+ answer: 'Der statische Schub hängt stark vom Durchmesser und der Drehzahl ab. Ein größerer Propeller bewegt mehr Luft, erfordert jedoch mehr Drehmoment vom Motor.',
82
+ },
83
+ {
84
+ question: 'Ersetzt der Rechner einen realen Teststand?',
85
+ answer: 'Nein. Er dient als Planungshilfe. Prüfen Sie Strom, Temperatur und Schub auf einem Teststand vor dem Erstflug.',
86
+ },
87
+ ];
88
+
89
+ const howTo = [
90
+ {
91
+ name: 'Flugprofil auswählen',
92
+ text: 'Wählen Sie eine Voreinstellung, um passende Startwerte für KV, Spannung, Propeller und Gewicht zu laden.',
93
+ },
94
+ {
95
+ name: 'Antriebs und Rahmendaten eingeben',
96
+ text: 'Geben Sie Abfluggewicht sowie Motor und Propellerspezifikationen ein. Wechseln Sie nach Bedarf zwischen metrisch und imperial.',
97
+ },
98
+ {
99
+ name: 'Messpunkt hinzufügen',
100
+ text: 'Wenn Messdaten vorliegen, tragen Sie Schub und Testspannung ein, um das Modell zu kalibrieren.',
101
+ },
102
+ ];
103
+
104
+ const seo: SEOSection[] = [
105
+ {
106
+ type: 'title',
107
+ text: 'Funktionsweise der Abstimmung von Drohnenmotor und Propeller',
108
+ level: 2,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'Die Abstimmung von Motor und Propeller ist ein Balanceakt zwischen Drehzahl, Durchmesser, Steigung, Blattanzahl und Akkuspannung. Dieser Rechner ermittelt den statischen Schub und die elektrische Belastung, um die Reserve vor dem Kauf zu bewerten.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Angezeigte Ergebnisse',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'table',
121
+ headers: ['Ergebnis', 'Bedeutung'],
122
+ rows: [
123
+ ['Drehzahl unter Last', 'KV Leerlaufschätzung reduziert um einen Lastfaktor'],
124
+ ['Statischer Schub', 'Schub pro Motor und Gesamtschub aller Motoren'],
125
+ ['Auftriebsreserve', 'Gesamtschub im Vergleich zum Abfluggewicht'],
126
+ ['Leistung und Strom', 'Geschätzter elektrischer Bedarf für die gewählte Akkuspannung'],
127
+ ],
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'So nutzen Sie den Rechner',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ 'Motor KV und Akkuspannung eingeben.',
138
+ 'Propellerdurchmesser, Steigung, Blatt und Motoranzahl festlegen.',
139
+ 'Optional Messpunkte vom Prüfstand hinzufügen.',
140
+ 'Ströme und Temperaturen vor dem Flug am Teststand überprüfen.',
141
+ ],
142
+ },
143
+ {
144
+ type: 'title',
145
+ text: 'Bedeutung von Messdaten',
146
+ level: 2,
147
+ },
148
+ {
149
+ type: 'paragraph',
150
+ html: 'Propellerschub hängt von der Luftdichte und Geometrie ab. Reale Prüfstandsdaten des Herstellers ermöglichen die genaueste Kalibrierung des Rechners.',
151
+ },
152
+ {
153
+ type: 'tip',
154
+ title: 'Testplan erstellen',
155
+ html: 'Starten Sie mit konservativen Werten, prüfen Sie Strom und Temperatur am Prüfstand bei voller und teilentladener Batterie.',
156
+ },
157
+ ];
158
+
159
+ const schemas: DroneMotorPropellerLocaleContent['schemas'] = [
160
+ {
161
+ '@context': 'https://schema.org',
162
+ '@type': 'FAQPage',
163
+ mainEntity: faq.map((item) => ({
164
+ '@type': 'Question',
165
+ name: item.question,
166
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
167
+ })),
168
+ } as WithContext<FAQPage>,
169
+ {
170
+ '@context': 'https://schema.org',
171
+ '@type': 'HowTo',
172
+ name: title,
173
+ description,
174
+ step: howTo.map((step, index) => ({
175
+ '@type': 'HowToStep',
176
+ position: index + 1,
177
+ name: step.name,
178
+ text: step.text,
179
+ })),
180
+ } as WithContext<HowTo>,
181
+ {
182
+ '@context': 'https://schema.org',
183
+ '@type': 'SoftwareApplication',
184
+ name: title,
185
+ description,
186
+ applicationCategory: 'UtilityApplication',
187
+ operatingSystem: 'All',
188
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
189
+ } as WithContext<SoftwareApplication>,
190
+ ];
191
+
192
+ export const content: DroneMotorPropellerLocaleContent = {
193
+ slug,
194
+ title,
195
+ description,
196
+ ui,
197
+ seo,
198
+ faq,
199
+ bibliography: BIBLIOGRAPHY_ITEMS,
200
+ howTo,
201
+ schemas,
202
+ };
@@ -0,0 +1,202 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SEOSection } from '../../../types';
3
+ import type { DroneMotorPropellerLocaleContent } from '../entry';
4
+ import { BIBLIOGRAPHY_ITEMS } from '../bibliography';
5
+
6
+ const slug = 'drone-motor-propeller-calculator';
7
+ const title = 'Drone Motor and Propeller Calculator';
8
+ const description = 'Estimate drone motor thrust, loaded RPM, propeller speed, power and current from KV, battery voltage, propeller geometry and aircraft weight.';
9
+
10
+ const ui = {
11
+ presetsHeader: 'Start with a flight profile',
12
+ presetTinyCruiser: 'Tiny cruiser',
13
+ presetFreestyle: 'Five inch freestyle',
14
+ presetLongRange: 'Seven inch long range',
15
+ presetCinelifter: 'Eight motor cinelifter',
16
+ unitHeader: 'Display units',
17
+ metricUnit: 'Metric',
18
+ imperialUnit: 'Imperial',
19
+ setupHeader: 'Powertrain and airframe',
20
+ motorKvLabel: 'Motor KV (RPM/V)',
21
+ batteryVoltageLabel: 'Battery voltage',
22
+ propDiameterLabel: 'Propeller diameter',
23
+ propPitchLabel: 'Propeller pitch',
24
+ bladeCountLabel: 'Blade count',
25
+ motorCountLabel: 'Motor count',
26
+ droneWeightLabel: 'Ready to fly weight',
27
+ benchDataHeader: 'Manufacturer test point',
28
+ benchThrustLabel: 'Thrust per motor',
29
+ benchVoltageLabel: 'Test voltage',
30
+ optionalLabel: 'Optional',
31
+ twoBlades: '2 blades',
32
+ threeBlades: '3 blades',
33
+ fourBlades: '4 blades',
34
+ twoMotors: '2 motors',
35
+ fourMotors: '4 motors',
36
+ sixMotors: '6 motors',
37
+ eightMotors: '8 motors',
38
+ resultsHeader: 'The lift picture',
39
+ estimatedLabel: 'Physics estimate.',
40
+ benchBasedLabel: 'Bench point scaled.',
41
+ loadedRpmLabel: 'Loaded speed',
42
+ pitchSpeedLabel: 'Ideal pitch speed',
43
+ thrustPerMotorLabel: 'Thrust per motor',
44
+ totalThrustLabel: 'Total static thrust',
45
+ totalPowerLabel: 'Estimated power',
46
+ totalCurrentLabel: 'Estimated current',
47
+ thrustMarginLabel: 'Lift margin',
48
+ hoverThrottleLabel: 'Hover throttle',
49
+ sceneCaption: 'loaded propeller speed',
50
+ underpoweredStatus: 'Low margin',
51
+ workableStatus: 'Usable margin',
52
+ headroomStatus: 'Strong headroom',
53
+ underpoweredAdvice: 'The model leaves less than two times the aircraft weight available. Expect limited recovery authority and little room for wind or battery sag.',
54
+ workableAdvice: 'This setup has a practical reserve for normal flight. Check the motor and ESC temperature after a sustained hover before trusting the estimate.',
55
+ headroomAdvice: 'This setup has a generous static lift reserve. High reserve can improve control authority, but it can also demand more current and stress the powertrain.',
56
+ sourceNote: 'A manufacturer point calibrates thrust only. Power and current remain model estimates.',
57
+ modelSourceNote: 'No test point. Thrust uses the transparent coefficient model.',
58
+ manufacturerNote: 'Use a test point from the same motor, propeller and voltage whenever possible.',
59
+ modelNote: 'Static thrust, current and power are estimates. Real results depend on propeller design, air density, motor losses, ESC timing and battery sag.',
60
+ safetyNote: 'Never use this estimate as a substitute for a real thrust stand test. Confirm motor, ESC, battery and propeller limits before flight.',
61
+ thrustAxisLabel: 'Lift direction',
62
+ weightAxisLabel: 'Aircraft weight',
63
+ clearBenchData: 'Clear test point',
64
+ };
65
+
66
+ const faq = [
67
+ {
68
+ question: 'What does a drone motor thrust calculator estimate?',
69
+ answer: 'It estimates loaded motor RPM, ideal propeller pitch speed, thrust per motor, total static thrust, power and current from motor KV, battery voltage, propeller geometry, motor count and aircraft weight.',
70
+ },
71
+ {
72
+ question: 'How do I match a drone motor to a propeller?',
73
+ answer: 'Start with the motor KV, battery voltage and propeller size recommended by the manufacturer. Then compare total static thrust with ready to fly weight and verify current and temperature on a real thrust stand before flight.',
74
+ },
75
+ {
76
+ question: 'Why is a manufacturer thrust point better than a model estimate?',
77
+ answer: 'A manufacturer test point includes the real motor, propeller and test conditions. The calculator scales that point to the selected voltage and loaded RPM, while the coefficient model is a useful first pass when no test data is available.',
78
+ },
79
+ {
80
+ question: 'How does propeller size affect drone thrust?',
81
+ answer: 'Static thrust depends strongly on propeller diameter and rotational speed. A larger propeller can move more air, but it also demands more torque and power from the motor and ESC.',
82
+ },
83
+ {
84
+ question: 'Can this calculator confirm that a drone is safe to fly?',
85
+ answer: 'No. It is a planning estimate, not a safety certification. Verify real current, temperature, thrust and battery performance with a suitable test stand and follow the limits published by the component manufacturers.',
86
+ },
87
+ ];
88
+
89
+ const howTo = [
90
+ {
91
+ name: 'Choose a flight profile',
92
+ text: 'Select the closest preset to load sensible starting values for motor KV, battery voltage, propeller geometry, motor count and aircraft weight.',
93
+ },
94
+ {
95
+ name: 'Enter the airframe and propeller data',
96
+ text: 'Enter the ready to fly weight and the motor and propeller specifications. Switch between metric and imperial display units without changing the physical setup.',
97
+ },
98
+ {
99
+ name: 'Add a measured test point',
100
+ text: 'If you have manufacturer or thrust stand data, enter thrust per motor and its test voltage. The result will use that point instead of the generic thrust coefficient model.',
101
+ },
102
+ ];
103
+
104
+ const seo: SEOSection[] = [
105
+ {
106
+ type: 'title',
107
+ text: 'How Drone Motor and Propeller Matching Works',
108
+ level: 2,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'A motor and propeller pairing is a balance between rotational speed, propeller diameter, pitch, blade count, battery voltage and available torque. This drone motor thrust calculator turns those inputs into a readable first estimate of static lift and electrical demand. The lift picture compares total thrust with the ready to fly aircraft weight so you can see the reserve before buying or testing parts.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'What the Calculator Shows',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'table',
121
+ headers: ['Result', 'What it means'],
122
+ rows: [
123
+ ['Loaded speed', 'A no load KV estimate reduced by a simple loaded factor'],
124
+ ['Static thrust', 'Thrust per motor and total lift across the selected motor count'],
125
+ ['Lift margin', 'Total static thrust compared with ready to fly weight'],
126
+ ['Power and current', 'Estimated electrical demand for the selected battery voltage'],
127
+ ],
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'How to Use the Drone Motor Calculator',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ 'Enter motor KV and battery voltage to estimate loaded RPM and ideal pitch speed.',
138
+ 'Choose the propeller diameter, pitch, blade count, motor count and ready to fly weight.',
139
+ 'Add a thrust stand or manufacturer point from the same powertrain when available.',
140
+ 'Verify current, temperature and real thrust before flight because model outputs are not safety limits.',
141
+ ],
142
+ },
143
+ {
144
+ type: 'title',
145
+ text: 'Why Test Data Matters',
146
+ level: 2,
147
+ },
148
+ {
149
+ type: 'paragraph',
150
+ html: 'Propeller thrust is commonly expressed with a thrust coefficient that depends on air density, rotational speed and propeller diameter. Real propeller geometry and motor losses still matter, so a measured manufacturer point from the same powertrain is the most useful input. Entering that point lets the tool show a calibrated estimate while keeping the assumptions visible.',
151
+ },
152
+ {
153
+ type: 'tip',
154
+ title: 'Use the result as a test plan',
155
+ html: 'Start with the lowest risk preset, verify current and motor temperature on a thrust stand, then repeat the test with the battery fully charged and partly discharged. Treat any unexpected current spike or heat rise as a reason to stop.',
156
+ },
157
+ ];
158
+
159
+ const schemas: DroneMotorPropellerLocaleContent['schemas'] = [
160
+ {
161
+ '@context': 'https://schema.org',
162
+ '@type': 'FAQPage',
163
+ mainEntity: faq.map((item) => ({
164
+ '@type': 'Question',
165
+ name: item.question,
166
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
167
+ })),
168
+ } as WithContext<FAQPage>,
169
+ {
170
+ '@context': 'https://schema.org',
171
+ '@type': 'HowTo',
172
+ name: title,
173
+ description,
174
+ step: howTo.map((step, index) => ({
175
+ '@type': 'HowToStep',
176
+ position: index + 1,
177
+ name: step.name,
178
+ text: step.text,
179
+ })),
180
+ } as WithContext<HowTo>,
181
+ {
182
+ '@context': 'https://schema.org',
183
+ '@type': 'SoftwareApplication',
184
+ name: title,
185
+ description,
186
+ applicationCategory: 'UtilityApplication',
187
+ operatingSystem: 'All',
188
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
189
+ } as WithContext<SoftwareApplication>,
190
+ ];
191
+
192
+ export const content: DroneMotorPropellerLocaleContent = {
193
+ slug,
194
+ title,
195
+ description,
196
+ ui,
197
+ seo,
198
+ faq,
199
+ bibliography: BIBLIOGRAPHY_ITEMS,
200
+ howTo,
201
+ schemas,
202
+ };
@@ -0,0 +1,202 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SEOSection } from '../../../types';
3
+ import type { DroneMotorPropellerLocaleContent } from '../entry';
4
+ import { BIBLIOGRAPHY_ITEMS } from '../bibliography';
5
+
6
+ const slug = 'calculadora-empuje-motor-helices-dron';
7
+ const title = 'Calculadora de Empuje de Motor y Hélices para Drones';
8
+ const description = 'Calcula el empuje estático del motor, RPM bajo carga, velocidad de paso de hélice, potencia y consumo eléctrico según KV, voltaje de batería, geometría y peso del dron.';
9
+
10
+ const ui = {
11
+ presetsHeader: 'Elige un perfil de vuelo',
12
+ presetTinyCruiser: 'Crucero ligero 3.5 pulgadas',
13
+ presetFreestyle: 'Freestyle 5 pulgadas',
14
+ presetLongRange: 'Long range 7 pulgadas',
15
+ presetCinelifter: 'Cinelifter 8 motores',
16
+ unitHeader: 'Unidades de medida',
17
+ metricUnit: 'Métrico',
18
+ imperialUnit: 'Imperial',
19
+ setupHeader: 'Grupo motopropulsor y chasis',
20
+ motorKvLabel: 'Constante motor KV (RPM/V)',
21
+ batteryVoltageLabel: 'Voltaje de la batería',
22
+ propDiameterLabel: 'Diámetro de hélice',
23
+ propPitchLabel: 'Paso de la hélice',
24
+ bladeCountLabel: 'Número de palas',
25
+ motorCountLabel: 'Número de motores',
26
+ droneWeightLabel: 'Peso total en orden de vuelo',
27
+ benchDataHeader: 'Punto de prueba de fabricante',
28
+ benchThrustLabel: 'Empuje por motor',
29
+ benchVoltageLabel: 'Voltaje de prueba',
30
+ optionalLabel: 'Opcional',
31
+ twoBlades: '2 palas',
32
+ threeBlades: '3 palas',
33
+ fourBlades: '4 palas',
34
+ twoMotors: '2 motores',
35
+ fourMotors: '4 motores',
36
+ sixMotors: '6 motores',
37
+ eightMotors: '8 motores',
38
+ resultsHeader: 'Rendimiento y sustentación estática',
39
+ estimatedLabel: 'Estimación basada en física pura.',
40
+ benchBasedLabel: 'Ajustado con banco de pruebas.',
41
+ loadedRpmLabel: 'Velocidad en carga',
42
+ pitchSpeedLabel: 'Velocidad teórica de avance',
43
+ thrustPerMotorLabel: 'Empuje por motor',
44
+ totalThrustLabel: 'Empuje estático total',
45
+ totalPowerLabel: 'Potencia estimada',
46
+ totalCurrentLabel: 'Corriente estimada',
47
+ thrustMarginLabel: 'Margen de elevación',
48
+ hoverThrottleLabel: 'Acelerador en estacionario',
49
+ sceneCaption: 'velocidad de giro bajo carga',
50
+ underpoweredStatus: 'Margen escaso',
51
+ workableStatus: 'Margen operativo',
52
+ headroomStatus: 'Margen óptimo',
53
+ underpoweredAdvice: 'El empuje total no llega a duplicar el peso de la aeronave. La capacidad de recuperación en maniobras será limitada y habrá poco margen frente al viento o el sag de batería.',
54
+ workableAdvice: 'Configuración equilibrada para vuelo regular. Se recomienda verificar la temperatura de motores y variadores tras un estacionario prolongado antes de dar por definitivo el cálculo.',
55
+ headroomAdvice: 'Reserva de potencia amplia y excelente sustentación estática. Mejora la autoridad de control en maniobras exigentes, pero exige mayor corriente a los variadores.',
56
+ sourceNote: 'El punto de prueba calibra el empuje estático. La potencia y corriente siguen estimaciones teóricas.',
57
+ modelSourceNote: 'Sin datos de laboratorio. El empuje se calcula mediante el modelo físico de coeficientes.',
58
+ manufacturerNote: 'Utiliza preferentemente datos de banco medidos con el mismo motor, hélice y voltaje.',
59
+ modelNote: 'Los valores son estimaciones. El empuje real depende de la geometría de la hélice, densidad del aire, eficiencia del motor y caídas de voltaje.',
60
+ safetyNote: 'Esta calculadora ofrece una estimación de diseño. Comprueba siempre los límites de corriente de variadores y batería en banco de pruebas antes de volar.',
61
+ thrustAxisLabel: 'Dirección de empuje',
62
+ weightAxisLabel: 'Peso de la aeronave',
63
+ clearBenchData: 'Borrar punto de prueba',
64
+ };
65
+
66
+ const faq = [
67
+ {
68
+ question: '¿Qué calcula esta herramienta de empuje de motor y hélice para drones?',
69
+ answer: 'Estima las RPM reales bajo carga, la velocidad teórica de avance por paso, el empuje estático por motor, el empuje total, la potencia consumida y el amperaje requerido a partir de las KV, el voltaje, las dimensiones de la hélice y el peso en orden de vuelo.',
70
+ },
71
+ {
72
+ question: '¿Cómo elegir la combinación ideal de motor y hélice para mi dron?',
73
+ answer: 'Comienza consultando las especificaciones sugeridas por el fabricante para el tamaño de chasis. Relaciona el empuje total con el peso total asegurando un margen de sustentación adecuado y verifica la corriente máxima en banco antes de volar.',
74
+ },
75
+ {
76
+ question: '¿Por qué un punto de prueba de fabricante mejora el cálculo?',
77
+ answer: 'Los datos de banco de pruebas miden la respuesta real de una hélice específica con sus pérdidas aerodinámicas concretas. La herramienta escala esos datos al voltaje de tu batería, mientras que el modelo teórico sirve como primera aproximación.',
78
+ },
79
+ {
80
+ question: '¿Cómo influye el tamaño de la hélice en el empuje estático?',
81
+ answer: 'El empuje depende fuertemente del diámetro y la velocidad de rotación. Una hélice más grande desplaza más volumen de aire con mayor eficiencia, pero demanda más par motor y consumo a los variadores.',
82
+ },
83
+ {
84
+ question: '¿Sustituye esta calculadora las pruebas físicas en banco de ensayo?',
85
+ answer: 'No. Es una referencia teórica de diseño para proyectar componentes. Debes validar la corriente real, temperatura y empuje medido con instrumental adecuado antes del primer vuelo.',
86
+ },
87
+ ];
88
+
89
+ const howTo = [
90
+ {
91
+ name: 'Seleccionar un perfil de vuelo inicial',
92
+ text: 'Haz clic en el ajuste preestablecido más cercano a tu dron para cargar valores orientativos de KV, voltaje, hélice y peso.',
93
+ },
94
+ {
95
+ name: 'Configurar parámetros del grupo motopropulsor',
96
+ text: 'Introduce las KV del motor, voltaje de batería, diámetro, paso, número de palas, cantidad de motores y peso en orden de vuelo. Puedes alternar entre unidades métricas e imperiales.',
97
+ },
98
+ {
99
+ name: 'Añadir datos medidos en banco de pruebas',
100
+ text: 'Si dispones de una medición de laboratorio, indica el empuje por motor y el voltaje al que se obtuvo para recalibrar el modelo.',
101
+ },
102
+ ];
103
+
104
+ const seo: SEOSection[] = [
105
+ {
106
+ type: 'title',
107
+ text: 'Principios de empuje y acoplamiento motor hélice en multirrotores',
108
+ level: 2,
109
+ },
110
+ {
111
+ type: 'paragraph',
112
+ html: 'El rendimiento de un dron depende del equilibrio entre las revoluciones del motor, el diámetro de la hélice, el paso aerodinámico, el número de palas y el voltaje suministrado. Esta calculadora proyecta la sustentación estática y la exigencia eléctrica del conjunto motopropulsor para comparar el empuje resultante con el peso total de la aeronave antes de adquirir o montar los componentes.',
113
+ },
114
+ {
115
+ type: 'title',
116
+ text: 'Parámetros evaluados en el análisis',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'table',
121
+ headers: ['Métrica', 'Significado técnico'],
122
+ rows: [
123
+ ['Velocidad en carga', 'RPM estimadas aplicando el factor de carga sobre la constante KV teórica'],
124
+ ['Empuje estático', 'Fuerza de elevación por motor y empuje acumulado de todos los rotores'],
125
+ ['Margen de sustentación', 'Relación entre la fuerza ascensional total y el peso de la aeronave'],
126
+ ['Potencia y corriente', 'Demanda energética estimada para la configuración y voltaje seleccionados'],
127
+ ],
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'Pasos para calcular el empuje de tu dron',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ 'Introduce las KV del motor y el voltaje nominal de la batería para determinar las RPM bajo carga.',
138
+ 'Ajusta las dimensiones de la hélice, el número de palas, la cantidad de motores y el peso total.',
139
+ 'Si cuentas con datos de banco de pruebas del fabricante, introdúcelos para ajustar la precisión.',
140
+ 'Verifica los límites de amperaje de los variadores ESC y la batería antes del vuelo.',
141
+ ],
142
+ },
143
+ {
144
+ type: 'title',
145
+ text: 'Importancia de los datos de pruebas reales',
146
+ level: 2,
147
+ },
148
+ {
149
+ type: 'paragraph',
150
+ html: 'La constante de empuje de una hélice varía según la geometría de sus palas y la densidad del aire. Los modelos matemáticos ofrecen una gran orientación inicial, pero incorporar una medición real en banco permite escalar la curva de respuesta con mayor exactitud sin perder transparencia en las hipótesis del cálculo.',
151
+ },
152
+ {
153
+ type: 'tip',
154
+ title: 'Planificación de ensayos de seguridad',
155
+ html: 'Prueba la configuración en banco midiendo corriente y temperatura a diferentes niveles de acelerador. Si observas un incremento brusco de temperatura en el motor o variador, revisa el paso o diámetro de la hélice.',
156
+ },
157
+ ];
158
+
159
+ const schemas: DroneMotorPropellerLocaleContent['schemas'] = [
160
+ {
161
+ '@context': 'https://schema.org',
162
+ '@type': 'FAQPage',
163
+ mainEntity: faq.map((item) => ({
164
+ '@type': 'Question',
165
+ name: item.question,
166
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
167
+ })),
168
+ } as WithContext<FAQPage>,
169
+ {
170
+ '@context': 'https://schema.org',
171
+ '@type': 'HowTo',
172
+ name: title,
173
+ description,
174
+ step: howTo.map((step, index) => ({
175
+ '@type': 'HowToStep',
176
+ position: index + 1,
177
+ name: step.name,
178
+ text: step.text,
179
+ })),
180
+ } as WithContext<HowTo>,
181
+ {
182
+ '@context': 'https://schema.org',
183
+ '@type': 'SoftwareApplication',
184
+ name: title,
185
+ description,
186
+ applicationCategory: 'UtilityApplication',
187
+ operatingSystem: 'All',
188
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
189
+ } as WithContext<SoftwareApplication>,
190
+ ];
191
+
192
+ export const content: DroneMotorPropellerLocaleContent = {
193
+ slug,
194
+ title,
195
+ description,
196
+ ui,
197
+ seo,
198
+ faq,
199
+ bibliography: BIBLIOGRAPHY_ITEMS,
200
+ howTo,
201
+ schemas,
202
+ };