マイコンへのコードの書き込み

さて、コードを実行してみましょう。まず、環境を設定します。コードをgithubからクローンして、以下のようにコマンドを実行します。west updateにはしばらく時間がかかります。

git clone https://github.com/Convergence-Lab-Inc/zephyr_amg_ble.git
cd zephyr_amg_ble
west init
west update

 つぎに、マイコン側コードをビルドします。ここで、nrf52dk_nrf52832 はZephyrに予め定義されている nRF52-DKのボード名です。

west build -b nrf52dk_nrf52832 .  

そして、コードをマイコンに書き込みます。USBでボードを接続して、以下のようにコマンドヲ入力します。

west flash

実行

まず、シリアルコンソールを表示しましょう。以下のようにします。 ACM0の部分は環境によって変わるはずです。なお、screenを閉じるには Ctrl-a Ctrl-\ と入力します。

screen /dev/ttyACM0 115200

nRF52 DKのリセットボタンを押すと、コンソールに以下のように表示されるはずです。これで通信待ちになっています

*** Booting Zephyr OS build v2.6.0-rc3-42-g39354d92bbdc  ***
device: 0x2000089c, name: AMG88XX
Bluetooth initialized
Advertising successfully started
[00:00:00.286,895] <inf> fs_nvs: 6 Sectors of 4096 bytes
[00:00:00.286,926] <inf> fs_nvs: alloc wra: 0, f80
[00:00:00.286,926] <inf> fs_nvs: data wra: 0, b0
[00:00:00.288,452] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.288,452] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.288,482] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.6 Build 0
[00:00:00.288,757] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:00.291,198] <inf> bt_hci_core: Identity: D5:99:B8:25:6A:AE (random)
[00:00:00.291,229] <inf> bt_hci_core: HCI: version 5.2 (0x0b) revision 0x0000, manufacturer 0x05f1
[00:00:00.291,229] <inf> bt_hci_core: LMP: version 5.2 (0x0b) subver 0xffff

 つぎに、MAC Addressを取得します。

python/ディレクトリの中の scan_gattlib.pyを実行します。 sudoが必要です。

# sudo python scan_gattlib.py
name: BLE Thermography, address: 6F:B2:C3:1F:56:1B

前述したようにこの値は、起動するたびに変わります。

次に、取得したMacアドレスを引数にして、amg_ble.pyを実行します。

python amg_ble.py 6F:B2:C3:1F:56:1B

 以下のような画像が表示されれば成功です。

ぼんやりと人型の形が見えますね。

次に、ホットコーヒーを入れたコーヒーカップを赤外線カメラの前においてみました。

人よりホットコーヒーのほうがだいぶあついのでホットコーヒーが明るくなっていますね。

まとめ

今回はZephyr RTOSをつかって、サーモグラフィーの画像をBLEでPCに送るコード作成しました。マルチスレッドや割り込みな度は使っていないませんが、BLEをつかったデバイスを簡単に作ることができることがわかります。

また、今後も更新していきたいと思います。

 

このエントリーをはてなブックマークに追加
 

お問い合わせ

 

Pin It

Related Articles/Posts