-
Notifications
You must be signed in to change notification settings - Fork 0
Position
- readPosition()
- isOnBack()
- isFaceDown()
- isUpright()
- isPickedUp()
- isHandStanding()
- isFaceDownOnTray()
- isOnBackWithKickstand()
MiPPosition readPosition()
Read the MiP robot's current position.
None
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 |
- 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.
#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;
}
}bool isOnBack()
Is the MiP robot currently lying on its back?
None
- true if the MiP robot is currently lying on its back.
- false otherwise.
- 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.
#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;
}
}bool isFaceDown()
Is the MiP robot currently lying on its front?
None
- true if the MiP robot is currently lying on its front.
- false otherwise.
- 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.
#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;
}
}bool isUpright()
Is the MiP robot currently standing upright and self-balancing?
None
- true if the MiP robot is currently standing up right and self-balancing.
- false otherwise.
- 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.
#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;
}
}bool isPickedUp()
Has the user picked the MiP robot up?
None
- true if the MiP robot has been picked up by the user.
- false otherwise.
- 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.
#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;
}
}bool isHandStanding()
Is the MiP robot currently in a hand stand pose?
None
- true if the MiP robot is currently in a hand stand pose.
- false otherwise.
- 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.
#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;
}
}bool isFaceDownOnTray()
Is the MiP robot currently face down on the tray?
None
- true if the MiP robot is currently face down on the tray.
- false otherwise.
- 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.
#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;
}
}bool isOnBackWithKickstand()
Is the MiP robot currently laying back on its kickstand?
None
- true if the MiP robot is currently laying back on its kickstand.
- false otherwise.
- 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.
#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;
}
}🔗 Quick Links: Main Repository • Report an Issue • Wiki Home
An open-source API for the WowWee MiP Robot. Licensed under Apache-2.0.
- MiP
- MiPChestLED
- MiPClapSettings
- MiPDebug
- MiPHardwareInfo
- MiPHeadLEDs
- MiPIRDongleCode
- MiPSoftwareVersion
- MiPStatus
- MiP_Battery
- MiP_ChestLED
- MiP_Clap
- MiP_EEPROM
- MiP_Gesture
- MiP_HeadLEDs
- MiP_Infrared
- MiP_Mode
- MiP_Motion
- MiP_Odometer
- MiP_Position
- MiP_Radar
- MiP_Serial
- MiP_Shake
- MiP_Sound
- MiP_Version
- MiP_Weight
- MiP_WiFi