mix bb_nsk.add_leds (bb_nsk v0.1.2)

Copy Markdown View Source

Adds the NeoPixel state indicator

Adds BB.NSK.Leds.Controller, which shows the robot's safety state on the four NeoPixels: blue disarmed, green ready or balancing, orange disarming, magenta flashing when it has fallen over, red for an error.

They breathe rather than sitting still, which reads as a robot that is running rather than one that has locked up — except :fallen, which flashes, because it is the one state asking the operator for something.

Why this is worth having even with a panel

The panel says the same thing and takes the better part of three seconds to say it. These are immediate, and immediate is what you want from something telling you whether the robot is about to move. In a room full of these, being readable from wherever you happen to be standing matters more than being detailed.

Needs the right device tree

The ledc node is only in the nsk-balance-bot device tree, so on a board booted with the stock setting there are no pixels to find and the controller runs with nothing to drive. mix bb_nsk.doctor says so.

Example

mix bb_nsk.add_leds

Options

  • --robot - The robot module (defaults to {AppPrefix}.Robot).
  • --brightness - Top of the pulse, 0-255 (default 40). These are bright enough to be uncomfortable at full scale, and draw current to match.