6
3

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.

micro:bit / microbitAdvent Calendar 2018

Day 19

micro:bitとNeoPixelと100均灯油ポンプでライトステッキをつくる

Last updated at Posted at 2018-12-26

#概要
教育向けマイコンボードmicro:bitとテープLED NeoPixelを、100均にある灯油ポンプを使ってライト・ステッキにしてみました。作り方は思ったより簡単で、見栄えが良く子ども・大人ともにウケがいいものができます。
image.png
#材料

  • 灯油ポンプ1個(ダイソーなど100均ストアで手に入ります)
    image.png

  • micro:bit 1個

  • micro:bitアクリルケース11個(セロハンテープでmicro:bitを固定するのでケースがあると後から剥がしやすい)

  • ワニ口クリップケーブル23本(赤・黒・黄 or 白など)

  • 電池ケース1個(スイッチ付きのもの3が使いやすい)

  • セロハンテープ適量

  • NeoPixel(WS2812B) LEDテープ

NeoPixel(WS2812B) LEDテープ(以下LEDテープ)は5mのものがコストパフォーマンスに優れています。Amazonで購入しました。ライトステッキ1個作るには余らせてしまいますが、たくさんの子のライトステッキを作ったり、他のイルミネーション用電子工作に使ったりもできます。
ALITOVE LEDテープ WS2812B アドレス指定可能 LEDテープライト 5m300LED 5050RGB SMD ピクセル ドリームカラー 非防水 ホワイトPCB DC5Ⅴ
LEDテープ WS2812B

#下準備
子どもと一緒に工作することを考えて、下準備をしておきます。ここから子どもと一緒に工作を始めても構いません。

灯油ポンプ

  • 灯油ポンプの先がとがっているので危ないです。ニッパーなどで切って平らにしておきます。
    image.png

  • 灯油ポンプの柔らかいホースの部分は不要なのでカッターなどで切り取ります。
    image.png

  • ポンプの弁を2つ取り去ります。ラジオペンチなどを使うと取りやすいです。
    image.png

LEDテープ

  • LEDテープを25灯分、ハサミなどで切ります。電極部分を損なわないように注意してまっすぐ切りましょう。
    image.png

  • LEDが25灯分切り出されると、灯油ポンプのポールの部分から少しはみ出る長さになります。
    image.png

  • ここまで準備できたら準備完了です。灯油ポンプは元の状態に戻して子どもたちと工作の実作業を始めるといいかもしれません。

工作の実作業

灯油ポンプにLEDテープを入れる

  • 25灯分のLEDテープを灯油ポンプに収めていきます。柔らかいホースを切り取った穴にLEDテープを通します。その際、LEDテープにある矢印「→」マークが灯油ポンプの中に向かっていくように通してください。LEDテープの入れる向きが反対になるとLEDが光りません。
    image.png

ワニ口クリップをつなぐ

ワニ口クリップケーブルをつなぎます。

ワニ口 LEDテープ電極 micro:bit
GND GND
DI P0
5V 3V
5Vの給電が必要なところをmicro:bitの3.3V(表記は3V)を使いますが、ちゃんと光ります:smile:
image.png
micro:bitにもワニ口クリップケーブルつなぎます。時間があればこの時にMakeCodeでプログラム動作確認を行うのも確実な進め方です。
image.png
ワニ口クリップでLEDテープの電極を挟んだ部位をセロハンテープで固定します。
image.png

灯油ポンプを組み立てる

ここでバラバラになっていた灯油ポンプを組み立てます。

  • ワニ口クリップでLEDテープの電極を挟んだ部位をグッと押し込んで固定します。その際にポールに入る側のLEDテープを引っ張り上げるようにして灯油ポンプ内でたわんでしまわないようにします。
    image.png

  • 赤いポンプ部分とポールを取り付けていきます。ポールはしっかり奥まで差し込んで取り付けてください。完成後プログラムで「ゆさぶられたとき」ブロックを使った際に、奥まで差し込んでおかないと、激しく揺さぶった際にポール部分がすっぽ抜けていくキケンがあります:fearful:
    image.png

  • 灯油ポンプが組み上がったら、ワニ口クリップケーブルをぐるぐる巻きにして灯油ポンプに巻き付け、micro:bitをポール側に固定できるようにします(この処理は各自いろいろ工夫するといいでしょう。赤いポンプ部分にワニ口クリップケーブルをうまく収める方法もあると思います。ここでは、子ども向けに少し雑なやり方にしています)。
    image.png

  • micro:bitと電池ボックスをセロハンテープで固定します。灯油ポンプのポールにmicro:bitと電池ボックスをくっつけてセロハンテープ(15㎝程度を2枚)を巻き付けて固定します。
    image.png
    これでハードウェアは完成です!!

プログラムを作成する

動作確認プログラムの実行

簡単な動作確認を行うプログラムを共有しています。以下のリンクをクリックして動作確認してみてください。

サンプルプログラムは以下の様になっています。
image.png
JavaScriptでは以下の様になっています。

ライトステッキ動作確認
let strip: neopixel.Strip = null
basic.showIcon(IconNames.Yes)
strip = neopixel.create(DigitalPin.P0, 25, NeoPixelMode.RGB)

input.onButtonPressed(Button.A, function () {
    basic.showIcon(IconNames.Heart)
    strip.showRainbow(1, 360)
})

input.onButtonPressed(Button.B, function () {
    basic.showIcon(IconNames.Snake)
    strip.showColor(neopixel.colors(NeoPixelColors.Red))
})

input.onGesture(Gesture.ScreenDown, function () {
    basic.clearScreen()
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
})

機能拡張「NeoPixel」

LEDテープを光らせるプログラムを作成する際には、NeoPixelの機能拡張を追加しておく必要があります。

  • MakeCode JavaScriptブロックエディタの右上にある歯車ボタンをクリックして機能拡張を選びます。
    image.png

  • neopixelの選択項目をクリックします。
    image.png

  • 以下の様にNeopixelのブロックが追加されます。
    image.png

#まとめ Happy programming!:smile:
Neopixelのプログラムは、stripインスタンス変数のプロパティやメソッドをいじるやり方です。こう書くと難しそうですが、実際にブロックでプログラミングすると楽しく簡単に色んなことを試すことができます!
ぜひカラフルで楽しいライトステッキにしてください!!:smile::smile::smile:

  1. 共立電子 micro:bit用アクリルケース KP-MBCASE http://eleshop.jp/shop/g/g402577/

  2. 共立電子 線付きミノムシクリップ(小)5本入り WTN-23-1236 http://eleshop.jp/shop/g/g67M313/

  3. 共立電子 micro:bit用スイッチ付電池ケース 単3×2本 PHコネクタ2P http://eleshop.jp/shop/g/gHAE311/

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?