こんにちは。ゴルフおじさんです。
前からArduinoというものに興味があったので、シルバーウィークに買ってみました。こういった電子工作については中学の授業でやったなーくらいの素人なのですが、環境がすごく整っておりとてもわかりやすく進めることができました。
Arduinoとは?
マイコンボードの1種なのですが、オープンソースハードウェアという考えで作られておりArduinoで作成された回路や基盤の設計は公開され、だれでもそれらを流用して使うことができます。
Arduinoで何ができるの?
通常のマイコンボードと同様に、入力と出力をマイコンボード上に組み込まれたプログラムで制御し、様々な動作を実現することができます。ボタンを押したらブザーが鳴るとか単純なものから、各種センサーを付けてモニタリング装置やロボットなどの複雑なものなど、もう色々できます。
Arduinoを調達
早速Amazonさんで物色。で購入したものがこちら。 ArduinoUnoの他、LEDやら色々入っていてまさにエントリーキット。
開発環境
Arduinoにはプログラムを開発するIDEがArduinoから無償で提供されています。
ArduinoのサイトからソフトをダウンロードしてPCにインストールします。
Windows,Mac,Linuxとそれぞれそろっています。 今回はWindowsなのでインストーラーを使って簡単にインストールできました。ArduinoをUSBで繋ぐドライバもこの時に入れてくれます。
インストールが終わったら早速起動してみます。開発環境の起動画面はこんな感じ。
メニューの意味はこんな感じです。
Arduinoのプログラムのことをスケッチといいます。言語はC/C++で記述します。
動かしてみる
環境も整ったところで、 今回は細かな説明は後にして早速Arduinoを動かしてみましょう。 まずはArduinoでLEDを点滅させてみます。(電子工作のHelloWorld的な?)
Arduino側
ArduinoにLEDを取り付けます。
LEDの長いピンの方をデジタル入出力ポートの13に、短い方をGNDに差し込みます。長い方をアノード、短い方をカソードといいます。アノードの方が+となります。へぇ
※本来は接続される機器を壊さないよう抵抗を使って電圧を制御してあげる必要があります。
USBケーブルを使いPCとArduinoを繋ぎます。
IDE上からもArduinoが接続されていることが確認できます。
スケッチを作成
LEDを点滅させるというスケッチを記述するのですが、スケッチの例のBlinkというサンプルをそのまま使います。 ファイル>スケッチの例>Basic>Blinkを選択します。エディタ上にはLEDを点滅させるBlinkというスケッチが呼び出されます。
スケッチの例の中にはサンプルがたくさんあり、何かを作る時の参考にできます。こういうのはありがたいですね。
読み込んだスケッチの内容を少し読んでいきます。
スケッチの中にはsetup()とloop()が2つ記述されており。まずsetup()の方ですが、
void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); }
と書かれています。setup()は初期化の処理にあたり、どの関数よりも先に1度だけ実行される関数です。この中にあるpinMode()という処理でデジタル入出力ポートの13番から出力するよということを表しています。なぜ13かというと、さっきArduninoにLEDを取り付けたときに13に刺したからです。
次にloop()の方ですが、
// the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
loop()は中に書かれた内容を繰り返し実行し続けます。
degitalWrhite(13, HIGH);でデジタル入出力ポート13に対して電圧をかけLEDを点灯させ、逆にdegitalWrhite(13, LOW);ではデジタル入出力ポート13にかけた電圧を落としてLEDを消灯させています。 そしてdelay()でこの2つの処理の間にインターバルを作りLEDを点滅させています。delay()の単位はミリ秒です。
setup()とloop()は必須関数となっており使わない場合でも、必ずスケッチの中に記述しておく必要があります。
Arduinoの実行
このスケッチをコンパイルしてArduinoに送り動かしてみます。
IDEのメニューにある「マイコンボードに書き込む」ボタンをクリックします。コンパイル→マイコンボードに書き込みが行われ、、、
LEDが付きました!!
delay(1000)の所を下のように少しいじって。再度マイコンボードに書き込んでみます。
delay(500); // wait for a second
点滅が早くなりました。プログラムに書いた処理がArduino上で正しく動作していますね。
ちなみにArduinoで終了という概念はないそうです。止めたい時はUSBから抜いて電源の共有を断ってやれば止まります。今回の動きはArduinoのメモリ上に書き込まれていて、USBに再度つないで電源が入ると自動的に処理が開始されます。
今回はサンプルでしたが、とても簡単にArduinoを動かすことができました。今後はArduinoや電子工作の基本について勉強しつつ色々なものを試したいと思います。
ゴルフおじさんスタンプも絶賛販売中です!!