Adafruit micro:bit Library
Adafruit_Microbit.h
Go to the documentation of this file.
1 
5 #ifndef _ADAFRUIT_MICROBIT_H_
6 #define _ADAFRUIT_MICROBIT_H_
7 
8 #include <Adafruit_GFX.h>
9 #include <Arduino.h>
10 #include <Fonts/TomThumb.h>
11 
12 #if defined(S110) || defined(S130)
13 #define SD_SELECTED
14 #include <BLEPeripheral.h>
15 #endif
16 
17 #define LED_ON 1
18 #define LED_OFF 0
19 
20 void IRQ_MATRIX_HANDLER(void);
21 
23 class Adafruit_Microbit_Matrix : public Adafruit_GFX {
24 public:
27  boolean begin(void);
28  void drawPixel(int16_t x, int16_t y, uint16_t color),
29  fillScreen(uint16_t color), clear(void), rowHandler(void);
30  void show(const uint8_t bitmap[]);
31  void scrollText(char *string, uint8_t stepdelay = 150);
32  void print(char *string);
33  void print(int32_t i);
34  void print(int i);
35  void print(double f, int precision = 3);
36 
37  static const uint8_t EMPTYHEART[5],
38  HEART[5],
39  NO[5],
40  YES[5],
41  MICROBIT_SMILE[5];
42 
43 private:
44  void startTimer();
45 #if defined(NRF51)
46  uint8_t matrix_buffer[3][9];
47 #elif defined(NRF52833_XXAA)
48  uint8_t matrix_buffer[5][5];
49 #endif
50 };
51 
52 #ifdef SD_SELECTED
53 
54 class Adafruit_Microbit_BLESerial : public BLEPeripheral, public Stream {
55 public:
56  Adafruit_Microbit_BLESerial(unsigned char req = BLE_DEFAULT_REQ,
57  unsigned char rdy = BLE_DEFAULT_RDY,
58  unsigned char rst = BLE_DEFAULT_RST);
59 
60  void begin(...);
61  void poll();
62  void end();
63 
64  virtual int available(void);
65  virtual int peek(void);
66  virtual int read(void);
67  virtual void flush(void);
68  virtual size_t write(uint8_t byte);
69  using Print::write;
70  virtual operator bool();
71 
72 private:
73  unsigned long _flushed;
74  static Adafruit_Microbit_BLESerial *_instance;
75 
76  size_t _rxHead;
77  size_t _rxTail;
78  size_t _rxCount() const;
79  uint8_t _rxBuffer[BLE_ATTRIBUTE_MAX_VALUE_LENGTH];
80  size_t _txCount;
81  uint8_t _txBuffer[BLE_ATTRIBUTE_MAX_VALUE_LENGTH];
82 
83  BLEService _uartService = BLEService("6E400001-B5A3-F393-E0A9-E50E24DCCA9E");
84  BLEDescriptor _uartNameDescriptor = BLEDescriptor("2901", "UART");
85  BLECharacteristic _rxCharacteristic = BLECharacteristic(
86  "6E400002-B5A3-F393-E0A9-E50E24DCCA9E", BLEWriteWithoutResponse,
87  BLE_ATTRIBUTE_MAX_VALUE_LENGTH);
88  BLEDescriptor _rxNameDescriptor =
89  BLEDescriptor("2901", "RX - Receive Data (Write)");
90  BLECharacteristic _txCharacteristic =
91  BLECharacteristic("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify,
92  BLE_ATTRIBUTE_MAX_VALUE_LENGTH);
93  BLEDescriptor _txNameDescriptor =
94  BLEDescriptor("2901", "TX - Transfer Data (Notify)");
95 
96  void _received(const uint8_t *data, size_t size);
97  static void _received(BLECentral & /*central*/,
98  BLECharacteristic &rxCharacteristic);
99 };
100 #endif
101 
104 public:
106 #ifdef SD_SELECTED
107  Adafruit_Microbit_BLESerial BTLESerial;
108  uint8_t getDieTemp(void);
109 #endif
110 
111  void begin(void);
112 };
113 #endif
void fillScreen(uint16_t color)
Fill the 5x5 matrix with an LED &#39;color&#39;.
Definition: Adafruit_Microbit.cpp:235
void scrollText(char *string, uint8_t stepdelay=150)
Scroll display a string on the 5x5 LED matrix.
Definition: Adafruit_Microbit.cpp:404
static const uint8_t HEART[5]
full heart icon
Definition: Adafruit_Microbit.h:37
void drawPixel(int16_t x, int16_t y, uint16_t color)
Draw a single pixel/LED on the 5x5 matrix.
Definition: Adafruit_Microbit.cpp:191
void rowHandler(void)
Matrix object function called by IRQ handler for each row This is not optimized at all but its not so...
Definition: Adafruit_Microbit.cpp:134
void clear(void)
Clear the 5x5 matrix.
Definition: Adafruit_Microbit.cpp:229
Definition: Adafruit_Microbit.h:103
void IRQ_MATRIX_HANDLER(void)
Matrix interrupt request handler.
Definition: Adafruit_Microbit.cpp:176
void show(const uint8_t bitmap[])
Display a 5-byte bitmap on the 5x5 LED matrix.
Definition: Adafruit_Microbit.cpp:247
Adafruit_Microbit_Matrix matrix
5x5 graphical matrix
Definition: Adafruit_Microbit.h:105
Definition: Adafruit_Microbit.h:23
static const uint8_t MICROBIT_SMILE[5]
smile icon
Definition: Adafruit_Microbit.h:37
static const uint8_t YES[5]
Check icon.
Definition: Adafruit_Microbit.h:37
static const uint8_t NO[5]
X icon.
Definition: Adafruit_Microbit.h:37
boolean begin(void)
Initialized the 5x5 matrix and scanning IRQ.
Definition: Adafruit_Microbit.cpp:104
void print(char *string)
Display a string on the 5x5 LED matrix.
Definition: Adafruit_Microbit.cpp:256
static const uint8_t EMPTYHEART[5]
an empty heart icon
Definition: Adafruit_Microbit.h:37