Google アナリティクスと Cookie の利用について
[Arduinoのすすめ][ArduinoConf][ArduinoMonitor][iArduino]
Arduino のすすめ
1 はじめに
Arduino という名前を聞いたことがあるかもしれません。最近流行っているみたいだなと思われているかもしれません。ここでは、そんな Arduino について紹介したいと思います。
1.1 Arduino ってなに?
Arduino というのは、簡単に書くと
- マイコンボード (Arduino マイコンボード)
- 開発環境 (Arduino IDE)
の2つがセットになったものです。マイコン?難しそう。と、思われるかもしれませんが、そんなことがないように、うまく工夫されているのが特徴です。
左:Arduino Duemilanove の外観,右:Arduino IDE のウィンドウ
1.2 電子工作もプログラミングもしたことがないんですけれど
電子工作をしたことがなくても大丈夫です。Arduino と、ジャンプワイヤという、ピンが両端についた電線、ブレッドボードという穴のたくさん並んだ板、使いたい電子部品を用意すれば、半田付けなしに楽しめます。もちろん、ブレッドボードを使わず半田付けをする電子工作にも Arduino は活躍します。
ブレッドボードの例。穴に部品の足やジャンプワイヤの先を挿し込んで配線する。色々な大きさのものが販売されている。
電線がやわらかいタイプのジャンプワイヤの例。先端の金属部分をブレッドボードの穴に挿し込む。
サンハヤトのものが電子部品店で購入しやすい。秋月電子、スイッチサイエンス、ストロベリー・リナックスなどでは、より安価なものを輸入・販売している。
プログラミングについても心配ありません。とても簡単にできるように工夫されています。
1.3 電子工作は好きだけどマイコンは苦手で
電子工作は好きだけどマイコンやパソコンのプログラムは苦手で、という方もいらっしゃるかもしれません。そういう方にも Arduino は、マイコンの便利さを知るきっかけになると思います。マイコンの開発というと、
- マイコンを載せた基板
- マイコンにプログラムを書き込むためのライタ(プログラマ)
- マイコンのプログラムを作成する環境(開発環境)
の3つを間違いなく用意する必要があって、市販品は高価に思え、自作するとうまく動くか心配となって、最初は敷居が高く感じられるものです。でも Arduino なら、
- マイコンを載せた基板は完成品が市販されていて、
- ライタは不要、
- 開発環境は無料で使えて、インストールはダウンロードしたファイルを展開するだけ
という手軽さです。
1.4 Windows/UNIX のプログラムは書いたことがあります
Windows や UNIX のプログラムを書いたことはあるけれども、電子工作は敷居が高くてという方も安心してください。最初は半田付けも要りませんし、プログラミングの知識があれば理解は容易なはずです。
1.5 マイコンのプログラムには自信があります
マイコンのプログラムに自信のある方が、すぐに便利さを実感するのではと感じています。
基本的なハードウェア仕様はArduino Duemilanoveを見ると分かるかと思います。マイコンは ATMEL AVR MEGA シリーズ、開発言語は C/C++ ベース (コンパイラは gcc) です。そして、
リファレンスマニュアルの日本語訳や、Arduino: Playground(英語)をながめると、色々なライブラリが公開されていることが分かります。商用で使うにはライセンスの検討が必要ですが、ホビーで楽しむにはちょっとしたことが簡単にできてしまい、手軽さが実感できると思います。
2 電子工作入門
電子工作って、どういうイメージでしょうか?ちょっと乱暴ですが、電子工作は、電子部品の足(電気を通す)同士を電線(電気を通す(導く)という意味で導線と呼ぶ)をつなぐものです。どうでしょう。簡単そうですね。
2.1 覚えておくこと
電子工作で覚えておくことが必要なのは、利用する部品の名前、部品の形と足がどこから出ているのか、回路図と呼ばれる図面上の記号とそれぞれの足の対応関係です。これが分かってしまえば、工作の半分はできたようなものです。
2.2 ブレッドボードを使おう
ブレッドボードとジャンプワイヤいう部品を使うと半田付けなしで、電子部品同士をつなぐことができます。
以前に書いた記事(ブレッドボードでLEDを点滅させてみよう)が、ありますので読んでみてください。
また下のスライドに Arduino で簡単な回路を組むときのブレッドボードの使い方があります。
2.3 Arduino ができること
Arduino ができることは大きく分けると、
- ピンの電圧を 5V (電源電圧)か0Vにする(デジタル出力, 10-20mAぐらいまで出力できる)
- ピンの電圧を 5V/0V に高速に切り替える(アナログ出力, 10-20mAぐらいまで出力できる)
- ピンに加えられた電圧が約2.5V以上なら 1, そうでなければ 0 と判断する (デジタル入力)
- ピンに加えられた電圧を測って 0 から 1023 の数値で表す(アナログ入力, 電圧計として使える)
- 時間を測ったり、数を数えたり、計算をしたりできる(プログラム)
の5つです。これで何ができるのでしょうか?
2.3.1 デジタル出力/アナログ出力とは
豆電球に電池をつなぐと光りますよね。電球と電池の間にスイッチを入れると、点灯/消灯をスイッチで制御できます。Arduinoのデジタル出力も同じように電源とピンの間のスイッチになっています。少し違うのは、
- ピンは、電源のプラス側もしくは、マイナス側のいずれかにつながって、つながらないという状態がない
- それほど丈夫なスイッチではないので、LED は点灯できても、直接モータを回すことはできない、モータを回すにはモータドライバが必要になる
といったところです。
アナログ出力というのは、
LED を点灯したり、モータを回すときに、高速にスイッチをオン/オフすることによって、
明るさや回転速度を変化させることができます
(厳密にはアナログ出力とは呼ばず、PWM 出力と呼びます)。
2.3.2 デジタル出力/アナログ出力の使い道
デジタル出力/アナログ出力を使うと
- LEDを点灯する
- 音の基になる信号を作る
- モータを回すための信号を作る
- ラジコンサーボを回すための信号を作る
- 液晶(LCD)に表示するための信号を作る
- ほかの IC に指示を出すための信号を作る
ことができます。Arduino とブレッドボード以外に必要な部品は、それぞれ、
- LEDを点灯: LED と電流制限抵抗
- 音: セラミックスピーカ
- モータ: モータドライバICとモータ
- ラジコンサーボ: ラジコンサーボのみ
- 液晶(LCD): 液晶モジュールと半固定抵抗
と、とても少ないです。
2.3.3 デジタル入力/アナログ入力とは
デジタル入力、アナログ入力は、ピンの電圧を
- LOW (0V) または HIGH (5V) の2段階(デジタル入力)
- 0 (0V) から 1023 (5V) の1024段階(アナログ入力)
として読む(測る)ものです。()内は電圧です。デジタル入力には、中間の電圧を与えないというルールがあることに注意してください。
2.3.4 デジタル入力/アナログ入力の使い道
デジタル入力/アナログ入力は、
- スイッチのオン/オフ
- ボリュームの角度
- 明るさセンサ(CdS)の値
- 距離センサ(PSD)の値
- ほかの IC (シールドと呼ばれるモジュールを含む, Ethernet など)
などなどを、Arduino につないで値を知るために使います。これによって、スイッチを押した、ボリュームを回した、暗くなった/明るくなった、壁に近づいた、といった現象を Arduino のマイコンは知ることができます。そして、プログラム(スケッチ)を書くことで、それらに応じた、LEDやモータなどの動作を作ることができるようになります。
スライドでの解説
ここまでの内容+αをスライドにまとめたものです:
3 Arduino を使ってみよう
3.1 Arduino IDE とボードを使ってみよう
- Arduino IDE の使い方(Youtube 動画 2:37)
- Arduinoの最初の一歩(スケッチの例を動かす) 又は Arduino IDE からマイコンボードに書き込む(Youtube 動画 2:47, 秋月電子のマイコンボードキットを使っているので自分のボードに合わせて設定は読み替えて下さい)
- 簡単な回路とスケッチ
3.2 Arduino 言語早わかり
UNIX (Linux) や Windows の C/C++ でプログラムを書いたことがある人は
Arduino言語とC/C++との違いを読んでみて下さい。
文法とボードの入出力については次を参考にして下さい。
3.4 Arduino プログラム入門
- Arduinoを使った回路とプログラムの例
- Arduinoのボード上のLEDを使ってみよう
- Arudinoと部品を組み合わせて使ってみよう
- スイッチに反応する
- ボリュームと明るさと温度と重さ(抵抗値の変化)に反応する
- センサICを使う
- デジタル出力タイプのセンサIC(digitalRead)
- アナログ出力タイプのセンサIC(analogRead)
- 変数を使おう
- 変数とは
- 繰り返しを使いこなそう
- 覚えておいて後で利用しよう
- 作品を作ろう
3.5 ライブラリやモジュールを使ってみよう
- スイッチを使う(スイッチライブラリの紹介)(digitalReadを直接使わない方法です。チャタリングについての解説もあります)
- センサIC(デジタル出力)を使う
- センサIC(アナログ出力)を使う
- I2C接続のセンサを使う
- SPI接続のセンサを使う
- その他のデジタル接続センサを使う
- 液晶モジュールを使う
- スケッチを組み合わせて作ってみる
3.6 便利なツール
初めての回路を組み立てて、新しいスケッチを書いたとき、ちょっとしたバグが入ることはよくあります。そんなときに回路のテストをするためのツール ArduinoMonitorを作成しました。使い方は紹介記事も参考にしてください。
また、グラフィカルにピンの入出力の設定をしてスケッチの雛形を作るツールArduinoConfも使って見てください。こちらも紹介記事があります。
3.7 作ってみよう
Arduinoでこんなことができます:
4 作品として完成させる
Arduino を使った作品はうまく動いたら、作品として完成させましょう。作品として完成させるときには、ブレッドボードと同じ回路を、基板に部品を半田付けして作り直すことをお勧めします。半田付けには、
- 部品を固定し、振動や力が加わっても接続が外れないようにする
- ブレッドボードでは発生するさびなどによる接触不良(電流が流れなくなる)がない
というメリットがあります。そこで半田付けをして作品として完成させましょう。
4.1 半田付け入門
半田付けは、それほど難しいものではありません。以前に書いた記事がありますので、読んでみてください。エレキットの電子工作キット(説明書がとても丁寧)で、半田付けの練習をしてみるのも楽しいと思います。
4.2 万能基板を使いこなそう
プリント基板と呼ばれる、回路専用の基板を作ると工作はとても簡単になります。ところが、少ない枚数を作ると割高になってしまいます。そこで万能基板(ユニバーサル基板)と呼ばれる、半田付け用の穴がたくさん開いた基板を利用して工作をします。Arduino の場合にはスイッチサイエンスで販売している「Arduino用バニラシールド・キット」が便利なのではと思います。これを利用すると Arduino の基板の上に自分の回路を載せることができます。
万能基板には、部品を固定する穴はありますが、部品の足同士はそのままではつながりません。ブレッドボードで利用したジャンプワイヤに相当するものが必要です。そこで、ビニール電線や、スズめっき線、部品の足の余り(部品の足は長いので、不要な部分を基板に固定後切る。その切れ端が使える)で足同士をつなぎます。ちょっと、こつは要りますが、そんなに難しいものではないので挑戦してみてください。拙著「センサとデジカメで遊ぶ電子工作入門」でも、万能基板を利用した工作の方法を紹介しています。
4.3 Arduino のマイコン
Arduino の特徴はコネクタのピン配置が決まっていて、シールドと呼ばれる基板で拡張が出来ることです。一方で、自作の基板上に Arduino のマイコンだけを載せたいという場合があります。Arduino UNOに載っているのは Atmel の ATmega328Pという型番のAVRマイコンです。このマイコンと水晶発振子とセラミックコンデンサを買ってくると Arduino UNOと同等の回路を作ることが出来ます。
ただ、新しいマイコンには Arduino IDE と通信するブートローダが書き込まれていません。
そのときには Arduino をマイコンのプログラマにすることで、ブートローダを書き込むことが出来ます。チュートリアル「Arduino を AVR プログラマ(ISP: In-System Programmer)として使う」の日本語訳を参考にして下さい。
A.参考になるもの
A.1 web 上の情報
A.2 web 記事など
A.3 書籍, 雑誌
- Making Things TalkTom Igoe 著、小林 茂 監訳、水原 文 訳, O'REILLY, 2008.
- Arduino をはじめようMassimo Banzi 著、船田 巧 訳, O'REILLY, 2009.
- アーデュイーノ互換マイコン・ボードを作る小坂 貴美男 著, CQ出版社, 2009.
- MAKE magazine 日本語版Arduino (互換機)を使った作例がよく掲載される
- Make日本語版 Vol.04記事「初めてのArduino」PDF
- エレキジャック no.17Arduino を使った作例あり
- エレキジャック no.15Arduino を使った作例あり
- エレキジャック no.13Arduino のチュートリアルと作例あり
- エレキジャック no.12Arduino (互換機)を使った作例あり
- エレキジャック no.11Arduino (互換機)を使った作例あり
- マイコンと電子工作4 特集「LilyPad & Arduinoを使ったテクノ・クラフト」, CQ出版社, 2011.(2011年1月25日発売, おすすめ)
- マイコンと電子工作1 特集「電脳Arduinoでちょっと未来を作る」, CQ出版社, 2010.(2009年11月30日発売, おすすめ)
A.4 このページの筆者の作例の紹介など
- 私家版 ArduBlock
- ストロベリー・リナックスの低電圧I2C液晶をArduinoで使う
- Arduino LeonardでMicrosoft Excelを操作してみる
- Arduino + グラフィック液晶(SG12864A)
- Arduino でオシロスコープ
- OLED 名札
- NTPで合わせる時計
- NTPで合わせるニキシー管時計
- ESP8266 で IFTTT を使ってTwitterにつぶやく
- Arduino nano を 8MHz で動作させる
- "Arduinoでつくるオシロスコープ"(予告), マイコンと電子工作4 特集「LilyPad & Arduinoを使ったテクノ・クラフト」, CQ出版社, pp.75-83, 2011.
- "ニッケル水素充電池の放電器をArduinoで作ろう"(予告), マイコンと電子工作4 特集「LilyPad & Arduinoを使ったテクノ・クラフト」, CQ出版社, pp.90-99, 2011.
- "ダウンロードしたスケッチを使ってみよう", マイコンと電子工作1 特集「電脳Arduinoでちょっと未来を作る」, CQ出版社, p.44, 2010.
- "人が近づいたら時刻を表示する「不思議な鏡」の製作", マイコンと電子工作1 特集「電脳Arduinoでちょっと未来を作る」, CQ出版社, pp.78-87, 2010.
- "きらきら光るスカート"(予告,
仕組みとダウンロード),
エレキジャック,
CQ出版社,
no.11,
pp.50-55, 2009.
- Arduino にグラフィック液晶をつなぐ(1, 2), エレキジャック, CQ出版社, 2009. (web 記事)
- TouchShield Slideの紹介と応用(1, 2, 3, 4), エレキジャック, CQ出版社, 2011. (web 記事)
- ArduinoConf の紹介, エレキジャック, CQ出版社, 2011. (web 記事)
- ArduinoMonitor の紹介, エレキジャック, CQ出版社, 2011. (web 記事)
更新履歴
- 2021/1/29: 気圧センサ BMP280 で高度を測ってみるへのリンクを追加
- 2020/12/18: 動画へのリンクを追加, 3の項を整理
- 2019/7/11: 文法、ボードのピン、入出力について、C/C++との違いについて追加。
- 2015/12/20: 3を拡充(主に3.1にArduinoを使った回路とプログラムの例へのリンクを追加, また3.1の後半の内容は3.2として独立)。
- 2015/4/5: OLED 名札へのリンクを追加
- 2014/11/22: ブレッドボードとプログラム例のスライドを追加
- 2014/6/18: InvenSenseのMPU-6050の利用例を追加
- 2013/12/21: 入門のスライドを追加 (slide shareに載せたもの)
- 2013/12/16: 秋月電子の焦電型赤外線センサユニット(SE-10)の利用例を追加
- 2013/11/30: NaPiOn, AE-GYRO-SMD, KXM52-1050の利用例を追加
- 2013/11/29: PSDの利用例を追加、センサIC(アナログ出力)の全体の話を更新
- 2013/11/24: ADXL362, L3GD20(SPI), LPS331AP(SPI)の利用例, 温湿度・気圧計の作例を追加
- 2013/11/20: センサIC(アナログ出力)と、S-8100B, MMA7361LC, BH1603FVC, L3GD20(I2C), LPS331AP(I2C), INA226 の利用例を追加
- 2013/11/10: SHT1Xの利用例を追加
- 2013/7/17: 5を削除、3を整理
- 2013/7/15: 5を追加
- 2012/1/30: 3.1を追加
- 2010/3/23: 3へ、リンクを追加
- 2009/11/29: 作例リンクを追加
- 2009/11/28: 書籍追加
- 2009/8/24: 写真を追加
- 2009/5/29: 2.3 を追加, A.2 に追記
- 2009/5/7: 1.4 を追加して 1.4 → 1.5 へ。2章, 4章, A 章を追加
- 2009/5/6: 公開
戻る
(本を出しました:
はじめてのPICアセンブラ入門 |
センサとデジカメで遊ぶ電子工作入門 |
玄箱PROと電子工作で遊ぼう
)
Copyright (c) 2009-2021, Noriaki Mitsunaga