Similar apps
Compare allApp info
- Installs
- 1,000+
- Category
- Communication
- Content rating
- Everyone
- Version
- 1.2
- Released
- Oct 29, 2016
- Last updated
- 30 Dec 2020
- In-app purchases
- No
- Contains ads
- No
- Promo video
- Yes
- Requires Android
- 5.0
Loading…
This app isn't in any of our charts yet.
Android 11
Bluetooth data exchange for micro:bit devices
This app establishes a channel between two micro:bit devices. The channel will be handeled as UART communication. You have to develope a programm on each micro:bit device with UART transfer. Indication aktive: BLE Indication (Default) Indication inaktive: BLE Notification Silent aktive: No visual logging Silent inaktive: Logging Requirements: - Min. Android 4.4 - Bluetooth Low Energy (BLE) - Paired devices - micro:bit programm (developed by yourself) MBED example: #include "MicroBit.h" #include "MicroBitUARTService.h" MicroBit uBit; MicroBitUARTService *uart; int connected = 0; void onConnected(MicroBitEvent e) { uBit.display.scroll("C"); connected = 1; } void onDisconnected(MicroBitEvent e) { uBit.display.scroll("D"); connected = 0; } void onButtonA(MicroBitEvent e) { if (connected == 0) { uBit.display.scroll("NC"); return; } uart->send("Yes"); uBit.display.scroll("Y"); } void onButtonB(MicroBitEvent e) { if (connected == 0) { uBit.display.scroll("NC"); return; } uart->send("No"); uBit.display.scroll("N"); } void onButtonAB(MicroBitEvent e) { if (connected == 0) { uBit.display.scroll("NC"); return; } uart->send("SK"); uBit.display.scroll("SK"); } void processBLEUart() { uint8_t readBuf[22]; while (1) { // loop for ever if ((!connected) || (!uart->isReadable())) { uBit.sleep(50); // wait 50mS and check again continue; // loop; } //else we are connected AND there is some input to read if (uart->isReadable()) { while (uart->isReadable()) { int charCount = uart->read(readBuf, 22, ASYNC); if (charCount != 0) { for (int i = 0; i < charCount; i++) uBit.display.scroll((char) readBuf[i]); } } } } } /* IMPORTANT !!! Oherwise you will run out of memory ! Recommend disabling the DFU and Event services in MicroBitConfig.h since they are not needed here: microbit->microbit-dal->inc->core->MicroBitConfig.h #define MICROBIT_BLE_DFU_SERVICE 0 #define MICROBIT_BLE_EVENT_SERVICE 0 #define MICROBIT_SD_GATT_TABLE_SIZE 0x500 */ int main() { // Initialise the micro:bit runtime. uBit.init(); uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected); uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected); uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA); uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB); uBit.messageBus.listen(MICROBIT_ID_BUTTON_AB, MICROBIT_BUTTON_EVT_CLICK, onButtonAB); uart = new MicroBitUARTService(*uBit.ble, 32, 32); uBit.display.scroll("Go"); create_fiber(&processBLEUart); // create fiber and schedule it. release_fiber(); }