● 実験テーマ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へ →
.