@jjlmoya/utils-drones 1.6.0 → 1.7.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 (68) hide show
  1. package/package.json +64 -63
  2. package/src/category/i18n/de.ts +106 -0
  3. package/src/category/i18n/id.ts +106 -0
  4. package/src/category/i18n/it.ts +106 -0
  5. package/src/category/i18n/ja.ts +106 -0
  6. package/src/category/i18n/ko.ts +106 -0
  7. package/src/category/i18n/nl.ts +106 -0
  8. package/src/category/i18n/pl.ts +106 -0
  9. package/src/category/i18n/pt.ts +106 -0
  10. package/src/category/i18n/ru.ts +106 -0
  11. package/src/category/i18n/sv.ts +106 -0
  12. package/src/category/i18n/tr.ts +106 -0
  13. package/src/category/i18n/zh.ts +106 -0
  14. package/src/category/index.ts +12 -0
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +2 -2
  18. package/src/tests/schemas_fulfillment.test.ts +23 -0
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tests/title_quality.test.ts +55 -0
  21. package/src/tool/antenna-length-calculator/i18n/de.ts +276 -0
  22. package/src/tool/antenna-length-calculator/i18n/en.ts +76 -38
  23. package/src/tool/antenna-length-calculator/i18n/es.ts +76 -38
  24. package/src/tool/antenna-length-calculator/i18n/fr.ts +76 -38
  25. package/src/tool/antenna-length-calculator/i18n/id.ts +242 -0
  26. package/src/tool/antenna-length-calculator/i18n/it.ts +276 -0
  27. package/src/tool/antenna-length-calculator/i18n/ja.ts +276 -0
  28. package/src/tool/antenna-length-calculator/i18n/ko.ts +276 -0
  29. package/src/tool/antenna-length-calculator/i18n/nl.ts +276 -0
  30. package/src/tool/antenna-length-calculator/i18n/pl.ts +276 -0
  31. package/src/tool/antenna-length-calculator/i18n/pt.ts +276 -0
  32. package/src/tool/antenna-length-calculator/i18n/ru.ts +276 -0
  33. package/src/tool/antenna-length-calculator/i18n/sv.ts +276 -0
  34. package/src/tool/antenna-length-calculator/i18n/tr.ts +276 -0
  35. package/src/tool/antenna-length-calculator/i18n/zh.ts +276 -0
  36. package/src/tool/antenna-length-calculator/index.ts +12 -0
  37. package/src/tool/drone-flight-time/i18n/de.ts +238 -0
  38. package/src/tool/drone-flight-time/i18n/en.ts +76 -38
  39. package/src/tool/drone-flight-time/i18n/es.ts +76 -38
  40. package/src/tool/drone-flight-time/i18n/fr.ts +76 -38
  41. package/src/tool/drone-flight-time/i18n/id.ts +238 -0
  42. package/src/tool/drone-flight-time/i18n/it.ts +238 -0
  43. package/src/tool/drone-flight-time/i18n/ja.ts +239 -0
  44. package/src/tool/drone-flight-time/i18n/ko.ts +239 -0
  45. package/src/tool/drone-flight-time/i18n/nl.ts +239 -0
  46. package/src/tool/drone-flight-time/i18n/pl.ts +239 -0
  47. package/src/tool/drone-flight-time/i18n/pt.ts +239 -0
  48. package/src/tool/drone-flight-time/i18n/ru.ts +239 -0
  49. package/src/tool/drone-flight-time/i18n/sv.ts +239 -0
  50. package/src/tool/drone-flight-time/i18n/tr.ts +239 -0
  51. package/src/tool/drone-flight-time/i18n/zh.ts +239 -0
  52. package/src/tool/drone-flight-time/index.ts +12 -0
  53. package/src/tool/gps-coordinates-converter/i18n/de.ts +222 -0
  54. package/src/tool/gps-coordinates-converter/i18n/en.ts +76 -20
  55. package/src/tool/gps-coordinates-converter/i18n/es.ts +76 -20
  56. package/src/tool/gps-coordinates-converter/i18n/fr.ts +75 -2
  57. package/src/tool/gps-coordinates-converter/i18n/id.ts +222 -0
  58. package/src/tool/gps-coordinates-converter/i18n/it.ts +222 -0
  59. package/src/tool/gps-coordinates-converter/i18n/ja.ts +222 -0
  60. package/src/tool/gps-coordinates-converter/i18n/ko.ts +222 -0
  61. package/src/tool/gps-coordinates-converter/i18n/nl.ts +222 -0
  62. package/src/tool/gps-coordinates-converter/i18n/pl.ts +222 -0
  63. package/src/tool/gps-coordinates-converter/i18n/pt.ts +222 -0
  64. package/src/tool/gps-coordinates-converter/i18n/ru.ts +222 -0
  65. package/src/tool/gps-coordinates-converter/i18n/sv.ts +222 -0
  66. package/src/tool/gps-coordinates-converter/i18n/tr.ts +222 -0
  67. package/src/tool/gps-coordinates-converter/i18n/zh.ts +222 -0
  68. package/src/tool/gps-coordinates-converter/index.ts +12 -0
