El sensor de movimiento de los nuevos PowerBook G4 y Mac OS X

Hace unos días me encontré con este artículo en kernelthread, una web de Amit Singh dedicada a muchos sistemas operativos, y especialmente al Mac OS X. Es muy interesante, y tenía pensado escribir un articulillo sobre eso.

Recientemente, Wired ha sacado una historia sobre lo que ha pasado con el descubrimiento de Amit, así que no tengo más remedio que contarlo ya 😉

El nuevo sensor de movimiento

El sensor de movimiento que Apple ha incluido en los nuevos PowerBook [y desde el 26/7/2005, también en los iBook] determina si existe una aceleración excesiva en cualquier dirección, y en ese caso supone que se trata de un movimiento excesivamente brusco, de modo que da la orden de que se aparquen las cabezas del disco duro para evitar que choquen contra la zona de datos, produciéndose posibles pérdidas de información. Una vez que detecta que no hay aceleraciones, procede a desbloquear el disco.

Se podría haber preparado un mecanismo independiente del sistema operativo, que hubiera metido la máquina en un modo de reposo —que siempre produce el apagado del disco duro—, pero Apple ha decidido que sea el Mac OS X quien controle la entrada de los sensores, y de las pertinentes órdenes a los dispositivos. Esto tiene la ventaja de que el sistema operativo está a cargo de las operaciones en todo momento, y otros programas pueden leer la salida del sensor.

Eso es lo que ha permitido a Amit entender un poco mejor cómo funciona el sensor, y sobre todo, utilizarlo para cosas para las que no estaba previstas.

Posición y aceleración

A ver, un poquito de repaso de física de secundaria: la velocidad es la variación en el tiempo de la posición, y la aceleración es la variación en el tiempo de la velocidad. Si no hay variación de la posición, no hay variación de la velocidad, y por tanto, no hay aceleración. Pero si hacemos un cambio de posición a velocidad constante, tampoco tendremos aceleración.

Un movimiento es acelerado cuando hay una fuerza constante actuando sobre él, como por ejemplo la gravedad. Así que la caída de un objeto es un movimiento acelerado. Esta ilustración —obtenida de este artículo— lo ejemplifica muy bien:

Pelota cayendo mayor distancia a intervalos iguales de tiempo por la aceleración de la gravedad

Podemos ver cómo para instantes de tiempo iguales, la distancia recorrida por la pelota es cada vez mayor, porque se trata de un movimiento acelerado debido a la fuerza de la gravedad.

Dicho de otro modo: puedo calcular una aproximación de la aceleración si mido cómo varía la diferencia entre la posición de un cuerpo cada cierto tiempo. Y esto es lo que hace el sensor de movimiento de Apple.

Apple Motion Sensor

AMS —se supone que Apple Motion Sensor, sensor de movimiento de Apple— es el nombre de la extensión de kernel —archivo .kext— que se encarga de comunicar el Mac OS X con el auténtico sensor. Lo que se obtiene del AMS es una tripleta de valores, {x, y, z}, que responden a desplazamientos en los ejes que se dibujan —imagen del artículo de kernelthread—.

Ejes y signos de los movimientos detectados por el AMS

Eso significa que:

  • Si imaginamos un eje contenido en el plano del teclado, y perpendicular a la barra espaciadora, x positivo si el lado izquierdo queda por debajo de ese eje, y negativo en caso contrario
  • Si imaginamos un eje contenido en el plano del teclado, y paralelo a la bisagra, y es positivo si levantamos el lado del cierre por encima de ese eje, y negativo en caso contrario
  • El valor z siempre es negativo, y crece con la aceleración hacia abajo

Está claro que si leemos esos sensores, podemos jugar al Marble Madness sin más que tener en vilo nuestro flamante portátil. Pero en Mac OS X podemos hacer más…

Quartz, te presento a AMS

Lo realmente interesante es que Quartz es un motor de composición de imágenes vectorial. Esto significa que cualquier cosa que se presenta en pantalla puede ser rotada, ampliada, etcétera, en 2D, o incluso en 3D con ayuda de OpenGL. Y así, es posible hacer que una ventana se mantenga horizontal respecto al suelo, aunque estemos con el ordenador girado… ¡e incluso hacer clic en sus elementos!

Otros usos que podrían programarse serían los de hacer scroll inclinando el ordenador, algo especialmente útil cuando tienes un portátil en tu regazo 😉

Para ser honestos, cuando salga Avalon se podrá hacer lo mismo en Windows XP, o incluso en LonghornWindows Vista… eso sí, utilizando un simulador de AMS con el ratón, por ejemplo 😉 Pero entonces, hacer clic en las cosas será realmente difícil 😉

Interioridades del Mac OS X

El propósito de Amit con los ejemplos que plantea es mostrar cómo funciona el Mac OS X, en este caso el acceso a bajo nivel —extensiones del sistema—, y las posibilidades de Quartz, y cuando salga el libro dispondremos del código fuente de todos sus ejemplos. Así que seguro que será un libro más que interesante…


Comentarios

7 respuestas a «El sensor de movimiento de los nuevos PowerBook G4 y Mac OS X»

  1. Que interesante ! ¿ Desde qué modelos de PowerBook viene instalado el sensor de movimiento ?

  2. Desde la última revisión, en todos los modelos que se anunciaron el 31 de Enero de este año, tanto 12, como 15 y 17 pulgadas. Y desde el 26/7 de 2005, en todos los iBook.

  3. Hace unos años leí como hacer un sismógrafo con chips sensores a la aceleración de los airbags, su precisión, sorprendentemente, superaba a muchos sismógrafos profesionales (creo que era en la web de científicos amateur de América, pero no me acuerdo de la url).

    También leía por ahí como usando esos chips se podía hacer que cualquier superficie se convirtiese en un trackpad o, incluso, en un teclado sin piezas móviles.

  4. Te agradecería mucho que pudieras encontrar más información sobre eso…

    Como comento en el artículo, en principio sería teóricamente posible calcular una posición a partir de una velocidad y posición inicial conocidas —preferiblemente cero—, integrando la salida de un acelerómetro, pero sólo funcionaría realmente con un dispositivo analógico.

    Con un dispositivo digital, la precisión de la salida del acelerómetro —y la falta de linealidad— irían separando la posición real de la calculada.

  5. En cuanto al sismógrafo amateur, pues no tengo aquí el Investigación y Ciencia en el que salía, pero san google que todo lo sabe me ha dado algunas referencias, entre ellas creo que este está basado en aquel artículo

    Sobre lo segundo, te paso un enlace de Ciencia15, a partir de ahí, es seguir los enlaces a las páginas originales.

    Espero que te sirva.

  6. Avatar de Rafael
    Rafael

    Es buena la información y todo, pero, ¿por qué no muestras cómo hacerlos?

    Así, para que los que toman la electrónica como un hobby puedan hacerlos

  7. […] Leo en Mac On Intel que Amit Singh, conocido por su página de divulgación sobre el kernel de Mac OS X Kernelthread, haber encontrado varias utilidades del sensor de movimiento de los PowerBooks y MacBooks, y haber puesto en marca Windows XP en VMWare en un iMac Intel Core, ha puesto en marcha un programa para EFI, BAMBIOS, que emula una BIOS tradicional. […]

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)

Descubre más desde Memoria de Acceso Aleatorio

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo