ハードウエアプロトタイピングーGIFカメラを作る(2)ー

  • 電子工作

こんにちは。今週のブログ担当の高橋知成です。前回に引き続きRaspberry Piを用いて、GIFカメラの制作をしていきます。

Group

今回の流れ

  1. Raspberry Pi 3を使いGIF画像を生成してみる
  2. Raspberry Pi Camera Module V2を使いGIF画像を生成してみる
  3. ブラウザを使ってGIF画像をダウンロードできるようにする

今回は生成したGIF画像を、ブラウザを使ってダウンロードする所まで作っていきます。

制作で使うもの

  • Raspberry Pi 3(固定IP設定済み)
  • Raspberry Pi Camera Module v2

1. Raspberry Pi 3を使いGIF画像を生成

前回は、Raspberry Pi 2を使いました。その結果、

  • 1枚のJPEGを生成するのに10秒強
  • JPEGからGIFを生成するのに約1分

もかかってしまいました。

結果からいうと、Raspberry Pi 3を使うことでGIF画像の生成時間を1/3(約20秒)程度にすることができました。

Raspberry Pi 3でシリアル通信をするには

ただし、Raspberry Pi 3では前回のコードは動きませんでした。

Raspberry Pi 3では設定が変わり、初期設定のままではシリアル通信を行うことができません。

ネットで検索をすると、同じような状況になっている人をみつけることができたので、参考にさせてもらいました。

参考:mcommit’s message

それにともなってコードを修正しました。コードはこちらに置いておきます。

具体的には、camera.pyを変更しました。

code

2. Raspberry Pi Camera Module v2を使ってGIF画像生成

続いてシリアルJPEGカメラの代わりに、Raspberry Pi Camera Module v2を使ってみます。

ちなみにこのカメラは、

  • 800万画素
  • 動画撮影可能(1080p(30fps))

とかなりハイスペックです。

動画からJPEGを生成できるため、JPEGの生成は一瞬でした。

Picamera

シリアルJPEGカメラと違い、配線がスッキリとしました。

gifcamera_4

また、公式がライブラリーを提供してくれているので、それを使用しました。

ライブラリーが豊富な機能を提供している

ライブラリーのドキュメントをみていると、基本的なカメラ機能以外にも

  • タイムラプス機能
  • フィルター機能
  • ISO・フレームレートなどの設定

などなど、たくさんの機能がそろっています。(予想以上です。。。)

今回はその中から、GIF画像を撮るために良さそうな「capture_sequence」機能を使い、カメラ撮影のコードを書きました。(camera.py

3.ブラウザを使ってGIF画像をダウンロードできるようにする

次にスマホなどのブラウザからGIF画像をダウンロードできるようにします。

使うのは、PythonのSimpleHTTPServerモジュールです。コマンドラインで

% python -m SimpleHTTPServer

とやってやると、簡単なサーバーが立ち上がります。

手順

  1. ディレクトリーを整える
  2. サーバーを立ち上げるスクリプトを用意する
  3. Raspberry PIが起動したら、サーバーが立ち上がる設定にする

 

ディレクトリーを以下のようにしました。

screen-shot-2016-09-28-at-02-50-15

次に、ブラウザからポート8000でアクセスすると、index.htmlが開くようにこのようなスクリプトを用意しました。

最後にRaspberry Pi が起動したら、用意したスクリプトを実行するように設定をします。

そのためにRaspberry Piの/etc/rc.local ファイルに設定を記述します。

今回ですと以下のコードを記述しました。

sh /home/pi/gifcamera/startserver.sh &
※”exit 0″という記述の前に書く必要があります。

今回、Raspberry Pi 3には固定IP(192.168.0.24)を設定しているので、ブラウザで”192.168.0.24:8000″とアクセスすると画像をみることができました。
※ブラウザのスクリーンショットの為動いてはいませんが、実際にはアニメーションしています。

screen-shot-2016-09-28-at-03-08-27

 

これが全体のソースコードです。

まとめ

Raspberry Pi 3とRaspberry Pi Camera Module V2を使ってGIF画像を生成しました。

PythonのSimpleHTTPServerモジュールを使い、ブラウザからGIF画像をダウンロードできるようにしました。

次に向けて

現状のままだと、カメラとブラウザが同じネットワーク上に無いと、GIF画像をダウンロードすることができません。(例えば同じWiFiに接続している時など)

持ち運びができて、カメラで撮ったらその場でSNSにアップロードすることがGIFカメラ制作の目標なので、引き続き作り込んでいこうと思います。(アクセスポイント化?など???)

それでは、また次回に。

 

SNSでこの記事をシェア

Takahashi Tomonari
Takahashi Tomonari @TravelTravelerr
世界一周の旅から帰ってきました!「デザインと関係ある?」と突っ込まれそうな記事が多いです。

メンバー募集中

デザインラボ・ツクロアを読んで、一緒に仕事をしたいと思ってくれた方、こちらもご覧ください。

採用情報

私たちについて

このメディアを発信しているツクロアというチームのこだわりや仕事への取り組みをご紹介します!

ツクロアについて

DESIGN LAB トップ

ページトップ