● 実験テーマ67

「PIC16F1827_簡易I/Oボードの実験」
 (後閑哲也 著「PICで楽しむ Bluetooth・Wi-Fi機器の自作」の製作記事による。)

・以下、この実験の顛末記です。

■ 2015.7.1
  ・6月の激務(本当に冗談なしに激務だった)から解放され、とりあえずは待機となった。
   また徐々に、電子工作の方を進めていきたいと思う。

   最近ちょっと残念なことがあった。
   愛用の「iPod Touch」の初号機に、デフォルトで搭載されていた、「YouTube」アプリ
   が、確か今年の4月を境に、最新のWEBシステム(YouTubeサイト)に対応しなくなり、
   使えなくなってしまったのだ。
   32G版で、当時5万以上した記憶がある。
   当時、ゆういつ、Wi-Fiが搭載されている機器で注目を集めていたと記憶している。
   最近になり、部屋に無線LANルータを設置したので、今年の初めまでは、それでサイト
   に接続し、音楽ビデオを楽しめていたが、それができなくなってしまった。
   なんとかしたくて、iOSをバージョンアップすることを考えたが、初号機は、それすら対象外
   で出来ず、一時はあきらめていた。

   そこで最近安価になってきた、Androidタブレットを購入することにした。(6/17に物が届いた)
   まあ、これからの電子工作のテーマとして、タブレットに搭載されている、Bluetoothモジュール
   と、通信して動く何かを作り、実験したいという思いもあったのも理由の一つだが。


■ 2015.7.4
  ・いきなり、タブレットとの接続を試みるのは無謀すぎるので、簡単なハードで出来るテーマ
   が載っている、後閑さんの本「PICで楽しむ Bluetooth・Wi-Fi機器の自作」を
   Amazonで購入することにした。

  ・この本の、「第3章 簡易I/Oボードを、Bluetoothで無線接続」の記事を参考にすることにした。
   特に、「3-5 タブレットのアプリ製作」を体験してみたい。
   内容は、Eclipseのプロジェクト作成・Bluetoothライブラリの使い方等である。

  ・ハード構成は、PIC16F1847+BTモジュール:RN-42-XVPである。
   PIC16F1シリーズを使っている。
   また、IDEは、MPLAB-X を使っている。
   今回は、MPLAB IDE V8.xx でなく、MPLAB-Xを使った方が良さそうである。
   尚、ソース等プロジェクト一式は、この本の出版元である、「技術評論社」の当該サイトからダウンロード
   できる。


■ 2015.7.5
  ・まず、8bitMPUの、PIC16F1847 は、秋月では取扱してない。
   あるのは、1827, 1823, 1828, 1829 である。
   マルツにも無し。
   RSにあった。「PIC16F1847-I/P」(32MHz, 8kBフラッシュ, 1024B RAM, 18pinDIP)
   単価252円であるが、最低5個単位の注文になる。(税抜き:1260円)
   注文したことのない、Digi Key にもあり。
   1個単位で注文可能:272円


■ 2015.7.6
  ・
