5
4 電子工作にチャレンジ!

電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

章第4電子工作にチャレンジ!

Page 2: 電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

232

この章では、Raspberry PiならではのPythonプログラムを紹介します。Raspberry Piは普通のパソコンとして使うこともできますが、拡張コネクタを利用することで普通のパソコンでは簡単にできないモーターやカメラといった機器やさまざまな電子回路の制御を、Pythonのプログラムを使って気軽に試すことができます。これによって、これまでは画面上で動作するだけだったプログラムが現実世界でも動き出します。自分のプログラムでモノを動かす楽しさを実感してみてください。

4.1 電子工作の基礎知識

この節では、これから電子工作をするにあたって必要となる電子回路の基礎知識を説明します。電

子工作というと専門的な知識が必要で取っつきにくい印象があるかもしれませんが、たとえ専門知

識がなくても、ポイントさえ押さえれば必ず動作させることができます。ただし、扱いを間違えると

Rasberry Pi本体や部品を壊してしまう可能性があるので、必要最低限の内容をしっかり理解して、

安全に電子工作を楽しんでください。

(1)アナログ信号とデジタル信号まず最初に、電子工作の基本になる信号について説明します。信号とはいったい何でしょうか。『デ

ジタル大辞泉』(小学館)には、「色・音・光・形・電波など、言語に代わる一定の符号を使って、隔たっ

た二地点間で意思を伝達すること。また、それに用いる符号」と記述されています。この定義にそっ

て考えれば、電子工作における信号とは「電気を符号として使い、意思を伝達するもの」ということに

なります。Raspberry Piでプログラムを動作させ、そのプログラムを通じて製作者の意思を信号とし

て電子回路に伝えることで、電子回路が制御できるのです。

それでは電気信号とはどのような信号なのでしょうか。電気信号は大別するとアナログ信号と

デジタル信号に分かれます。再び『デジタル大辞泉』を調べると、アナログとは「数値を連続的に変化

する物理量で示すこと」、デジタルとは「連続的な量を、段階的に区切って数字で表すこと」とありま

す。アナログ信号とデジタル信号を図示すると図4.1.1のようになります。

アナログ信号では電圧が連続的に変化しているのに対し、デジタル信号では電圧が0V(グランド)

の状態または電源電圧のいずれかになっているのがわかります。図のようにデジタル信号は二つの電

圧の状態のみを持ち、前者の状態をローレベル、後者の状態をハイレベルといいます(厳密にはそれ

以外の状態もあるのですが、ここでは触れません)。

Page 3: 電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

4.1 電子工作の基礎知識

233

電子工作にチャレンジ!

4

図4.1.1 アナログ信号とデジタル信号

電圧

0V(グランド)時間

電圧

0V(グランド)

電源電圧 電源電圧

時間

(a)アナログ信号 (b)デジタル信号

いずれの信号も電圧の変化によって情報を伝えるという点は共通ですが、アナログ信号の取り得

る電圧値は0Vから電源電圧まで連続的で無段階であるのに対して、デジタル信号はローレベルとハ

イレベルのいずれかの状態しか取り得ないという違いを覚えておいてください。ただしどちらの場合

でも、「電圧の変化を信号として伝達し、それによって電子回路を制御する」という点は同じです。

(2)オームの法則電子回路に限らず、電気を扱う場合にどうしても避けて通れないのがオームの法則です。逆に、オー

ムの法則さえ押さえておけば、たいていの場合なんとかなるものです。

オームの法則とは「導体に流れる電流の大きさは、その導体の両端の電位差に比例する」という物

理法則です。図4.1.2のような回路で考えた場合、電源電圧をV[V](ボルト)、回路に流れる電流をI[A]

(アンペア)、抵抗をR[Ω](オーム)とすると、オームの法則は以下の式で表されます。

オームの法則 V=I×R

図4.1.2 基本的な電子回路

R

I

V

Page 4: 電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

234

電子回路の場合、電源電圧が途中で変わることはほとんどありません。Raspberry Piの場合は3.3V

で一定です。このため、この式を使うのは電流値か抵抗値を求めるときということになります。電流

値、抵抗値を求める場合は、先ほどの式を次のように変形して使うことになります。

 電流値 I = VR

 抵抗値 R = VI

電流値の式より、R=0の場合、つまり電池のプラス極とマイナス極がつながった状態(この状態を

「ショートする」という)になると、電流値が無限大になることがわかります。しかし、無限大の電流を

流すことができる電源は存在しません。電源(たとえばRaspberry Piに使用するACアダプターなど)

には流すことができる電流値が仕様で決められており、仕様を超える電流値を流そうとするとその電

源は壊れてしまいます。電子工作をするにあたって、一番注意しなければいけないのがこの状態です。

ショートの箇所によっては、被害が電源だけにとどまらないこともあります。最悪の場合、Raspberry

Piを壊してしまうこともあり得ますので、十分に注意してください。

(3)電子部品の絶対最大定格電子部品の仕様には絶対最大定格という項目があります。これは「この値を一瞬でも超えると部品

