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