今回はArduinoを触ったことがない、もしくは少し触ってみたという人向けの解説です。Arduinoとはマイコンが乗ったボードです。言葉にすると単純ですが、初心者からすると「何ができるの?」「どう使えばいいの?」という疑問は必ずあると思います。
そこで今回は、難しい話抜きで何となくどんなことができるかイメージをつけてもらうために実例を出しながらご紹介していきます。
この記事を読めば、「それだったらこんなことしてみたい!」「これをやるにはどうしたらいいんだろう??」と次につながるイメージが付くはずです。
ぜひ最後まで読んでイメージを頭に焼き付けてくださいね。
Arduinoでできることがイメージできるようになる
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
Arduinoの機能を3つに分けてイメージしてみる
そもそもですが、Arduinoで何ができるか?と考えると、長年Arduinoを触ってきた経験から、3つの機能で分類できると思っています。その3つの機能というのがこちらです。
それぞれについて実例も交えながら解説していきます。
電圧をコントロールして出力する(Output)
まずはOutputです。Arduinoから出力する機能のことを指しています。何を出力するか?それは電圧と電流です。もう少し具体的に説明すると、Arduinoでコントロールしているのは電圧です。
中学校の理科の内容で、電圧・抵抗・電流の関係は習いましたよね?V=RIです。[V:電圧,R:抵抗値,I:電流値]この中の電圧Vに関してはArduinoは固定されていて、直流5Vしか出せません※一部例外はあるものの、ほとんどの場合直流5Vなので今回は5Vとして説明をします。
電圧はご説明の通り、Arduinoのハード的な制限があるため、Arduinoに外部から抵抗器を取り付けることで、自然にArduinoから出力する電流値も決まります。
例えば、Arduinoに1kΩの抵抗器をつけた場合、V=RIの関係式から、5[V]=1000[Ω]xI[A]となり、Iを計算すると、5/1000=0.005[A]つまり5mAの電流が流れるとわかります。
ここまでの内容が、Arduinoの電圧・電流のお話でしたが、この電圧をかける制御ピンを任意のタイミングでON /OFFする機能がOutputの機能です。※任意というのはArduinoに書き込むプログラムの内容に沿ってという意味です。
実例として最もわかりやすいのが、LEDを点滅させるいわゆる【Lチカ】です。Lチカは、Arduinoから電圧・電流をLEDに出力することでLEDが光ります。LEDと繋がっているArduinoの制御ピンをON/OFFすることでLEDを点滅させています。
この制御をしているため、出力(Output)の機能。というわけです。
他にも、液晶ディスプレイに文字を表示させる方法もあります。
外部からの電圧を取得する(Input)
次にInputです。Arduinoへ入力する機能のことを指します。何を入力するか?これもOutput同様、電圧です。さきほどご説明したOutputに対して逆方向の電圧ということになります。
実例としては、可変抵抗やセンサー類、それから人間がタイミングをArduinoに教えるためのスイッチがこれに当たります。
何か取得したい電圧があって、それをArduino側で取得することで数値化をして、その数値を使って他のものに使うというのが一般的です。また、人間がスイッチを押すのも、電圧がHIGHまたはLOWに切り替わるのをArduinoで監視するのと同じことですから、スイッチの場合も電圧を取得していると言えます。
具体例としてスイッチを使った内容を以前解説しています。スイッチが押された時だけArduinoで決まった処理をさせる。というイメージです。つまり、スイッチのHIGHまたはLOWの状態をArduinoで読み込んで、処理の分岐のトリガーにしています。
ほかにも、センサー類を使った方法はこんなものがあります。こちらは温度・湿度を1つのモジュールで測定できるセンサーを使っています。電子工作ではよく登場するDHT-11というものです。
外部との通信をする(Communication)
最後に、Communicationです。通信と言われてなんだか難しそう…と思いましたか?実はそんなに難しくないので安心してください。
いままで紹介したOutputとInputはArduinoから出てくるか、Arduinoへ入れるのかの違いですから、言い換えると一方通行のやり取りだったわけです。
この通信というのは、双方向でやり取りをする機能のことを指します。具体的には、シリアル通信が代表的です。
このシリアル通信を使うことで、例えば、Arduinoへコマンドを入力すると、決まったデータを返してくれる。という使い方ができます。具体例としては、今の温度は何度ですか?とArduinoにコマンドを送ると、Arduinoにつながった温度計の値を返してくれる。そんな使い方です。
この使い方の真価が発揮されるのが、PCとつなぎっぱなしにして、Arduinoをパソコンのモジュールとして使用する場面です。
例えば、デスクトップアプリケーションを開発して、そのアプリケーションの中で液晶ディスプレイに文字を表示させたいとします。
その場合は、デスクトップアプリケーションから、Arduinoへこんな文字を表示してほしい。と通信するわけです。そうすると、Arduinoが文字を表示してくれます。
イメージがついたところで応用編
3つの機能についてイメージがついたところで、応用編です。上から順に処理する場合、3つの機能のどれを使ったら実現できそうかイメージしてみてください。
それぞれどの機能を使っているかイメージできましたか?
温度・湿度計を測定するのはInput、LEDを点灯させるのはOutput、外部のPCから温度取得コマンドを送って通信するのはCommunicationですね。それぞれの機能を組み合わせることで少し複雑なことができますね。
この例では、Input、Output、Comunicationがそれぞれ1つずつですが、実際にはInputを複数個にすることも可能ですし、Output無しなんてことも可能です。
いずれにしても組み合わせ次第でなんでもできそうだと思いませんか???
今回のまとめ
今回はArduinoの基本機能として3つを紹介しました。どうしてもマイコンボード初心者だと、Lチカをして満足して、次のステップになかなか行けなかったりしますよね。
今回の解説が理解出来たら、Lチカだけだともったい無いことが理解していただけるはずです。3つの機能のうち、1つしか使っていないわけですから。
ここまで読んでいただいたら、3つの機能それぞれをマスターしてぜひ組み合わせて新たなものを作ってみてください。
この3つの機能があれば、想像力次第で無限の可能性があります。特に入力の機能についてはセンサーを変えることで様々なものを数値化することが可能です。メジャーどころでは温度・湿度。ほかには照度やガス検知、気圧などなど….センサーによって得られるものが異なりますからどんなセンサーがあるか調べてみるのもおもしろいですよ。
コメント