Skip to content

Position

Tiogaplanet edited this page Jul 28, 2018 · 5 revisions

readPosition()

MiPPosition readPosition()

Description

Read the MiP robot's current position.

Parameters

None

Returns

One of the values from the following table:

MiPPosition Value
MIP_POSITION_ON_BACK
MIP_POSITION_FACE_DOWN
MIP_POSITION_UPRIGHT
MIP_POSITION_PICKED_UP
MIP_POSITION_HAND_STAND
MIP_POSITION_FACE_DOWN_ON_TRAY
MIP_POSITION_ON_BACK_WITH_KICKSTAND

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isOnBack()

bool isOnBack()

Description

Is the MiP robot currently lying on its back?

Parameters

None

Returns

  • true if the MiP robot is currently lying on its back.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isFaceDown()

bool isFaceDown()

Description

Is the MiP robot currently lying on its front?

Parameters

None

Returns

  • true if the MiP robot is currently lying on its front.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isUpright()

bool isUpright()

Description

Is the MiP robot currently standing upright and self-balancing?

Parameters

None

Returns

  • true if the MiP robot is currently standing up right and self-balancing.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isPickedUp()

bool isPickedUp()

Description

Has the user picked the MiP robot up?

Parameters

None

Returns

  • true if the MiP robot has been picked up by the user.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isHandStanding()

bool isHandStanding()

Description

Is the MiP robot currently in a hand stand pose?

Parameters

None

Returns

  • true if the MiP robot is currently in a hand stand pose.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isFaceDownOnTray()

bool isFaceDownOnTray()

Description

Is the MiP robot currently face down on the tray?

Parameters

None

Returns

  • true if the MiP robot is currently face down on the tray.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

isOnBackWithKickstand()

bool isOnBackWithKickstand()

Description

Is the MiP robot currently laying back on its kickstand?

Parameters

None

Returns

  • true if the MiP robot is currently laying back on its kickstand.
  • false otherwise.

Notes

  • The MiP robot status updates, which include the position, may be lost if you are spending too much time sending output back to the Arduino IDE's serial monitor. See Limitations section above.
  • These status updates are usually sent every 30 seconds or earlier if the MiP detects a change in position.

Example

#include <mip.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial.println(F("Failed connecting to MiP!"));
    return;
  }

  Serial.println(F("Status.ino - Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial.print(F("Battery: "));
      Serial.print(currentBatteryLevel);
      Serial.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial.println(F("Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial.println(F("Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial.println(F("Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial.println(F("Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial.println(F("Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial.println(F("Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial.println(F("Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

Clone this wiki locally