第1回:Lチカonラズパイで、オームの法則・GPIO・トランジスタをちょっと詳しく知る
ラズパイの簡単工作を通して、電子工作の原理や基本を学ぶこの連載。教えてくれるのは、メディアアートの分野で、また「ちょっと深い仕組み」を解説する書籍の世界で活躍している、伊藤尚未さんです。前回のLチカに続き、ラズパイでモータを制御するため、少し大きな電流の扱い方を学びます。
◆
[目次]
1. はじめに
2. LEDの構造
3. LEDの性能
・明るさに二つの表記がある カンデラ?ルーメン?
・色温度
・広角、狭角
・工作にあったものを選ぼう
4. ラズパイでモータを制御してみよう
・大きな電流を扱うために必要なもの
・PWMによる制御
5. まとめ
1. はじめに
二度目まして、伊藤尚未です。
小学校でプログラミングの授業が始まるというハナシですが、各方面でいろいろな思惑と期待と困惑にどよめいています。私個人としましては、まずは動向を静観視しながら、行く先を見据えながら、隅のほうで関わっていくことになりそうな今日このごろです。
さて、前回はラズパイのGPIOを使ってLEDを点けることをやりましたが、電子部品を扱う以上電気の流れを意識しないといけないということから、LEDの電流制限抵抗器のハナシをしました。
オームの法則で計算できるというハナシでしたね。今やLEDは実にさまざまな製品が市場に出ているので、定格表、データシートをよく見ましょう、ということです。回路設計には電圧と電流に注意するに越したことはありません。
電圧が高すぎたり、電流が流れすぎてしまうと壊れてしまうこともありますので、せっかく苦労してつくったものがそんな不注意で壊れてしまうとホントにもったいないですね。
しかし、もしそうなってしまっても、それも良い経験として人生のコヤシにもなるので諦めないでください(もちろん私も経験があります)。
とはいえ、あまり積極的に「どんどん壊しましょう」とは言えません。壊れる以外に部品が爆発、発熱などで怪我や火事など事故の元となることもありますので、十分に注意が必要です。
さ、気を取り直して、LEDの性能についてもうちょっと触れておきましょう。
1. LEDの構造
砲弾型LEDの中を見るとこんなカタチになってます。
実際に光を出す部分は真ん中のお皿状の中に入っている小さなチップです。お皿が反射板になり、パッケージの先端がレンズ状になっているので上に向かって光が多く出ます。
製品によってはアノード側にお皿がついてる場合もありますので、必ずしも内部のリードフレームの形状で判断できません。
2. LEDの性能
・明るさに二つの表記がある カンデラ?ルーメン?
LEDのデータシートをみますと、明るさを示す単位で「cd(カンデラ)」と「lm(ルーメン)」という表記を見かけます。どちらも明るさを数値で示すものですから、数字が大
きい方が明るいと言えますが、それぞれの意味は異なります。
光源から出た光を線と考え、光の束「光束」としたときに、光源から何本の光束が出ているか?これが「lm(ルーメン)」。実際には器具の形でレンズや反射板によって後ろには光が漏れなかったり、一方向に向く場合もあるので、単位角当たりの光束を示すものを光度と言い、「cd(カンデラ)」で表しています。
また、明るさの単位で「lx(ルクス)」を聞くことがあるかもしれません。これは当たった面の明るさを示しており、まとめるとこんなカンジになるでしょうか。
ちなみにこれはよく見る砲弾型のLEDで、樹脂パッケージ内部の反射で多少背面にも光が漏れますが、パワーLEDなど背面に放熱を兼ねたアルミ基板などがある場合、後ろには光が漏れません。部品製品をみると明るさの表記がパワーLEDはlmが多いのはこういった製品構造を配慮した表記かもしれません。
・色温度
色の温度とは、「K(ケルビン)」という単位で示されるものです。例えば鉄釘をコンロであぶったときにだんだんと赤くなっていきますね。赤い光を放っているわけです。これを熱放射といいますが、温度が高くなると色が黄色になっていきます。この温度により色が変わることを定量的に捕らえ、色を表記するものです。
特に白色LEDの場合、青白いものから電球色といわれる橙色に見えるものまでさまざまで、色温度の数値が高いほうが青白くなります。
・広角、狭角
半減角などとも表記されますが、光の広がりを示しています。これはパッケージのレンズやリードフレームの構造で変わってきます。例えば同じ明るさのLEDでも狭角であれば中央が一番明るく、周りは急激に暗くなりますが、広角の場合は光が広く広がるので、ある程度は満遍なく明るくすることができます。
・工作にあったものを選ぼう
さて、これでLEDのことはだいぶ分かったのではないでしょうか?あとは目的に合ったLEDを選ぶことでしょう。
例えば工作によって明るければ明るいほど良い、というわけではありません。もちろん予算も関わってきますが、照明として何かを照らす場合には明るい方がいいのですが、表示として使う場合は暗くても構いません。暗いところで、ムチャクチャ明るい7セグメントLEDなんか夜に見たら、文字が滲んで見えてしまい、数字を読むことが難しいでしょうし。
3. ラズパイでモータを制御してみよう
さて、ハナシをラズパイに移します。
ラズパイでLED以外のものを制御するにはどうしましょう?LEDよりも大きな電流を必要とする機器……そう、例えばモータの場合はどうしましょう?
模型工作用で有名なDCモータと言えばマブチさんのものでしょう。このなかでもスタンダードなFA-130RAを例にしましょう。
パッケージに書いている性能表をみると1.5V~3V、500mAとあります。模型や玩具で使うことが多いので、乾電池電源を考えた電圧設定になっているようです。
モータは磁界のなかでコイルが受ける力により回転運動を得ます。またコイル単体ではリアクタンスなどという、見えるような見えないような抵抗を発生するので、電気の流れのイメージがつかみにくいかもしれません。
とりあえず、パッケージ記載の3V500mAで考えてもいいでしょう。
500mAということは、前回の記事でLEDを制御する際に使ったトランジスタ2SC1815では「コレクタに流れる電流は150mAまで」と定格表にありますので、電流値がオーバーしてしまいます。ではどうするか?
これにはいくつかの方法、部材があります。
・大きな電流を扱う
比較的大きな電流を流せる部材をあげますと、まずモータドライブ専用拡張ボードやモータドライバICを使うことが考えられます。これらはそのボードやICの機能によりますので、正転、逆転、ブレーキなど使い方によっては非常に便利かもしれません。
他にリレーを使う方法があります。リレーはコイル=電磁石で接点を接触させる仕組みですので、製品によってLEDのときと同じようにトランジスタなどでコイル部分をドライブしてあげる必要があるかもしれません。いわばスイッチと同じなので、定格範囲内であれば、コンセント(100V)の製品もON-OFFすることができます。しかし物理的な接点を持つため、使用頻度によって、寿命が左右されます。これと同じ使い勝手で半導体で構成されるSSR(ソリッドステートリレー)というものもあります。
と、手法をいくつかあげてみました。まだ、私も知らないデバイスがあるかもしれませんし、どのような作品を作るのかによって適するものを選ぶとよいかと思います。
ここでは基本に返ってトランジスタでドライブしてみようと思います。
ただし、大きな電流を流すために2SC2655Lというもの選びました。これはコレクタ電流が2Aまで流せます。ということはこのDCモータを駆動するには十分ではないでしょうか?LEDのときと同じ回路でつなげることができますね。
回路はトランジスタのベースにGPIOから1kΩの抵抗を通してコレクタに接続したモータを回します。
ブレッドボードで組むとこんなカンジ
Scratchでのプログラムは前回同様のものを使ってみました。つまりLEDなどのデバイスが変わったところで、プログラムは同じものが使えるということですね。とはいえ、動きは全く異なってきます。それはモータはLEDのようにパッと動き、パッと止まるわけではないからですね。
とりあえず、下記のようなカタチにしてみました。GPIOを宣言し、4番ピンを出力に設定、その後1秒ごとにON-OFFを10回繰り返します。
モータにはファンをつけたので、扇風機のように使うことを想定しましょう。ブレッドボードでいろいろ付け替えられるように扇風機実験装置ですね。
これから夏ですし、良いのではないかと。
さて、モータを回すだけではスイッチの代わりにすぎないので、ONまたはOFFしかありません。せっかくラズパイで動かすのですから、なにか制御したいですね。
では、回転速度を制御するにはどうしたらよいでしょうか?
最近の扇風機でも「そよ風モード」など断続的にやさしい風を送ってくれるものもありますし、これを再現してみましょう。
・PWMによる制御
デジタルコントロールの手法として多く用いられている制御方式でPWMという方法があります。
これは「パルス幅変調」と訳されますが、速い信号周期の中で1周期のONの状態、OFFの状態をパルスの幅で変える手法です。ONが長い状態(図2)になっていれば短い状態(下記、図3)よりも結果的に流れる電気の量が多くなります。つまり、DCモータの場合速くなり、反対は遅くなります。
さて、Scratchではこのように組んでみました。GPIOを宣言、4番ピンをPWM出力に設定、「power4」という変数をつくり、初期値として0にします。
演算ブロックでGPIO4に「power4」を出力。また、画面の中の変数の表示をスライダー表示にしてスライドボタンをドラッグすると風量コントロールできるようになります。このときにスライダーの最大値を「1023」にしておけば、フルで回ります。
おっと、どうせなら自動的に風を止めたり、吹かせたり、繰り返せるようにしてみましょう。また、せっかくですからLEDもつけてみましょう。
やはりPWMでだんだんと明るくなって暗くなり、これにあわせて扇風機が回ります。
回路はこのように。
ブレッドボードはこうかな。
Scratchはこんな組み方で。
変数部分を上げて最大値で5秒状態保持、その後変数を下げて0で5秒保持、この繰り返しにしています。LEDの明るさもこれに従っています。
いよいよ実験装置らしくなってきました。
いかがでしょうか?目にも体感的にも涼しくなる扇風機、、、?
これで夏の暑い日も快適にものづくりできますでしょうかね?
4. まとめ
メディアアーティストをやっていると時折エンジニアとカンチガイされることがあります。それはこういったデバイスを使った作品をつくっているという見え方、外部からの評価がそうなるのでしょう。そんなときに説明するのは、「世の中に役立ったり、生活を便利にするものをつくるのがエンジニアです」、と。
ってことは、アーティストってのは、、、、、
ま、今回はそういう意味ではエンジニアっぽい作品になってしまったかもしれません。次回もちょっと仕組みと組立方を考えながら、センサを使ってみようかと思います。
アート作品をつくるのも、絵の具の特性や道具の使い方が分かっていないとつくれませんものね。
今回の連載の流れ
第1回:Lチカonラズパイで、オームの法則・GPIO・トランジスタをちょっと詳しく知る
第2回:Lチカ+モータonラズパイ。より大きな電流の扱い方を知る(今回)
第3回:ラズパイを使ったセンサ入力の実験
第4回:センサを使ったおもしろアイテムの簡単工作
第5回:風のままにキャラクタが動いてグラフィック作品ができる装置の制作
第6回:自然の力をデジタル制御するグラフィック装置の制作