さあ、いよいよ「電子工作入門」のスタートです。
これまで学んだことを活かして、初めての「モノづくり」に挑戦しましょう!
実際に動く「どきどきウチワ」を作りながら全4回の連載で必要になる知識を解説します。いざっ!

「最初の一歩」、必要な機能を考えよう!

記念すべき初めての「モノづくり」に挑戦します!まず、何を作るか……これからの暑い夏に向かって爽やかな風を送ってくれる「ウチワ」はどうでしょう? そう、心臓のドキドキに合わせてあおいでくれるウチワを作りましょう。心拍が速ければ、ウチワが一生懸命にあおいでくれるなんてちょっと素敵! 「どきどきウチワ」と名付けます。

「どきどきウチワ」をどうやって作るかを考えます。この装置は、「心拍を知り、それに合わせてウチワを振る」のが機能です。これを分解すると、心拍を知る部分と、ウチワを振る部分に分かれます。また、「それに合わせて」の部分を実現するための制御が必要になります(図1)。

図1:「どきどきウチワ」に必要な機能

図1:「どきどきウチワ」に必要な機能

1. 心拍を「知る」

「心拍検知部」には、心拍センサを使います。心拍センサは、光センサを使って血管の光反射率の変化を捉えるものです。ドクッと脈打つときに、血流の変化が反射率の変化を引き起こすことを利用しています。

※今回の電子工作「どきどきウチワ」では、市販の心拍センサの中からコチラを採用することにします。

2.「制御」する

「制御部」には、多くの電子機器でハードウェアの制御を担っているマイコンを使用します。まさに電子機器の頭脳と言える存在です。今回はこのマイコンを簡単に使えるように用意されている電子工作ボード「GR-SAKURA」を利用します。

「GR-SAKURA」は、電子工作を気軽に楽しむことを目的に、ルネサスで発足したプロジェクト「がじぇっとるねさす」から生まれました。とても高性能で豊富な機能を内蔵しているマイコン「RX63N」を搭載した工作ボードなので、さまざまな電子工作が可能です。
また、マイコン用のプログラムを容易に作成できるクラウド環境、そしてサポートも充実しているので、初めての電子工作にはうってつけです。「GR-SAKURA」に関しては、本連載の二回目で使い方をしっかりと解説します。

GR-SAKURA

3. ウチワを「振る」

ウチワを振るためには、サーボモータを使います。サーボモータとは、入力信号に示された量だけモータが回転し、信号を入れ続ければそこでピタリと止まったままになる便利なものです。普通のモータは、回転はしますが「どれだけ回る」という回転量の制御はできませんし、「そこでピタリと止まっている」といった制御もできません。サーボモータは、ラジコンなどでよく使われています。

※今回の電子工作「どきどきウチワ」では、市販のサーボモータの中からコチラのシリーズを採用することにします。

博士

「どきどきウチワ」に必要な機能とそのための構成は理解できましたか。次に、各部で必要となる処理について考えていきましょう。

心拍検知部~制御部:A/D変換

最初に、心拍検知部から制御部へ情報を送る処理を考えましょう。心拍センサからはアナログ信号が出力されます。しかし、その信号を受け取る制御部であるマイコンはデジタル信号しか扱えません。そのため、アナログ信号をデジタル信号に変換する必要があります。この変換をA/D変換と呼びます。

A/D変換では、アナログ信号を一定間隔(分解能)で切り取る「(1)サンプリング」を行い、次に切り取った信号の大きさを数値としてとらえる「(2)量子化」を、そして、読み取った数値を「(3)符号化」します(図2)。つまり、アナログ入力信号を、「1秒間に10回(10Hz)、1024段階の細かさ(10bit)で読み取り、二進数(デジタル数値)に変換する」といった処理をします。

図2:A/D変換の原理

図2:A/D変換の原理

このA/D変換は通常、電子機器の制御を行うマイコンに内蔵されています(マイコン内蔵の周辺機能の一つ)。「どきどきウチワ」で使用する「GR-SAKURA」のマイコンには、10ビットと12ビットのA/D変換器が一台ずつ内蔵されています。

制御部~ウチワ振動部:PWM制御

続いては制御部からウチワ振動部への処理を考えましょう。サーボモータは入力信号に示された量(与えるパルスの幅)で回転量が決まります。狭い幅のパルスを送れば回転角は0度、中くらいの幅ならば90度といったものです。ここで言う「パルスの幅」とは、マイコンからサーボモータへの出力が「H」になっている時間のことです。

また、サーボモータは、一定の時間ごとにパルスを送り、希望の位置(回転角)を知らせる必要があります。ここで、同じ幅のパルスを送り続ければ、回転角が保持されることになります。実際にウチワを振るには、例えば、0度→60度→0度というように振る角度を変えて指示を出し、0度もしくは60度の所で一旦停止することになります。

図3:PWM概要図

図3:PWM概要図

このようにサーボモータの制御のためには、マイコンから「H」の出力時間を必要に応じて変えたパルスを定期的に送り出します。この方式を「PWM(Pulse Width Modulation:パルス幅変調)」と呼びます(図3)。

通常、パルスが「L」から「H」に立ち上がってから、次に立ち上がるまでの期間(LとHの期間を合わせた信号全体の幅)をパルス周期(フレーム)と呼びます。

PWM制御の基本が理解できたところで、「どきどきウチワ」で使用するサーボモータのマニュアルを確認しましょう(図4と図5)。※良い機会ですのでマニュアル原文の英語で見ていきましょう。

出典:「APPLICATION NOTE FOR RPV SERVO MOTOR」

http://www.gws.com.tw/english/product/servo/servo%20form.htm

図4:パルス幅と周期(フレーム)

図4:パルス幅と周期(フレーム)

図5:動作角度

図5:動作角度

周期(フレーム)の長さは16~23msと規定されています。パルス幅は最大2.1 ms、最小0.9 msです(図4)。そのフレームの中で、「H」の部分が1.5 msであるとサーボモータは中立(真ん中の位置)を保ちます(図5)。60度時計方向に回すには「H」の部分の時間を0.9 msに減らします。逆に60度版時計方向に回すには「H」の部分を2.1 msにすると規定されています。

このようにサーボモータの制御には、既定の周期で必要な幅のパルスを出力するという、「時間」の概念が必要なことがわかりました。しかも、その単位は「ms(=msec)」、つまり1/1000秒単位です。この非常に小さい単位で「時間キッカリに物事を行う」ために、「GR-SAKURA」のマイコンには高度なタイマ機能が内蔵されています。

まだ、心拍センサからの信号がどのようなものか判りませんし、どうやって心拍を判断するかも決まっていません。でも、入力(心拍)と出力(サーボ制御用パルス幅)は、このような時間の細かさや制約で制御する必要があるということを記憶に留めておいてください。

博士

次回の電子工作入門(2)では「GR-SAKURA」の使い方を実践的に解説、その後は実際の工作をハード編とソフト編に分けて解説します。どうぞお楽しみに!

今回の解説と関連の深い「組み込みシステム入門」の過去記事をご紹介します。ぜひご参考ください。