Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BLE5で遊んでみた!

Norippy
February 17, 2021

 BLE5で遊んでみた!

IoTLT Vol.72で発表した資料です。
BGX13PというBLE5モジュールについて紹介しました。

Norippy

February 17, 2021
Tweet

More Decks by Norippy

Other Decks in Technology

Transcript

  1. BLE5 で遊んでみた︕
    IoTLT Vol.72 2021/02/16
    norippy @ rino products

    View full-size slide

  2. norippy (Norio Ikedo)
    ○平日は某自動車の会社でコネクティッドカーの開発エンジニア
    ○余暇の時間はrino products代表(副業)
    • ガジェットの筐体、電子回路、組み込みFW等の設計・開発・販売
    • Alexaスキルの開発
    • M5Stick C用 Vibrator Hat 再販開始!!
    • 今年は自動車パーツの開発〜販売をします!!!
    Twitter:norippy Web page

    View full-size slide

  3. Bluetooth low energyについて
    3
    ESP32便利ですよね。このESP32で利⽤できるBluetooth バージョンご存知ですか︖
    Ver 4.2
    5じゃない︕︕
    4.2を卒業してBluetooth 5を覚えないと、時代に置いていかれる︕︕
    ちなみに、Bluetooth 4.1以前のデバイスは2020年夏からSIG認証が取れなくなりました。

    View full-size slide

  4. BLE5の開発ができるモジュール
    4
    BGX13P
    勉強のために2種類のモジュールを買ってみました
    特徴
    ・モジュールとはUART通信でコミュニケーションをとる
    ・UART経由で設定を変更できる
    ・Bluetooth Meshには対応していない
    ・BLEがとりあえず試せる︕
    ・RN0402みたいな感じで使える
    BGM13S22
    特徴
    ・BLEが使えるSoCの開発ができる。
    ・独⾃のIDEで開発。
    ・Bluetooth Meshや AoA(Angle of Arrival)の開発もできる
    ・コード書くの難しい。BLEの仕組みをしっかり理解してないと厳しい
    BGX13Pで遊んでみました︕︕

    View full-size slide

  5. BGX13Pは何ができるのか︖
    5
    1.UARTでマイコンと簡単に通信ができる︕︕
    Bluetoothの部分の開発は不要︕送りたいデータをBGX 13Pに渡せば双⽅向通信ができる。
    TX
    TX
    RX
    RX
    PC, MCU (ESP32 etc)
    BLE通信
    2.BLE5から対応した2M PHYや CODED PHYに対応︕︕
    2M PHY 〜Bluetooth 4.2 の通信速度の2倍の速度で通信ができる
    利⽤シーン︓画像データを送る, 動画を送る
    CODED PHY Long Range の通信が可能。
    アンテナにもよりもりますが、数百メートル、
    数キロ先のデバイスと通信ができる
    その代わり通信できるデータ量が少ない
    (125kbps or 500kbps の 2種類が選べる)
    利⽤シーン︓LTEを使ってIoTをしなくても、
    ローカル通信だけでセンシングシステムを
    構築する事ができる
    まだスマートフォンが対応していない・・・
    スマートフォンは対応している︕

    View full-size slide

  6. BGX13Pで通信をしてみる
    6
    せっかくなのでRaspberry pi pico を使ってBLE経由でLチカしてみました
    int main()
    {
    Uart_init(UART_ID, BAUD_RATE);
    uart_init(UART1_ID, BAUD_RATE);
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART1_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART1_RX_PIN, GPIO_FUNC_UART);
    const uint LED_PIN = 25; // preset led
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    int data[10];
    while (true)
    {
    if(uart_is_readable(UART_ID) > 0){
    uart_puts(UART1_ID, uart_is_readable(UART_ID));
    for (int i = 0; i < uart_is_readable(UART_ID); i++)
    {
    data[i] = uart_getc(UART_ID);
    }
    }
    if(data[0] == true ){
    gpio_put(LED_PIN, true);
    }else{
    gpio_put(LED_PIN, false);
    }
    }
    }
    Cで書きましたが、コードはこれだけ。とてもシンプルです

    View full-size slide

  7. BGX13Pの利⽤⽅法
    7
    BGX13PとAtmega328Pを使った⾃動⾞のスマートフォンキーシステムを開発中
    マイコンの制御がメインで、ちょっとBLEを使いたいというシステムにBGX13Pを使うのはオススメ
    技適も取れているので、販売することも可能
    スマートフォンがLong Range対応したら、さらに便利になりそう

    View full-size slide

  8. まとめ
    8
    • Bluetooth 5になり新しくできる事が増えました。
    • BGX13Pで簡単にBLEを試す事ができる(無線UART)
    • BGX13PはRaspberry pi picoなどのMCUと
    組み合わせて使える

    View full-size slide