この入門シリーズの最後として、いろいろな実装にチャレンジしていただこうと思います。すべてできなくてもまったく気にする必要はありません。自分で考えていろいろと工夫することが大切です! できればたくさん失敗したほうがいいです!
本シリーズ記事の内容を改訂して、基礎編、応用編、実践編として以下のリンクに公開しています。以下のシリーズはさらにいろいろなPICマイコンの機能をご紹介しています!
PICマイコン電子工作入門 〜基礎編〜
PICマイコン電子工作入門 〜応用編〜
PICマイコン電子工作入門 〜実践編〜
チャレンジ課題
チャレンジ課題として、今までの知識だけでできるものから、新しい知識が必要なチャレンジをいくつか作ってこの入門シリーズの最終回にしようと思います。
今までの知識で実現できるチャレンジ
[残り時間が一定時間以内になったら発光ダイオードの点滅パターンを変える]
例えば5分タイマーにした場合、残り1分とか30秒になったら一度ちょっとだけブザーを鳴らして、発光ダイオードの点滅パターンを変えてみて下さい。この場合は特に部品の追加などは必要なく、プログラムの変更だけでなんとかなりそうですよね。
[発光ダイオードを2つにして、交互に点滅させてみる]
発光ダイオードが余分にあったらもうひとつ発光ダイオードをどこかにピンに接続してすでにある発光ダイオードと交互に点滅させてみてください。以下、注意するポイントです。
- 発光ダイオードは抵抗を必ず接続する
- ピンのデジタル/アナログ設定、入出力設定に注意する
[1分と3分など2種類の時間を選べるようにしてみる]
入門で作成したタイマー回路はひとつの時間しか設定できませんでした。これではちょっと不便ですので、もうひとつスイッチをつけて、1分と3分などというように2種類の時間が選べるようにしてみてください。以下、注意するポイントです。
- スイッチは必ずプルアップ抵抗かプルダウン抵抗を接続する
- ピンのデジタル/アナログ設定、入出力設定に注意する
- プログラムでは、タイマースタートボタンを検知したあと、もうひとつのスイッチ状態を確認して、2種類の時間のうち状態に応じてどちらか選択するようにする
[時間設定できるようにする]
2種類の時間を選択できるのもいいですが、時間を設定できた方がもっといいですよね。入門で作成した回路はひとつタクトスイッチが付いていますので、もうひとつタクトスイッチをつけて、時間設定ができるようにすると便利だと思います。具体的には、時間設定用のタクトスイッチを押すごとに1分ずつ時間を増やす、という感じです。
ただ、設定した時間がわかりませんので、時間設定用のスイッチを押す度に、何分間に設定されているかを示すために、例えば1回目のスイッチを押したときは発光ダイオードをピカッっと1回光らせて、2回目(2分)のスイッチを押したときは発光ダイオードをピカピカッっと2回光らせるのもよいかもしれません。また他の方法もあるかもしれません。
この場合、タイマースタートのタクトスイッチが押されるまで、時間設定用のタクトスイッチが何回押されたかをカウントする必要があります。このカウントするためにはwhileループで確認することになりそうですが、この場合、前回説明したスイッチのチャタリング対策が必要になります。
[人の動きを検知してブザーを鳴らす]
これはちょっと高い部品を購入する必要がありますが、結構面白い回路ができると思います。最近はセンサーも使いやすくユニットにして売られています。例えば以下のように
というものがあります。
最近のオフィスの給湯室やトイレなど、人が来たときに自動的に電気をつけて、人がいないときは電気を消す、という仕組みになっているところがありますよね。これは人感センサーを使って、人の動きを検知しています。上のセンサーは800円、とかなり高いですが、これだけで簡単に人を検知することができます。
このセンサーは3つのピンが出ていて、2つは電源、残りの1つは、人の動きを感知したら5V(=電源電圧)、動きがないときは0Vとなります。この信号のピンをPICマイコンの入力ピンに接続すれば、1から0で人の動きをとらえることができます。
これを使って防犯ブザーが簡単に作れそうですよね。例えばGP4ピンのスイッチの代わりに、このセンサーを接続して、GP4が1のときにブザーを鳴らす、などです。ただし、スイッチを入れてからすぐにこのセンサーが働いてしまったら自分が部屋からでるまでブザーが鳴ってうるさいので、スイッチを入れてから3分間は何もしない、3分たったらセンサー検知を始める、などの工夫が必要そうです。
また自分が部屋に入ったときなどはブザーが鳴ってしまいますので、解除方法も何か考えた方がよいですね。
新しい知識が必要なチャレンジ
この入門では説明しませんでしたが、PIC12F683はピン数は少ないものの、いろいろな機能が入っています。今まで説明したほかに、例えば、「PWM」や「A/Dコンバータ」が内蔵されています。これらの説明はしませんが、これらの機能を使ったチャレンジをしてみてはいかがでしょうか。これら2つの機能についてはいずれこのブログで説明しようと思います。そのときはPIC12F683を使いたいと思います。
[発光ダイオードの明るさを調整する]
PWMという機能を使うと発光ダイオードの明るさを調整することができます。なお、PWMの機能を使わなくてもプログラムで明るさ調整することはできますが、PWMはプログラムを組むよりは簡単に明るさ調整できます。
[フルカラー発光ダイオードを制御する]
フルカラー発光ダイオード、というものがあります。
これは、ひとつの発光ダイオード部品の中に、赤、青、緑の3種類の発光ダイオード素子が組み込まれています。これらは光の三原色ですので、それぞれの明るさを調整することにより、いろいろな色で発光させることができます。これを行うには、PWMを使って、それぞれの色の成分の明るさを調整します。うまく発光パターンを作れば、自転車や自動車のアクセサリなどつくれそうですよね。
[簡易温度計をつくる]
最近は精度の高い温度センサーが売られています。
これは、2つのピンに電源を接続すると、温度に応じた電圧が残りのピンに出力されます。この出力ピンをPICマイコンのアナログ入力ピンに接続して、PICマイコンで電圧を読み取ることにより、電圧から温度を求めることができます。
例えばPICマイコンに赤、黄、青などの発光ダイオードを接続して、温度に応じていずれかの発光ダイオードを光らせれば簡易温度計、あるいは熱中症アラームなどが作れそうですよね。(熱中症は湿度も関係あるようですので正確ではありませんが…)
また、液晶表示装置を接続すれば、デジタル温度計も作ることができます。ただし、液晶表示装置には別のI2Cという信号を供給する必要がありますのでちょっと難易度が高くなります。
[天気予報装置をつくる]
これはかなり難易度が高いですが、大気圧センサを使って天気予報装置を作ってみると面白いと思います。大気圧センサは
このようなもので、I2Cという通信信号で気圧データが数値で出力されるモジュールです。
大気圧の変化に応じてその地点の8〜10時間後の天気がある程度予測できると言われています。具体的には気圧が上昇しているときは晴れ、下降しているときは雨、などです。実際に電子装置ではあまりせんが、
というものが売られています。これは気圧の変化傾向を見て天気を予想する、というものです。このようにPICマイコンで一定時間毎に大気圧を読み取り、その変化をみて、発光ダイオードなどで天気予報する、というのも結構おもしろいと思います。またプログラムは書き換えることができますので、実際にデータを取り、天気を記録すると、より精度の高い天気予報装置ができるかもしれません。
以上がチャレンジですが、このチャレンジ課題にとらわれず、自分でいろいろと考えていろいろなものを作ってみて下さい。何気なく普段不便だな、と思っていたら他の人も不便に感じているはず。その不便を解消するものを作ったら是非みんなと共有してみると面白いと思いますよ。
いろいろと挑戦してみよう!
上達のコツは実際に手を動かして、いろいろ試してたくさん失敗することです。
今までの自分の経験からすると、すんなり動いたときより、動かなかったときの方がいろいろと勉強になります。動かないときはいろいろと調べますし、その過程で自分の知識が整理されたり、新しい知識が身についたり、ということが多いように思います。
また開発を進めていく上でわからないこともたくさん出てきます。そのときは、すぐにネット検索に頼るのではなく、まずは資料や書籍をよく読むことをお勧めします。例えばPICマイコンであれば製造元のMicrochip社から発行されているドキュメントをよく読んでみる、という感じです。ネットで検索するとすぐに答えが見つかるケースが多いですが、どうしてもピンポイントの答えになってしまい、周辺知識や体系的な理解から遠ざかってしまうように感じます。
ドキュメントを読むのは最初は時間がかかります。ネットでピンポイントの答えを探した方が楽です。でも何度も根気強く読んでいると、ドキュメントを早く読めるようになりますし、体系的な知識がつくと思います。PICマイコンは、それぞれのマイコンに対してデータシートというマイコンの仕様が書かれたドキュメントがリリースされています。多いものでは500ページ近くありますが、どのデータシートも構成は同じです。ひとつ読めるようになれば、新しいマイコンがリリースされてもかなり早く読めるようになると思います。
また、今回はPICマイコンに限定して説明しましたが、PIC12F683がマスターできれば、他の種類のマイコンも習得時間はかなり早くなるはずです。PICマイコンをある程度習得したら、是非AVR、PSoCなど他のマイコンにもチャレンジしてみてください。そうすると、PICマイコンの良いところ、悪いところも見えてきて、自分が作りたい装置にあったマイコンを選択できるようになってきますよ。
作業に効率を求めるのはいいと思いますが、習得に効率を求めすぎるのはよくないと思っています。一見遠回りかもしれませんが、習得という作業に関しては、時間をかければそれだけのことはあると思っています。
更新履歴
日付 | 内容 |
---|---|
2015.9.22 | 新規投稿 |
2018.12.3 | 新シリーズ記事紹介追加 |
2020.1.19 | リンク切れ修正 |
2020.4.23 | リンク切れ修正 |