いろいろあってRedBearLabのBLE Nano(nRF51822)というmbed準拠、BLE(Bluetooth Low Energy)対応のマイコンを少しいじっている。
スイッチサイエンスでプログラムの書き込みボードとセットで売られている。
ここからはBLE Nanoをやっていてはまったことを書いていく。
私の環境(Windows10/Thinkpad)固有の問題なのかもしれないが、うまくPCがBLE Nanoを認識しないことがある。何度もマウント、アンマウントを繰り返すのだ。このようなときはおそらくドライバーの読み込みがうまくいっていないので、パソコンを再起動したら直る。
ずっとシリアル通信でのデータ送信(putc、printf)ができず困っていたのだが、それっぽい情報を見つけた。
USBTX、USBRXでシリアル通信をしていたらD3ピンは使えないらしい。
BLE Nanoはデフォルトのピン設定で、I2CとUARTが被っているのでI2CやりながらUART(USBTX,USBRXのSerial pcでのprintf)が出来ません。
ピン設定(GPIO)は任意に変更可能なので、空いてるピンに変えればI2C / SPI / UARTそれぞれ使えるようになりますよ。
引用:http://qiita.com/tw_Inudaisuki/items/4303c2a148ff6fcd9785
https://lowreal.net/2016/07/20/2
というサイトにさらに詳しい対処法が載っている。
BLE NanoはArduinoの開発環境でも(やろうと思えば)開発できる。Arduino IDEでの開発の方が情報が多く、馴染みがある人が多いが、私はmbedのオンライン環境をおすすめする。
ただしオンラインコンパイラから直接コンパイルしたコードをダウンロードすると高確率で失敗するので注意!