- TeraTermにタイプすると、iPhoneに文字が出るよ。
- Terminalに打てる文字、なので、特殊キー対応できてない。(Enter, ESC, BSあたりはOK。PgUpとか、Fxxはだめ)
- 直接、キーコードをとって、シリアルに投げるプログラムを書けば...
概要
- BLE HIDキーボードしてiPhoneに接続、Windowsのシリアルターミナルで打った文字をタイプ(転送)する。
- Nordic のサンプルコード(ble_peripheral/ble_app_hids_keyboard)ベースに、
- UART通信、と
- ASCIIからKeyScanコード変換
をすればできるだろうと。
- @Biaccoさんの記事「ErgoDox BT の設計・実装に試行錯誤した話あらため試行錯誤している話」へのコメント
環境
- Windows 7 (64bit)
- TeraTerm - 38400bps設定
- BLENano(NRF51822/RAM:32KB) + MK20 USB Board
- Keil MDK-ARM v5.20 Lite(無料版コードサイズ32KB制限)
- Nordic SDK v10 (SoftDevice S110 v8.0.0)
- サンプルコード:
nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_hids_keyboard\pca10028\s110\arm5_no_packs\ble_app_hids_keyboard_s110_pca10028.uvprojx
とりあえず...
- ソースコード: https://github.com/mt08xx/ble_app_hids_keyboard_uart
- HEXファイル:
ble_app_hids_keyboard_uart_mt08qiita.hex
これをBLENanoに焼けばよい。 - BLENanoをMK20にくっつけて、PCに挿したまま、Teraterm起動して、
-
mbed Serial Port
選択 - 通信速度38400bpsに設定(ALT+S,E)
-
手順
- nRF51 SDK v10を解凍
-
examples\ble_peripheral\ble_app_hids_keyboard_uart\
となるように、git clone https://github.com/mt08xx/ble_app_hids_keyboard_uart.git
- プロジェクトファイルをダブルクリック(MDK-ARMがひらく):
pca10028\s110\arm5_no_packs\ble_app_hids_keyboard_s110_pca10028.uvprojx
- MDK-ARMでビルド(F7)
nrf51422_xxac_s110.hex
ができる。(pca10028\s110\arm5_no_packs\_build\
の中) - SoftDeviceと合体させる(srec_cat.exe使用)
- 5.のHEXを、
mbed
ドライブに放り込む。
説明
-
ble_app_hids_keyboard_uart\usr_uart.c
- Nordic API:
APP_UART_FIFO_INIT()
、UART周りの設定、コールバック関数の登録 - Nordic API:
app_uart_get()
で、1文字受信 - Nordic API:
app_uart_put()
で、1文字送信
- Nordic API: