@jjlmoya/utils-hardware 1.27.0 → 1.29.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 (55) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +3 -1
  3. package/src/entries.ts +7 -1
  4. package/src/index.ts +2 -0
  5. package/src/tests/locale_completeness.test.ts +1 -1
  6. package/src/tests/tool_validation.test.ts +1 -1
  7. package/src/tool/mobileSensorTest/bibliography.astro +14 -0
  8. package/src/tool/mobileSensorTest/bibliography.ts +24 -0
  9. package/src/tool/mobileSensorTest/component.astro +241 -0
  10. package/src/tool/mobileSensorTest/entry.ts +29 -0
  11. package/src/tool/mobileSensorTest/i18n/de.ts +186 -0
  12. package/src/tool/mobileSensorTest/i18n/en.ts +186 -0
  13. package/src/tool/mobileSensorTest/i18n/es.ts +186 -0
  14. package/src/tool/mobileSensorTest/i18n/fr.ts +186 -0
  15. package/src/tool/mobileSensorTest/i18n/id.ts +186 -0
  16. package/src/tool/mobileSensorTest/i18n/it.ts +186 -0
  17. package/src/tool/mobileSensorTest/i18n/ja.ts +186 -0
  18. package/src/tool/mobileSensorTest/i18n/ko.ts +186 -0
  19. package/src/tool/mobileSensorTest/i18n/nl.ts +186 -0
  20. package/src/tool/mobileSensorTest/i18n/pl.ts +186 -0
  21. package/src/tool/mobileSensorTest/i18n/pt.ts +186 -0
  22. package/src/tool/mobileSensorTest/i18n/ru.ts +186 -0
  23. package/src/tool/mobileSensorTest/i18n/sv.ts +186 -0
  24. package/src/tool/mobileSensorTest/i18n/tr.ts +186 -0
  25. package/src/tool/mobileSensorTest/i18n/zh.ts +186 -0
  26. package/src/tool/mobileSensorTest/index.ts +11 -0
  27. package/src/tool/mobileSensorTest/logic.ts +39 -0
  28. package/src/tool/mobileSensorTest/mobile-sensor-test.css +460 -0
  29. package/src/tool/mobileSensorTest/seo.astro +15 -0
  30. package/src/tool/mobileSensorTest/ui.ts +31 -0
  31. package/src/tool/subwooferCrossoverTest/bibliography.astro +14 -0
  32. package/src/tool/subwooferCrossoverTest/bibliography.ts +16 -0
  33. package/src/tool/subwooferCrossoverTest/component.astro +253 -0
  34. package/src/tool/subwooferCrossoverTest/entry.ts +29 -0
  35. package/src/tool/subwooferCrossoverTest/i18n/de.ts +188 -0
  36. package/src/tool/subwooferCrossoverTest/i18n/en.ts +188 -0
  37. package/src/tool/subwooferCrossoverTest/i18n/es.ts +188 -0
  38. package/src/tool/subwooferCrossoverTest/i18n/fr.ts +188 -0
  39. package/src/tool/subwooferCrossoverTest/i18n/id.ts +188 -0
  40. package/src/tool/subwooferCrossoverTest/i18n/it.ts +188 -0
  41. package/src/tool/subwooferCrossoverTest/i18n/ja.ts +188 -0
  42. package/src/tool/subwooferCrossoverTest/i18n/ko.ts +188 -0
  43. package/src/tool/subwooferCrossoverTest/i18n/nl.ts +188 -0
  44. package/src/tool/subwooferCrossoverTest/i18n/pl.ts +188 -0
  45. package/src/tool/subwooferCrossoverTest/i18n/pt.ts +188 -0
  46. package/src/tool/subwooferCrossoverTest/i18n/ru.ts +188 -0
  47. package/src/tool/subwooferCrossoverTest/i18n/sv.ts +188 -0
  48. package/src/tool/subwooferCrossoverTest/i18n/tr.ts +188 -0
  49. package/src/tool/subwooferCrossoverTest/i18n/zh.ts +188 -0
  50. package/src/tool/subwooferCrossoverTest/index.ts +11 -0
  51. package/src/tool/subwooferCrossoverTest/logic.ts +30 -0
  52. package/src/tool/subwooferCrossoverTest/seo.astro +15 -0
  53. package/src/tool/subwooferCrossoverTest/subwoofer-crossover-test.css +282 -0
  54. package/src/tool/subwooferCrossoverTest/ui.ts +20 -0
  55. package/src/tools.ts +3 -1
