【電子工作にチャレンジ】Arduino をはじめよう「LED を点灯させてみる」で知る回路図の意味。

スポンサーリンク

まずは書籍に従って進めてみましょうということで

前回、Arduino を始めようと思った経緯やら、用意したものを紹介させていただいたんですが。


Arduinoをはじめよう 第2版 (Make:PROJECTS)

【電子工作に挑戦してみる】「Arduinoをはじめよう」ではじめる Arduino。
電子工作にチャレンジしてみる 最近なにかと話題の Arduino。 とりあえず、個人的な理解の範疇で「Arduino」とはなにか...

こちらを手順に、Arduino を体感していきたいと思います。

フィジカルコンピューティングって何だ?

まず、書籍を呼んでみて印象的だったのが「フィジカルコンピューティング」という言葉。

こちら、ニューヨーク大学で始まった教育プログラム、研究方針を刺す言葉のようです。

既存のパソコンで使われているグラフィカルユーザーインターフェース(マウス・ウィンドウ・アイコン)といった、いわゆる「パソコンのための」操作環境を超えて、私達の生活に寄り添った形でのコンピューターのあり方の研究の動向を言い表しているのだとか。
[参照:Hatena Keyword フィジカルコンピューティング]

書籍ではこうした「フィジカルコンピューディング」をデザイナーやアーティストに簡単に扱ってもらうことで新しい価値を想像してもらうことが目的(個人的解釈)だとしされています。

残念がら私はデザイナーでも、アーティストでもないのですが、こうした「電子工作」を楽しむユーザーが広がることは良いことだと思います。

誰でもピカソじゃないですけど、自分の考えていることが形になるのは楽しいですよね。

ティンカーリング(Thinkering)

もうひとつ、印象的な言葉が「ティンカーリング(Thinkering)」。

いじくりまわす。という意味だそうです。

子供の頃に「バラバラにする」ことが好きだったという方も多いと思います。

私も、小さい頃に壊れた時計だとか、ラジオを分解して遊んだ経験があります。

いつのまにかそんなことしなくなってしまいましたが・・・。

こうして電子工作に目覚めるのは、そうした欲求がどこかに残っていたのかもしれません。

既存のおもちゃや、壊れた機械をバラバラにして「別の何かに作り変える」ことが、最もよいティンカーリング(Thinkering)だとされています。

うーん。じつは、子供の遊ばなくなった電子仕掛けのおもちゃとか分解して遊んでみたいんですよね。

あと、「大人の科学」。


大人の科学マガジン パタパタ電波時計 (学研ムック 大人の科学マガジンシリーズ)

「大人の科学シリーズ」何個か作ったことはあるんですが・・・。

そういったものを自分で改造してみたいという欲求もあったり。

そのためには、まず Arduino で徐々に勉強できたら良いかなと。

Arduino を触ってみる環境を作ってみる

とりあえず、ティンカーリング(Thinkering)することが大事だ!

ということなので、さっそく Arduino もティンカーリングしちゃいたいのですが。

そのためはまず、準備が必要です。

まず、PC に開発環境を用意します。

キットは前回注文した「Arduino をはじめようキット」が届いています。


Arduinoをはじめようキット

こちら実際届いたキット。

Arduino-startkit

Small happiness for you.

というのがシャレてますね。

これを組み立てて、プログラミングを実行するためにも、開発環境を整えます。

予め各種 PC にインストールは行っているので、インストールについてはこちらをご参照ください。

arduino IDE(統合開発環境)をインストールしてみる。各種 OS 対応 Windows OSX Linux 編
最近話題になっている arduino に挑戦してみたい! まずは、開発環境を整えようという事で arduino IDE をインストール...

残念ながら書籍ではカットされている Linux ユーザー

Arduino の開発環境は Widows OSX Linux とフォローされています。

しかし、書籍において「Linux」のインストール方法は割愛。

理由は複雑だから・・・。

まあ、Linux あるあるですね。

ただ、バッツリ切り捨ててはおらず、ちゃんと解説した URL が紹介されています。

【各 Linux ディストリビューションでの Arduino インストール】

一応書籍は、2015年9月では最新の「第2版」を利用していますが、書籍に記載された URL と現状の URL は違うようです。

ちゃんとリダイレクトするので、問題はないですけど。

Arduino UNO を取り出してみる

キットの中に入っている Arduino UNO を取り出します。

arduino-r3

