前回は送信機となるスマホアプリを作成しました。今回は受信機となるBluetoothモジュールの作成をしたいと思います。
まず最初に必要な部品ですが
・PIC24FJ64GB002 ・USBコネクタ(Aタイプメス) ・10kΩ抵抗 ・330Ω抵抗 ・10μFコンデンサー ・Bluetoothドングル ・ArduinoUNO ・LED ・ブレッドボード
が各1個ずつあればO.Kです。記事冒頭の写真と少し構成が違いますが今回はこれだけの部品でBluetooth受信機を作りたいと思います。
作成に入る前に今回どういった物を作成するかを説明します。Bluetooth通信+USBホスト部分のプログラムをまともに作成しようとしてもまず無理です。とういか私には無理です。
そこで「ランニングエレクトロニクス社」さんから「SBDBT」というPICマイコンを利用し、BluetoothドングルでSPP通信する製品が販売されています。
さらにそのソースまで公開してくださっていて、またさらにPIC24FJ64GB002へ移植されている「電気のDIY」さんの記事を参考にさせて頂いてソースをPIC24FJ64GB002用へ変更し焼きこみます。サイトは上記キーワードで検索かければすぐ見つかると思います。
では「ランニングエレクトロニクス社」さんからソース「ソース Ver.150910」ダウンロードしてきます。MAPLAB IDEでまずはプロジェクトをPIC24FJ64GB002へ変更。それからmain.cの中にあるPIC24FJ64GB004をすべてPIC24FJ64GB002へ変更する。
ピンアサインの変更です。ここも参考サイト同様に変更します▼
LED:変更なし U1RX:3pin⇒16pin U1TX:2pin⇒17pin U1CTS:4pin⇒18pin U1RTS:5pin⇒14pin STO:1pin⇒12pin
とピンアサインを変更します。
global.h内のBOARD_SBDBTで定義されている元々のピン割り付けをそれぞれ下記のように修正します。▼
#define u1rx_setup() (RPINR18bits.U1RXR = 7) #define u1tx_setup() (RPOR4bits.RP8R = 3) #define u1cts_setup() (RPINR18bits.U1CTSR = 9) #define u1rts_setup() (TRISBbits.TRISB5=0) #define u1rts_on() (LATBbits.LATB5=0) //ON:rx ready #define u1rts_off() (LATBbits.LATB5=1) //OFF:rx not ready #define sto_setup() (TRISAbits.TRISA4=0) #define sto_l() (LATAbits.LATA4=0) #define sto_h() (LATAbits.LATA4=1)
今回はLED、U1CTS、U1RTS、STOは使用しないためソースを変更しておくのみとなります。この内容でコンパイルしてPIC24FJ64GB002Bへ書き込みます。
次に配線を行います。回路図はこちら▼
必要最小限の構成にしてます。元々あった通信確認のためのLED等は省略してます。
ブレッドボードだとこんな感じです▼
PIC24Fの絵は嘘(ダミー)です。右上が1pinとなります。またUSBメスの絵もダミーです。中央当たりにあるソケットがUSBコネクタと思って下さい。ここにBluetoothドングル差し込みます。またRX、TX線は今回はシリアルソフトウェア通信で行うためそれぞれArduinoの2pin、3pinへ接続しておきます。
Bluetoohモジュールを試作基板にした画像はこちらです▼
次回はbluetooth受信した情報をarduinoへ渡し、LEDの明るさを制御する部分のソースを紹介したいと思います。
コメント