|
| 1 | +/* |
| 2 | + * QuadrupedNeoPixel.h |
| 3 | + * |
| 4 | + * Created on: 18.09.2019 |
| 5 | + * Author: Armin |
| 6 | + */ |
| 7 | + |
| 8 | +#ifndef _QUADRUPED_NEOPIXEL_H |
| 9 | +#define _QUADRUPED_NEOPIXEL_H |
| 10 | + |
| 11 | +#if defined(QUADRUPED_HAS_NEOPIXEL) |
| 12 | +#include <NeoPatterns.h> |
| 13 | + |
| 14 | +#define PIN_NEOPIXEL 4 |
| 15 | +// How many NeoPixels are mounted? |
| 16 | +#define NUM_PIXELS 24 |
| 17 | + |
| 18 | +#define PIXELS_ON_ONE_BAR 8 |
| 19 | +#define PIXEL_OFFSET_RIGHT_BAR 0 |
| 20 | +#define PIXEL_OFFSET_FRONT_BAR PIXELS_ON_ONE_BAR |
| 21 | +#define PIXEL_OFFSET_LEFT_BAR (2*PIXELS_ON_ONE_BAR) |
| 22 | + |
| 23 | +void initNeoPatterns(); |
| 24 | + |
| 25 | +#if defined(HAS_ADDITIONAL_REMOTE_COMMANDS) |
| 26 | +void doPattern1(); |
| 27 | +void doPattern2(); |
| 28 | +void doPatternStripes(); |
| 29 | +void doPatternHeartbeat(); |
| 30 | +void doPatternFire(); |
| 31 | +#endif |
| 32 | + |
| 33 | +void doWipeOutPatterns(); |
| 34 | + |
| 35 | +bool isAtLeastOnePatternActive(); |
| 36 | + |
| 37 | +void showPatternSynchronizedWithServos(); |
| 38 | + |
| 39 | +void handleAutomaticMovementPattern(); |
| 40 | +void handleQuadrupedNeoPixelUpdate(); |
| 41 | +void handleServoTimerInterrupt(); |
| 42 | + |
| 43 | +uint16_t getDelayFromSpeed(); |
| 44 | + |
| 45 | +extern NeoPatterns QuadrupedNeoPixelBar; // The main 24 pixel bar containing all the other 3 logical NeoPatterns objects. |
| 46 | +extern NeoPatterns RightNeoPixelBar; // 8 Pixel bar at the right |
| 47 | +extern NeoPatterns FrontNeoPixelBar; |
| 48 | +extern NeoPatterns LeftNeoPixelBar; |
| 49 | +extern color32_t sBarBackgroundColorArrayForDistance[]; // // The color background for front distance bar |
| 50 | + |
| 51 | +extern bool sAtLeastOnePatternsIsActive; // True if at least one pattern is active => call update() |
| 52 | +extern bool sCleanPatternAfterEnd; // Do a wipe out after pattern ended |
| 53 | +extern bool sShowPatternSynchronizedWithServos; // Flag set e.g. by main loop to force to show the pattern (e.g.distance value) synchronized with servo interrupts. |
| 54 | + |
| 55 | +#endif // #if defined(QUADRUPED_HAS_NEOPIXEL) |
| 56 | + |
| 57 | +#endif // _QUADRUPED_NEOPIXEL_H |
0 commit comments