書籍の中に図解が掲載されているのですが、よーく見てみると、若干違いが。

基板の配置も色々違うみたいですが、ピンの数も違うような・・・。

これはいかに?

と、思って調べたところ、書籍で説明されている Arduino UNO は初代/R2 のもの。

現在、キットで購入できるのは Arduino UNO R3 なのだとか。

R3 からピンが増えているということですので、ちょっと注意が必要です。

こちらの事情に点いては、SWITCHSCIENCE のサイトでも解説されております。

【Arduinoをはじめようキット】

書籍「Arduinoをはじめよう」にぴったりの部品セットです。Arduino Uno R3(永久保証付き)が入ってます。USBケーブルも付属。「Prototyping Lab」のレシピ1「自然光の明るさを測りたい」P.106 にも対応。

実際増えているのはこちら。

Arduino UNO R3 ピンが多い
[出展:Arduino UNO R3 について]

若干書籍との図解に違いがあるので要注意です。

とりあえず、Arduino UNO を接続してみる

現状の Arduino UNO と書籍の違いも確認できたので、実際 PC に接続します。

キットに USB が付いているので、これで Arduino と PC をつなぎます。

ちなみに私の環境は、初代 ThinkPad X1 Carbon に Voyager(Ubuntu)を入れて使っています。

まず先に、Arduino を USB でつなぎます。

接続すると、オンボードに設置された緑のLED? が光ります。写真ではちょっと判りにくいかも。

arduino-usb

接続したら、インストールした開発環境を立ち上げます。

この時にシリアルポートを選びます

書籍では OSX と Windows の時のシリアルポートの選択方法が書いてありますが、Linux では書いてありません・・・。

書籍を見る限り、シリアルポートの選択は選択肢がいくつも出てきたり、めんどくさそうなのですが。

しかし、私の環境では一つしかなかったので、そちらを選びました。

arduino-serialport

LED を光らせてみる

書籍にあるとおり、まずは「LED」を光らせてみようと思います。

キットの中には「赤」「青」「緑」の LED が入っています。

どれか一つ選んで挿してみます。

書籍に習って、挿していきます。

アノードとカソード

書籍には詳しく書いてありませんが、「LED」には「正の電圧(プラス)」「負の電圧(マイナス)」をかけると点灯するんだとか。
[参照:LEDのアノードとカソードの見分け方]

つまり、設置の仕方を逆にしてしまうと「点灯しない」ということです。

そして、その「正の電圧(プラス)」をかけるのが、アノード。

「負の電圧(マイナス)」をかけるのが、カソード。

キットに入っている LED で見分けるのなら、「足が長いほうがアノード」。

足の短いほうがカソード」です。

正しい理解か判りませんが、「電池のプラス、マイナスがある」のと同じということで良いんですかね。

発光ダイオードの記号

どこまで行けるか判りませんが、将来的に図面を描くことがあるかも。

ということで、発光ダイオードの記号を確認。

発光ダイオード記号

こちらが、発光ダイオードの図面上での記号。

2本の矢印が気になりますが、この矢印が「発光」を意味しています。

発光ダイオード図面サンプル

[出展:大塚商会LED回路記号・図記号]

全然電子系の図面は読めません。経験があるとすれば、中学校時代の「技術」の時間に習った知識だけ。

というか、ほとんど覚えてないですけどね・・・。

しかし、こうしてみると「アノード」「カソード」の関係が「プラス&マイナス」の関係になっていると判りますね。

なるほど、なるほど。

ちなみにですが、これを回路図というのだそうです。

そして、ちゃんと書き方に決まりがあって原則的には、

電気の流れが、右から左そして、上から下へ

「+(プラス)」から「ー(マイナス)」へ流れるように描くそうです。

まさか、大人になって電子工作を始めるとは思いもしませんでした・・・。

中学校の時に「技術」の授業もっとちゃんと聞いとけばよかった・・・。

しかし、こうして図を見て理解しながら進めていくと、すごくわかりやすいです。

記号を見るだけで、「意味不明!」と拒絶反応を起こしがちですが、少しずつ読み解いていくのも面白いですよね。

さて、ひと通り理解できたところでピンに実際に LED を挿していきたいわけですが・・・。

とりあえず、挿すときには、書籍の挿絵とピンの数が違うので、注意しながら LED を設置します。

先にも述べましたが、キットには「赤、青、緑」の発光ダイオードが入っています。

