IoTなどインターネットにつなぎ制御、情報の収集が行えるシステムが話題かと思います。
インターネットに接続することも可能で、少しでもプログラミング経験があれば簡単に自分が考えた通りに動作させることが可能なArduino電気工作について紹介したいと思います。
マイコン、Arduinoとは
マイコンとはマイクロコンピュータと呼ばれ、プログラムを読み込み、演算や入出力、記憶動作することで電子機器を制御できるものです。
Arduinoも指示内容をプログラミングをし、書き込むことで制御が可能なマイコンです。
マイコンに電気信号を送るピンが搭載されているのでマイコンボードと呼ばれています。
Arduinoには多くの種類があり、パソコン上のカーソル操作、キーボード制御が可能なモデル。Wi-Fi接続、Bluetooth接続が可能なモデルがあるので、用途に合わせて使用しましょう。
初心者はWi-Fi機能が無いUNOやLeonardoでも困ることはありません。
気になった方はArduinoの公式サイトにて説明やチュートリアルがあるので参考にしてみてください。
専用のコードエディタも無料で提供されており、多くのライブラリも使用できます。
同じ機能を持った互換品は1000円程度安価ですが、場合によってはドライバのインストールが必要になることもあるので、不安な方は公式のものを買うのをおすすめします。
公式では20$程度で販売されており、ネットでは3000円程度で購入できます。
Arduino IDE
Arduinoにプログラムを書き込むために必要なのがArduino IDEです。コードを書き、コンパイル(コードに間違いがないか確認する検証)、書き込むことができます。C言語と同じ文法で文末に「;」が必須であることに注意すれば習得は簡単です。
こちらのページから環境に合ったインストールファイルがダウンロードできます。
ダウンロード後は起動し、表示される指示に従っていけばインストールが完了します。
使用PCの設定と同じ言語で使用できます。
ArduinoでHello World
コード記述の第一歩として、「Hello World」を実行させてみましょう。
PCとArduinoをUSBコードで接続します。
コードを書き込む際に使用しているArduinoの種類と接続しているシリアルポートを指定する必要があるため、上部の「ツール」から設定しましょう。接続しているシリアルポートには「COM3 Arduino UNO(使用しているArduinoの種類が認識されます)」と表示されているものを設定します。
早速コードを書いていきましょう。メニューの「ファイル」をクリックし「新規ファイル」を選択すれば新しいスケッチが作成できます。
こちらの画像のように、コードを書いてみてください。
1秒ごとに「Hello World」とPCに送り、画面右上の虫眼鏡マークを押すとシリアルモニタという画面が開き伝送内容がプリントされる様子が確認できるコードです。
画像ではvoid setup(), void loop()関数の説明とコメントアウトの方法を記載しています。分かりにくい動作やこの関数で何をしているかメモするのにコメントアウトはおすすめです。
void setup内の「Serial.begin(9600);」はこれから、ハードウェアシリアル通信を伝送速度9600bpsで行う宣言と同義になります。ハードウェアシリアル通信とは、マイコンに内臓されたUARTモジュールを使い1bitずつデータを送る方法です。
void loop内の「Serial.println(“Hello World”);」はシリアル通信でシリアルモニタに改行ありで「Hello World」を表示させる関数です。改行なしの場合は「Serial.print();」となり、改行キーが自動で伝送されずに、シリアルモニタ上では送った文字がずらっと横並びに表示されます。
「delay(1000)」は上から順に実行されるArduinoではこの行で1000ミリ秒=1秒止まっておくことを指示する関数です。Serial.println()は任意の文字列を一回送ると終了する関数ですが、他の関数ではdelay()を入れないと一瞬しか動かない場合もあるので「何秒間この動作をする」といった指示をしたい場合にもdelay()処理を入れておきましょう。
シリアルモニタの虫眼鏡マークをクリックし、伝送できているか確認してみてください。
Arduinoを使った電子工作の事例、おすすめサイト
Arduinoではコードだけでなく、回路としてピンを使用し、回路素子を繋げる必要があり、一気に習得するには時間がかかってしまうので、まずは作ってみることが重要です。多くのArduino使用事例記事が公開されているので、初心者におすすめの事例と検索ワード、応用例をいくつか紹介します。
初心者向けおすすめ事例と検索ワード
- LEDを光らせる(通称Lチカ) 検索ワード例「Arduino Lチカ」
LEDをArduinoのピンに接続し、点灯や明るさの制御ができます。LEDは安価で手軽に入手できるのと、Arduinoの鬼門であるdigitalとanalog、PWM動作の理解に向いています。可変抵抗素子や明るさセンサーを使って、段階的に明るさを変えることも可能です。
- tone関数で圧電ブザーから音階を出力 検索ワード例「Arduino tone 音階」
回路素子で指先サイズの圧電ブザーが市販されています。tone関数を使うと任意の周波数で音を鳴らすことができるので、周波数を調整すればドレミの音階の指定ができます。noTone、delay関数を上手く使って、曲を演奏させてみるのもおすすめです。
- スイッチ制御 検索ワード例「Arduino タクトスイッチ」
Lチカや圧電ブザーになれたら、スイッチのオンオフに応じてLEDを光らせたり、音を鳴らす動作を実装してみましょう。
- サーボモータ制御 検索ワード例「Arduino サーボモータ」
モータの制御ができるライブラリがあるので、活用してモータを任意のトルクや向きで制御してみましょう。4つ使用すれば車も作れます。
- XbeeでArduinoと無線通信 検索ワード例「Arduino Xbee 無線通信」
Xbeeという、無線通信が可能なモジュールがあります。無料の別ソフトにて送受信の設定が必要となりますが、送信用Xbeeを繋いだArduinoから受信用Xbeeを繋いだArduinoにシリアル通信で情報が送れます。サーボモータも使えばラジコンカーも作れます。
応用例
- 液晶ディスプレイ出力 検索ワード例「Arduino LCDに表示」
LCD素子も販売されており、データを送ればディスプレイに絵や文字を表示させることが可能です。小さい電光掲示板など作ってみるのもおすすめです。
- RTCで日付時刻を取得 検索ワード例「Arduino RTC日付取得」
RTCという日付時刻情報を持つ素子を使用することで時計機能の実装ができます。ライブラリを使ったり、ディスプレイと組み合わせて時計を作ってみるのも面白いと思います。
おすすめサイト
最後に電子工作を始めるにあたって役に立つおすすめサイトを2つ紹介します。
- 武蔵野電波 Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/index.php
Arduinoのコードを書くのに必要な関数と使用するピン番号についてまとめられているサイトです。開発で行き詰った際や、コンパイルエラーが発生した場合に見てみたり、一通り目を通し、気になった関数を実際に使ってみたりするのも学習に繋がると思います。
- 株式会社秋月電子通商(電子部品の通販、販売)ページ
電子工作に欠かせないモジュールや素子が販売されているサイトです。秋葉原に実際の店舗もあるので、足を運んで気になる素子を購入してみるのもおすすめです。
まとめ
簡単にですが、Arduinoについて説明しました。Arduinoはユーザも多く、日本語記事も充実しているので、手軽に色々なものが作れます。本記事が気になるものを見つけるきっかけとなれば幸いです。
参考サイト
EPSON マイコンとは?意味や役割、機能、動作の仕組み、利用例をわかりやすく解説 2024年1月時点
Arduino C.C, What is Arduino? 2024年1月時点
Arduino C.C Arduino IDE 2024年1月時点
株式会社武蔵野電波Arduino 日本語リファレンス 2024年1月時点
http://www.musashinodenpa.com/arduino/ref/index.php
株式会社秋月電子通商(電子部品の通販、販売)ページ 2024年1月時点