PCでキーボード入力して、マイコンからRn42 BlueTooth経由でandroidスマホへキー入力を送信する実験をしました。
arduinoでやろうとしたのですが、arduino unoだとハードウェアシリアル通信はPCとのUSBシリアルで使用するので、プログラムの書き込み毎に、RN42の結線をはずさないとプログラムが書き込めないという不具合?があったので、その手の不具合が少ないmbedに乗り換えて、接続しました。
●CPUの選択
CPUは、開発者の慣れがあるので、マイコンでアセンブラを組むのが好きな人がいたり、arduinoがいい人、PCでjavaなど高度な言語をくむのが好きな人など様々なので、本ブログでは、CPUについては偏った勧め方はいたしません。ただ、本ブログのスタートがmbedでスタートしたため、mbedが基本となります。
arduinoも8月からいじりだしてます。arduinoは、デバイスの接続事例がmbedよりはるかに多く、mbedでは接続例がないデバイスの場合は、arduinoから始めることにしてます。今回は、シリアル接続で事例がmbedでもあったので、mbedで簡単にできました。コスト的には、arduinoがATMega328Pを使っているため
数百円台~3千円ですが,mbedでは、千円~7千円の価格帯となります。
今回は、余っているSwitchScience のTy51822R3を使用しました。
https://os.mbed.com/platforms/Switch-Science-mbed-TY51822r3/
BLEのプログラムが自由にできれば、このCPU基板だけで通信ができるので、最も小さな通信マイコンになれるのですが、いかんせんこの1年悪戦苦闘しても使えないで余っております。
●mbed接続は10分でできました。
①やること
配線は、RN42のRXをCPUのTX(P0-9)へ、RN42のTXをCPUのRX(P0-10)を接続するだけです。電源は3.3V系CPUですので何も心配はいりません。
キーボードからの入力をUSBシリアル経由で、マイコン(TY51822r3)に送って、それをそのままRN42のシリアルポートへ書き込めばBlueTooth経由で接続スタンバイしているスマホに
文字が出てきます。
②事前確認
昨日やったことを再度、確認してPC送信でスマホ受信できるように設定します。やりかたは昨日の記事でどうぞ。
②mbedのプログラム
mbedは、シリアルが2CH以上ある仕様で、arduinoのような不便さがありませんので、Serial pcとSerial rn42のポートを宣言すれば後は、OKです。mbedの場合、使う機種によって、ポートの名称が違ってきますので、そこが注意です。
————————————————–
#include “mbed.h”
Serial pc(USBTX,USBRX);//USBシリアル pcで宣言
Serial rn42(P0_9,P0_10);//TXがP0_9 RXがP0_9で宣言
int main() {
pc.baud(115200);
rn42.baud(115200);
char key_chr;//この変数いらないのですが判り易くするため
while (1) {//ずっと繰り返す
key_chr=pc.getc();//シリアルpcポートから1文字受信
rn42.putc(key_chr);//シリアルrn42ポートへ1文字送信
}
}
———————————————————–
③結果
CRが効いてないのが原因不明ですが、とりあえず
マイコンからのデータ送信はOKでした。
●以後
クランクに仕込むためにいかにコンパクトで軽く、信頼性が保持できるか検討していきます。TY51822r3は、高級すぎるので、千円以下のCPUでクランクに取り付けます。