どれを使っても構わないみたいなので、個人的にLEDに持っているイメージカラー「赤」を選択。

ピンを刺す GND ってなに?

こちらも書籍ではさらっと説明されてしまっていますが。

カソードを差し込む「GND」ってなんでしょう?

こちら、調べてみると・・・。

「グランド」と呼ばれるもので、回路図上でも重要な役割を持っているものみたいです。

電気の流れは「水の流れと」同じ?

私の中学校レベル(忘れかけ)レベルだと、プラスとマイナスは電気の方向と習った気がします。

どうやら、基本的に間違ってはいないようなんですが、回路図上で考えると、「マイナス」というのは「下水」と同じように考えるようです。

電気の流れを表現する際、電気はプラスからでて、途中 LED を光らせたり、モーターを回すなど仕事をして、最後にマイナスへ役割を終えて消えていく。

と、考えると良いみたいです。

[参照: 回路図の考え方について]

なので、上記の大塚商会の図面で言うと、ん?電池の記号の向きが逆な気がするぞ・・・。

電池(バッテリー)は長いほうが「プラス」「短いほうがマイナス」みたいです。

かつ、回路図は上から下、左から右の原則に沿って考えると、この電池の向きは逆なんじゃ・・・?

手書きで申し訳ないんですけど、実際描くとこんな感じ。

led-draw

左の電源から、プラス方向に流れます。

途中のギザギザは「抵抗」です。

「LED」には抵抗が必要なのだとか。

こちら、「Arduinoをはじめよう」においても言及されています。

そして、ちょっと不自然ぐらいに太く書いていますが、一番下の太い線が「グランド(GND)」です。

「下水」なので、下側においてあります。

プラスから、流れた電流が役割を終えて最後流れていく場所です。

実際、グランドにつなげることを「グランドに落とす」というそうです。

詳しくは、上記の参照先「回路図の考え方」が詳しいです。

さて、いろいろ理解できたきがするので、LED をピンに挿します。

  • アノード(プラス)を デジタルピン 13へ
  • カソード(マイナス)を GND へ
  • 書籍と比べてピンが増えているので注意

の 3 点に注意して挿します。

スケッチ(プログラム)を書いて、実行

ここからは、開発環境を使ってプログラミングになります。

Arduino は C/C++ をベースにした言語となります。そして、Arduino ではプログラムとは言わず「スケッチ」と呼ぶみたいです。

web 関係者の私としては、経験あるのは PHP Javascript Python 等です。

C/C++ は経験ありませんが、プログラミングの勘みたいのは・・・。

あるでしょう。多分。

とりあえず、書籍通りに書いてみます。

//example 01: Blinking LED ここはタイトルです。

const int LED = 13; // LED をデジタルピン 13 へ接続

void setup(){
pinMode(LED, OUTPUT); //デジタルピンを出力に設定
}

void loop(){
digitalWrite(LED, HIGH); //LED  をつける
delay(1000); //1秒待つ
digitalWrite(LED, LOW); //LED を消す
delay(1000); //1秒待つ
}

こちらを開発環境に記述し、「コンパイル」ボタンを押します。

arduino-compile

途中記述ミス等があれば、エラーが表示されます。

問題なければ、コンパイル完了です。

arduino-compile-comp

そして、あとは「Arduino」に書き込むだけです。

そのときは、「upload」ボタンで実行します。

arduino-upload-comp

書き込み完了すると、上記のようなメッセージが表示されて、設置した LED が 1 秒おきに光ったり消えたりするはずです。

arduino-upload-bling

Linux で Permission error が発生する場合

コンパイルに問題がないけど、uploadを実行しても「Permission error」が発生することが起きるみたいです。

私の場合は、起きました。

原因を調べたところ、どうやら「/dev/ttyACM0」に書き込み権限がないためのようです。

なので、書き込みなどができる「権限」を与えてあげたら OK です。

sudo chmod a+rw /dev/ttyACM0

として、実行権限(読み込み、書き込み)を与えてあげます。

そうすると、私の環境では解決しました。

ただ、毎回実行しなくてはならず・・・。

常にできる方法を調べて試してみたんですが、判らずじまい。

調べていずれわかれば、こちらで紹介したいと思います。


楽しい工作シリーズ No.108 タンク工作基本セット (70108)

スポンサーリンク

シェアする

フォローする

スポンサーリンク