2016/08/14

Raspberry Piのことはじめ - 04 回路入門


これまで開発環境開発環境...といってきたが、開発環境とはなんだろう?
開発目的があっての開発環境なので、ちょっと整理する。

Raspberry Piを使用してLinuxサーバのように使いたいのだったら、すでに環境が揃っている。
あとはセキュリティ周りなり、Apache環境なりの整え方を説明すればいいが、正直その辺りは山ほど資料がネットに転がっているだろうから、今回の目的とはしない。
やはりRaspberry Piでは、拡張コネクタピンを使った制御基板としての目的で使用する人が多いのではないだろうか。

ということで、この「ことはじめ」は拡張コネクタの簡単な使用方法と、実際の基板例などを最終目的とする。
(それ以上はまた別のタイトルにしたい)



拡張コネクタ


Raspberry Piの拡張コネクタは40本で構成されており、その中の一部は役割が決まっているが、それ以外はユーザが制御可能になっている。
ユーザが制御できる拡張コネクタはGPIO(General Purpose Input/Output)と呼ばれる。これはRaspberry Pi特有の名前ではなく、「汎用入出力」という意味でインターフェイス名としてよく使用される。(通常は8ピン構成などが多い)


このピン、順番に番号が付いているが、このユーザに解放されているピンだけの通し番号も付いているので、2種類の指定方法がある。



上図はピン番号とか物理番号と言われる、すべてのピンにつけられた番号。
内側、外側と交互に番号がつけられている。

この40本ピンにはそれぞれ特徴がある。初めから役割が決められているものと、ユーザが自由に制御できるものがある。
これを下記に示す。

説明 GPIO Pin Pin GPIO 説明
3.3V 1 2 5V
1.8KΩ Pull-up 2 3 4 5V
1.8KΩ Pull-Up 3 5 6 GND
4 7 8 14
GND 9 10 15
17 11 12 18
27 13 14 GND
22 15 16 23
3.3V 17 18 24
10 19 20 GND
9 21 22 25
11 23 34 8
GND 25 26 7
ID_SD 0 27 28 1 ID_SC
5 29 30 GND
6 31 32 12
13 33 34 GND
19 35 36 16
26 37 38 20
GND 39 40 21

別ページに構成情報をまとめましたぜ。
別タブで開くので、切り替えながら見るとわかりやすい・・・かもしれない。


まず「5V」や「3.3V」と書いてあるピンは、Raspberry Piに電源がつながれている間、常にその電圧がかかる。
また、「GND」と書いてあるピンはグラウンド、つまり0Vとなっている。
電池で言うところの+極が5Vや3.3Vであり、-極がGND。

例えば3.3Vから電線をつなぎ、その先に抵抗とLEDをつなぎ、その先をGNDにつなぐだけで、電源ON/OFFを表すLEDが完成する。


GPIOという項目に番号が付いているピンが、ユーザが自由に制御できるピンとなっている。(厳密にはGPIO 2以上が自由にできる。)
これらのピンに3.3Vの電圧をかけたり止めたり(出力モード)、あるいはピンに電圧がかかっているかを計測したり(入力モード)する。
GPIOの番号が並んでないのにはイラッとするかもしれないが、基板設計ではよくあることなので気しないことをオススメする。


このように、各ピンに電線をつないで回路を作っていくのだが、この5Vや3.3VとGNDを直接電線でつなぐことは絶対にしてはいけない。
「短絡」といって、ショートする。様々な部分にタメージを与え、最悪基板が壊れる。
間にある程度の容量の抵抗を必ずつながないといけない。

電池じゃ直接+と-を繋いでも平気だ、と思うかもしれないが、市販の乾電池などは内部に抵抗があるなど対策されているし、高電圧な電池やバッテリなんかじゃ直でつなぐとバチバチとショートするので、電池でもできるだけやらないほうがいい。


電源ON/OFF表示のLED作成をめざして


上で例を挙げたLEDを実際に作ってみたい。

必要なもの

部品:
  1. ブレッドボード
  2. ジャンパワイヤ
  3. 抵抗(330Ω)
  4. 単色LED

1は半田付けなしで回路を作成できるボードで、プロトタイピングなどで使用される。

こんなやつ。初めは小さいもので問題ない。400穴くらいか。

