公式サイトの作例のchibi:bit(micor:bit)をPiカメラモジュールのシャッターとして利用する電子工作を作成してみました
必要なもの
- Piカメラモジュール
- ジャンパーワイヤー(ワニ口-ワニ口)3本(1本でもOK)
- ジャンパーワイヤー(オス-メス)1本
- chibi:bit(micro:bit)
- USBケーブル(USB-A と マイクロUSB-B) データ転送できるタイプ
必要なソフトウェア
chibi:bitをプログラミングする環境が必要です
Pythonで組みたい場合は「mu」、ビジュアルプログラミングなら「JavaScript Blocks Editor」
muのインストール方法
sudo apt-get update sudo apt-get install mu -y
JavaScript Blocks Editorはブラウザ上で実行できます
JavaScript Blocks Editor
接続方法
公式サイトの図です
この図だと、赤と黒のワニ口クリップの先はどこに繋がってるの??と思いますが、これはどこにも接続しません。それぞれを右手、左手で持てば、シャッターが切れる仕組みです。ちなみにchibi:bitの0ピン(赤)とGND(黒)のワニ口クリップはなくてもいいです。その場合は指で直接つまめばOKです
chibi:bitのプログラム
muで以下のプログラムを作成します
from microbit import * while True: if pin0.is_touched(): display.scroll("say cheese!") sleep(500) pin1.write_digital(1) sleep(5000) pin1.write_digital(0)
JavaScript Blocks Editorで作成した同じプログラムです
完成したら、chibi:bitにプログラムを書き込みます
Raspberry Piで動かすプログラム
Python 3(IDLE)にこのプログラムを入力します
from picamera import PiCamera from gpiozero import Button from time import sleep button = Button(4, pull_up = False) with PiCamera() as camera: camera.start_preview() sleep(5) button.wait_for_press() camera.capture('selfie.jpg`) camera.stop_preview()
実行
動作の流れ
- Pythonのプログラムを実行します
- chibi:bitの0ピンにつないでいるワニ口クリックの端を持ちます
- 写真を撮るタイミングで、chibi:bitのGNDについないでいるワニ口クリップの端を持ちます
- chibi:bitに「say cheese!」の文字列がスクロール表示されます
- シャッターが切れて、Pythonプログラムが終了します
では実際に実行です。Pythonプログラムを実行するとカメラが起動して、モニター全体がプレビュー画面になります。ワニ口クリップを両手でつまむと、chibi:bitに「say cheese!」の文字がスクロール表示されました
・・・が、シャッターが切れません。シャッターが切れないと全画面でのプレビューが終わらないため操作ができず、やむなくRaspberry Piの電源を落としました
原因は??
どうやら、chibi:bitをモバイルバッテリーで起動していたのが原因だったようです。Raspberry Piから電源を取るようにしたら、無事シャッターが切れました。
シャッターが切れない場合は全画面プレビューにしていると操作不能になってしまうので、Pythonのプログラムを修正して、プレビュー画面を小さくするようにしました
from picamera import PiCamera from gpiozero import Button from time import sleep button = Button(4, pull_up = False) with PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview(fullscreen=False, window = (600, 300, 640, 480)) sleep(5) button.wait_for_press() camera.capture('selfie.jpg') camera.stop_preview()
このプログラムなら万が一シャッターが切れなくても、操作不能にはなりません。ちなみに撮影された写真はPythonのプログラムと同じディレクトリに保存されます
この 作品 は クリエイティブ・コモンズ 表示 – 継承 4.0 国際 ライセンスの下に提供されています。