8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IoTLTAdvent Calendar 2017

Day 20

micro:bitを使って初めての電子工作【ドア開閉センサーを作ろう】

Last updated at Posted at 2017-12-20

micro:bitとは?

micro:bitは、イギリスのBBC放送が主体となり開発した教育向けのマイコンボードです。
日本では、2017年に技適を取得して、現在、株式会社スイッチエデュケーションから販売されています。
主に子供向けのプログラミングボードとして販売されていますが、日本では子供よりも大人が飛びついている印象です。(私だけかもですが...)
小型で安価(2160円)ながらも、入力インタフェースや、センサーがついており、micro:bit一台で様々な電子工作ができるのが魅力です。

micro:bitに内蔵されている入力インタフェースやセンサー

micro:bitには、システムスイッチ以外に、2つの物理ボタン、25個のLEDがついています。このLEDは出力インタフェースとしてだけでなく、光センサーとしても活用できます。
また、コンパス、加速度センサーも内蔵されています。
micro:bitの最大の特徴はBLE(Bluetooth Low Energy)ではないでしょうか。
BLEはmicro:bit同士の通信や、micro:bitとBluetooth機器の通信、そして制御も可能にします。まさにIoTにはうってつけのデバイスでしょう。

プログラム環境

micro:bitには複数の開発環境が用意されています。
(詳しくはこちら: https://microbit.org/ja/code/
micro:bit公式では、「JavaScriptブロックエディタ」「Pythonエディター」の2つの開発環境があります。
いづれも、Webブラウザ上で開発ができますので、インストールなどが不要なのも魅力です。Webブラウザを使用しますが、開発はオフラインでも行え、データ自体は自身のPCに保存されますので、ネットワークが無い環境でも開発が可能です。
また、「micro:bit」というアプリを使い、iPhone、Androidでもビジュアルプログラミングができ、USBを使わずに、Bluetoothを使って、プログラムを書き込むことができる開発環境も用意されています。
長時間の移動の時、ちょっとものづくりしたい!そんなメイカーさん心をくすぐりますね。

ドアセンサーのプログラム

ここまで、ざっとmicro:bitの紹介をしました。それでは、よくIoTネタなどで出てくるドアセンサーを、「JavaScriptブロックエディタ」という開発環境で作って見ましょう。

1.まずは( https://makecode.microbit.org/#lang=ja )にアクセスし、開発環境を確認しましょう。

スクリーンショット 2017-12-20 11.46.23.png

はじめにアクセスすると、上記の様なページが出てきます。
左のmicro:bitが表示されたアリアは、プレビューエリア。中央は、プログラムを選ぶエリアです。右端は、選んだプログラムを組み合わるエディター的なエリアです。

00.jpg

2.それでは、早速エディターエリアに表示されていた**「最初だけ」というブロックを選び、ブロックの周りに黄色い枠が表示されたら、キーボードの「delete」ボタンで削除しましょう。
3.残った、
「ずっと」**というブロックを使ってプログラムしていきたいと思います。

今回作るもののイメージを共有

プログラムを組む前に、今回作成するもののイメージを共有します。
今回はケース入りリードスイッチ(磁石付セット)MC-14AG(参考: http://akizukidenshi.com/catalog/g/gP-04025/ )を使い、ONかOFFかを、micro:bitに通知し、扉が閉じていれば、LEDに閉じている状態を表示し、空いていれば、LEDに空いている状態を表示するシンプルなプログラムを作成します。

4.早速プログラムですが、まずは中央の**「変数」と書かれた箇所をクリックし、「変数(変数)を(0)にする」ブロックを選び、エディタの、「ずっと」**ブロックの下に設置します。

スクリーンショット 2017-12-20 12.07.59.png

5.先ほど配置した**「変数(変数)を(0)にする」ブロックの(変数▼)をクリックして「変数の名前の変更」**から新しい変数「sensor」を作成します。

スクリーンショット 2017-12-20 12.13.25.png

6.次に中央の**「入力端子」と書かれた箇所をクリックし、「アナログ値を読み取る端子(P0)」ブロックを選び、エディタの、「変数(変数)を(0)にする」ブロックの(0)**の箇所にはめ込みます。

スクリーンショット 2017-12-20 12.16.08.png

この様にブロックを組み合わせる事で、プログラムが作れてしまいます。細かい説明を書くと長くなるので完成図はこちら。
3分クッキング方式です。なんと簡単ですね!

スクリーンショット 2017-12-20 12.18.48.png

「JavaScriptブロックエディタ」はjavascriptでも入力できますので、ブロックも作るのも面倒だという方は、こちらをコピペしてください。

qiita.rb
let sensor = 0
basic.forever(() => {
    sensor = pins.analogReadPin(AnalogPin.P0)
    if (sensor > 3) {
        basic.showLeds(`
            . . . . .
            . # . # .
            # . . . #
            . . . . .
            . . . . .
            `)
    } else {
        basic.showLeds(`
            . . . . .
            . . . . .
            # # # # #
            . . . . .
            . . . . .
            `)
    }
})

7.なんと簡単にできました。軽く説明しますと、micro:bitのP0ピンを使い、値が3以上になる場合は、LEDを「ドアが空いている」状態にし、それ以外はLEDを「ドアがしまっている」状態にするというシンプルなプログラムです。

あとは、**「ダウンロード」**ボタンをクリックして、.hexというファイルをPCに接続したmicro:bitのファイルに保存するだけです。自動的にmicro:bitとPCの接続がきれたら書き込み完了です。

配線

プログラムの書き込みが終われば次は配線です。用具を整えましょう。

  • micro:bit本体
  • micro:bit電池パック(なければmicroUSBとモバイルバッテリーかACアダプタ)
  • ワニ口クリップ2本
  • ケース入りリードスイッチ(磁石付セット)MC-14AG(参考: http://akizukidenshi.com/catalog/g/gP-04025/

下記の様に繋いで電源ONで出来上がりです。少々説明が雑ですが、まんま繋ぐしかないので、頑張ってください。

IMG_41762.png

完成

download.gif

いかがでしたでしょうか?プログラム初心者も、電子工作初心者も比較的簡単に作れちゃうのではないでしょうか?
IoT的にBluetoothを使って....と行きたかったのですが、長くなったのでまた今度!
これを期に、電子工作初めて見てください。

こちらの記事は、IoTLT Advent Calendar 2017( https://qiita.com/advent-calendar/2017/iotlt_neo )様に書かせていただきました。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?