2は拡張ピンやブレッドボードの穴などをつなぐ電線。
拡張ピン-ブレッドボード間をつなぐならオス-メスのもの、ブレッドボード間の穴をつなぐならオス-オスを買うといい。
ある程度量があると便利なので、10〜20本単位で買っといて、買い足していけばいい。

3はとりあえず330Ωのものが必要だが、1kΩとかのものがあったら便利。
こちらもそれぞれ10〜20単位で買っておくといい。今回は1本使うだけだが。


こんなやつ。ちなみに、抵抗はその模様(縞)の色で抵抗値がわかるようになっている。
上の場合は、オレンジが3を表し、茶が1を表す。331と見えるが、3つ目の数値はゼロの数を表す決まりなので、330となり、330Ωを表しているとわかる。(見えづらいが、最後の金色は仕様上の誤差を表す)
詳しい調べ方はググってね。

4は単色ならなんでもいいが、電源LEDだと赤とかが定番か。


道具:
  1. ニッパ
  2. ラジオペンチ
  3. ピンセット

道具はこんなもん。使いやすいやつならなんでもいいかと。
ピンセットは、先の曲がっているやつが個人的には使いやすい。

あとは、抵抗に付いているリード線の破片がたくさん出るが、短いリード線は結構便利なので再利用する。
そんな細かい部品を分けて入れておけるような、区分けされた箱みたいなものがあると、ちらからなくていい。


構成


ブレッドボードの内部は、下図のように各穴が電線で接続されている。



これを踏まえた上で、今回の回路構成は、こんな感じになる。



まず、拡張ピンのピン番号1からブレッドボードを経て抵抗に繋がっていて、抵抗の先にはLEDが繋がっている。その先に、ブレッドボードの端の方の列を経て、拡張ピンのピン番号39に繋がっている。
先ほの拡張ピンの表で確認すると、ピン番号1は3.3V、ピン番号39はGNDになっている。

青い線は電線を表している。長い部分はジャンパワイヤでつなぐといいけど、ボード上の短いところは、余った抵抗のリードなんかで繋いだ方がすっきりしていい。

作成


上記回路を実際にに作ってみよう。

まずはRaspberry Piの電源を外す。慣れたらいいかもだけど、慣れないうちは、電源が入ったままワイヤが思わぬ部分に触れてショートしてぶっ壊れるなんてことがありうるので、極力そういう要素を排除して作成した方がいい。

拡張ピン1からブレッドボードにジャンパワイヤをさすのは問題ないだろう。メス-オスをつかう。

次は抵抗。これは素子から出ているリード線を曲げてコの字にしてボードにさす必要がある。
リード線が長いので、邪魔な部分はニッパで切るといい。切ったリード線はとっておくように。
抵抗には方向性がないので、どっち向きにさしてもいい。


こんな感じ。

次はLED。LEDからは2本リード線が出ているかと思うが、これは長さが異なる。
長い方を「アノード」といって、電圧の高い方につなぐ。
短い方を「カソード」といって、電圧の低い、GND側につなぐ。
LEDのリード線もちょっと長いので切った方がいいが、どっちがアノードかわからなくなるのを防ぐため、切った後もアノードが少しだけ長くなるよう気をつけて切る。


長い方を電圧の高い、3.3V側に近い方につなぐ。

次はボード上の穴を短い電線でつなぐが、これは先ほど抵抗を切った際に余ったリード線を使うといい。
リード線をコの字に曲げてさす。

最後に、ボードの端の列の端の穴と拡張ピンのピン番号39をつなぐ。
LEDの後に直接GNDと繋いでもいいが、ブレッドボードの端の列をGNDにしておくと今後何かと便利なので、このような構成にした。
(この列のどこの穴にさしてGNDに繋いだことになる)


ここまで出来たら、Raspberry Piの電源を入れてみよう。
LEDがついたら完成となる。


また、ピン番号1から線が出ているが、これをピン番号2の5Vに繋いでみると、若干明るく光る。
ピンを変えるときは電源を落として差し替えるか、Raspberry Pi拡張ピンの方のワイヤソケットを差し替えるだけにすること。
電源を入れたまま間違ってブレッドボードの方のワイヤピンを抜くと、それがGNDに触ってしまったらショートするので気をつけて。


今回はここまで。
まだ開発ではないが、電子回路ことはじめといった内容になったので、良しとしよう。

次回はGPIOを制御して、プログラムでLEDをつけたり消したりする。

0 件のコメント:

コメントを投稿