2. A união de dois sensores

Iwata:

Já ouvimos que o sensor giroscópio tem as suas idiossincrasias, mas digam-nos por que motivo foi assim tão complicado trabalhar com ele.

Takamoto:

Bem, como já foi dito, o aparelho mede a precessão e a rotação. Mas fora da área em que pode ser observável, não é possível saber se estamos de facto a receber dados fiáveis.

Iwata:

Isso significa que quando fazes um movimento largo com o Comando Wii, pode ultrapassar os limites da área do sensor, impedindo a detecção do movimento e a sua reflexão no jogo.

Takamoto:

É isso mesmo.

Iwata:

Vamos agora perguntar a Ito-san, responsável pelo circuito eléctrico, para que possamos explicar como ultrapassaram o problema.

Ito:

Com certeza. Ora bem, aumentámos a sensibilidade do sensor giroscópio para a Wii em cinco vezes o nível de um sensor normal. Afinal, os sensores giroscópios usados nas câmaras de filmar só conseguem detectar uma rotação de cerca de 300 graus por segundo, o que é um pouco lento…

Iwata Asks
Iwata:

300 graus não me soa nada lento! (risos)

Ito:

Mas há quem faça movimentos incrivelmente rápidos quando joga.

Iwata:

Então queres dizer que se o sensor só conseguisse detectar rotações de 300 graus por segundo, haveria casos em que o limite do sensor seria ultrapassado e qualquer movimento para além dele perder-se-ia.

Ito:

Sim. E foi por isso que desenhámos o sensor de modo a detectar 1600 graus de movimento por segundo.

Iwata:

Ou seja, cerca de quatro rotações e meia completas. Mas seria preciso um esforço muito grande para fazer tal coisa com a mão!

Ito:

Pois é. Ao fazê-lo, assegurámo-nos que os movimentos rápidos seriam detectados. Mas depois tivemos de pensar na necessidade de detectar movimentos lentos.

Iwata:

Parece haver aqui uma contradição. Afinal, se conseguires detectar movimentos rápidos, em princípio a sensibilidade de detecção de movimentos lentos aumenta.

Ito:

Pois, em princípio funciona exactamente assim! (risos) Mas queríamos mesmo que conseguisse detectar igualmente movimentos lentos. Tive muitas conversas com Ota-san sobre isto.

Ota:

Foram umas quantas, foram.

Iwata Asks
Iwata:

E então, Ota-san, como resolveste o problema?

Ota:

Desenhámos o sensor de forma a ter dois modos: um para movimentos rápidos e outros para movimentos lentos.

Iwata:

E o que são esses dois modos exactamente?

Ota:

Uma vez que os dados do sensor são enviados através de tecnologia sem fios, a resolução dos dados já está determinada. Imaginemos que os dados podem ser enviados em dez bandas. Na verdade, há muitas mais, mas é só um exemplo para ser mais fácil perceber. Então, se há dez bandas, só podemos enviar sinais de dados do zero ao nove.

Iwata:

Então suponhamos que a resolução de dados está restringida a dez bandas. Não podemos simplesmente aumentar para vinte, correcto?

Ota:

Correcto – não é possível. Vejamos mais um exemplo: a velocidade de um carro. Com um carro que possa andar até 10 km/hora, os dados sobre a sua velocidade actual seriam enviados em unidades de 1 km/hora. Ou seja, cada banda corresponde a 1 km/hora. Contudo, se aumentarmos a velocidade máxima podemos medir até 100 km/hora, e cada unidade tornar-se-ia 10 km/hora. Isto significaria que não seria possível detectar velocidades baixas como 2 ou 3 km/hora.

Iwata:

Então, se alterarem as configurações de modo a que o sensor possa medir velocidades elevadas até 100 km/h, os dados serão medidos em incrementos de 10 km/h.

Ota:

Exacto. Por isso equipámos o sensor com dois modos: o de baixa velocidade, onde os dados são enviados em dez bandas numa escala até 10 km/h; e o de alta velocidade onde os dados são enviados em dez bandas numa escala até 100 km/h.

Iwata:

Então, com dois modos, tornaram possível a elevada sensibilidade a movimentos pequenos, permitindo simultaneamente a detecção de movimentos dinâmicos.

Ota:

Isso mesmo.

Iwata:

Então foi assim que construíram o sensor de modo a responder a movimentos lentos. Mas não foi só isso que tornou o sensor giroscópio complicado de trabalhar, pois não?

Iwata Asks
Ota:

Não, não. A sensibilidade da capacidade de detecção do sensor giroscópio podia ser afectada negativamente por alterações da temperatura circundante.

Takamoto:

Não é por acaso que "M" na sigla MEMS representa a palavra "mecânico".

Iwata:

E precisamente por ser mecânico é que o problema podia ocorrer.

Ota:

Normalmente, se algo está inerte, os dados enviados devem ser zero. Mas, no caso do sensor giroscópio, mesmo se estiver completamente parado, ao fim de um bocado começam a ser enviados dados de um ou dois.

Iwata:

Embora ninguém lhe esteja a tocar, reage como tal.

Ota:

O termo técnico para este fenómeno é “desvio de temperatura”.

Iwata:

Então o que está a acontecer é que, à medida que a temperatura muda, o ponto que deveria ser zero sofre um desvio.

Ota:

E não é um problema derivado apenas da temperatura. A humidade ou impactos repentinos podem ter o mesmo efeito. Por este motivo, discutimos formas de alcançar o nosso objectivo de obter um sensor com o qual, de algum modo, este problema não ocorresse...

Iwata:

Mas isso não é…?

Ota:

…Impossível! Mas há maneira de contornar o problema. O que temos de fazer é incluir um sensor completamente à parte que ajuste o ponto de zero.

Takamoto:

Mas não podíamos subir o custo desnecessariamente.

Ota:

E é por isso que a nossa única opção era encontrar uma solução de software para o problema. Tentámos uma série de soluções – foi um processo de tentativa e erro.

Iwata Asks
Iwata:

Ou seja, nada mais podiam fazer para além de encontrar um método que detectasse a inactividade do Comando Wii.

Ota:

E a primeira ideia que surgiu foi o acelerómetro. Pensámos que o podíamos usar para detectar se o comando estava ou não em movimento…

Iwata:

Mas não funcionou, pois não?

Ota:

Não, não funcionou. O sensor giroscópio é muito mais sensível que o acelerómetro, portanto mesmo que o acelerómetro indicasse zero, o sensor giroscópio movia-se.

Iwata:

Não dava.

Ota:

No final, fizemos com que o sensor giroscópio conseguisse detectar que não está em movimento.

Iwata:

Então, mesmo com flutuações de temperatura e humidade, o sensor giroscópio é capaz de funcionar correctamente?

Ota:

Exactamente. O software que incluímos tornou isso possível.

Iwata:

Então, Ota-san, enquanto estavas a tentar domar um sensor giroscópio complicado, estavas também a desenvolver o SDK – ou seja, o kit de desenvolvimento de software. Que novas direcções no desenvolvimento de jogos achas que foram abertas com esta combinação do acelerómetro com o sensor giroscópio? Gostava de ouvir a tua opinião enquanto alguém que esteve envolvido no desenvolvimento de uma vasta variedade de títulos.

Iwata Asks
Ota:

Acho que o maior desenvolvimento é o Wii MotionPlus permitir aos criadores compreenderem o que os jogadores sentem.

Iwata:

O que os jogadores sentem? Como assim?

Ota:

Ao ser capaz de detectar a rotação, o movimento do Comando Wii na mão do jogador e o movimento do objecto no ecrã correspondem um ao outro em tempo real. Isto é uma coisa que toda a gente sempre quis conseguir realizar.

Iwata:

Não haja dúvida.

Ota:

Mas não foi de todo fácil alcançá-lo. As medidas de que acabámos de falar, tais como o alargamento do alcance da detecção de velocidade ou o aumento da sensibilidade na detecção de velocidades lentas, não valeram só por si.

Iwata:

Houve também o problema do desvio de temperatura.

Ota:

E também o facto de, por os dados serem transferidos sem fios, haver a possibilidade de alguns dados não serem sequer enviados. Tudo isto significava que a sincronização entre os movimentos do Comando Wii e os do objecto no ecrã seria desfasada.

Iwata:

E como resolveram esse problema?

Ota:

Usando apenas o sensor giroscópio, não conseguíamos encontrar uma solução satisfatória para o problema, mas o acelerómetro provou ser muito útil nesse aspecto.

Iwata:

Então era algo que nem o acelerómetro nem o sensor giroscópio conseguiam alcançar isoladamente. Mas a combinação de ambos os sensores permitiu alcançar o que sempre quisemos: conseguir registar a forma como o jogador se sentia.

Ota:

É isso mesmo.