« 鎌倉の桜の開花2011年3月19日現在、源氏池周辺はまだ | トップページ | 本日のお昼ご飯の写真 チーズのせ餅、鶏肉の醤油焼きなど »

2011年3月21日 (月)

秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの製作 /プログラムを書き換え1文字表示が出来た

 秋葉原の秋月電子で、PICマイコン、PIC16F886を使用した赤外線リモコン学習キット(通販コードK-04174)
が売られている。このキットの製作を行った。このキットには、LCD(液晶)が付属していない(通販コードP-00040
)ので、同時購入した。学習を考える人には同時購入をお勧めしたい(両方で3000円以下)。

【1.このキットの機能と目的】
① 登録済みのリモコンコード
 テレビ用で、東芝、日立、シャープ、パナソニックのみ。
 リモコンのコードは、同じメーカでも新しいモデルと古いモデルでは違うので、使えない場合もある。
② 学習リモコン機能
 4つのコードのみ記録、送信可能。
③ リモコンコードの表示

 このキットは、上記の通り、単純にリモコンの代替に使う人には薦められないし、学習リモコンにしても僅か4つで少ないし、リモコンコードなんて表示して何になるの?と疑問を持つ人には意味がない。
 従って、初期登録のプログラムを書き換える気の無い人には向かないキットである。
 一部の個人のHPで、使えないキットと評価しているが、名称は学習キットだ。PICのプログラムを書き換えてお勉強してナンボのキットである。

【2.どのレベルの人が対象のキットか】
 念の為、私は、PIC入門者である。
 最初は、写真左の新居浜高専PICマイコンキットで、PICを学んだ(言語はアセンブラ)。
110321_7

 次のステップへ進むものが欲しいと感じていた。ブレッドボード上で、適当な部品を付け替えあれこれ弄るのも手だが、液晶の制御(キットは4bit制御)、リモコンの制御も学習できると思いこのキットを選んだ。
 但し、PICは16F84Aから886へ変わる。1種のPICを利用して発展させるか?別のPICで発展させるか?この点は個人の判断だろう。私は後者を得たんだ。
 複数のPICをある程度会得出来た方が発展性が高いと考えたからだ。更に、このキットは始めからライターのPICKIT3の直結が出来るメリットがある。PICKIT3が使えれば、ICの抜き差しによる手間がないし、足が折れるなどのトラブルもない。

 ハードの次は、付属のサンプルプログラムのソースについてコメントしたい。
 入門者でも分かり易いか?と言うと、拡張子cとh双方で9ファイル、ハードディスク上で70KBはある。かなりの量だ。ソースリスト上にはコメントもしっかり入っているが、C言語の初心者には難しいと思う。入門レベルは必要だろう。
 さて、PIC上で動作するC言語の経験がない、あるいはHI-TECH Cの初心者にはどうか?ソースをビルドできない可能性があると思う。

 まぁ、何を行うにしてもそれなりにハードルはある。

【3.キットの製作】
 特に難しいところはない。
 また、特別な道具も必要としない。電子工作用の半田ごて、ニッパくらいがあれば十分。
110226

110226_2

110226_3

110226_4

110226_5

110226_6

【4.動作実験】
 手持ちのリモコンから、電源のON/OFFの信号を送信してみる。
① リモコンに登録されていない場合
 Unknowの表示。
110321_8

② パナソニックの場合
 KADENKYOと40040100BCBDのリモコンコードを表示。
 16進数で6byte。Ox40、Ox04、Ox01、Ox00、OxBC、OxBDである。
 メーカのコード+機器の制御コードに分かれている。上の例では機器の制御コードは、BCDC。
110321_9

③ 東芝DVDレコーダ
 NECとA23D48B7を表示。
 赤外線リモコンは、家電協のフォーマットとNECのフォーマットがある。東芝はNECのフォーマットを使用していることが分かる。こちらは16進数で4byteである。
 テレビのコードしか登録されていない秋月リモコンなのに何故?の疑問が出る。これは、東芝のDVDレコーダの電源ON/OFFは、東芝のテレビと同じだからである。東芝のテレビがないので確認は出来ないが、秋月リモコンの説明書のリモコンコード一覧表に同じ赤外線コードが記されているので間違えはないだろう。
110321_10

 秋月リモコンからの送信も試したが動作はした。
 故に、一応は、キットを正しく製作できたとする。

 
【5.プログラムの書き換え】
 プログラムの書き換えをPICKIT3で試みる。
 最初からハードルの高いことはせず、取り合えずはLEDの発光とLCDに1文字表示。

① 4LEDの外2つを発光させる。
  TRISC= 0x81として、PORTC=0x24を送る。
 Photo

② 4LEDの中2つを発光させる。
 TRISC= 0x81として、PORTC=0x18を送る。
Photo_2

③ LCDにJengaのJを表示させる。
 4Aを上位4bit、下位4bitに分けて、PICのRCの2~5からLCDへ送る。
 J

④ LCDにKを表示させる。
 4Bを上位4bit、下位4bitに分けて送る。
Photo_3

 何とか制御が出来た。
 それにしても液晶は、LEDのような単純ON、OFF制御ではなく、初期化に8段階くらい、バスが1/2で済む4bit制御だと上位下位に分けてデータを送るとか少々面倒。慣れれば何でも無いのかも知れないが。

【6.今後の課題】
 1文字表示は、何とか出来た。次のステップとしては、複数の文字を表示したい。その為には、文字送りの関数を作る必要があるが、1文字を表示させることに比べればハードルは低いと思う。
 もう1点は、1つのCファイルで液晶制御を行っている。使いやすい関数が出来たらヘッダーファイル化したいところだ。
 赤外線の入力、出力は何時になることやら。

【7.参考】
 学習するに当たり、思い切って完全オリジナルでプログラムを製作した方が、秋月リモコン付属のソースをベースに書き換えて学習するよりスムーズかも知れない。私は、このオリジナル作成手法で学習を進めている。
 理由は、上記の通り、ソースはボリュームがあり、全体を解析するにはかなりの労力が必要だからである。

 そこで、液晶制御については、ネットや書籍を参考にすることになるが、その注意点としては、それらと秋月リモコンではデータバスのピン配置が違う場合がある。当然、そのままでは動かない。

 多くは、データバスがシフトしているだけなので(右か左に寄せている)、ビットシフト処理が必要である。参考例が7~4のバスを利用している場合、秋月リモコンでは>>で右に2ビットシフトが必要である。
 例えば、Jのキャラクタコードを送る場合、液晶へ4Aを送るが、
 unsigned char okuri=2;
として、
 PORTC=((0x4A)>>okuri);
とすれば、秋月リモコンのPICのデータバスRC2~5から、液晶に対して上位4ビットを送ることが出来る。

 書籍に関しては、私のブログ書籍紹介、中尾真治著「キホンからはじめるPICマイコン」(オーム社)と青木直史著「ブレッドボードではじめるマイコンプログラミング」(技術評論社)/フリーのHI-TECH CとmikroCを使った本にまとめた。
 

追記 2011年3月26日
 その後の進展は、
 秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの製作 /プログラムを書き換え文字列 Hello Jengaを表示できた
に記載。

|

« 鎌倉の桜の開花2011年3月19日現在、源氏池周辺はまだ | トップページ | 本日のお昼ご飯の写真 チーズのせ餅、鶏肉の醤油焼きなど »

デジモノ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの製作 /プログラムを書き換え1文字表示が出来た:

« 鎌倉の桜の開花2011年3月19日現在、源氏池周辺はまだ | トップページ | 本日のお昼ご飯の写真 チーズのせ餅、鶏肉の醤油焼きなど »