が壊れてしまう」という値です。電子工作を行う上で、部品を壊さないために最低限守らなくてはな

らない数値です。

たとえばLEDの場合、順方向電流の絶対最大定格が決められています。電流の絶対最大定格が

30mAと記述されていたら、このLEDには30mAを超える電流を流してはいけないということです。

では30mA以上の電流を流さないためにはどうすればよいでしょうか。ここでオームの法則が登場

します。回路の電流を調整するには抵抗値を変えればよいのです。どのくらいの抵抗値が必要になる

かは先ほどの式から計算することができます。ここでは電源電圧を仮に5Vとして計算します。

 R = VI

= 5 [V]÷0.03 [A] = 166.67 [Ω]

計算結果より、回路に166.67[Ω]より大きな抵抗を入れれば、絶対最大定格を超える電流が流れ

るのを防止できることがわかります(実際にLEDに流す電流値を計算するには、もう少し別の要素も

考慮しなければいけません。これについては「4.3 最初の一歩(LEDとスイッチ)」で説明します)。

このように電子部品を壊すことなく安全に使用するには、電流値、電圧値を部品の仕様として定

められた値の範囲内に収まるようにしなければいけません。そこで活躍するのがオームの法則にな

ります。

Page 5: 電子工作にチャレンジ! - ric.co.jp4.1 電子工作の基礎知識 235 電子工作にチャレンジ!4 (4)Raspberry Piで電子回路を制御する 一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。Raspberry

4.1 電子工作の基礎知識

235

電子工作にチャレンジ!

4

(4)Raspberry Piで電子回路を制御する一般的にマイコンなどはデジタル回路で構成されており、扱う信号もおもにデジタル信号です。

Raspberry Piで電子回路を制御する場合も、デジタル信号を出力して回路に命令を送り、また回路か

らのデジタル信号を入力して処理することになります。

Raspberry Piによってデジタル信号の入出力を行うには、拡張コネクタを使用します。拡張コネク

タにさまざまな電子部品を接続することで、それらをPythonなどのプログラムから制御できるよう

になるのです。

Raspberry Piの拡張コネクタの各ピンの役割を図4.1.3に示します。

図4.1.3 Raspberry Piの拡張コネクタ

備考 機能 ピン名 ピン番号 ピン番号 ピン名 機能 備考50mAまで(1番ピンと17番ピンの合計) 3.3V 1 2 5V

1.8kΩプルアップ抵抗付 I2C1(SDA) GPIO2 3 4 5V1.8kΩプルアップ抵抗付 I2C1(SCL) GPIO3 5 6 GND

GPCLK0 GPIO4 7 8 GPIO14 UART0(TXD) 起動時にシリアルコンソールとして使用

GND 9 10 GPIO15 UART0(RXD) 起動時にシリアルコンソールとして使用

GPIO17 11 12 GPIO18 PCM_CLK、PWM0PCM_DOUT GPIO27 13 14 GND

GPIO22 15 16 GPIO2350mAまで(1番ピンと17番ピンの合計) 3.3V 17 18 GPIO24

SPI0(MOSI) GPIO10 19 20 GNDSPI0(MISO) GPIO9 21 22 GPIO25SPI0(SCLK) GPIO11 23 24 GPIO8 SPI0(CS0)

GND 25 26 GPIO7 SPI0(CS1)拡張基板(Hat)に搭載のEEPROM用信号 ID_SD 27 28 ID_SC 拡張基板(Hat)に搭載のEEPROM用信号

GPIO5 29 30 GNDGPIO6 31 32 GPIO12 PWM0

PWM1 GPIO13 33 34 GNDその他の機能:PCM_FS SPI1(MISO)、PWM1 GPIO19 35 36 GPIO16 SPI1(CS2)

GPIO26 37 38 GPIO20 SPI1(MOSI) その他の機能:PCM_DINGND 39 40 GPIO21 SPI1(SCLK) その他の機能:PCM_DOUT

※Raspberry PiのModel A、Bは26 ピンまでになります

ピン名に「GND」(グランド)と記述されているピンは、電池でいうマイナス極です。「3.3V」と記述

されているピンは、GNDピンに対して3.3Vの電圧が出力されており、電池でいうプラス極、つまり

電源ピンということになります。同様に「5V」と記述されているピンは、GNDピンに対して5Vの電

圧が出力されている電源ピンです。

ピン名に「GPIO」という記述が入っているピンがプログラムで制御できるピンです。GPIO(General

Purpose Input/Output)は汎用入出力を表し、これらのピンはプログラム内で信号を入力するピン(入

力ピン)、または信号を出力するピン(出力ピン)のいずれかに設定できます。なお、GPIOピンが扱う

ことができるのはデジタル信号のみです。Raspberry Piの拡張コネクタには、直接アナログ信号を入

力、出力できるピンはありません。アナログ信号を扱うには、そのためのICを拡張コネクタにつなげ

る必要があります(くわしくは「4.6 ICをつなげる①(SPI)」を参照)。