mira.motion

Receive data from iPad accelerometer, gyroscope and magnetometer.

Description

Mira.motion outputs readings from the device accelerometer, magnetometer and gyroscope. On compatible devices, these data are available both as raw readings from onboard sensors and as postprocessed information that accounts for sensor bias and drift. Each reading is output from the mira.motion object in the form (data-type) (data-args) (device-name), where data-type is one of rawaccel, rawgyro, rawmagnet, rotationrate, gravity, accel, compass or orientation; data-args is between three and four numbers containing the value of the data; and device-name is the name of the mobile device as defined in Mira. The mira.mo abstractions can assist in filtering and formatting the output of mira.motion.

Discussion

Which sensors and what data is available depends on the device. All devices (including first generation iPads) can send raw data from the accelerometer and magnetometer. iPads from the second generation and later add raw gyroscope data, as well as postprocessed and higher-level data generated by incorporating information from several sensors.

Arguments

None.

Attributes

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color [4 floats]

Sets the color for the object box outline.

fontface [int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic

Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname [symbol]

Sets the object's font.

fontsize [float]

Sets the object's font size (in points).

Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect [4 floats]

g/s(set)

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size [2 floats]

g/s(set)

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor [float]

Sets the color for the object's text in RGBA format.

textjustification [int]

Sets the justification for the object's text.

Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Output

accel

(2nd gen and later) Strength of the acceleration on the device not caused by gravity. This data is the result of computation that separates acceleration caused by the user from that caused by gravity. Units are in G's in the X, Y and Z directions. May be zero if the device is at rest.

compass

(2nd gen and later) Strength of the magnetic field through the device in microteslas in the X, Y and Z directions. This reading has been processed to remove interference and bias from the device itself. A fourth number indicates confidence in this compass reading. A value of 0 indicates that the compass has not been calibrated; 1, 2 and 3 indicate low, medium and high confidence, respectively.

gravity

(2nd gen and later) Strength of the gravity vector, as determined by processing accelerometer data to separate acceleration caused by the user from that caused by gravity. Units are in G's in the X, Y and Z directions. Since the force of gravity is assumed to be constant across the Earth's surface, the length of this vector (2-norm) is always 1.

orientation

(2nd gen and later) The angle of inclination of the device in roll, pitch and yaw. Units are in radians. This measurement incorporates readings from all three sensors.

rawaccel

(All Devices) Raw readings from the hardware accelerometer. These readings separate acceleration into X, Y and Z components and are measured in G's, with a value of 1.0 corresponding to an acceleration equal to the Earth's gravity. Raw readings from the accelerometer will include both acceleration caused by gravity and contributed by the user when moving the device.

rawgyro

(2nd gen and later) Raw readings from the hardware gyroscope. These readings the rate of rotation of the device in radians per second about the X, Y and Z axes. There may be some bias inherent to the sensor.

rawmagnet

(All Devices) Raw readings from the hardware magnetometer. These readings describe the strength of the magnetic field felt by the device in the X, Y and Z direction. The readings are expressed in microteslas, with 60 microtestlas roughly corresponding to the strength of the Earth's magnetic field at 50 degrees longitude. These raw readings also include bias from the magnetic field generated by the device itself.

rotationrate

(2nd gen and later) Postprocessed data that provides a more reliable, bias-free description of the rate of rotation of the device. Units are in radians per second about the X, Y and Z axis.

See Also

Name Description
mira.frame Mirror your Max patcher on your iPad
mira.multitouch Receive touch and gesture data from touchscreen.
mira.status