12/08/2018, 15:20

Introduction to the Arduino [Part 01]

Arduinoの生みの親の1人であるMassimo BanziがTEDで語った内容を聞いて、自分が想像したものをオープンソース化したいと思うようになりました。ふと考えた「こんなこといいな、できたらいいな」は本当に簡単に試作品を作ることができる時代になっています。そうした環境を与えている存在の1つにArduinoがあります。Arduinoを通して自分の想像したものを具現化してここに記しておくことによって、他の人の想像を引き立てて、誰かがマッシュアップして世の中を更に良くしてくれるようなアイデアが出てくるかもしれない。そう考え、自分の妄想を具現化したものをこれから書いていきたいと思います。 ...

Arduinoの生みの親の1人であるMassimo BanziがTEDで語った内容を聞いて、自分が想像したものをオープンソース化したいと思うようになりました。ふと考えた「こんなこといいな、できたらいいな」は本当に簡単に試作品を作ることができる時代になっています。そうした環境を与えている存在の1つにArduinoがあります。Arduinoを通して自分の想像したものを具現化してここに記しておくことによって、他の人の想像を引き立てて、誰かがマッシュアップして世の中を更に良くしてくれるようなアイデアが出てくるかもしれない。そう考え、自分の妄想を具現化したものをこれから書いていきたいと思います。

ベトナムでもArduinoのコミュニティ(Cộng đồng Arduino Việt Nam)は活発です。ちなみに、Arduinoの公式ホームページにはベトナムで購入できる場所が3店舗ほどあるようですが、リンクが古いのか、肝心のHPを閲覧することがほとんどできませんでした。

ホーチミンに本店のある「Fabstore」だけ閲覧することができました。確認してみるとこちらでは店舗でも購入できそうです(ホーチミンにいる方どなたかレポートよろしくです笑)。また、通販も行っているので、ハノイにいる私でも入手できそうです。 驚きの安さ

すでにArduinoのことについての情報はネットに腐るほど転がっていますし、Vibloにも概要は書いてくれている人がいます(VN)。端的に説明をすると、Arduinoとは①AVRマイコン、②I/O(入出力)ポートを備えた基板、③C言語風のArduino言語による開発環境で構成されたシステム全般を指します。それで、どのようなことができるかというと、温度センサーや人感センサーなどの様々センサーのインプット情報をもとに、モーターを動かしたり、音をならしたり、メールを送信したりするなど本当にいろんなことができます。日本ではIoTの流行からArduinoが再び注目され始めました。特に安価なWi-FiモジュールであるESP-WROOM-02が出てきてからお手軽にIoTが試すことができるため、急速に注目を浴びている気がします。現時点で(2017年5月25日)Qiitaには213件も投稿されています。

とういう訳でまずはじめに初歩的なLチカから試していきたいと思います。LEDがチカチカする簡単なものです。電子工作でいう"Hello,World"的なものです。といっても必要な道具がなければ、何も始められません。必要なものは、以下の3つです。これらは必ず事前に用意しておきましょう。 ① Arduino本体 これがなければ、何も始まりません。詳しい話は別の機会にとっておきますが、デジタル入出力ができる部分とアナログ入出力ができる部分が分かれています。写真の手前側がアナログ入出力と電源関係のピンがある場所です。奥がデジタル入出力ができるピンがズラッと並んでいます。それぞれに数字が割り振られています。今回はデジタル入出力ピンの13番を使用します。 ② LED ちなみにLEDの線はよく見ると長さが異なっていて、それでプラス側かマイナス側か判断します。長いほうがプラス側です。方向を間違えるとLEDが壊れる原因となります。ので、数に余裕のある方は試しておきましょう。壊して学ぶのも電子工作の醍醐味です。ちなみにプラス側をアノード(A)、マイナス側をカソード(K)と呼びます。 ③ 開発環境 今回はArduino CreateにあるWeb Editorを使ってみます。 初めての場合は、アカウントを作成する必要があるので、SING UPから 適当にUSERNAMEとPASSWORDを決めて、メールアドレスを入力するだけです。 このWeb Editorは開発をWeb上で行なえますが、ArduinoとPCを接続するためにはプラグインのインストールが必要です(ここ本当にイケてない)。 アカウントが作成できて、プラグインをインストールしたら、いよいよWeb Editorが起動できます。これで開発環境は完成しました。

さて、実際に作業に移りましょう。一般的な電子工作としてこれから大きく分けて2つのことをします。1つ目は電子回路の作成です。端子に部品や導線をつないでいく作業です。そしてもう1つはプログラム(スケッチ)の作成です。できたと思ったら、Arduinoにプログラムを転送して動作確認を行います。これから常にこの作業を繰り返していくことになります。

ということでまずは電子回路を作成します。 今回は初歩の初歩ということでLEDを直接Arduinoのピンに差し込みます。アノード(プラス側)を13番に、カソード(マイナス側)をGND(グランドと呼びます)に差し込みます。電子回路図的には電源のプラスから出た電力は回路を駆け巡り、モーターを回したり、LEDを光らせたりして、役割を果たします。そして、最終的にはGNDに流れていきます。プラスから流れて役割を果たしてGNDに落とし込む。とりあえず、これだけは忘れないようにしてください。今回の場合で説明すると、13から電流が流れたり、流れなかったりして、その後流れた電力がGNDに落とされます。

ここまで完成したら、あとはコードを記述していくだけです。右側の画面が実際にLEDをチカチカさせるためにコードを記述する場所です。 Arduinoではプログラムのことをスケッチと呼んでいます。絵を描くように手軽にできることからそう呼んでいるそうです。 LEDをチカチカさせるためにざっと以下のようにコードを記述します。

//起動時に読み込む
void setup() {
  //13番を出力する
    pinMode(13,OUTPUT);
}

//常に実行し続ける
void loop() {
    //13番の出力オン
    digitalWrite(13,HIGH);
    //1秒間待つ
    delay(1000);
    //13番の出力オフ
    digitalWrite(13,LOW);
    //1秒間待つ
    delay(1000);
}

コードを記述したら検証(Verify)をクリックしてコードが正しく記述されているかチェックします。 問題なくできました。 Arduinoにこのスケッチを転送します。ArduinoとPCをケーブルで繋いでいることを確認して、転送(Upload)をクリック。 ちょっと時間はかかりますが、こちらも問題なくできました。 そんなわけで、無事にLチカが完成しました!

これだけだと味気ないので、今度はセンサーを使って試していきます。まずは簡単に暗くなったら、LEDが光る機能を作りたいと思います。Cdsセルと呼ばれる光の強さに応じて電気抵抗が低下する抵抗器を使ってみます。

0