あと、現行の、PICkit2で、PIC16F18xx の、HEX書込みが出来るか?だが・・・
   WEBで調べてみた。
   その前に、現状使っている、PICkit2のバージョンを調べてみた。
   Application Version V2.61.00
   Device File Version V1.61.00
   であった。
   そして、Device Familyの、Midrenge- 1.8V Min デバイスの中には、PIC16F18xxは無かった。
   このままでは書込めないことになる。

   さらに調べると、Application Version V2.61.00は、現在でも最新であることが確認できた。
   Device File Version を、V1.61.00から、最新(2012/1/30付)の、V1.62.14にバージョン・アップ
   すれば良いことが分かった。
   早速、microchipな当該サイトから、PK2DFUpdate-1-62-14.zipをダウンロードして
   解凍すると、PK2DeviceFile.datが出力されるので、これと置換えればOK。(済)
   置換えた後、PICkit2アプリを起動して、確認してみた。
   Deviceセレクトで、PIC18F1827を選択できることが確認できた。

  ・ところで、入手性と価格の点から、PIC16F1847 を使うことに、ためらいがあったが、よくよく
   本日届いた、後閑さんの本を見ると、PIC16F1827 でも可能と書いてあった。
   両者の差分は、メモリ容量の違いだけである。
   (1847:プログラムM=8kW, データM=1kB/ 1827:プログラムM=4kW, データM=384B)
   そこで、PIC16F1827 (秋月で、170円)で行くことにした。 

  ・開発環境を整えることにした。
   まずは、16F1シリーズの、Cコンパイラ:「MPLAB XC8 コンパイラ」フリー版
   (最新は、'14/9/6リリース V1.33B)をインストールした。


■ 2015.7.7
  ・MPLAB X IDE V3.05 のインストールも済ませた。

  ・早速、プロジェクタ名「BT_PIO」で、プロジェクトを登録した。
   コンパイルは簡単だった。
   [ほうき+金ズチ](クリーン+ビルド)のアイコンをクリックすればOK。
   コンパイルもOK。
   HEXファイルは、「BT_PIO.X.production.hex」という名になって
   dist- defalt- production 下に生成される。

  ・とりあえず、HEXまで自分で用意出来るようになったので、Android の開発環境構築(Eclipse+java)
   は後にして、ハードの準備に取り掛かった。
   まずは、パーツの手配から。
   出来るだけ手持ちの部品を使うようにして、出費を抑えることにした。
   手配したのは、以下の4種のみ。
    @ BTモジュール:RN-42-XVP
      (秋月オリジナルで、上記と互換の「RN-42 Bluetooth 2mmピッチ変換モジュール:2000円を注文)
    A 上用10pinソケットコネクタ 2個
    B PIC16F1827
    C 18pinICソケット


■ 2015.7.8
  ・自分用の回路図を水魚堂で作成。
  ・秋月より部品届く。
   組んで単体チェックする前に、Androidプログラミングを体験したいという気持ちがあるので、ちょっと
   ハードから離れて、Androidアプリ開発環境の
    @ JDK(Java Development Kit(Java開発環境))
    A Eclipse(アプリの統合開発環境)
    B SDK(Software Development Kit(Androidアプリ開発キット))
    C ADT(Android Development Tool)
   をインストールするところから始めてみることにした。(トラ技 2014年3月号に、「Androidプログラミング事始め」
   の記事が載っているので、それを参考にした。
   この作業がことのほか大変だった。項目が多いし時間が掛る。
   以下にその概要メモを示した。

   (1) JDKのインストール
     @ 「Oracle Technology Network」 HPにアクセス
     A Java Platform Standerd Edition 「Java SE8u45」を、ダウンロード
     B ライセンスに同意し、Windows x86(32bit)でインストール
     C JDKパス設定
       a. コントロールパネル- システムとセキュリティ- システム
       b. システム環境設定- 環境変数
       c. 環境変数ダイアログにて、[新規]を、ダブルクリック
       d. 変数名欄と、変数地欄に、以下のように入力
        変数名: JAVA_HOME
        変数値: C\Program Files\Java\jdk1.8.0_45
       e. 環境変数ダイアログに戻り、[PATH]をクリック
       f. [システム変数の編集]で、変数値の頭に、%JAVA_HOME%\bin; を追加

   (2) Eclipseのインストール
     ※ Pleiades All in One をインストール(Pleiades:Javaアプリを、日本語に翻訳するツール)
     @ "http://mergedoc.sourceforge.jp/" にアクセス。
     A Eclipse 4.5 Mares(Pleiades All in One)→ ちなみに、Mares(マース)とは、火星のこと
        をクリック。
     B Javaの、JRE(ランタイム)を含まない、Stnderd Edition をダウンロード。(Zipファイル)
        C:\Android を作っておいて、そこに解凍する。
        解凍すると出来る、C:\Android\pleiadesフォルダ下にある、eclipse.exe が実行ファイルになるので
        ディスクトップに、ショートカットを作成。

     C ワークスペースの作成→ 私の場合、C:\workspace は他で使っているので、
        C:\workspace_eclipse とした。


■ 2015.7.9
   (3) SDKのインストール
     @ "http://devloper.android.com/sdk/"からリンクされている、Other Download Option の
        「installer_r24.3.3-windows.exe」をクリック。
     A ライセンスに同意し、ダウンロード(保存する)
        インストール先は、「C:\Android\android-sdk\」とする。
        他は、デフォルトのまま、[Next]で送って行けばOK
     B Android SDKパッケージの選択画面では、Android2.1(APIレベル7)以上のバージョンにチェック。
     C [Install packeges・・・]クリック
        [Accept License]クリック
        [Install]クリック
           ↓
        ダウンロード〜インストールするパッケージが複数あるので、全て終了するまで、約2時間30分
        ほど掛ってしまった。
        以下は、終った時のダイアログの状態を示す。

     D Android SDKのパス設定
        システム環境([Path])の変数値の末尾に以下を追加。
        ;C:\Android\android-sdk\;C:\Android\android-sdk\platform-tools

   (4) ADTのインストール(eclipseからインストールする)
     ※ eclipseに、Androidアプリの開発環境を付加するプラグイン
     @ [ヘルプ]- [新規ソフトウエアのインストール・・・]
     A インストール・ダイアログが表示されるので、[追加]をクリック
     B リポジトリ―の追加ダイアログが出たら、次のように入力し、[OK]をクリック
        名前: ADT Plugin
        ロケーション: http://dl-ssl.google.com/android/eclipse/
     C インストール画面に、[開発ツール]の、チェックボックスが表示されたら、チェックを入れ、[次へ]
        をクリック
     D ライセンスに同意し、[次へ]をクリック
        (途中でセキュリティ警告が出たら無視して、[OK]をクリック)
     E インストール終了後、eclipse再起動


■ 2015.7.10
   (5) Androidアプリ作成初体験
     ※ お決まりの、「Hellow World!」
     @ プロジェクト作成
       a. eclipse起動
       b. [ファイル]- [新規]- [プロジェクト]
        新規プロジェクト・ダイアログより、
        [Android]- Androidアプリケーション・プロジェクト を選択し、[次へ]をクリック
       c. 新規Androidアプリケーション の設定画面が開くので、次のように入力・指定
        アプリケーション名: TestAppli
        最小必須SDK: Android2.2(APIレベル8)
        ターゲットSDK: Android5.11
        次でコンパイル: Android5.11

       d. 以降の設定は、デフォルトのまま、[次へ]で送って行き、最後に[完了]をクリックで
        プロジェクトが作成される。 

     A プロジェクト下の、[src]- [com.example.testappli](パッケージ名)の下に、
       javaソースファイル「MainActivity.java」が生成されているので、これを、Editerで開き
        <TextVeiw ・・・/>の間に、書式を設定する次の2行を追加し、[保存]すると、
        自動的にビルドが実行される。(デフォルトで、自動ビルドになっている)
        android:textColor="#FF0000"
        android:textSize="50sp"

 
                                         (画像をクリックすると拡大されます。)

        尚、[res](リソースフォルダ)- [layout]下にある、
        activity_main.xml を、「グラフィカル・レイアウト」タブで開くと、プレビュー画面で、その設定の
        様子を、視覚的に確認できる。


                                          (画像をクリックすると拡大されます。)

   (6) タブレットで動かしてみる。
     @ タブレットと、PCを
USBケーブルで接続
       a. Andoroidタブレットの接続準備
        ※ 次の手順で、タブレットを、デベロッパー(開発者向け)にする。
          ・[設定]- システム [タブレット情報]- [ビルド番号]を、7回タップすると、
           「これでデベロッパーになりました」と一瞬表示される。

          ・前の画面に戻ると、[タブレット情報]が、[{}開発者向けオプション]に置換わっている。
           これをタップして、USBデバッグの設定SWを、ONしする。

      b. Windows PC側の、接続準備
       ・Android端末のデバイスドライバをインストールする。
        これは、PCにタブレットを、USB接続した時に、自動的にドライバを検索して、インストール
        が成功した。

     A 次の手順で、タブレットにアプリを転送する。
       ・eclipseを起動し、[実行]- [実行構成]と、クリックして行き、[Androidアプリケーション]を、
        ダブルクリック
       ・新規構成ダイアログが開くので、次のように入力
        名前: TestAplli
        プロジェクト名: TestAplli
       ・[ターゲット]画面にて、「デバイスを選択する時に常にプロンプトを表示」に、チェックマークを入れる。
        この状態で、[実行]をクリック
       ・[デバイス選択]の画面が開く。
        「実行中のAndroidデバイスを選択するに、チェックマークを入れ、[OK]をクリック
        これで、アプリがタブレットに転送される。

     B アプリを実行してみた。
        タブレット画面に、TestAplli のアイコンが登録され、これをタップすると、"Hello World!"の
        文字が表示されることを確認した。


■ 2015.7.11
  ・アンドロイド・アプリの実行まで出来たところで、簡易I/Oボードの方に戻ることにする。
   今回は、後閑さんの用意したプロジェクトをそのまま、自分の環境へコピーして、Eclipseプロジェクト
   を作成することにした。

   ※ 以下に、後閑さんの本より、BT_I/Oの全体構成と機能図を抜き出してみた。


■ 2015.7.13
  ・BT_I/O eclipseプロジェクトの作成
   @ C:\Androidの下に、プロジェクトを一時的に格納する [project]フォルダを作成する。
      ここにダウンロードした、「BT_PIO」 のフォルダを、フォルダごとコピーする。
      そしてフォルダの読込専用のプロパティを外す。
   A Eclipse起動
   B [Files]- [Import]の順に、クリック
   C [インポート]- 選択ダイアログで、
      [一般]の下の、「既存プロジェクトをワークスペースへ」を選択して、[次へ]をクリック

   D [インポート]- プロジェクトのインポート・ダイアログが開く。
      「ルートディレクトリーの選択」に、チェックマークを入れ、コピーしたディレクトリーを指定
      → C:\Android\projyect\BT_I/O
      これで、プロジェクト欄に、自動的に、C:\Android\projyect\BT_I/O と表示されチェックマークが入る。
      オプションの、「プロジェクトをワークスペースにコピー」に、チェックマークを入れて、[完了]をクリック

   E これで、Eclipseの、エクスプローラ・ウインドウに、新規プロジェクトが生成される。    

  の手順で、タブレットにBT_I/Oアプリを転送する。
    @ [実行]- [実行構成]と、クリックして行く。

    A [Androidアプリケーション]を選んで [新規]ボタンをクリック

    B [実行構成]の右サイドのウインドウに、新規構成ダイアログが開くので、次のように入力
        名前: BT_I/O
        プロジェクト名: BT_I/O

    C [ターゲット]タブを選択し、「デバイスを選択する時に常にプロンプトを表示」に、チェックマークを入れる。

    D  この状態で、[実行]をクリック
        [デバイス選択]の画面(TestAppliの時と同じ画面:2015.7.10 (5)-Aの、スクリーンショット参照の事)が開く。
        「実行中のAndroidデバイスを選択するに、チェックマークを入れ、[OK]をクリック
        これで、アプリがタブレットに転送される。

  ・ハードウエアを接続しない状態で、アプリを起動してみた。
   ※ 下図の通り、「BT 汎用IOボード」アイコンをタップすると、初期画面が表示されることを確認した。


 ■ 2015.7.14〜 2015.7.15
  ・やっと、ボードの製作に入った。
   BTモジュールの、10pinソケットコネクタ 2個の取付けに苦労した。
   インチピッチでなく、2mmピッチと狭いので、このままでは、インチメッシュのユニバーサル基板上
   へは当然実装出来ない。
   ピン径も、1mm弱と細いので、細いドリルが無いと、コネクタの支えが弱くなり、アロン等の
   接着剤で固定しようと思っても、注意しないと中のコンタクトにまで、接着物が浸透してしまい
   接触不良を起こすことも考えられるので、結局今回は、Bluetoothモジュール限定のチェック
   基板として使うことにし、ピンコネクタ直付けとした。

  ・7/15の、夜にボード製作が済んだ。


■ 2015.7.16
  ・ボードの単体チェックを行う。
   (1) My PCに、Bluetoothドングルを、USBポートに挿入してのチェック
     ※ My PCに、BTモジュールは搭載されてないので、ドングルを購入し、それとボードと
        通信させてチェックを行う。
     @ ドングルは、他よりちょっと高価(1476円)だが、ブロードコム社の、チップを搭載している
        I/Oデータ社の、「Bluetooth4.0+EDR/LE準拠 USBアダプター USB-BT40LE」を購入。
     A これには、ドライバ等の、ソフトウエアCDが付属されているので、それを使ってインストールした。

     B ボードに、DC5V入力し、電源ON
        BTモジュールは単体で動くはずなので、PICにファームを書込まなくても、モジュール上の
        CONNECT LED(赤) が点滅するはずである。→ OK!!
     C ファームを書込む前に、ボードの電源電圧確認
        +5V入力: 5.21V, +3.3V: 3.32V
     D PICkit2により、PICにファーム(BT_PIO.X.production.hex))を書込む。

     E BTモジュールの初期化
       a. SW2(緑)を押しながら、RST SW(赤)を、ON→ OFF
       b. 2秒ほどして、BTモジュール上の、赤LEDが高速点滅を開始すれば、初期設定が
        開始されていることになる。
        ここで、SW2を、OFF
       c. 暫くしてLED点滅が低速になったら、初期設定は完了
        これで、BTモジュールに、「BT_PIO」という名称が付与される。

     F ペアリング(ドングルから相手の機器を検索)する。
       a. PCタスクトレイの、BTドライバ・アイコンをクリック
       b. サポートアプリ画面の、[デバイスの追加]をクリック
       c. 接続するBT機器(BT_PIO)を選択して、[次へ]をクリック
       d. PINコードを入力する。(セキュアなペアリング要求)
        [1234]を入力して、[OK]をクリック
       e. [閉じる]をクリック

     G 仮想COMポート生成確認
       a. ペアリング完了後、ドングル・サポートアプリ画面の、BTドライバ・アイコンをクリック
       b. [デバイスの追加]ダイアログに、検索された、「BT_PIO」アイコンを選択し、[次へ]をクリック
        同時に、[コントロールパネル]- [デバイスとプリンター]も、開いておく。

       c これで、[デバイスとプリンター]画面に、「BT_PIO」が追加される。

       d  追加された「BT_PIO」アイコンを、ダブルクリックすると、[BT_PIO]の詳細設定画面が開くので、
        [設定]をクリックして、[COMポート]タグを選択。
        COMポートが生成されているのでメモしておく。

     H Tera Term設定
       a. シリアル・ポート設定→ COM6(BT_PIO 'RNI-SPP'の方に設定
       b. 暫くすると、BTモジュール上の、LEDが点滅から点灯になる。
        これで接続完了

       c. [設定]- シリアル・ポートにて、転送速度:「115200]に設定
       d.  [設定]- 端末にて、ローカルエコーにチェックマークを入れ、改行コード・受信側:[CR+LF]に設定

     I 以下に、トングルを使った、BT_PIOボードのチェック模様を示した。


■ 2015.7.17
  ・タブレットと、I/Oボードを、タブレット側のターミナル・ソフトで接続出来るか確認
    @ ボード上の、BTモジュール初期設定までの手順は、昨日の手順と同じ。
    A タブレットで、I/Oボードの、BTモジュールとペアリング
      a. [設定]- [Bluetooth]- [デバイスの検索]の順にタップ
      b. 使用可能なデバイス [BT_PIO]をタップ

      c. PINコード、[1234]を入力

      d. 暫くすると、[ペアリングされたデバイス]に、BT_PIOが表示される。

    B タブレット用通信ソフトで、コマンド入力
      a. 予め、タブレットにインストールしておいた、フリーのターミナル・ソフト
        「S2 Terminal for Bluetooth Free」を起動する。 
      b. [接続]をタップ

      c. [接続先を選択]ウインドウで、[BT_PIO]を、タップ
       接続を開始する。

      d. 暫くすると、画面の下の方に、一瞬、「BT_IOと接続しました」と表示され、通信アプリ
       画面上の、アプリアイコンの横に、「接続:BT_PIO]と表示される。
       この時、ボードの、BTモジュール上のLEDが、連続点灯になるい。

      e. [AutoLFボタン]をタップし、次の写真の通り設定する。

      f. 以下にチェックしている様子を示した。

  ・作成したアプリにでチェック
    @ 
ボード上の、BTモジュール初期設定までの手順は、前と同じ。
    A 「BT 汎用IOボード」アイコンをタップし、アプリを起動
    B [接続]ボタンをタップ
       これで周囲にあるペアリング済の、Bluetooh端末のリストが表示されるので、[BT_PIO]
       選択して接続。
       正常に「接続完了」となると、自動的に「送受信処理中」となって現在状態と、
       計測値が一定間隔で表示される。
    C この後の具体的なチェックの模様は、本ページトップにアップしましたので、それを参照して
       ください。


<最終回路図>
 ・こちらから、どうぞ→ 「PIC16F1_BTモジュール実験」


← 実験テーマ1に戻る   TOP PAGEに戻る   実験テーマ68へ →