ラズパイをするはずが、なぜかPICに舞い戻った。
高機能プランターを作りたい言った友人が、なかなかセンサ類を買おうとしないので、別の検討を考えることしました。
ラズパイで何かを監視するにも、今回屋外に置くことを考えているので、ソーラーパネルなどで電気供給する必要があります。
ソーラーパネルは、スマホ用のバッテリー一体型の製品なら安価だし、コンパクトだし、5Vだし、スマホが廃れるまで何かしらの製品が存在し続けるはずだしで、申し分ない。
ただ、電気不足で一度落ちると起動しなくなってしまったら困ります。容量を使い切って落ちてしまった後は、一定の電気が貯まったら再起動する対策が必要。そもそも1日数回データ取得するだけなら、その時だけ起動すればそうそう枯渇しないから、起動中に落ちて動かなくなるなんてトラブルも少ないはず。つまりは、5Vで動作する電源タイマーがあれば良いってことです。
そこで、既製品を探すと、下のような良いものがでてきました。
USB24hタイマースイッチ
https://www.thanko.jp/shopdetail/000000002943/
が、offした後にonとかっていうルーティンが出来そうにないのと、似たような製品があまりなくて無くなる可能性があるので、作ってみることを考えました。消費電力が少なくて安価となればPICです。任意なルーティンを設定できたり、自動で時刻調整したりするのは難しそうだから、とりあえず書き込んだプログラム通りの間隔(例えば1hオンで5hオフを繰り返すルーティン)でリレーを操作するデバイスを目標にします。
この手の挑戦は、何年かに一回は思い立ち、結局完成することがないまま、パーツだけが増える結果となってい ます。
自分のブログを調べてみると、PICライターを買ったのは2012/5(7年前)。さあ、今回はどうか。
まずは、登竜門、LEDをピカピカさせるところから。
(なんで色んなパーツがあるのにそこからなんだ・・・)
PICは12F683が手元あったので、手初めに使いますが、アホな事にフラットパッケージタイプなるプリント基板に取り付けるような小型のものをかってしまい、使わないのも勿体無いので、足をつけてます。ダサい。
やりたいことと似たことをやっているページを色々眺めてみて、同じシリーズでちょっとだけ安いPIC12F629を使おうかなっと思いました。一定時間一時停止して、出力ピンから出力するだけなので、使い方はほとんど変わらないはず。多分。
PICを使った30分、60分オフタイマーの製作
https://as76.net/emv/off_timer.php
インターバル・タイマ(間欠タイマ)
http://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/it/index.html
AC100Vオフタイマー
http://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/ot/index.html
キッチンタイマでAC100V機器をON/OFFする
http://electroprojsk.fan.coocan.jp/eproj28.htm
8ピンPIC比較
http://chitose6thplant.web.fc2.com/pic12f/pic_comp629.htm
さて、まずは昔購入済みのライターPICKit2で書き込むところから。まず書き込み用の配線を組みます。書き込み用の配線はPICによってピン配列が変わるらしいので、ブレッドボードで組めばよいのですが、家に作業スペースは無く、一々夜な夜な収納棚から出し入れするほかない状況につき、ユニバーサル基板で作ることにしました。
PICkit 2用ソケット アダプタ
http://www.picfun.com/PICkit2/PICkit02.html
これによると8/14/20ピンシリーズは同ピン配列らしく、おそらく僕はこのシリーズしか手を出さないので、8ピンソケット一つ組めば事足りるとみた。
こちらのサイトを参考に配線を考えてみました。
PICkit 2の使用方法
http://www.ne.jp/asahi/air/variable/picmel/integration/write/pickit2/index.html
欲張って、同じ基板で実行テストもやりたいと思って考えた見た結果、こうなりました。
もしも他のシリーズのPICも使いたくなった時に備えて、右側のスペースを空けておきました(過去の経験上、絶対に役に立たないけど)。
上の考えのもと、結果はこうなりましたorz
PICkit2の使い方はこちらを参考にしました。
PICkit2 Programmerの使い方
http://www.picfun.com/PICkit2/PICkitframe.html
最初、PICを認識せず、何でかなーっと思って、ためしにソケットを逆にはめたら認識しました。当時の僕は、ピン方向を逆に足を取り付けてしまったようです。バカが!
PICkit2のソフトウェアは、PIC用にコンパイルされたHEXファイルを指定して書き込みます。HEXファイルを作らねば。
プログラム開発環境(IDE)として、PCにはmikroBASIC PRO for PIC と言うソフトが入っていました。7年前の僕はC言語を嫌い、Basicでやることを考えたと言うことか。
過去の決定に基づき、mikroBASICでやろうかなっと思ったのですが、上述のサンプルがC言語が多いので、C言語にすることにしました。ただ7年前の記憶は定かじゃありませんが「最もベーシックなIDE、MPLAB X IDEでやらなかったのは挫折があったはず。まったく成長していない僕がきっと同じ挫折をするに違いない」と予想し、mikroC PRO for PIC を使うことにしました。
(Please make “mikroPython PRO for PIC”!!)
mikroCは有償($250)ですが、2MBまでのファイル(ソースではなく出力が)はアクティベートしなくても使えるので十分と考えました。
ソフトの使い方はこちらを参考にしました。
mikroC PRO for PIC の使用法(入門編)
で、コンパイルのところで躓きました。
Undeclared identifier ‘TRISA’ in expression
というエラーが出ました。
それもそのはず、上記マニュアルではPIC16F84Aなの対し、僕は自分が持ってるPIC(PIC12F683)にしていました。
ここからサンプルコードを拝借したらコンパイルできました。
https://www.edaboard.com/showthread.php?271281-PIC12f683-C-code-programming
HEXファイルができてる!
PICkit2で書き込みしてみます。→成功ってでた!
さて、手持ちの12F683にネット上のソースを書き込むところまでは出来た。
次は、ターゲットの12F629に自作のプログラムを書き込んでみます。
つづく