@@ -1,9 +1,81 @@
1
1
  import type { DroneFlightTimeLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
3
 
3
4
  const slug = 'drone-flight-time-calculator';
4
- const title = 'Drone Flight Time Calculator | Estimate LiPo/Li-Ion Endurance';
5
+ const title = 'Drone Flight Time Calculator for LiPo LiIon Endurance Estimation';
5
6
  const description = 'Calculate how long your drone can fly based on mAh capacity and current draw. Optimize your LiPo batteries for safe flights and maximum duration.';
6
7
 
8
+ const faqItems = [
9
+ {
10
+ question: 'Why is actual flight time lower than calculated?',
11
+ answer: 'The calculator assumes constant consumption. Sharp maneuvers, headwinds, and battery wear can reduce actual flight time by up to 30%.',
12
+ },
13
+ {
14
+ question: 'At what voltage should I land my drone?',
15
+ answer: 'Ideally, land when the voltage drops to 3.5V - 3.6V per cell (at rest). This corresponds to the recommended 20% remaining capacity.',
16
+ },
17
+ {
18
+ question: 'Are LiPo or Li-Ion batteries better for drones?',
19
+ answer: 'LiPos offer high instantaneous power (ideal for racing and acrobatics). Li-Ion cells have longer endurance but lower power output (ideal for long, steady flights).',
20
+ },
21
+ {
22
+ question: 'How does the cell count (S) affect flight time?',
23
+ answer: 'More cells increase voltage and power, but also weight. If motors are optimized for that voltage, they can be more efficient, but cell count alone does not guarantee more time.',
24
+ },
25
+ ];
26
+
27
+ const howToSteps = [
28
+ {
29
+ name: 'Identify Capacity',
30
+ text: 'Check your battery label and look for the mAh value (e.g., 1500, 2200, 4500).',
31
+ },
32
+ {
33
+ name: 'Estimate Current Draw',
34
+ text: 'Enter the average amperage your drone consumes. You can find this in your OSD telemetry after a test flight.',
35
+ },
36
+ {
37
+ name: 'Adjust Safety Margin',
38
+ text: 'We recommend leaving 20% (set to 80%) to protect the battery and provide a landing buffer.',
39
+ },
40
+ {
41
+ name: 'Get the Result',
42
+ text: 'View the exact time in minutes and seconds that you can safely stay in the air.',
43
+ },
44
+ ];
45
+
46
+ const schemas: DroneFlightTimeLocaleContent['schemas'] = [
47
+ {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqItems.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ } as WithContext<FAQPage>,
56
+ {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description: description,
61
+ step: howToSteps.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ } as WithContext<HowTo>,
68
+ {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description: description,
73
+ applicationCategory: 'OtherApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ } as WithContext<SoftwareApplication>,
77
+ ];
78
+
7
79
  export const content: DroneFlightTimeLocaleContent = {
8
80
  slug,
9
81
  title,
@@ -155,46 +227,12 @@ export const content: DroneFlightTimeLocaleContent = {
155
227
  html: 'In conclusion, energy management is the art of balancing physics, chemistry, and mathematics. Use our calculator regularly to plan your flight sessions, and never forget that in the air, time is your most precious resource. Happy flying and safe landings!',
156
228
  },
157
229
  ],
158
- faq: [
159
- {
160
- question: 'Why is actual flight time lower than calculated?',
161
- answer: 'The calculator assumes constant consumption. Sharp maneuvers, headwinds, and battery wear can reduce actual flight time by up to 30%.',
162
- },
163
- {
164
- question: 'At what voltage should I land my drone?',
165
- answer: 'Ideally, land when the voltage drops to 3.5V - 3.6V per cell (at rest). This corresponds to the recommended 20% remaining capacity.',
166
- },
167
- {
168
- question: 'Are LiPo or Li-Ion batteries better for drones?',
169
- answer: 'LiPos offer high instantaneous power (ideal for racing and acrobatics). Li-Ion cells have longer endurance but lower power output (ideal for long, steady flights).',
170
- },
171
- {
172
- question: 'How does the cell count (S) affect flight time?',
173
- answer: 'More cells increase voltage and power, but also weight. If motors are optimized for that voltage, they can be more efficient, but cell count alone does not guarantee more time.',
174
- },
175
- ],
230
+ faq: faqItems,
176
231
  bibliography: [
177
232
  { name: 'EASA - Drone Regulations', url: 'https://www.easa.europa.eu/en/domains/civil-drones' },
178
233
  { name: 'ArduPilot Wiki', url: 'https://ardupilot.org/copter/' },
179
234
  { name: 'Battery University', url: 'https://batteryuniversity.com/' },
180
235
  ],
181
- howTo: [
182
- {
183
- name: 'Identify Capacity',
184
- text: 'Check your battery label and look for the mAh value (e.g., 1500, 2200, 4500).',
185
- },
186
- {
187
- name: 'Estimate Current Draw',
188
- text: 'Enter the average amperage your drone consumes. You can find this in your OSD telemetry after a test flight.',
189
- },
190
- {
191
- name: 'Adjust Safety Margin',
192
- text: 'We recommend leaving 20% (set to 80%) to protect the battery and provide a landing buffer.',
193
- },
194
- {
195
- name: 'Get the Result',
196
- text: 'View the exact time in minutes and seconds that you can safely stay in the air.',
197
- },
198
- ],
199
- schemas: [],
236
+ howTo: howToSteps,
237
+ schemas,
200
238
  };
@@ -1,9 +1,81 @@
1
1
  import type { DroneFlightTimeLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
3
 
3
4
  const slug = 'calculadora-tiempo-vuelo-dron';
4
- const title = 'Calculadora Tiempo de Vuelo Drones | Estima autonomía LiPo/Li-Ion';
5
+ const title = 'Calculadora Tiempo de Vuelo Drones para Estimación de Autonomía LiPo LiIon';
5
6
  const description = 'Calcula cuánto tiempo puede volar tu dron basado en la capacidad mAh y consumo. Optimiza tus baterías LiPo para vuelos seguros y máxima duración.';
6
7
 
8
+ const faqItems = [
9
+ {
10
+ question: '¿Por qué el tiempo real es menor al calculado?',
11
+ answer: 'La calculadora estima un consumo constante. Las maniobras bruscas, el viento en contra y el desgaste de la batería pueden reducir el tiempo real hasta en un 30%.',
12
+ },
13
+ {
14
+ question: '¿A qué voltaje debo aterrizar mi dron?',
15
+ answer: 'Lo ideal es aterrizar cuando el voltaje baje a 3.5V - 3.6V por celda (en reposo). Esto equivale aproximadamente al 20% de capacidad restante recomendada.',
16
+ },
17
+ {
18
+ question: '¿Son mejores las baterías LiPo o Li-Ion para drones?',
19
+ answer: 'Las LiPo ofrecen mucha potencia instantánea (ideal para carreras y acrobacias). Las Li-Ion tienen más duración pero menos potencia (ideal para vuelos largos y tranquilos).',
20
+ },
21
+ {
22
+ question: '¿Cómo afecta el número de celdas (S) al tiempo de vuelo?',
23
+ answer: 'Más celdas aumentan el voltaje y la potencia, pero también el peso. Si los motores están optimizados para ese voltaje, pueden ser más eficientes, pero no garantizan más tiempo por sí solas.',
24
+ },
25
+ ];
26
+
27
+ const howToSteps = [
28
+ {
29
+ name: 'Identifica la capacidad',
30
+ text: 'Mira la etiqueta de tu batería y busca el valor en mAh (ej. 1500, 2200, 4500).',
31
+ },
32
+ {
33
+ name: 'Estima el consumo',
34
+ text: 'Introduce el amperaje medio que consume tu dron. Puedes verlo en la telemetría del OSD tras un vuelo de prueba.',
35
+ },
36
+ {
37
+ name: 'Ajusta el margen',
38
+ text: 'Recomendamos dejar un 20% (ajustar al 80%) para proteger la batería y tener margen de aterrizaje.',
39
+ },
40
+ {
41
+ name: 'Obtén el resultado',
42
+ text: 'Visualiza el tiempo exacto en minutos y segundos que puedes permanecer en el aire con seguridad.',
43
+ },
44
+ ];
45
+
46
+ const schemas: DroneFlightTimeLocaleContent['schemas'] = [
47
+ {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqItems.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ } as WithContext<FAQPage>,
56
+ {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description: description,
61
+ step: howToSteps.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ } as WithContext<HowTo>,
68
+ {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description: description,
73
+ applicationCategory: 'OtherApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ } as WithContext<SoftwareApplication>,
77
+ ];
78
+
7
79
  export const content: DroneFlightTimeLocaleContent = {
8
80
  slug,
9
81
  title,
@@ -155,46 +227,12 @@ export const content: DroneFlightTimeLocaleContent = {
155
227
  html: 'En conclusión, la gestión de la energía es el arte de equilibrar la física, la química y las matemáticas. Usa nuestra calculadora de forma regular para planificar tus sesiones de vuelo y nunca olvides que, en el aire, el tiempo es el recurso más valioso. ¡Buenos vuelos y aterrizajes seguros!',
156
228
  },
157
229
  ],
158
- faq: [
159
- {
160
- question: '¿Por qué el tiempo real es menor al calculado?',
161
- answer: 'La calculadora estima un consumo constante. Las maniobras bruscas, el viento en contra y el desgaste de la batería pueden reducir el tiempo real hasta en un 30%.',
162
- },
163
- {
164
- question: '¿A qué voltaje debo aterrizar mi dron?',
165
- answer: 'Lo ideal es aterrizar cuando el voltaje baje a 3.5V - 3.6V por celda (en reposo). Esto equivale aproximadamente al 20% de capacidad restante recomendada.',
166
- },
167
- {
168
- question: '¿Son mejores las baterías LiPo o Li-Ion para drones?',
169
- answer: 'Las LiPo ofrecen mucha potencia instantánea (ideal para carreras y acrobacias). Las Li-Ion tienen más duración pero menos potencia (ideal para vuelos largos y tranquilos).',
170
- },
171
- {
172
- question: '¿Cómo afecta el número de celdas (S) al tiempo de vuelo?',
173
- answer: 'Más celdas aumentan el voltaje y la potencia, pero también el peso. Si los motores están optimizados para ese voltaje, pueden ser más eficientes, pero no garantizan más tiempo por sí solas.',
174
- },
175
- ],
230
+ faq: faqItems,
176
231
  bibliography: [
177
232
  { name: 'EASA - Drone Regulations', url: 'https://www.easa.europa.eu/en/domains/civil-drones' },
178
233
  { name: 'ArduPilot Wiki', url: 'https://ardupilot.org/copter/' },
179
234
  { name: 'Battery University', url: 'https://batteryuniversity.com/' },
180
235
  ],
181
- howTo: [
182
- {
183
- name: 'Identifica la capacidad',
184
- text: 'Mira la etiqueta de tu batería y busca el valor en mAh (ej. 1500, 2200, 4500).',
185
- },
186
- {
187
- name: 'Estima el consumo',
188
- text: 'Introduce el amperaje medio que consume tu dron. Puedes verlo en la telemetría del OSD tras un vuelo de prueba.',
189
- },
190
- {
191
- name: 'Ajusta el margen',
192
- text: 'Recomendamos dejar un 20% (ajustar al 80%) para proteger la batería y tener margen de aterrizaje.',
193
- },
194
- {
195
- name: 'Obtén el resultado',
196
- text: 'Visualiza el tiempo exacto en minutos y segundos que puedes permanecer en el aire con seguridad.',
197
- },
198
- ],
199
- schemas: [],
236
+ howTo: howToSteps,
237
+ schemas,
200
238
  };
@@ -1,9 +1,81 @@
1
1
  import type { DroneFlightTimeLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
2
3
 
3
4
  const slug = 'calculateur-temps-vol-drone';
4
- const title = 'Calculateur de Temps de Vol Drone | Estimation Autonomie LiPo/Li-Ion';
5
+ const title = 'Calculateur de Temps de Vol Drone pour Estimation Autonomie LiPo LiIon';
5
6
  const description = 'Calculez combien de temps votre drone peut voler en fonction de la capacité mAh et de la consommation. Optimisez vos batteries LiPo pour des vols sûrs.';
6
7
 
8
+ const faqItems = [
9
+ {
10
+ question: 'Pourquoi le temps réel est-il inférieur au temps calculé ?',
11
+ answer: 'Le calculateur estime une consommation constante. Les manœuvres brusques, le vent de face et l\'usure de la batterie peuvent réduire le temps réel jusqu\'à 30%.',
12
+ },
13
+ {
14
+ question: 'À quelle tension dois-je faire atterrir mon drone ?',
15
+ answer: 'L\'idéal est d\'atterrir lorsque la tension descend à 3,5V - 3,6V par cellule (au repos). Cela équivaut environ aux 20% de capacité restante recommandés.',
16
+ },
17
+ {
18
+ question: 'Les batteries LiPo ou Li-Ion sont-elles meilleures pour les drones ?',
19
+ answer: 'Les LiPo offrent beaucoup de puissance instantanée (idéal pour la course et les acrobaties). Les Li-Ion ont plus d\'endurance mais moins de puissance (idéal pour les vols longs et tranquilles).',
20
+ },
21
+ {
22
+ question: 'Comment le nombre de cellules (S) affecte-t-il le temps de vol ?',
23
+ answer: 'Plus de cellules augmentent la tension et la puissance, mais aussi le poids. Si les moteurs sont optimisés pour cette tension, ils peuvent être plus efficaces, mais cela ne garantit pas plus de temps en soi.',
24
+ },
25
+ ];
26
+
27
+ const howToSteps = [
28
+ {
29
+ name: 'Identifiez la capacité',
30
+ text: 'Regardez l\'étiquette de votre batterie et cherchez la valeur en mAh (ex. 1500, 2200, 4500).',
31
+ },
32
+ {
33
+ name: 'Estimez la consommation',
34
+ text: 'Entrez l\'ampérage moyen consommé par votre drone. Vous pouvez le voir dans la télémétrie OSD après un vol d\'essai.',
35
+ },
36
+ {
37
+ name: 'Ajustez la marge',
38
+ text: 'Nous recommandons de laisser 20% (régler à 80%) pour protéger la batterie et avoir une marge d\'atterrissage.',
39
+ },
40
+ {
41
+ name: 'Obtenez le résultat',
42
+ text: 'Visualisez le temps exact en minutes et secondes pendant lequel vous pouvez rester en l\'air en toute sécurité.',
43
+ },
44
+ ];
45
+
46
+ const schemas: DroneFlightTimeLocaleContent['schemas'] = [
47
+ {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqItems.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ } as WithContext<FAQPage>,
56
+ {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description: description,
61
+ step: howToSteps.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ } as WithContext<HowTo>,
68
+ {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description: description,
73
+ applicationCategory: 'OtherApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ } as WithContext<SoftwareApplication>,
77
+ ];
78
+
7
79
  export const content: DroneFlightTimeLocaleContent = {
8
80
  slug,
9
81
  title,
@@ -155,46 +227,12 @@ export const content: DroneFlightTimeLocaleContent = {
155
227
  html: 'En conclusion, la gestion de l\'énergie est l\'art d\'équilibrer la physique, la chimie et les mathématiques. Utilisez notre calculateur régulièrement pour planifier vos sessions de vol et n\'oubliez jamais qu\'en l\'air, le temps est la ressource la plus précieuse. Bons vols et atterrissages en toute sécurité !',
156
228
  },
157
229
  ],
158
- faq: [
159
- {
160
- question: 'Pourquoi le temps réel est-il inférieur au temps calculé ?',
161
- answer: 'Le calculateur estime une consommation constante. Les manœuvres brusques, le vent de face et l\'usure de la batterie peuvent réduire le temps réel jusqu\'à 30%.',
162
- },
163
- {
164
- question: 'À quelle tension dois-je faire atterrir mon drone ?',
165
- answer: 'L\'idéal est d\'atterrir lorsque la tension descend à 3,5V - 3,6V par cellule (au repos). Cela équivaut environ aux 20% de capacité restante recommandés.',
166
- },
167
- {
168
- question: 'Les batteries LiPo ou Li-Ion sont-elles meilleures pour les drones ?',
169
- answer: 'Les LiPo offrent beaucoup de puissance instantanée (idéal pour la course et les acrobaties). Les Li-Ion ont plus d\'endurance mais moins de puissance (idéal pour les vols longs et tranquilles).',
170
- },
171
- {
172
- question: 'Comment le nombre de cellules (S) affecte-t-il le temps de vol ?',
173
- answer: 'Plus de cellules augmentent la tension et la puissance, mais aussi le poids. Si les moteurs sont optimisés pour cette tension, ils peuvent être plus efficaces, mais cela ne garantit pas plus de temps en soi.',
174
- },
175
- ],
230
+ faq: faqItems,
176
231
  bibliography: [
177
232
  { name: 'EASA - Réglementation des Drones', url: 'https://www.easa.europa.eu/en/domains/civil-drones' },
178
233
  { name: 'ArduPilot Wiki', url: 'https://ardupilot.org/copter/' },
179
234
  { name: 'Battery University', url: 'https://batteryuniversity.com/' },
180
235
  ],
181
- howTo: [
182
- {
183
- name: 'Identifiez la capacité',
184
- text: 'Regardez l\'étiquette de votre batterie et cherchez la valeur en mAh (ex. 1500, 2200, 4500).',
185
- },
186
- {
187
- name: 'Estimez la consommation',
188
- text: 'Entrez l\'ampérage moyen consommé par votre drone. Vous pouvez le voir dans la télémétrie OSD après un vol d\'essai.',
189
- },
190
- {
191
- name: 'Ajustez la marge',
192
- text: 'Nous recommandons de laisser 20% (régler à 80%) pour protéger la batterie et avoir une marge d\'atterrissage.',
193
- },
194
- {
195
- name: 'Obtenez le résultat',
196
- text: 'Visualisez le temps exact en minutes et secondes pendant lequel vous pouvez rester en l\'air en toute sécurité.',
197
- },
198
- ],
199
- schemas: [],
236
+ howTo: howToSteps,
237
+ schemas,
200
238
  };
@@ -0,0 +1,238 @@
1
+ import type { DroneFlightTimeLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
3
+
4
+ const slug = 'kalkulator-waktu-terbang-drone';
5
+ const title = 'Kalkulator Waktu Terbang Drone untuk Estimasi Autonomi LiPo LiIon';
6
+ const description = 'Hitung berapa lama drone Anda bisa terbang berdasarkan kapasitas mAh dan konsumsi arus. Optimalkan baterai LiPo Anda untuk penerbangan yang aman.';
7
+
8
+ const faqItems = [
9
+ {
10
+ question: 'Mengapa waktu penerbangan aktual lebih rendah dari yang dihitung?',
11
+ answer: 'Kalkulator mengasumsikan konsumsi konstan. Manuver tajam, angin sakal, dan keausan baterai dapat mengurangi waktu penerbangan yang sebenarnya hingga 30%.',
12
+ },
13
+ {
14
+ question: 'Pada tegangan berapa saya harus mendaratkan drone saya?',
15
+ answer: 'Idealnya, mendaratlah saat tegangan turun menjadi 3.5V - 3.6V per sel (saat istirahat). Ini sesuai dengan rekomendasi 20% kapasitas yang tersisa.',
16
+ },
17
+ {
18
+ question: 'Apakah baterai LiPo atau Li-Ion lebih baik untuk drone?',
19
+ answer: 'LiPo menawarkan tenaga seketika yang tinggi (ideal untuk balapan dan akrobatik). Sel Li-Ion memiliki daya tahan lebih lama tetapi output daya lebih rendah (ideal untuk penerbangan yang panjang dan stabil).',
20
+ },
21
+ {
22
+ question: 'Bagaimana jumlah sel (S) memengaruhi waktu penerbangan?',
23
+ answer: 'Lebih banyak sel meningkatkan tegangan dan tenaga, tetapi juga menambah berat. Jika motor dioptimalkan untuk tegangan tersebut, mereka bisa menjadi lebih efisien, namun jumlah sel saja tidak menjamin waktu yang lebih lama.',
24
+ },
25
+ ];
26
+
27
+ const howToSteps = [
28
+ {
29
+ name: 'Identifikasi Kapasitas',
30
+ text: 'Periksa label baterai Anda dan cari nilai mAh (misalnya, 1500, 2200, 4500).',
31
+ },
32
+ {
33
+ name: 'Perkirakan Konsumsi Arus',
34
+ text: 'Masukkan rata-rata ampere yang dikonsumsi drone Anda. Anda dapat menemukannya di telemetri OSD Anda setelah uji penerbangan.',
35
+ },
36
+ {
37
+ name: 'Sesuaikan Batas Keamanan',
38
+ text: 'Kami menyarankan untuk menyisakan 20% (ditetapkan ke 80%) untuk melindungi baterai dan memberikan margin pendaratan.',
39
+ },
40
+ {
41
+ name: 'Dapatkan Hasil',
42
+ text: 'Lihat waktu pasti dalam menit dan detik di tempat Anda dapat dengan aman berada di udara.',
43
+ },
44
+ ];
45
+
46
+ const schemas: DroneFlightTimeLocaleContent['schemas'] = [
47
+ {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqItems.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ } as WithContext<FAQPage>,
56
+ {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description: description,
61
+ step: howToSteps.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ } as WithContext<HowTo>,
68
+ {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description: description,
73
+ applicationCategory: 'OtherApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ } as WithContext<SoftwareApplication>,
77
+ ];
78
+
79
+ export const content: DroneFlightTimeLocaleContent = {
80
+ slug,
81
+ title,
82
+ description,
83
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
84
+ bibliographyTitle: 'Referensi Bibliografi',
85
+ ui: {
86
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
87
+ bibliographyTitle: 'Referensi Bibliografi',
88
+ batterySpecs: 'Spesifikasi Baterai',
89
+ capacity: 'Kapasitas',
90
+ voltage: 'Tegangan (Sel S)',
91
+ safetyMargin: 'Batas Keamanan',
92
+ landingHint: 'Mendarat di 3.5V - 3.7V per sel.',
93
+ consumptionDynamics: 'Dinamika Konsumsi',
94
+ averageConsumption: 'Rata-rata Konsumsi Arus',
95
+ powerWatts: 'Daya (Watt)',
96
+ efficiencyHint: 'Saat Ampere berubah, Watt akan dihitung ulang berdasarkan tegangan S.',
97
+ estimatedEfficiency: 'Estimasi Efisiensi',
98
+ typicalEfficiencyHint: 'Umumnya: 4-6 (Balapan), 8-12 (Sinematik/Jarak Jauh).',
99
+ safeFlight: 'Penerbangan Aman',
100
+ totalEnergy: 'Total Energi',
101
+ theoreticalTime: 'Waktu Teoritis (0%)',
102
+ co2Footprint: 'Jejak Karbon CO2',
103
+ autonomyChart: 'Grafik Otonomi',
104
+ chartSubtitle: 'Ampere (A) vs. Waktu (menit)',
105
+ chartLabel: 'Menit',
106
+ },
107
+ seo: [
108
+ {
109
+ type: 'title',
110
+ text: 'Kalkulator Waktu Terbang Drone: Panduan Lengkap untuk Otonomi',
111
+ level: 2,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Otonomi mungkin adalah faktor paling penting dalam desain dan pengoperasian pesawat nirawak apa pun. Baik Anda seorang pilot drone balap FPV, fotografer udara profesional, atau penggemar jarak jauh, mengetahui dengan tepat berapa lama peralatan Anda dapat bertahan di udara sangat penting untuk keselamatan dan keberhasilan misi. <strong>Kalkulator waktu terbang</strong> kami menggunakan variabel dasar kapasitas baterai dan konsumsi arus untuk memberikan perkiraan yang realistis dan aman.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Kapasitas Baterai: Penjelasan mAh',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Kapasitas baterai biasanya diukur dalam miliampere-jam (mAh). Angka ini menunjukkan berapa banyak muatan listrik yang dapat disimpan baterai. Misalnya, baterai 1500 mAh secara teoritis dapat memasok 1500 miliampere selama satu jam penuh. Di dunia drone, di mana konsumsi arus sangat tinggi, kita biasanya berbicara dalam Ampere (A). 1000 mAh tepatnya sama dengan 1 Ah (Ampere-jam).',
125
+ },
126
+ {
127
+ type: 'paragraph',
128
+ html: 'Namun, kapasitas mentah bukan satu-satunya faktor. Tegangan (ditentukan oleh jumlah sel atau \'S\') secara langsung memengaruhi daya total (Watt), tetapi untuk menghitung waktu berdasarkan konsumsi motor, rasio Ah/Ampere adalah metrik yang paling langsung digunakan oleh mekanik penerbangan.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Konsumsi Arus: Ampere dalam Penerbangan',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Konsumsi motor adalah variabel yang paling berfluktuasi selama penerbangan. Menjaga drone melayang (hover) tidak sama dengan melakukan manuver akrobatik yang agresif. Setiap kombinasi motor dan baling-baling memiliki kurva efisiensi. Saat Anda memberikan tenaga penuh, ampere melonjak, secara drastis mengurangi masa pakai baterai.',
138
+ },
139
+ {
140
+ type: 'list',
141
+ items: [
142
+ 'Penerbangan Melayang (Hovering): Konsumsi minimum dan konstan, ideal untuk fotografi.',
143
+ 'Penerbangan Penjelajahan (Cruising): Konsumsi sedikit meningkat karena hambatan aerodinamis.',
144
+ 'Penerbangan Agresif/FPV: Puncak arus dapat melipatgandakan konsumsi rata-rata dalam hitungan detik.',
145
+ 'Berat Drone: Setiap gram tambahan membutuhkan RPM motor yang lebih tinggi untuk menghasilkan daya angkat, yang meningkatkan ampere.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Aturan Keamanan 80 Persen: Melindungi Bahan Kimia LiPo',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'Melepaskan baterai LiPo (Lithium Polymer) hingga kapasitas 0% adalah cara tercepat untuk menghancurkannya dan, lebih parah lagi, menyebabkan kecelakaan. Secara kimia, sel mengalami kerusakan permanen jika tegangannya turun di bawah ambang batas kritis (biasanya 3.0V - 3.2V per sel).',
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Oleh karena itu, kami selalu menerapkan <strong>aturan batas keamanan</strong>. Kalkulator kami memungkinkan Anda menyesuaikan nilai ini, tetapi disarankan untuk mendarat ketika tersisa 20% daya. Ini tidak hanya memperpanjang umur baterai mahal Anda hingga ratusan siklus, tetapi juga menjamin cadangan daya vital jika terjadi hembusan angin tak terduga atau jika Anda harus membatalkan pendaratan dan mencoba lagi.',
160
+ },
161
+ {
162
+ type: 'tip',
163
+ html: 'Baterai drone sangat sensitif terhadap dingin. Di musim dingin, hambatan internal LiPo meningkat, menyebabkan penurunan tegangan yang lebih cepat. Selalu hangatkan baterai Anda sebelum lepas landas jika suhu lingkungan di bawah 15 derajat Celcius.',
164
+ },
165
+ {
166
+ type: 'title',
167
+ text: 'Rumus Penerbangan Matematika',
168
+ level: 3,
169
+ },
170
+ {
171
+ type: 'paragraph',
172
+ html: 'Meskipun alat kami melakukan pekerjaan berat untuk Anda, ada baiknya mengetahui logika di balik perhitungan. Rumus dasarnya adalah:',
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: '<strong>Waktu (mnt) = ((Kapasitas mAh / 1000) * Faktor Keamanan) / Konsumsi Ampere * 60</strong>',
177
+ },
178
+ {
179
+ type: 'paragraph',
180
+ html: 'Misalnya, jika Anda memiliki baterai 2200 mAh, ingin mendarat pada sisa 20% (faktor keamanan 0,8), dan konsumsi rata-rata drone Anda adalah 15 Ampere: (2,2 * 0,8) / 15 * 60 = 7,04 menit waktu terbang yang aman.',
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'Optimalisasi Berat dan Efisiensi',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: 'Ada titik hasil yang semakin berkurang (diminishing returns) saat menambahkan baterai yang lebih besar. Menggandakan kapasitas baterai tidak menggandakan waktu terbang, karena baterai itu sendiri menambah berat. Berat ekstra itu mengharuskan motor berputar lebih cepat dan karena itu mengkonsumsi lebih banyak arus. Pada titik tertentu, berat tambahan mengkonsumsi lebih banyak energi daripada yang disumbangkannya, sehingga mengurangi efisiensi sistem secara keseluruhan.',
190
+ },
191
+ {
192
+ type: 'paragraph',
193
+ html: 'Pilot berpengalaman mencari keseimbangan sempurna antara <em>Disc Loading</em> (rasio berat terhadap area baling-baling) dan kapasitas baterai untuk memaksimalkan apa yang kami sebut "waktu misi yang berguna".',
194
+ },
195
+ {
196
+ type: 'title',
197
+ text: 'Perbedaan Antar Jenis Drone',
198
+ level: 3,
199
+ },
200
+ {
201
+ type: 'paragraph',
202
+ html: '<strong>Drone Mikro (Whoops):</strong> Hanya mengkonsumsi 2-5 Ampere, tetapi baterainya sekitar 300-500 mAh. Waktunya biasanya singkat (3-4 mnt) karena inersia yang rendah dan putaran yang tinggi.',
203
+ },
204
+ {
205
+ type: 'paragraph',
206
+ html: '<strong>Drone Balap 5":</strong> Konsumsi brutal selama balapan (hingga puncak 120A), yang menghabiskan baterai 1300 mAh hanya dalam 2 menit adrenalin murni.',
207
+ },
208
+ {
209
+ type: 'paragraph',
210
+ html: '<strong>Drone Jarak Jauh (Long Range):</strong> Dioptimalkan untuk efisiensi. Mereka sering menggunakan sel Lithium-Ion (Li-Ion) yang memiliki kepadatan energi lebih tinggi daripada LiPo, memungkinkan penerbangan 30 hingga 60 menit dengan konsumsi arus yang sangat rendah.',
211
+ },
212
+ {
213
+ type: 'tip',
214
+ html: 'Beralih ke baling-baling dengan jarak (pitch) yang lebih rendah dapat meningkatkan waktu terbang Anda dengan mengorbankan kecepatan maksimum dan responsivitas. Ini adalah cara termurah dan paling efektif untuk mendapatkan otonomi 10-15% lebih banyak.',
215
+ },
216
+ {
217
+ type: 'title',
218
+ text: 'Pemeliharaan dan Penyimpanan',
219
+ level: 3,
220
+ },
221
+ {
222
+ type: 'paragraph',
223
+ html: 'Agar perhitungan alat ini akurat, baterai Anda harus dalam kondisi baik. Baterai dengan resistansi internal yang tinggi akan menjadi terlalu panas dan "berbohong" tentang kapasitas aslinya. Selalu simpan baterai Anda pada tegangan penyimpanan (3.8V-3.85V per sel) jika Anda tidak akan terbang selama lebih dari 48 jam.',
224
+ },
225
+ {
226
+ type: 'paragraph',
227
+ html: 'Kesimpulannya, manajemen energi adalah seni menyeimbangkan fisika, kimia, dan matematika. Gunakan kalkulator kami secara teratur untuk merencanakan sesi penerbangan Anda, dan jangan pernah lupa bahwa di udara, waktu adalah sumber daya Anda yang paling berharga. Selamat terbang dan semoga pendaratan Anda aman!',
228
+ },
229
+ ],
230
+ faq: faqItems,
231
+ bibliography: [
232
+ { name: 'EASA - Regulasi Drone', url: 'https://www.easa.europa.eu/en/domains/civil-drones' },
233
+ { name: 'ArduPilot Wiki', url: 'https://ardupilot.org/copter/' },
234
+ { name: 'Battery University', url: 'https://batteryuniversity.com/' },
235
+ ],
236
+ howTo: howToSteps,
237
+ schemas,
238
+ };