SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Tessel 2ではじめるセンサー電子工作入門

Tessel 2で赤外線センサーを使って、人感チャイムを作ってみよう

Tessel 2ではじめるセンサー電子工作入門 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Web系の知識でかんたんに操作できる初心者向けのマイコンボードTessel 2に、ブレッドボードを使っていろいろなセンサーを接続する電子工作を紹介します。前回は光センサーを使用したLEDの制御について解説しました。今回は赤外線センサーを使用した、人感チャイムをつくる方法を解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

 IoTに興味があり、電子工作とJavaScriptの基本的な知識がある方を対象とします。電子工作のごく初歩的な説明は割愛しているので、「ラズベリーパイをつかったセンサープログラミング超入門」の記事なども併せて参照してください。

はじめに

 前回の連載「Tessel 2ではじめるお手軽IoT」では、ワンボードマイコンTessel 2に、専用の気候センサーモジュールやUSBカメラを接続する方法を紹介しました。この連載では、そのような専用のハードウェアモジュールではなく、ブレッドボードと呼ばれる基板を使ってTessel 2にセンサーを接続してみます。今回は、人感センサーとスピーカーの接続です。

人感センサー

 人感センサーとは、赤外線や超音波などを利用して人間の存在を検知するためのセンサーです。人が近づいたらしばらくのあいだ点灯する電灯や、手を近づけると水が出る蛇口などで使われています。

焦電型赤外線センサー

 今回は、以下の画像のような赤外線を検知するタイプの人感センサーモジュールを利用しました。Amazonなどで非常に安価に入手できるものです。

赤外線センサーモジュール
赤外線センサーモジュール

 このモジュールは、赤外線を検知する焦電型赤外線センサーと周辺回路が組み込まれたものです。赤外線を物体に放射すると起電力が発生する、焦電効果を利用したセンサーのため、焦電型赤外線センサーと呼ばれています。

 今回接続するものはモジュールタイプで、電源を用意するだけで他のパーツを接続することなく、単なるスイッチと同様に利用できます。

赤外線センサーモジュールの使い方

 今回利用する赤外線センサーモジュールには3つの端子があります。2つは電源用の入力端子で、残りがセンサーの出力端子になっています。入力電源は4~6V程度の直流電源です。出力端子は通常は0Vとなっていて、人を検知すると3.3Vを出力します。したがってそのままTessel 2のピンに接続するだけで、人を検知することができます。また、このセンサーモジュールには、抵抗値を調整できる2つの半固定抵抗があります。1つは人を感知する距離の調整で、もう1つは、検知した後に出力をどの程度の時間保持するかの調整を行います。

 電源として入力する電圧ですが、このセンサーモジュールだとTessel 2の3.3Vの出力では足りないようで、うまく動作しませんでした。センサーモジュール内部の回路は3.3Vで動作しているものの、広い電圧に対応するために3端子レギュレータと呼ばれるパーツが組み込まれていることが原因のようです。

 3端子レギュレータとは、入力した電圧を変換して一定の電圧に整える電子部品です。今回のセンサーモジュールでは、この3端子レギュレータを使って3.3Vに変換しています。3端子レギュレータでは電圧を増幅するわけではないため、3.3V以上でないと正常に3.3Vに変換できません。

5Vの電源を取り出す

 Tessel 2の3.3Vの出力を利用する場合は、赤外線センサーモジュール自体を少し改造して、モジュール内の3端子レギュレータをバイパスする必要がありそうです。ただ、今回は別の方法で対処することにしました。実はTessel 2から5Vの電源を取り出す方法があるのです。赤外線センサーモジュール以外にも利用できるため、この電源を活用することにしました。

 Tessel 2の基板を見ればわかる通り、USBの入力端子の近くに5Vの入出力パターン(ホール)が用意されています。これはTessel 2自体の電源として、USBの代わりに入力するための端子とその電源をそのまま出力できる端子です。

5V入出力端子
5V入出力端子

 ただし、これを利用するにはTessel 2にピンヘッダなどをハンダ付けする必要があります。ピンヘッダとは次のような形をしたピン状のもので、基板上に端子を設ける場合に使われる部品です。

ピンヘッダ
ピンヘッダ

 ピンヘッダをTessel 2にハンダ付けすると、次のようになります。

5V入出力端子(ピンヘッダ取り付け後)
5V入出力端子(ピンヘッダ取り付け後)

接続

 回路はとてもシンプルです。赤外線センサーモジュールのGNDとVCC端子に、Tessel 2にハンダ付けしたピンヘッダを介して5Vの電源を接続します。そして、センサーのOUT端子をGPIOの2番ピンに入力するだけです。

回路図
回路図

入力を参照する

 センサーの動作を確認するコードを書いてみましょう。最初にt2 initコマンドでひな形を作成しておきます。そして作成されたindex.jsを以下の通りに書き換えます。

index.js
const tessel = require('tessel');
const pin = tessel.port.A.pin[2]; // ポートAの2番ピンのオブジェクト

// ピンの入力電圧の上げ下げでコールバックが実行される
pin.on('change', function(v) {
    console.log(v);
});

 このサンプルはセンサーが人を検知してOUT端子に3.3Vが出力された場合に、コンソールに出力するコードです。ピンオブジェクトのonメソッドで、センサーの出力を割り込みイベントとして登録しています。人を検知すると1が出力され、しばらくすると0が出力されます。

次のページ
スピーカーでチャイムを鳴らす

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Tessel 2ではじめるセンサー電子工作入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10197 2017/06/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング