Skip to content

Head LEDs

Tiogaplanet edited this page Aug 7, 2018 · 7 revisions

Take control of MiP's head LEDs.


writeHeadLEDs()

void writeHeadLEDs(MiPHeadLED led1, MiPHeadLED led2, MiPHeadLED led3, MiPHeadLED led4)
void writeHeadLEDs(const MiPHeadLEDs& headLEDs)

Description

Sets the state of the four eye LEDs on the MiP robot's head.

Parameters

  • led1 sets the state of led1 on the MiP robot's head. Valid states are MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST.
  • led2 sets the state of led2 on the MiP robot's head. Valid states are MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST.
  • led3 sets the state of led3 on the MiP robot's head. Valid states are MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST.
  • led4 sets the state of led4 on the MiP robot's head. Valid states are MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST.
  • headLEDs is an object which contains led1, led2, led3, and led4 fields for setting the state of all 4 LEDs.
class MiPHeadLEDs
{
public:
    // ...
    MiPHeadLED led1;
    MiPHeadLED led2;
    MiPHeadLED led3;
    MiPHeadLED led4;
};

Returns

Nothing

Notes

  • The four head LEDs are numbered from left to right, with led1 being the leftmost and led4 being the rightmost.

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("HeadLEDs.ino - Use head LED functions. Should set each head LED to different state."));
  mip.writeHeadLEDs(MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST);

  MiPHeadLEDs headLEDs;
  mip.readHeadLEDs(headLEDs);
  Serial.println(F("Head LEDs"));
  Serial.print(F("    led1: "));
    printLEDString(headLEDs.led1);
  Serial.print(F("    led2: "));
    printLEDString(headLEDs.led2);
  Serial.print(F("    led3: "));
    printLEDString(headLEDs.led3);
  Serial.print(F("    led4: "));
    printLEDString(headLEDs.led4);

  delay(4000);

  // Turn all the LEDs back on now.
  Serial.println(F("Turning all eye LEDs back on now."));
  headLEDs.led1 = headLEDs.led2 = headLEDs.led3 = headLEDs.led4 = MIP_HEAD_LED_ON;
  mip.writeHeadLEDs(headLEDs);

  Serial.println();
  Serial.println(F("Sample done."));
}

static void printLEDString(MiPHeadLED led) {
  switch (led) {
    case MIP_HEAD_LED_OFF:
      Serial.println(F("Off"));
      break;
    case MIP_HEAD_LED_ON:
      Serial.println(F("On"));
      break;
    case MIP_HEAD_LED_BLINK_SLOW:
      Serial.println(F("Blink Slow"));
      break;
    case MIP_HEAD_LED_BLINK_FAST:
      Serial.println(F("Blink Fast"));
      break;
    default:
      Serial.println();
      break;
  }
}

void loop() {
}

readHeadLEDs()

void readHeadLEDs(MiPHeadLEDs& headLEDs)

Description

Reads the current setting for the MiP robot's four head LEDs.

Parameters

  • headLEDs is an object which contains led1, led2, led3, and led4 fields to be filled in with the current state of all 4 LEDs.
class MiPHeadLEDs
{
public:
    // ...
    MiPHeadLED led1;
    MiPHeadLED led2;
    MiPHeadLED led3;
    MiPHeadLED led4;
};

Returns

Nothing

Notes

  • The 4 head LEDs are numbered from left to right, with led1 being the leftmost and led4 being the rightmost.

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("HeadLEDs.ino - Use head LED functions. Should set each head LED to different state."));
  mip.writeHeadLEDs(MIP_HEAD_LED_OFF, MIP_HEAD_LED_ON, MIP_HEAD_LED_BLINK_SLOW, MIP_HEAD_LED_BLINK_FAST);

  MiPHeadLEDs headLEDs;
  mip.readHeadLEDs(headLEDs);
  Serial.println(F("Head LEDs"));
  Serial.print(F("    led1: "));
    printLEDString(headLEDs.led1);
  Serial.print(F("    led2: "));
    printLEDString(headLEDs.led2);
  Serial.print(F("    led3: "));
    printLEDString(headLEDs.led3);
  Serial.print(F("    led4: "));
    printLEDString(headLEDs.led4);

  delay(4000);

  // Turn all the LEDs back on now.
  Serial.println(F("Turning all eye LEDs back on now."));
  headLEDs.led1 = headLEDs.led2 = headLEDs.led3 = headLEDs.led4 = MIP_HEAD_LED_ON;
  mip.writeHeadLEDs(headLEDs);

  Serial.println();
  Serial.println(F("Sample done."));
}

static void printLEDString(MiPHeadLED led) {
  switch (led) {
    case MIP_HEAD_LED_OFF:
      Serial.println(F("Off"));
      break;
    case MIP_HEAD_LED_ON:
      Serial.println(F("On"));
      break;
    case MIP_HEAD_LED_BLINK_SLOW:
      Serial.println(F("Blink Slow"));
      break;
    case MIP_HEAD_LED_BLINK_FAST:
      Serial.println(F("Blink Fast"));
      break;
    default:
      Serial.println();
      break;
  }
}

void loop() {
}

Clone this wiki locally