PICの組み込み [メカトロメイト製作記]
今回はPICマイコンの組み込みです。
取り付けたLEDを制御して、まばたきや表情の変化を付けてみたいと思います。
通常はまばたきをしていて、二つのスイッチの状態によって、ニコニコとネムネムへ切り替わる様にしてみます。
まばたきはランダムなタイミングにしたいし、動作の切り替えも必要になりますので、ここはPICマイコンを使います。
PICマイコンとは、自分でプログラムを組んで組み込む事ができるマイコンです。
パソコンとPICライターという機器をUSBで繋ぎ、C言語を使ってパソコンでプログラムを作り、PICへと書き込みます。
PICはパソコンとは切り離され、プログラム通りにLEDを制御したり、スイッチの状態で変化させたりします。
一般的な電子回路を組むより、遥かに少ないパーツで簡単に複雑な動作をさせる事ができます。
ただ、ちょっと専門的な知識が必要になるので、誰でも簡単に使いこなすワケには行かないところが難点ですね^^
今回は、内蔵できるスペースが小さいので、PICの中でも更に特殊なパッケージ品を使いました。
PIC12F675 SOP というもので、1円玉の上にチョコンと乗ってしまう様な、5mm角程度の超小型のマイコンです。
小さくても中身は通常パッケージの12F675と同じで、6個のLEDやスイッチを接続出来ます。
メイトの回路図です。
1番ピンと8番ピンは、電源の5Vとマイナスです。
LEDは、5,6,7番ピンへ保護抵抗を介して接続されていて、直列で2個ずつ配置されています。
スイッチは、4.7kΩの抵抗でプルアップされた3,4番ピンに繋がっていて、いつもは5Vですが、スイッチがONになるとマイナスと繋がり、各ピンが0Vになります。
複雑な動作をさせるのに、たったこれだけのパーツで済んでしまうので、スペースの少ないメイトにはありがたいです。
動作はC言語でプログラムします。
普段なかなかプログラムを解説する機会がありませんので、簡単ですがソースも公開して解説してみますね。
// で始まる行はコメントで、行内に何を書いても無視されます。
//CONFIG ~ void main(void){ までの数行で、PICのモード設定や、必要なライブラリを読み込みます。
この後の数行で、PICのピンの設定をしています。
// 変数のセット ~ プログラムの本体になります。
目を開いている間隔である、1~5秒のランダムな間隔をセットします。
※
もし、4番ピン(GP3)が0(マイナス)だったら、ニッコリの点灯にします。
もし、3番ピン(GP4)が0(マイナス)だったら、ネムネムの点灯にします。
どちらもマイナスになっていないなら(スイッチがオフ)、目を開いた状態の点灯にします。
ランダムな間隔の間、そのまま待機して、目を閉じた状態の点灯にします。
300ms(ミリセカンド)目を閉じた状態のまま待ちます。
次の目を開いている間隔をセットして、※に戻ります。
無限ループとなっていて、電源が切られるまでずーっと繰り返し続けます。
こんな数行のプログラムで、複雑な動作が可能になるのですから、PICが使えると本当に便利ですね^^
PICマイコンについては、いづれ徹底的に解説したいと思っています(予定)
マイコンに取り付けられるパーツは取り付けてしまいます。
パーツにプルアップ抵抗や配線など、取り付けられるパーツは全て取り付けてしまいます。
抵抗は、省スペースのためにチップ抵抗を使いました。
パーツをハンダ付けしてしまうと、もうプログラムの変更は出来なくなりますので、タイミングなどはじっくりと試行錯誤しておきます。
メイトに取り付けた様子です。
メイトの後頭部に取り付け、目のLEDの配線も済ませてから、再度ブラックで遮光を完璧にしています。
動作を確認したら、マイコンや配線をエポキシ接着剤でコーティングする感じで固定してしまいます。
このサイズのPICマイコンだから収まりましたが、通常のパッケージでは無理だったでしょうね^^
実際の動作の様子を、動画にしてみました。
ちょっと画質は悪いのですが、このブログは今時5MBまでしか動画をアップできないポンコツなので、ご容赦下さい。
それでも、動作の様子はお伝え出来ると思います。
次回は、塗装とスイッチの工作の様子をご紹介します。
取り付けたLEDを制御して、まばたきや表情の変化を付けてみたいと思います。
通常はまばたきをしていて、二つのスイッチの状態によって、ニコニコとネムネムへ切り替わる様にしてみます。
まばたきはランダムなタイミングにしたいし、動作の切り替えも必要になりますので、ここはPICマイコンを使います。
PICマイコンとは、自分でプログラムを組んで組み込む事ができるマイコンです。
パソコンとPICライターという機器をUSBで繋ぎ、C言語を使ってパソコンでプログラムを作り、PICへと書き込みます。
PICはパソコンとは切り離され、プログラム通りにLEDを制御したり、スイッチの状態で変化させたりします。
一般的な電子回路を組むより、遥かに少ないパーツで簡単に複雑な動作をさせる事ができます。
ただ、ちょっと専門的な知識が必要になるので、誰でも簡単に使いこなすワケには行かないところが難点ですね^^
今回は、内蔵できるスペースが小さいので、PICの中でも更に特殊なパッケージ品を使いました。
PIC12F675 SOP というもので、1円玉の上にチョコンと乗ってしまう様な、5mm角程度の超小型のマイコンです。
小さくても中身は通常パッケージの12F675と同じで、6個のLEDやスイッチを接続出来ます。
メイトの回路図です。
1番ピンと8番ピンは、電源の5Vとマイナスです。
LEDは、5,6,7番ピンへ保護抵抗を介して接続されていて、直列で2個ずつ配置されています。
スイッチは、4.7kΩの抵抗でプルアップされた3,4番ピンに繋がっていて、いつもは5Vですが、スイッチがONになるとマイナスと繋がり、各ピンが0Vになります。
複雑な動作をさせるのに、たったこれだけのパーツで済んでしまうので、スペースの少ないメイトにはありがたいです。
動作はC言語でプログラムします。
普段なかなかプログラムを解説する機会がありませんので、簡単ですがソースも公開して解説してみますね。
// で始まる行はコメントで、行内に何を書いても無視されます。
//CONFIG ~ void main(void){ までの数行で、PICのモード設定や、必要なライブラリを読み込みます。
この後の数行で、PICのピンの設定をしています。
// 変数のセット ~ プログラムの本体になります。
目を開いている間隔である、1~5秒のランダムな間隔をセットします。
※
もし、4番ピン(GP3)が0(マイナス)だったら、ニッコリの点灯にします。
もし、3番ピン(GP4)が0(マイナス)だったら、ネムネムの点灯にします。
どちらもマイナスになっていないなら(スイッチがオフ)、目を開いた状態の点灯にします。
ランダムな間隔の間、そのまま待機して、目を閉じた状態の点灯にします。
300ms(ミリセカンド)目を閉じた状態のまま待ちます。
次の目を開いている間隔をセットして、※に戻ります。
無限ループとなっていて、電源が切られるまでずーっと繰り返し続けます。
こんな数行のプログラムで、複雑な動作が可能になるのですから、PICが使えると本当に便利ですね^^
PICマイコンについては、いづれ徹底的に解説したいと思っています(予定)
マイコンに取り付けられるパーツは取り付けてしまいます。
パーツにプルアップ抵抗や配線など、取り付けられるパーツは全て取り付けてしまいます。
抵抗は、省スペースのためにチップ抵抗を使いました。
パーツをハンダ付けしてしまうと、もうプログラムの変更は出来なくなりますので、タイミングなどはじっくりと試行錯誤しておきます。
メイトに取り付けた様子です。
メイトの後頭部に取り付け、目のLEDの配線も済ませてから、再度ブラックで遮光を完璧にしています。
動作を確認したら、マイコンや配線をエポキシ接着剤でコーティングする感じで固定してしまいます。
このサイズのPICマイコンだから収まりましたが、通常のパッケージでは無理だったでしょうね^^
実際の動作の様子を、動画にしてみました。
ダウンロードは🎥こちら
ちょっと画質は悪いのですが、このブログは今時5MBまでしか動画をアップできないポンコツなので、ご容赦下さい。
それでも、動作の様子はお伝え出来ると思います。
次回は、塗装とスイッチの工作の様子をご紹介します。
2018-08-29 18:42
コメント(4)
製作お疲れ様です^^;
ソースの公開はありがたいですね〜なるほどー参考にさせていただきます。ドロオフで拝見するのを楽しみにしております。
by toshi (2018-08-29 19:36)
今回はプログラムも公開!
チャレンジしてみたい人には
とても分かりやすい解説です
by フジワラセブン (2018-08-30 14:21)
toshi さんこんにちは
ソースを公開したのは初めてです^^
プログラマの人が出てしまうので、すごく恥ずかしいのです
ちょっとかじった事がる方なら、すぐに理解できる簡単なものですが、参考になって頂ければ嬉しいです^^
by どろぼうひげ (2018-08-30 17:10)
フジワラセブン さん、こんにちは
簡単な解説ですみません。
PICの使い方については、いづれじっくりとご紹介したいと思っています。
みんなが簡単に活用できる様になる事が理想です^^
by どろぼうひげ (2018-08-30 17:13)