@@ -0,0 +1,186 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MobileSensorTestUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'teste-sensores-celular';
7
+ const title = 'Teste de Sensores do Celular';
8
+ const description = 'Execute um teste online de giroscópio, acelerômetro, sensor de movimento e nível de bolha no seu celular para verificar inclinação, rotação, deriva e problemas de calibração dos sensores.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Como posso testar o giroscópio do meu celular online?',
13
+ answer: 'Abra o teste no celular, toque em Iniciar Calibração, permita o acesso ao movimento se solicitado e gire e incline o dispositivo. Um giroscópio e sensor de orientação funcionando devem atualizar alpha, beta e gamma suavemente, sem travar ou pular bruscamente.',
14
+ },
15
+ {
16
+ question: 'Posso testar o acelerômetro com um nível de bolha?',
17
+ answer: 'Sim. Coloque o celular em uma mesa plana após iniciar o teste. A bolha deve se estabilizar perto do centro e os valores de aceleração devem permanecer estáveis. Se a bolha derivar muito enquanto o celular estiver parado, o acelerômetro pode precisar de calibração ou a capa, a mesa ou o hardware do dispositivo podem estar interferindo.',
18
+ },
19
+ {
20
+ question: 'Por que o iPhone pede permissão de movimento?',
21
+ answer: 'O Safari no iPhone e iPad exige um toque antes que os sites possam acessar os sensores de movimento e orientação. Se a permissão for negada, o teste não pode ler os dados do giroscópio ou acelerômetro até que você permita o acesso ao movimento.',
22
+ },
23
+ {
24
+ question: 'Isso pode consertar ou calibrar uma bússola com defeito?',
25
+ answer: 'Nenhuma ferramenta de navegador pode reparar hardware ou forçar a calibração da bússola do sistema. Este teste ajuda a identificar sintomas: leituras travadas, movimento ruidoso, deriva, permissão ausente ou um navegador que não expõe os sensores.',
26
+ },
27
+ ];
28
+
29
+ const howToData = [
30
+ { name: 'Abra o teste no seu celular', text: 'Use o mesmo iPhone, iPad, celular Android ou tablet que você deseja diagnosticar. Navegadores de desktop geralmente não expõem sensores de movimento.' },
31
+ { name: 'Permita o acesso ao movimento', text: 'Toque em Iniciar Calibração e aceite o aviso de permissão de movimento ou orientação se o navegador mostrar um.' },
32
+ { name: 'Teste inclinação e rotação', text: 'Incline o celular para frente, role para esquerda e direita e depois gire-o plano sobre uma mesa. Observe mudanças suaves de alpha, beta, gamma e aceleração.' },
33
+ { name: 'Verifique a deriva em uma superfície plana', text: 'Deixe o celular parado por vários segundos. Um sensor saudável deve se estabilizar em vez de vaguear constantemente, dar picos ou travar.' },
34
+ ];
35
+
36
+ const faqSchema: WithContext<FAQPage> = {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'FAQPage',
39
+ mainEntity: faqData.map((item) => ({
40
+ '@type': 'Question',
41
+ name: item.question,
42
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
43
+ })),
44
+ };
45
+
46
+ const howToSchema: WithContext<HowTo> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'HowTo',
49
+ name: title,
50
+ description,
51
+ step: howToData.map((step, i) => ({
52
+ '@type': 'HowToStep',
53
+ position: i + 1,
54
+ name: step.name,
55
+ text: step.text,
56
+ })),
57
+ };
58
+
59
+ const appSchema: WithContext<SoftwareApplication> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'SoftwareApplication',
62
+ name: title,
63
+ description,
64
+ applicationCategory: 'UtilityApplication',
65
+ operatingSystem: 'All',
66
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
67
+ inLanguage: 'pt',
68
+ };
69
+
70
+ export const content: ToolLocaleContent<MobileSensorTestUI> = {
71
+ slug,
72
+ title,
73
+ description,
74
+ faq: faqData,
75
+ howTo: howToData,
76
+ schemas: [faqSchema, howToSchema, appSchema],
77
+ bibliography,
78
+ seo: [
79
+ { type: 'title', text: 'Teste online de giroscópio e acelerômetro para celulares', level: 2 },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Use este teste de sensores móveis quando a rotação da tela parecer errada, jogos ou apps de RA derivarem, um app de nível de bolha parecer impreciso, a navegação apontar na direção errada ou o celular não reagir corretamente à inclinação. O teste mostra ao vivo o comportamento do giroscópio, acelerômetro, rotação e nível para que você possa distinguir um problema de permissão do navegador de um problema real de sensor ou calibração.',
83
+ },
84
+ {
85
+ type: 'stats',
86
+ items: [
87
+ { label: 'Intenção de busca principal', value: 'testar giroscópio online' },
88
+ { label: 'Também verifica', value: 'deriva do acelerômetro' },
89
+ { label: 'Melhor dispositivo', value: 'celular ou tablet' },
90
+ ],
91
+ },
92
+ { type: 'title', text: 'O que cada leitura do sensor indica', level: 3 },
93
+ {
94
+ type: 'table',
95
+ headers: ['Leitura', 'Útil para', 'Sinais de alerta'],
96
+ rows: [
97
+ ['Alpha', 'Verificar a rotação em torno do eixo vertical, útil para movimentos tipo bússola e mudanças de direção.', 'Não muda ao girar o celular plano, salta em grandes quantidades ou trava no zero.'],
98
+ ['Beta', 'Verificar a inclinação frente-trás para rotação de tela, jogos, nivelamento de câmera e controles de RA.', 'Move-se na direção errada, trava em um valor ou continua derivando enquanto o celular está parado.'],
99
+ ['Gamma', 'Verificar o rolamento esquerda-direita para rotação paisagem, jogos de corrida, apps de nível e estabilizadores.', 'Um lado responde de forma diferente, os valores são ruidosos ou a bolha nunca centraliza em uma mesa plana.'],
100
+ ['Aceleração X/Y/Z', 'Verificar a resposta do acelerômetro, detecção de sacudidas, direção da gravidade e estabilidade do movimento.', 'Picos grandes estando parado, sem resposta ao movimento ou leituras instáveis após remover a capa.'],
101
+ ],
102
+ },
103
+ {
104
+ type: 'diagnostic',
105
+ variant: 'warning',
106
+ title: 'Sintomas que este teste ajuda a diagnosticar',
107
+ html: '<p>Use os valores ao vivo para investigar falhas na rotação automática, giroscópio com atraso, deriva do acelerômetro, avisos de calibração da bússola, rastreamento RA que desliza, erros de nível da câmera, controles de movimento puxando para um lado ou um celular que só relata movimento em apps nativos, mas não no navegador.</p>',
108
+ },
109
+ { type: 'title', text: 'Giroscópio vs acelerômetro vs bússola', level: 3 },
110
+ {
111
+ type: 'comparative',
112
+ items: [
113
+ { title: 'Giroscópio', description: 'Mede a velocidade de rotação. É essencial para RA, jogos, estabilização de câmera, controles de movimento e mudanças suaves de orientação.' },
114
+ { title: 'Acelerômetro', description: 'Mede a aceleração e a direção da gravidade. Permite a inclinação, detecção de sacudidas, contagem de passos e o comportamento do nível de bolha digital.' },
115
+ { title: 'Bússola / magnetômetro', description: 'Ajuda a estimar a direção, mas pode ser perturbado por ímãs, objetos metálicos, suportes de carro, capas, alto-falantes, laptops e eletrônicos próximos.' },
116
+ ],
117
+ },
118
+ { type: 'title', text: 'Como testar a calibração do sensor corretamente', level: 3 },
119
+ {
120
+ type: 'list',
121
+ items: [
122
+ 'Remova capas magnéticas, carteiras MagSafe, suportes metálicos, clipes de controle e acessórios antes de testar.',
123
+ 'Coloque o celular em uma mesa firme e plana e aguarde vários segundos antes de julgar a deriva.',
124
+ 'Gire o celular lentamente em cada eixo em vez de sacudi-lo imediatamente.',
125
+ 'Compare o Safari ou Chrome com um app nativo de sensor ou bússola se o navegador não mostrar dados.',
126
+ 'Reinicie o dispositivo e repita o teste se as leituras estiverem travadas em vários apps.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'tip',
131
+ title: 'Nota sobre permissões no iPhone e Android',
132
+ html: 'No iPhone e iPad, o Safari pode solicitar permissão de movimento e orientação após um toque. No Android, o Chrome geralmente expõe os sensores de movimento de forma mais direta, mas configurações de privacidade, flags do navegador, modos de economia de bateria e webviews incorporadas ainda podem bloquear ou reduzir os dados do sensor.',
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['Problema', 'Causa provável', 'Próximo passo'],
137
+ rows: [
138
+ ['Nenhum valor muda', 'Permissão negada, navegador não suportado, dispositivo desktop ou webview restrita.', 'Abra no próprio celular, use Safari ou Chrome, permita o acesso ao movimento e recarregue a página.'],
139
+ ['Bolha deriva em uma mesa', 'Problema de calibração, superfície irregular, interferência da capa ou ruído do acelerômetro.', 'Remova a capa, use uma superfície plana conhecida, reinicie e compare com um app de nível nativo.'],
140
+ ['Direção da bússola está errada', 'Interferência magnética ou calibração da bússola do sistema.', 'Afaste-se de metais/eletrônicos e use o fluxo de calibração da bússola do sistema operacional.'],
141
+ ['Valores saltam ou dão picos', 'Ruído do sensor, hardware danificado, limitação agressiva do navegador ou movimento físico repentino.', 'Teste parado, feche apps pesados e compare com outro navegador ou app nativo.'],
142
+ ],
143
+ },
144
+ {
145
+ type: 'summary',
146
+ title: 'Para que este teste é útil',
147
+ items: [
148
+ 'Testar o giroscópio de um celular online sem instalar um app.',
149
+ 'Verificar a deriva do acelerômetro com um nível de bolha ao vivo.',
150
+ 'Descobrir se os controles de movimento falham por hardware, calibração, permissão ou suporte do navegador.',
151
+ 'Preparar um celular para RA, jogos, nivelamento de câmera, navegação ou solução de problemas de rotação de tela.',
152
+ ],
153
+ },
154
+ ],
155
+ ui: {
156
+ startButton: 'Iniciar Calibração',
157
+ permissionHint: 'Toque uma vez para desbloquear os sensores de movimento',
158
+ privacyBadge: 'Dados locais do sensor',
159
+ privacyCopy: 'As leituras de orientação e movimento permanecem dentro desta sessão do navegador.',
160
+ orientationPanel: 'Orientação',
161
+ motionPanel: 'Movimento',
162
+ bubblePanel: 'Nível de bolha digital',
163
+ statusReady: 'Pronto para permissão do sensor',
164
+ statusWaiting: 'Aguardando permissão do navegador',
165
+ statusDenied: 'Acesso ao sensor negado ou indisponível',
166
+ statusUnsupported: 'Os sensores de movimento não são expostos por este navegador',
167
+ statusActive: 'Fluxo de sensores ao vivo ativo',
168
+ steadyLabel: 'Estável',
169
+ movingLabel: 'Em movimento',
170
+ shakingLabel: 'Sacudindo',
171
+ alphaLabel: 'Alpha',
172
+ betaLabel: 'Beta',
173
+ gammaLabel: 'Gamma',
174
+ accelXLabel: 'X',
175
+ accelYLabel: 'Y',
176
+ accelZLabel: 'Z',
177
+ rotationAlphaLabel: 'Rot A',
178
+ rotationBetaLabel: 'Rot B',
179
+ rotationGammaLabel: 'Rot G',
180
+ levelOffsetLabel: 'Desvio de nível',
181
+ motionMagnitudeLabel: 'Magnitude do movimento',
182
+ cubeLabel: 'Cubo 3D de orientação do dispositivo',
183
+ bubbleLabel: 'Indicador de nível de bolha',
184
+ calibrationLabel: 'Graus ao vivo',
185
+ },
186
+ };
@@ -0,0 +1,186 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MobileSensorTestUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'test-datchikov-telefona';
7
+ const title = 'Тест датчиков телефона';
8
+ const description = 'Запустите онлайн-тест гироскопа, акселерометра, датчика движения и пузырькового уровня на телефоне, чтобы проверить наклон, вращение, дрейф и проблемы с калибровкой датчиков.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Как протестировать гироскоп телефона онлайн?',
13
+ answer: 'Откройте тест на телефоне, нажмите "Начать калибровку", разрешите доступ к датчикам движения, если появится запрос, затем вращайте и наклоняйте устройство. Исправный гироскоп и датчик ориентации должны плавно обновлять значения alpha, beta и gamma, без зависаний и резких скачков.',
14
+ },
15
+ {
16
+ question: 'Можно ли протестировать акселерометр с помощью пузырькового уровня?',
17
+ answer: 'Да. Положите телефон на ровный стол после запуска теста. Пузырёк должен расположиться близко к центру, а значения ускорения должны оставаться стабильными. Если пузырёк сильно дрейфует, когда телефон неподвижен, акселерометр может нуждаться в калибровке, либо чехол, стол или аппаратное обеспечение устройства могут создавать помехи.',
18
+ },
19
+ {
20
+ question: 'Почему iPhone запрашивает разрешение на движение?',
21
+ answer: 'Safari на iPhone и iPad требует касания, прежде чем веб-сайты смогут получить доступ к датчикам движения и ориентации. Если разрешение отклонено, тест не сможет считывать данные гироскопа или акселерометра, пока вы не разрешите доступ к движению.',
22
+ },
23
+ {
24
+ question: 'Может ли это исправить или откалибровать неисправный компас?',
25
+ answer: 'Ни один браузерный инструмент не может починить оборудование или принудительно выполнить калибровку системного компаса. Этот тест помогает выявить симптомы: зависшие показания, зашумлённое движение, дрейф, отсутствие разрешений или браузер, который не предоставляет доступ к датчикам.',
26
+ },
27
+ ];
28
+
29
+ const howToData = [
30
+ { name: 'Откройте тест на телефоне', text: 'Используйте тот же iPhone, iPad, телефон Android или планшет, который хотите диагностировать. Настольные браузеры обычно не предоставляют датчики движения.' },
31
+ { name: 'Разрешите доступ к движению', text: 'Нажмите "Начать калибровку" и примите запрос на разрешение движения или ориентации, если браузер его покажет.' },
32
+ { name: 'Проверьте наклон и вращение', text: 'Наклоните телефон вперёд, покачайте влево-вправо, затем повращайте плашмя на столе. Наблюдайте за плавными изменениями alpha, beta, gamma и ускорения.' },
33
+ { name: 'Проверьте дрейф на ровной поверхности', text: 'Оставьте телефон неподвижным на несколько секунд. Исправный датчик должен стабилизироваться, а не постоянно блуждать, давать скачки или зависать.' },
34
+ ];
35
+
36
+ const faqSchema: WithContext<FAQPage> = {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'FAQPage',
39
+ mainEntity: faqData.map((item) => ({
40
+ '@type': 'Question',
41
+ name: item.question,
42
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
43
+ })),
44
+ };
45
+
46
+ const howToSchema: WithContext<HowTo> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'HowTo',
49
+ name: title,
50
+ description,
51
+ step: howToData.map((step, i) => ({
52
+ '@type': 'HowToStep',
53
+ position: i + 1,
54
+ name: step.name,
55
+ text: step.text,
56
+ })),
57
+ };
58
+
59
+ const appSchema: WithContext<SoftwareApplication> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'SoftwareApplication',
62
+ name: title,
63
+ description,
64
+ applicationCategory: 'UtilityApplication',
65
+ operatingSystem: 'All',
66
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
67
+ inLanguage: 'ru',
68
+ };
69
+
70
+ export const content: ToolLocaleContent<MobileSensorTestUI> = {
71
+ slug,
72
+ title,
73
+ description,
74
+ faq: faqData,
75
+ howTo: howToData,
76
+ schemas: [faqSchema, howToSchema, appSchema],
77
+ bibliography,
78
+ seo: [
79
+ { type: 'title', text: 'Онлайн-тест гироскопа и акселерометра для телефонов', level: 2 },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Используйте этот тест мобильных датчиков, когда поворот экрана работает неправильно, игры или приложения с дополненной реальностью дрейфуют, приложение пузырькового уровня кажется неточным, навигация указывает неверное направление или телефон неправильно реагирует на наклон. Тест показывает в реальном времени поведение гироскопа, акселерометра, вращения и уровня, чтобы вы могли отличить проблему с разрешениями браузера от реальной проблемы с датчиком или калибровкой.',
83
+ },
84
+ {
85
+ type: 'stats',
86
+ items: [
87
+ { label: 'Основная цель поиска', value: 'проверить гироскоп онлайн' },
88
+ { label: 'Также проверяет', value: 'дрейф акселерометра' },
89
+ { label: 'Лучшее устройство', value: 'телефон или планшет' },
90
+ ],
91
+ },
92
+ { type: 'title', text: 'О чём говорят показания каждого датчика', level: 3 },
93
+ {
94
+ type: 'table',
95
+ headers: ['Показание', 'Полезно для', 'Тревожные признаки'],
96
+ rows: [
97
+ ['Alpha', 'Проверка вращения вокруг вертикальной оси, полезно для движений, подобных компасу, и изменения направления.', 'Не меняется при плоском вращении телефона, прыгает на большие значения или зависает на нуле.'],
98
+ ['Beta', 'Проверка наклона вперёд-назад для поворота экрана, игр, выравнивания камеры и управления в AR.', 'Движется в неправильном направлении, застревает на одном значении или продолжает дрейфовать, когда телефон неподвижен.'],
99
+ ['Gamma', 'Проверка крена влево-вправо для альбомной ориентации, гоночных игр, приложений уровня и стабилизаторов.', 'Одна сторона реагирует иначе, значения зашумлены или пузырёк никогда не возвращается в центр на ровном столе.'],
100
+ ['Ускорение X/Y/Z', 'Проверка реакции акселерометра, обнаружения встряхивания, направления гравитации и стабильности движения.', 'Большие скачки в неподвижном состоянии, отсутствие реакции на движение или нестабильные показания после снятия чехла.'],
101
+ ],
102
+ },
103
+ {
104
+ type: 'diagnostic',
105
+ variant: 'warning',
106
+ title: 'Симптомы, которые помогает диагностировать этот тест',
107
+ html: '<p>Используйте значения в реальном времени для выявления неработающего автоповорота, гироскопа с задержкой, дрейфа акселерометра, предупреждений о калибровке компаса, ускользающего отслеживания в AR, ошибок уровня камеры, управления движением, уводящего в одну сторону, или телефона, который сообщает о движении только в нативных приложениях, но не в браузере.</p>',
108
+ },
109
+ { type: 'title', text: 'Гироскоп против акселерометра против компаса', level: 3 },
110
+ {
111
+ type: 'comparative',
112
+ items: [
113
+ { title: 'Гироскоп', description: 'Измеряет скорость вращения. Важен для AR, игр, стабилизации камеры, управления движением и плавных изменений ориентации.' },
114
+ { title: 'Акселерометр', description: 'Измеряет ускорение и направление гравитации. Обеспечивает наклон, обнаружение встряхивания, подсчёт шагов и поведение цифрового пузырькового уровня.' },
115
+ { title: 'Компас / магнитометр', description: 'Помогает определить направление, но может быть нарушен магнитами, металлическими предметами, автомобильными держателями, чехлами, динамиками, ноутбуками и близлежащей электроникой.' },
116
+ ],
117
+ },
118
+ { type: 'title', text: 'Как правильно проверить калибровку датчика', level: 3 },
119
+ {
120
+ type: 'list',
121
+ items: [
122
+ 'Перед тестированием снимите магнитные чехлы, кошельки MagSafe, металлические держатели, клипсы для контроллеров и аксессуары.',
123
+ 'Положите телефон на устойчивый ровный стол и подождите несколько секунд, прежде чем оценивать дрейф.',
124
+ 'Медленно вращайте телефон по каждой оси вместо того, чтобы сразу трясти его.',
125
+ 'Сравните Safari или Chrome с нативным приложением датчиков или компаса, если браузер не показывает данные.',
126
+ 'Перезагрузите устройство и повторите тест, если показания зависли в нескольких приложениях.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'tip',
131
+ title: 'Примечание о разрешениях на iPhone и Android',
132
+ html: 'На iPhone и iPad Safari может запросить разрешение на движение и ориентацию после касания. На Android Chrome обычно предоставляет датчики движения более напрямую, но настройки конфиденциальности, флаги браузера, режимы энергосбережения и встроенные WebView всё равно могут блокировать или ограничивать данные датчиков.',
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['Проблема', 'Вероятная причина', 'Следующий шаг'],
137
+ rows: [
138
+ ['Значения не меняются', 'Разрешение отклонено, неподдерживаемый браузер, настольное устройство или ограниченный WebView.', 'Откройте на самом телефоне, используйте Safari или Chrome, разрешите доступ к движению и перезагрузите страницу.'],
139
+ ['Пузырёк дрейфует на столе', 'Проблема калибровки, неровная поверхность, помехи от чехла или шум акселерометра.', 'Снимите чехол, используйте заведомо ровную поверхность, перезагрузите и сравните с нативным приложением уровня.'],
140
+ ['Направление компаса неверное', 'Магнитные помехи или калибровка системного компаса.', 'Отойдите от металла и электроники и используйте процедуру калибровки компаса в операционной системе.'],
141
+ ['Значения прыгают или дают скачки', 'Шум датчика, повреждённое оборудование, агрессивное ограничение браузера или резкое физическое движение.', 'Тестируйте в неподвижном состоянии, закройте тяжёлые приложения и сравните с другим браузером или нативным приложением.'],
142
+ ],
143
+ },
144
+ {
145
+ type: 'summary',
146
+ title: 'Для чего полезен этот тест',
147
+ items: [
148
+ 'Тестирование гироскопа телефона онлайн без установки приложения.',
149
+ 'Проверка дрейфа акселерометра с помощью пузырькового уровня в реальном времени.',
150
+ 'Выяснение причины сбоя управления движением: оборудование, калибровка, разрешения или поддержка браузера.',
151
+ 'Подготовка телефона к AR, играм, выравниванию камеры, навигации или устранению неполадок с поворотом экрана.',
152
+ ],
153
+ },
154
+ ],
155
+ ui: {
156
+ startButton: 'Начать калибровку',
157
+ permissionHint: 'Нажмите один раз, чтобы разблокировать датчики движения',
158
+ privacyBadge: 'Локальные данные датчика',
159
+ privacyCopy: 'Показания ориентации и движения остаются в рамках этого сеанса браузера.',
160
+ orientationPanel: 'Ориентация',
161
+ motionPanel: 'Движение',
162
+ bubblePanel: 'Цифровой пузырьковый уровень',
163
+ statusReady: 'Готов к разрешению датчика',
164
+ statusWaiting: 'Ожидание разрешения браузера',
165
+ statusDenied: 'Доступ к датчику отклонён или недоступен',
166
+ statusUnsupported: 'Датчики движения не предоставляются этим браузером',
167
+ statusActive: 'Поток данных датчика активен',
168
+ steadyLabel: 'Неподвижно',
169
+ movingLabel: 'Движется',
170
+ shakingLabel: 'Трясётся',
171
+ alphaLabel: 'Alpha',
172
+ betaLabel: 'Beta',
173
+ gammaLabel: 'Gamma',
174
+ accelXLabel: 'X',
175
+ accelYLabel: 'Y',
176
+ accelZLabel: 'Z',
177
+ rotationAlphaLabel: 'Rot A',
178
+ rotationBetaLabel: 'Rot B',
179
+ rotationGammaLabel: 'Rot G',
180
+ levelOffsetLabel: 'Смещение уровня',
181
+ motionMagnitudeLabel: 'Величина движения',
182
+ cubeLabel: '3D-куб ориентации устройства',
183
+ bubbleLabel: 'Индикатор пузырькового уровня',
184
+ calibrationLabel: 'Градусы в реальном времени',
185
+ },
186
+ };
@@ -0,0 +1,186 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MobileSensorTestUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'mobilsensor-test';
7
+ const title = 'Mobilsensor Test';
8
+ const description = 'Kör ett online gyroskop-, accelerometer-, rörelsesensor- och vattenpasstest på din telefon för att kontrollera lutning, rotation, drift och sensorkalibreringsproblem.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Hur kan jag testa min telefons gyroskop online?',
13
+ answer: 'Öppna testet på telefonen, tryck på Starta kalibrering, tillåt rörelseåtkomst om du uppmanas och rotera och luta sedan enheten. Ett fungerande gyroskop och orienteringssensor bör uppdatera alpha, beta och gamma smidigt utan att frysa eller hoppa vilt.',
14
+ },
15
+ {
16
+ question: 'Kan jag testa accelerometern med ett vattenpass?',
17
+ answer: 'Ja. Lägg telefonen på ett plant bord efter att ha startat testet. Bubblan bör lägga sig nära mitten och accelerationsvärdena ska förbli stabila. Om bubblan driver kraftigt medan telefonen är stilla kan accelerometern behöva kalibreras eller så kan skalet, bordet eller enhetens hårdvara störa.',
18
+ },
19
+ {
20
+ question: 'Varför frågar iPhone om rörelsetillstånd?',
21
+ answer: 'Safari på iPhone och iPad kräver en tryckning innan webbplatser kan komma åt rörelse- och orienteringssensorer. Om tillstånd nekas kan testet inte läsa gyroskop- eller accelerometerdata förrän du tillåter rörelseåtkomst.',
22
+ },
23
+ {
24
+ question: 'Kan detta fixa eller kalibrera en trasig kompass?',
25
+ answer: 'Inget webbläsarverktyg kan reparera hårdvara eller tvinga fram systemets kompasskalibrering. Detta test hjälper dig att identifiera symptom: fastlåsta värden, brusig rörelse, drift, saknad behörighet eller en webbläsare som inte exponerar sensorerna.',
26
+ },
27
+ ];
28
+
29
+ const howToData = [
30
+ { name: 'Öppna testet på din telefon', text: 'Använd samma iPhone, iPad, Android-telefon eller surfplatta som du vill diagnostisera. Stationära webbläsare har vanligtvis inga rörelsesensorer att exponera.' },
31
+ { name: 'Tillåt rörelseåtkomst', text: 'Tryck på Starta kalibrering och acceptera rörelse- eller orienteringstillståndsförfrågan om din webbläsare visar en.' },
32
+ { name: 'Testa lutning och rotation', text: 'Luta telefonen framåt, rulla den åt vänster och höger, rotera den sedan plant på ett bord. Se efter mjuka förändringar av alpha, beta, gamma och acceleration.' },
33
+ { name: 'Kontrollera drift på en plan yta', text: 'Låt telefonen ligga stilla i flera sekunder. En frisk sensor bör stabilisera sig istället för att ständigt vandra, spika eller frysa.' },
34
+ ];
35
+
36
+ const faqSchema: WithContext<FAQPage> = {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'FAQPage',
39
+ mainEntity: faqData.map((item) => ({
40
+ '@type': 'Question',
41
+ name: item.question,
42
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
43
+ })),
44
+ };
45
+
46
+ const howToSchema: WithContext<HowTo> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'HowTo',
49
+ name: title,
50
+ description,
51
+ step: howToData.map((step, i) => ({
52
+ '@type': 'HowToStep',
53
+ position: i + 1,
54
+ name: step.name,
55
+ text: step.text,
56
+ })),
57
+ };
58
+
59
+ const appSchema: WithContext<SoftwareApplication> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'SoftwareApplication',
62
+ name: title,
63
+ description,
64
+ applicationCategory: 'UtilityApplication',
65
+ operatingSystem: 'All',
66
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
67
+ inLanguage: 'sv',
68
+ };
69
+
70
+ export const content: ToolLocaleContent<MobileSensorTestUI> = {
71
+ slug,
72
+ title,
73
+ description,
74
+ faq: faqData,
75
+ howTo: howToData,
76
+ schemas: [faqSchema, howToSchema, appSchema],
77
+ bibliography,
78
+ seo: [
79
+ { type: 'title', text: 'Online gyroskop- och accelerometertest för telefoner', level: 2 },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Använd detta mobilsensortest när skärmrotation känns fel, spel eller AR-appar driver, en vattenpassapp verkar felaktig, navigering pekar åt fel håll eller telefonen inte reagerar korrekt på lutning. Testet visar live beteendet hos gyroskop, accelerometer, rotation och vattenpass så att du kan skilja ett webbläsarbehörighetsproblem från ett verkligt sensor- eller kalibreringsproblem.',
83
+ },
84
+ {
85
+ type: 'stats',
86
+ items: [
87
+ { label: 'Huvudsaklig sökavsikt', value: 'testa gyroskop online' },
88
+ { label: 'Kontrollerar också', value: 'accelerometerdrift' },
89
+ { label: 'Bästa enhet', value: 'telefon eller surfplatta' },
90
+ ],
91
+ },
92
+ { type: 'title', text: 'Vad varje sensorvärde berättar för dig', level: 3 },
93
+ {
94
+ type: 'table',
95
+ headers: ['Mätvärde', 'Användbart för', 'Varningstecken'],
96
+ rows: [
97
+ ['Alpha', 'Kontroll av rotation runt den vertikala axeln, användbart för kompassliknande rörelse och kursändringar.', 'Ändras inte vid platt rotation av telefonen, hoppar i stora steg eller fryser på noll.'],
98
+ ['Beta', 'Kontroll av lutning framåt-bakåt för skärmrotation, spel, kameravågning och AR-kontroller.', 'Rör sig i fel riktning, fastnar på ett värde eller fortsätter driva medan telefonen är stilla.'],
99
+ ['Gamma', 'Kontroll av vänster-höger-rullning för liggande rotation, racingspel, vattenpassappar och stabilisatorer.', 'En sida reagerar annorlunda, värdena är brusiga eller bubblan centrerar aldrig på ett plant bord.'],
100
+ ['Acceleration X/Y/Z', 'Kontroll av accelerometersvar, skakdetektion, gravitationsriktning och rörelsestabilitet.', 'Stora spikar i stillastående, ingen respons på rörelse eller instabila värden efter att ha tagit bort skalet.'],
101
+ ],
102
+ },
103
+ {
104
+ type: 'diagnostic',
105
+ variant: 'warning',
106
+ title: 'Symptom som detta test hjälper till att diagnostisera',
107
+ html: '<p>Använd livevärdena för att undersöka automatisk rotation som inte fungerar, ett gyroskop som känns fördröjt, accelerometerdrift, kompasskalibreringsvarningar, AR-spårning som glider iväg, kameravågningsfel, rörelsekontroller som drar åt ett håll eller en telefon som bara rapporterar rörelse i inbyggda appar men inte i webbläsaren.</p>',
108
+ },
109
+ { type: 'title', text: 'Gyroskop vs accelerometer vs kompass', level: 3 },
110
+ {
111
+ type: 'comparative',
112
+ items: [
113
+ { title: 'Gyroskop', description: 'Mäter rotationshastighet. Viktigt för AR, spel, kamerastabilisering, rörelsekontroller och mjuka orienteringsändringar.' },
114
+ { title: 'Accelerometer', description: 'Mäter acceleration och gravitationsriktning. Driver lutning, skakdetektion, stegdetektion och digitalt vattenpassbeteende.' },
115
+ { title: 'Kompass / magnetometer', description: 'Hjälper till att uppskatta kursen, men kan störas av magneter, metallföremål, bilhållare, skal, högtalare, bärbara datorer och närliggande elektronik.' },
116
+ ],
117
+ },
118
+ { type: 'title', text: 'Hur man testar sensorkalibrering korrekt', level: 3 },
119
+ {
120
+ type: 'list',
121
+ items: [
122
+ 'Ta bort magnetiska skal, MagSafe-plånböcker, metallhållare, kontrollerklämmor och tillbehör före testning.',
123
+ 'Lägg telefonen på ett stadigt plant bord och vänta flera sekunder innan du bedömer drift.',
124
+ 'Rotera telefonen långsamt genom varje axel istället för att skaka den omedelbart.',
125
+ 'Jämför Safari eller Chrome med en inbyggd sensor- eller kompassapp om webbläsaren inte visar någon data.',
126
+ 'Starta om enheten och upprepa testet om värdena är fastlåsta i flera appar.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'tip',
131
+ title: 'iPhone och Android behörighetsnot',
132
+ html: 'På iPhone och iPad kan Safari fråga efter rörelse- och orienteringstillstånd efter en tryckning. På Android exponerar Chrome vanligtvis rörelsesensorer mer direkt, men sekretessinställningar, webbläsarflaggor, batterisparlägen och inbäddade webviews kan fortfarande blockera eller minska sensordata.',
133
+ },
134
+ {
135
+ type: 'table',
136
+ headers: ['Problem', 'Trolig orsak', 'Nästa steg'],
137
+ rows: [
138
+ ['Inga värden ändras', 'Tillstånd nekat, webbläsare som inte stöds, stationär enhet eller begränsad webview.', 'Öppna på själva telefonen, använd Safari eller Chrome, tillåt rörelseåtkomst och ladda om sidan.'],
139
+ ['Bubblan driver på ett bord', 'Kalibreringsproblem, ojämn yta, skalstörning eller accelerometerbrus.', 'Ta bort skalet, använd en känd plan yta, starta om och jämför med en inbyggd vattenpassapp.'],
140
+ ['Kompassriktningen är fel', 'Magnetisk störning eller systemkompasskalibrering.', 'Flytta bort från metall/elektronik och använd operativsystemets kompasskalibreringsflöde.'],
141
+ ['Värden hoppar eller spikar', 'Sensorbrus, skadad hårdvara, aggressiv webbläsarbegränsning eller plötslig fysisk rörelse.', 'Testa stillastående, stäng tunga appar och jämför över en annan webbläsare eller inbyggd app.'],
142
+ ],
143
+ },
144
+ {
145
+ type: 'summary',
146
+ title: 'Vad detta test är bra för',
147
+ items: [
148
+ 'Testa en telefons gyroskop online utan att installera en app.',
149
+ 'Kontrollera accelerometerdrift med ett live vattenpass.',
150
+ 'Ta reda på om rörelsekontroller misslyckas på grund av hårdvara, kalibrering, behörighet eller webbläsarstöd.',
151
+ 'Förbered en telefon för AR, spel, kameravågning, navigering eller felsökning av skärmrotation.',
152
+ ],
153
+ },
154
+ ],
155
+ ui: {
156
+ startButton: 'Starta kalibrering',
157
+ permissionHint: 'Tryck en gång för att låsa upp rörelsesensorer',
158
+ privacyBadge: 'Lokal sensordata',
159
+ privacyCopy: 'Orienterings- och rörelsevärden stannar inom denna webbläsarsession.',
160
+ orientationPanel: 'Orientering',
161
+ motionPanel: 'Rörelse',
162
+ bubblePanel: 'Digitalt vattenpass',
163
+ statusReady: 'Redo för sensortillstånd',
164
+ statusWaiting: 'Väntar på webbläsartillstånd',
165
+ statusDenied: 'Sensoråtkomst nekad eller otillgänglig',
166
+ statusUnsupported: 'Rörelsesensorer exponeras inte av denna webbläsare',
167
+ statusActive: 'Live sensorström aktiv',
168
+ steadyLabel: 'Stadig',
169
+ movingLabel: 'Rör sig',
170
+ shakingLabel: 'Skakar',
171
+ alphaLabel: 'Alpha',
172
+ betaLabel: 'Beta',
173
+ gammaLabel: 'Gamma',
174
+ accelXLabel: 'X',
175
+ accelYLabel: 'Y',
176
+ accelZLabel: 'Z',
177
+ rotationAlphaLabel: 'Rot A',
178
+ rotationBetaLabel: 'Rot B',
179
+ rotationGammaLabel: 'Rot G',
180
+ levelOffsetLabel: 'Vattenpassavvikelse',
181
+ motionMagnitudeLabel: 'Rörelseomfattning',
182
+ cubeLabel: '3D-enhetsorienteringskub',
183
+ bubbleLabel: 'Vattenpassindikator',
184
+ calibrationLabel: 'Live grader',
185
+ },
186
+ };