@jjlmoya/utils-motor 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/category/index.ts +3 -1
- package/src/entries.ts +5 -1
- package/src/index.ts +10 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/evChargingTimeCostPlanner/bibliography.astro +6 -0
- package/src/tool/evChargingTimeCostPlanner/bibliography.ts +16 -0
- package/src/tool/evChargingTimeCostPlanner/component.astro +147 -0
- package/src/tool/evChargingTimeCostPlanner/controller.ts +214 -0
- package/src/tool/evChargingTimeCostPlanner/dom-views.ts +124 -0
- package/src/tool/evChargingTimeCostPlanner/entry.ts +30 -0
- package/src/tool/evChargingTimeCostPlanner/ev-charging-time-cost-planner.css +598 -0
- package/src/tool/evChargingTimeCostPlanner/evaluator.ts +10 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/de.ts +22 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/en.ts +161 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/es.ts +16 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/factory.ts +113 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/fr.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/id.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/it.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/ja.ts +13 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/ko.ts +13 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/nl.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/pl.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/pt.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/ru.ts +13 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/sv.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/tr.ts +9 -0
- package/src/tool/evChargingTimeCostPlanner/i18n/zh.ts +13 -0
- package/src/tool/evChargingTimeCostPlanner/index.ts +10 -0
- package/src/tool/evChargingTimeCostPlanner/logic.test.ts +71 -0
- package/src/tool/evChargingTimeCostPlanner/logic.ts +174 -0
- package/src/tool/evChargingTimeCostPlanner/seo.astro +15 -0
- package/src/tool/evChargingTimeCostPlanner/storage.ts +27 -0
- package/src/tool/evChargingTimeCostPlanner/ui.ts +50 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/bibliography.astro +6 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/bibliography.ts +12 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/component.astro +166 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/controller.ts +207 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/dom-views.ts +101 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/entry.ts +30 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/evaluator.ts +7 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/de.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/en.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/es.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/fr.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/id.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/it.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ja.ts +201 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ko.ts +201 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/nl.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/pl.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/pt.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ru.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/sv.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/tr.ts +185 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/zh.ts +201 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/index.ts +10 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/logic.test.ts +229 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/logic.ts +179 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/motorcycle-skid-mark-speed-estimator.css +523 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/seo.astro +15 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/storage.ts +49 -0
- package/src/tool/motorcycleSkidMarkSpeedEstimator/ui.ts +46 -0
- package/src/tools.ts +5 -1
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { SEOSection } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
|
|
5
|
+
|
|
6
|
+
const slug = 'motorcycle-skid-mark-speed-estimator';
|
|
7
|
+
const title = 'Motorcycle Skid Mark Speed Estimator';
|
|
8
|
+
const description =
|
|
9
|
+
'Estimate a motorcycle speed range from skid mark length, surface friction, grade, and which brake left the mark. Educational only, not an accident reconstruction.';
|
|
10
|
+
|
|
11
|
+
const faq = [
|
|
12
|
+
{
|
|
13
|
+
question: 'What speed does a skid mark represent?',
|
|
14
|
+
answer:
|
|
15
|
+
'A locked-wheel skid mark records the distance used to shed kinetic energy after the tire stops rotating. The energy equation gives a minimum speed at the start of that visible mark, not the travel speed before the rider first touched the brake.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Why is the result a range instead of one number?',
|
|
19
|
+
answer:
|
|
20
|
+
'Surface friction is uncertain, motorcycle braking is split between front and rear, and grade changes the effective drag. The estimator varies those assumptions and reports a low, mid, and high speed so you can see how sensitive the answer is.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Can I use this number in a crash report or insurance claim?',
|
|
24
|
+
answer:
|
|
25
|
+
'No. Scene evidence needs measured drag tests, mark identification, ABS behavior, yaw, impacts, and an investigator. This page is a physics lab for learning how length and friction move the estimate.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'How is this different from a braking distance calculator?',
|
|
29
|
+
answer:
|
|
30
|
+
'A braking distance calculator starts from speed and asks how far you travel. This tool starts from a measured rubber mark and works backwards to a speed band. It does not add reaction distance.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howTo = [
|
|
35
|
+
{ name: 'Measure the mark', text: 'Record the visible locked-wheel mark length in metres or feet. If two marks exist, use a careful average rather than the longest smear of a sliding machine.' },
|
|
36
|
+
{ name: 'Choose the surface', text: 'Pick the pavement that matches the scene, then adjust the friction value if you have a better local drag factor.' },
|
|
37
|
+
{ name: 'Set grade and brakes', text: 'Enter the slope and whether the mark came from both brakes, the front, the rear, or an unknown control.' },
|
|
38
|
+
{ name: 'Read the band', text: 'Use the mid speed as the working estimate and the low to high band as the effect of your assumptions. Treat every result as educational.' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const seo: SEOSection[] = [
|
|
42
|
+
{ type: 'title', level: 2, text: 'Turn a rubber mark into a speed band' },
|
|
43
|
+
{
|
|
44
|
+
type: 'paragraph',
|
|
45
|
+
html: 'A motorcycle often leaves one clear rear mark, a lighter front mark, or an interrupted ABS print. Measure the locked-wheel portion, not the later gouge of a sliding bike. Then let friction, grade, and brake use push the estimate into a range instead of a fake precise speed.',
|
|
46
|
+
},
|
|
47
|
+
{ type: 'title', level: 3, text: 'How the estimate is built' },
|
|
48
|
+
{
|
|
49
|
+
type: 'paragraph',
|
|
50
|
+
html: 'The working model is the slide-to-stop energy balance: speed is the square root of twice gravity times drag factor times mark length. Drag factor is friction times brake efficiency, plus grade as a decimal. An uphill grade helps the motorcycle stop. A downhill grade reduces drag and can make the equation invalid if gravity exceeds friction.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'list',
|
|
54
|
+
items: [
|
|
55
|
+
'Length is converted to metres internally so metric and imperial stay the same physical mark.',
|
|
56
|
+
'Surface chips load a typical locked-wheel friction and a low to high span.',
|
|
57
|
+
'Front-only and rear-only efficiencies are educational fractions of a fully used tire-road couple, because FMVSS 122 tests those controls separately.',
|
|
58
|
+
'Unknown brake use stretches the band from a rear-only assumption to a both-brake assumption.',
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'tip',
|
|
63
|
+
title: 'Measure the locked tire, not the crash',
|
|
64
|
+
html: 'Start at the first visible striation or shadow of a locked tire and stop where rotation resumes, the mark fades, or an impact begins. Do not add the distance the motorcycle slid on bodywork after a capsize. That is a different drag problem.',
|
|
65
|
+
},
|
|
66
|
+
{ type: 'title', level: 3, text: 'Typical friction used as a starting point' },
|
|
67
|
+
{
|
|
68
|
+
type: 'table',
|
|
69
|
+
headers: ['Surface', 'Mid friction', 'Low to high span'],
|
|
70
|
+
rows: [
|
|
71
|
+
['Dry asphalt', '0.70', '0.55 to 0.85'],
|
|
72
|
+
['Wet asphalt', '0.50', '0.35 to 0.65'],
|
|
73
|
+
['Dry concrete', '0.75', '0.60 to 0.90'],
|
|
74
|
+
['Gravel', '0.50', '0.35 to 0.70'],
|
|
75
|
+
['Grass or dirt', '0.40', '0.25 to 0.55'],
|
|
76
|
+
['Ice', '0.10', '0.05 to 0.18'],
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html: 'These are teaching values for locked sliding rubber, not peak braking coefficients from a laboratory trailer. FHWA describes the locked-wheel method as the analog of emergency braking without ABS. A measured drag sled or skid test at the scene always beats a table.',
|
|
82
|
+
},
|
|
83
|
+
{ type: 'title', level: 3, text: 'Motorcycle brakes change the story' },
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Most motorcycles have separate front and rear controls. A single rear skid does not mean the rider used all available friction. The estimator therefore lets you choose both, front, rear, or unknown. Unknown is the honest setting when you only have a photo of one stripe.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'diagnostic',
|
|
90
|
+
variant: 'warning',
|
|
91
|
+
title: 'Educational estimate, not evidence',
|
|
92
|
+
badge: 'Not for court',
|
|
93
|
+
html: 'ABS can leave dashed or missing marks. Contaminants, tire wear, load, ABS pulse, and an impact at the end of the mark all change the true speed. If the downhill drag factor reaches zero, the page refuses a number instead of inventing one.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
|
|
98
|
+
{
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'SoftwareApplication',
|
|
101
|
+
name: title,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
105
|
+
description,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
'@context': 'https://schema.org',
|
|
109
|
+
'@type': 'FAQPage',
|
|
110
|
+
mainEntity: faq.map((item) => ({
|
|
111
|
+
'@type': 'Question',
|
|
112
|
+
name: item.question,
|
|
113
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
114
|
+
})),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
'@context': 'https://schema.org',
|
|
118
|
+
'@type': 'HowTo',
|
|
119
|
+
name: 'Estimate motorcycle speed from a skid mark',
|
|
120
|
+
step: howTo.map((step) => ({
|
|
121
|
+
'@type': 'HowToStep',
|
|
122
|
+
name: step.name,
|
|
123
|
+
text: step.text,
|
|
124
|
+
})),
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
|
|
129
|
+
slug,
|
|
130
|
+
title,
|
|
131
|
+
description,
|
|
132
|
+
ui: {
|
|
133
|
+
unitMetric: 'Metric',
|
|
134
|
+
unitImperial: 'Imperial',
|
|
135
|
+
disclaimer: 'Teaching only. Chalk on a locked tyre scar, not a crash report.',
|
|
136
|
+
lengthLabel: 'Scar length',
|
|
137
|
+
lengthHint: 'Pull the rubber stripe. The yellow hook is the end of the visible mark.',
|
|
138
|
+
gradeLabel: 'Grade',
|
|
139
|
+
gradeHint: 'Tilt the slab. Uphill helps the motorcycle stop. Downhill eats drag.',
|
|
140
|
+
surfaceLabel: 'Pavement cores',
|
|
141
|
+
frictionLabel: 'Drag sled',
|
|
142
|
+
frictionHint: 'Park the sled on a core, then pull the scale if you measured a local drag factor.',
|
|
143
|
+
brakeLabel: 'Locked tyre',
|
|
144
|
+
brakeBoth: 'Both locked',
|
|
145
|
+
brakeFront: 'Front',
|
|
146
|
+
brakeRear: 'Rear',
|
|
147
|
+
brakeUnknown: 'Unknown',
|
|
148
|
+
speedLabel: 'Speed chalked on the scar',
|
|
149
|
+
rangeLabel: 'Faint scars',
|
|
150
|
+
dragHint: 'Drag anywhere on the lane to grow or shrink the rubber.',
|
|
151
|
+
emptyMessage: 'Pull the scar to chalk a speed.',
|
|
152
|
+
invalidMessage: 'The slab dumps downhill. This mark cannot explain a stop.',
|
|
153
|
+
readyMessage: 'Speed is chalked on the rubber.',
|
|
154
|
+
educationalBadge: 'Teaching only',
|
|
155
|
+
surfaceDryAsphalt: 'Dry asphalt',
|
|
156
|
+
surfaceWetAsphalt: 'Wet asphalt',
|
|
157
|
+
surfaceDryConcrete: 'Dry concrete',
|
|
158
|
+
surfaceGravel: 'Gravel',
|
|
159
|
+
surfaceGrass: 'Earth',
|
|
160
|
+
surfaceIce: 'Ice',
|
|
161
|
+
surfaceCustom: 'Sled',
|
|
162
|
+
sensitivityLabel: 'Faint scars',
|
|
163
|
+
lowAssumption: 'Low',
|
|
164
|
+
highAssumption: 'High',
|
|
165
|
+
gradeUphill: 'Uphill',
|
|
166
|
+
gradeDownhill: 'Downhill',
|
|
167
|
+
gradeLevel: 'Level',
|
|
168
|
+
measureHint: 'A scene drag sled beats a table. Use Sled and type the measured number.',
|
|
169
|
+
stencilUnitKmh: 'km/h',
|
|
170
|
+
stencilUnitMph: 'mph',
|
|
171
|
+
lengthUnitM: 'm',
|
|
172
|
+
lengthUnitFt: 'ft',
|
|
173
|
+
percentSuffix: '%',
|
|
174
|
+
dragLowLabel: 'Low drag',
|
|
175
|
+
dragMidLabel: 'Mid drag',
|
|
176
|
+
dragHighLabel: 'High drag',
|
|
177
|
+
},
|
|
178
|
+
seo,
|
|
179
|
+
faqTitle: 'Skid mark speed questions',
|
|
180
|
+
faq,
|
|
181
|
+
bibliographyTitle: 'Sources',
|
|
182
|
+
bibliography: bibliographyEntries,
|
|
183
|
+
howTo,
|
|
184
|
+
schemas,
|
|
185
|
+
};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { SEOSection } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
|
|
5
|
+
|
|
6
|
+
const slug = 'estimador-velocidad-huella-frenada-moto';
|
|
7
|
+
const title = 'Estimador de velocidad por huella de frenada de moto';
|
|
8
|
+
const description =
|
|
9
|
+
'Estima el rango de velocidad de una motocicleta a partir de la longitud de la marca de frenado, friccion del terreno, pendiente y frenos activados.';
|
|
10
|
+
|
|
11
|
+
const faq = [
|
|
12
|
+
{
|
|
13
|
+
question: '¿Que velocidad representa una marca de frenada?',
|
|
14
|
+
answer:
|
|
15
|
+
'Una huella de rueda bloqueada registra la distancia necesaria para disipar energia cinetica tras detenerse la rotacion del neumático. La ecuacion fisica ofrece la velocidad minima inicial al comienzo de la marca visible.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: '¿Por que el resultado es un rango en lugar de un unico numero?',
|
|
19
|
+
answer:
|
|
20
|
+
'La friccion de la superficie presenta incertidumbres, el frenado en motocicleta se reparte entre rueda delantera y trasera, y la pendiente altera el arrastre. El estimador contempla estas variables mostrando valores minimo, medio y maximo.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '¿Puedo usar esta cifra en un atestado o informe pericial oficial?',
|
|
24
|
+
answer:
|
|
25
|
+
'No. La reconstruccion de accidentes requiere pruebas de campo, coeficiente de rozamiento medido con dinamometro, analisis de ABS y deformacion por impacto. Esta utilidad es un laboratorio fisico educativo.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿En que se diferencia de una calculadora de distancia de frenado?',
|
|
29
|
+
answer:
|
|
30
|
+
'La calculadora de distancia parte de una velocidad y determina la distancia recorrida. Esta herramienta realiza el proceso inverso partiendo de la huella medida sin incluir tiempo de reaccion.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howTo = [
|
|
35
|
+
{ name: 'Medir la marca', text: 'Registra la longitud de la marca visible de rueda bloqueada en metros o pies.' },
|
|
36
|
+
{ name: 'Seleccionar la superficie', text: 'Elige el firme correspondiente al escenario o ajusta manualmente el coeficiente de rozamiento.' },
|
|
37
|
+
{ name: 'Ajustar pendiente y frenos', text: 'Introduce el desnivel y especifica si la marca proviene de ambos frenos, del delantero o del trasero.' },
|
|
38
|
+
{ name: 'Interpretar el resultado', text: 'Utiliza la velocidad media como valor central y analiza el rango de variacion segun las condiciones.' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const seo: SEOSection[] = [
|
|
42
|
+
{ type: 'title', level: 2, text: 'Convierte una huella de neumático en un rango de velocidad' },
|
|
43
|
+
{
|
|
44
|
+
type: 'paragraph',
|
|
45
|
+
html: 'Una motocicleta suele dejar una marca clara del neumático trasero, un rastro mas tenue del delantero o una linea discontinua con sistema ABS. Mide la fraccion de rueda totalmente bloqueada sin incluir el arrastre posterior de la carroceria tras una caida.',
|
|
46
|
+
},
|
|
47
|
+
{ type: 'title', level: 3, text: 'Fundamento fisico de la estimacion' },
|
|
48
|
+
{
|
|
49
|
+
type: 'paragraph',
|
|
50
|
+
html: 'El modelo utiliza el balance de energia por rozamiento. La velocidad es proporcional a la raiz cuadrada del producto de la gravedad, la longitud de la huella y el factor de desaceleracion ajustado por la pendiente del terreno.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'list',
|
|
54
|
+
items: [
|
|
55
|
+
'La longitud se convierte internamente a metros para mantener la equivalencia fisica exacta.',
|
|
56
|
+
'Las opciones de firme proporcionan coeficientes dinamicos estandar de friccion.',
|
|
57
|
+
'El uso de freno delantero o trasero aplica la distribucion de carga tipica segun normativas de homologacion.',
|
|
58
|
+
'La opcion de freno indeterminado amplia el margen entre la hipotesis mas conservadora y la mas exigente.',
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'tip',
|
|
63
|
+
title: 'Medir el neumático bloqueado',
|
|
64
|
+
html: 'Inicia la medicion en la primera sombra o estria visible de caucho depositado y finaliza donde se reanude la rotacion o comience la colision.',
|
|
65
|
+
},
|
|
66
|
+
{ type: 'title', level: 3, text: 'Coeficientes de friccion de referencia' },
|
|
67
|
+
{
|
|
68
|
+
type: 'table',
|
|
69
|
+
headers: ['Superficie', 'Friccion media', 'Rango de variacion'],
|
|
70
|
+
rows: [
|
|
71
|
+
['Asfalto seco', '0.70', '0.55 a 0.85'],
|
|
72
|
+
['Asfalto mojado', '0.50', '0.35 a 0.65'],
|
|
73
|
+
['Hormigon seco', '0.75', '0.60 a 0.90'],
|
|
74
|
+
['Grava', '0.50', '0.35 a 0.70'],
|
|
75
|
+
['Tierra o hierba', '0.40', '0.25 a 0.55'],
|
|
76
|
+
['Hielo', '0.10', '0.05 a 0.18'],
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html: 'Valores de referencia para deslizamiento de caucho sin rodadura. Un ensayo directo con dinamometro sobre el escenario real siempre ofrece mayor precision.',
|
|
82
|
+
},
|
|
83
|
+
{ type: 'title', level: 3, text: 'Influencia de los frenos en la motocicleta' },
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Al disponer de mandos independientes, una huella trasera no implica que se haya aprovechado todo el agarre disponible. La herramienta permite seleccionar el eje implicado para reflejar la transferencia de masa.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'diagnostic',
|
|
90
|
+
variant: 'warning',
|
|
91
|
+
title: 'Estimacion didactica',
|
|
92
|
+
badge: 'Uso educativo',
|
|
93
|
+
html: 'El desgaste del neumático, la presencia de gravilla, la activacion del ABS y los impactos alteran el calculo. Si la pendiente supera la capacidad de detencion, el sistema bloquea el calculo por invalidez fisica.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
|
|
98
|
+
{
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'SoftwareApplication',
|
|
101
|
+
name: title,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
105
|
+
description,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
'@context': 'https://schema.org',
|
|
109
|
+
'@type': 'FAQPage',
|
|
110
|
+
mainEntity: faq.map((item) => ({
|
|
111
|
+
'@type': 'Question',
|
|
112
|
+
name: item.question,
|
|
113
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
114
|
+
})),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
'@context': 'https://schema.org',
|
|
118
|
+
'@type': 'HowTo',
|
|
119
|
+
name: 'Estimar la velocidad de una moto por la huella de frenado',
|
|
120
|
+
step: howTo.map((step) => ({
|
|
121
|
+
'@type': 'HowToStep',
|
|
122
|
+
name: step.name,
|
|
123
|
+
text: step.text,
|
|
124
|
+
})),
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
|
|
129
|
+
slug,
|
|
130
|
+
title,
|
|
131
|
+
description,
|
|
132
|
+
ui: {
|
|
133
|
+
unitMetric: 'Metrico',
|
|
134
|
+
unitImperial: 'Imperial',
|
|
135
|
+
disclaimer: 'Uso educativo. Laboratorio de fisica de frenado en carretera.',
|
|
136
|
+
lengthLabel: 'Longitud de huella',
|
|
137
|
+
lengthHint: 'Arrastra para modificar la longitud de la marca visible.',
|
|
138
|
+
gradeLabel: 'Pendiente',
|
|
139
|
+
gradeHint: 'La cuesta arriba ayuda a frenar. La cuesta abajo reduce el agarre.',
|
|
140
|
+
surfaceLabel: 'Tipo de terreno',
|
|
141
|
+
frictionLabel: 'Friccion dinamica',
|
|
142
|
+
frictionHint: 'Selecciona una superficie o ajusta manualmente la friccion.',
|
|
143
|
+
brakeLabel: 'Freno bloqueado',
|
|
144
|
+
brakeBoth: 'Ambos frenos',
|
|
145
|
+
brakeFront: 'Delantero',
|
|
146
|
+
brakeRear: 'Trasero',
|
|
147
|
+
brakeUnknown: 'Indeterminado',
|
|
148
|
+
speedLabel: 'Velocidad estimada en la huella',
|
|
149
|
+
rangeLabel: 'Rango de incertidumbre',
|
|
150
|
+
dragHint: 'Arrastra sobre la calzada para ajustar la huella.',
|
|
151
|
+
emptyMessage: 'Ajusta la huella para calcular la velocidad.',
|
|
152
|
+
invalidMessage: 'Pendiente excesiva. La gravedad impide la detencion.',
|
|
153
|
+
readyMessage: 'Velocidad calculada correctamente.',
|
|
154
|
+
educationalBadge: 'Uso didactico',
|
|
155
|
+
surfaceDryAsphalt: 'Asfalto seco',
|
|
156
|
+
surfaceWetAsphalt: 'Asfalto mojado',
|
|
157
|
+
surfaceDryConcrete: 'Hormigon seco',
|
|
158
|
+
surfaceGravel: 'Grava',
|
|
159
|
+
surfaceGrass: 'Tierra',
|
|
160
|
+
surfaceIce: 'Hielo',
|
|
161
|
+
surfaceCustom: 'Personalizado',
|
|
162
|
+
sensitivityLabel: 'Margen estimado',
|
|
163
|
+
lowAssumption: 'Bajo',
|
|
164
|
+
highAssumption: 'Alto',
|
|
165
|
+
gradeUphill: 'Subida',
|
|
166
|
+
gradeDownhill: 'Bajada',
|
|
167
|
+
gradeLevel: 'Lano',
|
|
168
|
+
measureHint: 'Un ensayo dinamometrico real mejora la precision de la tabla.',
|
|
169
|
+
stencilUnitKmh: 'km/h',
|
|
170
|
+
stencilUnitMph: 'mph',
|
|
171
|
+
lengthUnitM: 'm',
|
|
172
|
+
lengthUnitFt: 'ft',
|
|
173
|
+
percentSuffix: '%',
|
|
174
|
+
dragLowLabel: 'Arrastre bajo',
|
|
175
|
+
dragMidLabel: 'Arrastre medio',
|
|
176
|
+
dragHighLabel: 'Arrastre alto',
|
|
177
|
+
},
|
|
178
|
+
seo,
|
|
179
|
+
faqTitle: 'Preguntas frecuentes sobre huellas de frenada',
|
|
180
|
+
faq,
|
|
181
|
+
bibliographyTitle: 'Fuentes bibliograficas',
|
|
182
|
+
bibliography: bibliographyEntries,
|
|
183
|
+
howTo,
|
|
184
|
+
schemas,
|
|
185
|
+
};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { SEOSection } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
|
|
5
|
+
|
|
6
|
+
const slug = 'estimateur-vitesse-trace-freinage-moto';
|
|
7
|
+
const title = 'Estimateur de vitesse par trace de freinage moto';
|
|
8
|
+
const description =
|
|
9
|
+
'Estimez la plage de vitesse d une moto selon la longueur de la trace de freinage, le frottement et la pente de la chaussée. Outil pédagogique et laboratoire physique.';
|
|
10
|
+
|
|
11
|
+
const faq = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Que traduit une trace de freinage ?',
|
|
14
|
+
answer:
|
|
15
|
+
'Une trace de roue bloquée indique la distance nécessaire pour dissiper l énergie cinétique après l arrêt de la rotation du pneu. La formule détermine la vitesse minimale au début de la trace visible et non la vitesse initiale avant le freinage.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Pourquoi obtenir une plage de vitesse ?',
|
|
19
|
+
answer:
|
|
20
|
+
'Le coefficient d adhérence et la répartition du freinage comportent des incertitudes. L estimateur intègre ces paramètres pour établir un intervalle réaliste entre vitesse minimale, moyenne et maximale.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Peut-on utiliser ce résultat pour un rapport d accident officiel ?',
|
|
24
|
+
answer:
|
|
25
|
+
'Non. L expertise d accident exige des mesures dynamométriques sur le terrain, l analyse de l ABS et l examen des déformations. Cet outil sert exclusivement de laboratoire physique pédagogique.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Quelle est la différence avec un calculateur de distance d arrêt ?',
|
|
29
|
+
answer:
|
|
30
|
+
'Le calculateur de distance part de la vitesse pour trouver la distance parcourue. Cet outil effectue le calcul inverse à partir de la trace de pneu mesurée sans inclure le temps de réaction.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howTo = [
|
|
35
|
+
{ name: 'Mesurer la trace', text: 'Relevez la longueur de la trace de pneu bloqué en mètres ou pieds sur la chaussée.' },
|
|
36
|
+
{ name: 'Choisir la surface', text: 'Sélectionnez le revêtement de la chaussée ou ajustez le coefficient de frottement dynamique.' },
|
|
37
|
+
{ name: 'Définir la pente et les freins', text: 'Indiquez l inclinaison de la voie et les freins sollicités par le conducteur.' },
|
|
38
|
+
{ name: 'Lire l estimation', text: 'Consultez la vitesse moyenne ainsi que l intervalle de variation selon les hypothèses.' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const seo: SEOSection[] = [
|
|
42
|
+
{ type: 'title', level: 2, text: 'Convertir une trace de pneu en plage de vitesse' },
|
|
43
|
+
{
|
|
44
|
+
type: 'paragraph',
|
|
45
|
+
html: 'Une moto laisse souvent une marque nette à l arrière, une trace plus légère à l avant ou une empreinte hachée en présence d un système ABS. Seule la portion de pneu totalement bloquée doit être mesurée sur le terrain, sans inclure la glissade ultérieure du véhicule sur le flanc ou la carrosserie après la chute.',
|
|
46
|
+
},
|
|
47
|
+
{ type: 'title', level: 3, text: 'Formule physique et modèle d estimation' },
|
|
48
|
+
{
|
|
49
|
+
type: 'paragraph',
|
|
50
|
+
html: 'Le modèle repose sur la conservation de l énergie cinétique lors du frottement de glissement: la vitesse est proportionnelle à la racine carrée du produit de la gravité, de la longueur de la trace et du facteur de décélération ajusté par la pente. Une montée favorise l arrêt, tandis qu une descente réduit le frottement effectif.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'list',
|
|
54
|
+
items: [
|
|
55
|
+
'Conversion automatique des longueurs mesurées en mètres pour préserver la précision physique.',
|
|
56
|
+
'Coefficients d adhérence typiques pour l asphalte sec, mouillé, le béton sec, le gravier et la glace.',
|
|
57
|
+
'Prise en compte de la répartition du freinage entre les roues avant et arrière selon les normes d homologation.',
|
|
58
|
+
'Plage d incertitude élargie lorsque le type de freinage appliqué demeure inconnu sur le lieu de l incident.',
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'tip',
|
|
63
|
+
title: 'Mesurer uniquement la marque de blocage',
|
|
64
|
+
html: 'Débutez la mesure dès la première trace de gomme visible sur l asphalte et arrêtez-vous là où la roue recommence à tourner ou au point d impact. Ne comptabilisez pas le ripage du cadre sur le sol.',
|
|
65
|
+
},
|
|
66
|
+
{ type: 'title', level: 3, text: 'Coefficients de frottement types sur chaussée' },
|
|
67
|
+
{
|
|
68
|
+
type: 'table',
|
|
69
|
+
headers: ['Surface', 'Frottement moyen', 'Plage d adhérence'],
|
|
70
|
+
rows: [
|
|
71
|
+
['Asphalte sec', '0.70', '0.55 à 0.85'],
|
|
72
|
+
['Asphalte mouillé', '0.50', '0.35 à 0.65'],
|
|
73
|
+
['Béton sec', '0.75', '0.60 à 0.90'],
|
|
74
|
+
['Gravier', '0.50', '0.35 à 0.70'],
|
|
75
|
+
['Terre ou herbe', '0.40', '0.25 à 0.55'],
|
|
76
|
+
['Glace', '0.10', '0.05 à 0.18'],
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html: 'Ces données fournissent des valeurs de référence pour le glissement d un pneu en caoutchouc bloqué. Un essai d adhérence direct réalisé sur le site de l accident apporte toujours une précision supérieure.',
|
|
82
|
+
},
|
|
83
|
+
{ type: 'title', level: 3, text: 'Répartition du freinage et spécificités de la moto' },
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'La plupart des motos possèdent des commandes séparées pour le frein avant et le frein arrière. Une trace arrière isolée n indique pas que le motard a exploité toute l adhérence disponible. L outil permet donc d évaluer séparément chaque configuration de freinage.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'diagnostic',
|
|
90
|
+
variant: 'warning',
|
|
91
|
+
title: 'Outil pédagogique et scientifique',
|
|
92
|
+
badge: 'Didactique',
|
|
93
|
+
html: 'Les systèmes ABS, le niveau d usure du pneu, la charge du véhicule et les impacts modifient la vitesse réelle. En cas de descente trop prononcée annulant le frottement, le calculateur refuse de donner un résultat physiquement impossible.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
|
|
98
|
+
{
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'SoftwareApplication',
|
|
101
|
+
name: title,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
105
|
+
description,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
'@context': 'https://schema.org',
|
|
109
|
+
'@type': 'FAQPage',
|
|
110
|
+
mainEntity: faq.map((item) => ({
|
|
111
|
+
'@type': 'Question',
|
|
112
|
+
name: item.question,
|
|
113
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
114
|
+
})),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
'@context': 'https://schema.org',
|
|
118
|
+
'@type': 'HowTo',
|
|
119
|
+
name: title,
|
|
120
|
+
step: howTo.map((step) => ({
|
|
121
|
+
'@type': 'HowToStep',
|
|
122
|
+
name: step.name,
|
|
123
|
+
text: step.text,
|
|
124
|
+
})),
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
|
|
129
|
+
slug,
|
|
130
|
+
title,
|
|
131
|
+
description,
|
|
132
|
+
ui: {
|
|
133
|
+
unitMetric: 'Métrique',
|
|
134
|
+
unitImperial: 'Impérial',
|
|
135
|
+
disclaimer: 'Utilisation éducative uniquement.',
|
|
136
|
+
lengthLabel: 'Longueur de trace',
|
|
137
|
+
lengthHint: 'Ajustez la longueur de la trace sur la chaussée.',
|
|
138
|
+
gradeLabel: 'Pente',
|
|
139
|
+
gradeHint: 'La montée aide au freinage, la descente réduit l adhérence.',
|
|
140
|
+
surfaceLabel: 'Revêtement',
|
|
141
|
+
frictionLabel: 'Frottement',
|
|
142
|
+
frictionHint: 'Choisissez un revêtement ou ajustez la valeur.',
|
|
143
|
+
brakeLabel: 'Frein bloqué',
|
|
144
|
+
brakeBoth: 'Les deux',
|
|
145
|
+
brakeFront: 'Avant',
|
|
146
|
+
brakeRear: 'Arrière',
|
|
147
|
+
brakeUnknown: 'Inconnu',
|
|
148
|
+
speedLabel: 'Vitesse estimée sur la trace',
|
|
149
|
+
rangeLabel: 'Plage d incertitude',
|
|
150
|
+
dragHint: 'Faites glisser la trace sur la route.',
|
|
151
|
+
emptyMessage: 'Ajustez la trace pour calculer la vitesse.',
|
|
152
|
+
invalidMessage: 'Pente trop forte. Arrêt physiquement impossible.',
|
|
153
|
+
readyMessage: 'Vitesse calculée.',
|
|
154
|
+
educationalBadge: 'Éducatif',
|
|
155
|
+
surfaceDryAsphalt: 'Asphalte sec',
|
|
156
|
+
surfaceWetAsphalt: 'Asphalte mouillé',
|
|
157
|
+
surfaceDryConcrete: 'Béton sec',
|
|
158
|
+
surfaceGravel: 'Gravier',
|
|
159
|
+
surfaceGrass: 'Terre',
|
|
160
|
+
surfaceIce: 'Glace',
|
|
161
|
+
surfaceCustom: 'Manuel',
|
|
162
|
+
sensitivityLabel: 'Marge d erreur',
|
|
163
|
+
lowAssumption: 'Basse',
|
|
164
|
+
highAssumption: 'Haute',
|
|
165
|
+
gradeUphill: 'Montée',
|
|
166
|
+
gradeDownhill: 'Descente',
|
|
167
|
+
gradeLevel: 'Plat',
|
|
168
|
+
measureHint: 'Un essai réel sur le terrain est plus précis.',
|
|
169
|
+
stencilUnitKmh: 'km/h',
|
|
170
|
+
stencilUnitMph: 'mph',
|
|
171
|
+
lengthUnitM: 'm',
|
|
172
|
+
lengthUnitFt: 'ft',
|
|
173
|
+
percentSuffix: '%',
|
|
174
|
+
dragLowLabel: 'Faible',
|
|
175
|
+
dragMidLabel: 'Moyen',
|
|
176
|
+
dragHighLabel: 'Élevé',
|
|
177
|
+
},
|
|
178
|
+
seo,
|
|
179
|
+
faqTitle: 'Foire aux questions sur les traces de freinage',
|
|
180
|
+
faq,
|
|
181
|
+
bibliographyTitle: 'Sources',
|
|
182
|
+
bibliography: bibliographyEntries,
|
|
183
|
+
howTo,
|
|
184
|
+
schemas,
|
|
185
|
+
};
|