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

  • 電子工作

今回から全3回の予定で、今までの電子工作シリーズの経験を活かして「GIFカメラ」の制作をしていこうと思います。

3回を通して作る物

Group

最終ゴールは、GIFカメラで撮ったGIF画像をスマホでダウンロードしSNSでシェアする事です。

今回、GIFカメラを作る目的

前々回までの電子工作シリーズでは、Arduinoを用いて電子工作に入門してきました。最初はLチカすらままならないレベル(酷いですね。。。)からのスタートでしたが、最終的にはBluetoothモジュールを使ってMacと通信しプレゼン用のスライドを操作することができるスイッチを作る事ができました。

今回はもう一つ上を目指します。ブレッドボードむき出し状態で終わりにしないで、ガワを作り1つの物を完成させていこうと思います。

今回の制作

今回はGIF画像を生成する所まで制作していきます。

制作で使うもの

  • Raspberry Pi 1 Model B+(以前購入した物を使用。セットアップ済み)
  • 小型TTLシリアルJPEGカメラ(秋月より購入)
  • ブレッドボード
  • ジャンプワイヤー
  • L字ピン

今回はスマホから画像をダウンロードするためにサーバー機能が必要となるためにRaspberry Piを使用します。

なおRaspberry PiはOSのインストールが済んでいる前提ですすめます。

カメラはいつもお世話になっている秋月電子さんからこちらを¥3850で購入しました。

gifcamera_2

iPhone5Sと比べてみました。かなり小さいです。

gifcamera_3

どのようにGIFを生成するか

今回は連続撮影をして、そこから生まれた復数のJPEG画像からGIF画像を生成します。

制作手順

  1. カメラをRaspberry Pi に接続
  2. GIF画像生成のためにImageMagickをRaspberry Piにインストール
  3. カメラで撮影し、画像をGIF画像に変換するコードを書く
  4. 実行

1.カメラをRaspberry Pi に接続

秋月電子さんから購入したカメラは、そのままだとジャンプワイヤーで接続できません。L字ピンをハンダ付けし、ジャンプワイヤーを接続できるようにします。その際に、L字ピンとカメラのピッチ(穴の幅)が合わなかったため、L字ピンを少し曲げてハンダ付けをしました。

gifcamera_6

次に、カメラの基盤に印字してある通りにRaspberry Piにジャンプワイヤーを用いて接続します。ただ、いつもRaspberry Pi のGPIOのピン番号を忘れてしまうんですね。基盤に印字してくれればいいのになぁ。。。今回はこちらのサイトさん(Raspberry PiのGPIOの配置図と基本的な説明ーものづくりエクスペリメントー)を参考にしました。

  • GND -> GND(Pin:06)
  • RX -> TX(Pin:08)
  • TX -> RX(Pin:10)
  • 3.3v -> 3.3v(Pin:01)
  • CVBS -> 今回は使用しません

gifcamera_4

2.GIF画像生成のためのImageMagickをインストール

ImageMagickをRaspberry Piにインストールします。

Raspberry Piのターミナルで以下のコマンドを実行するとインストールできます。

% sudo apt-get install imagemagick

もしうまくいかないようでしたら以下のコマンドでアップデートしてからもう一度試してみてください。

% sudo apt-get update

3. カメラで撮影し、画像をGIF画像に変換するコードを書く

ここまでで接続関係は終了です。つづいて、処理のコードを書いていきます。

カメラに関しては、メーカーのサイトを探していたらライブラリーが公開されているのを見つけました。Arduino向けなども用意されています。今回はこのPythonで書かれたコードを使います。

このコードのままだと1枚のJPEG画像しか撮れないので、コードを参考にしながら新たに関数を定義したコードがこちらです

160行目にgeneratePhotos関数を定義しました。引数に連写回数を指定して使います。

ImageMagickを使ってGIF画像を生成するコードがこれです。

makeGif関数を呼ぶことでImageMagickのコマンドを実行しています。

generatePhotos・makeGif、2つの関数を使ってGIF画像を生成します。

(全体のソースコード)

4. 実行

この中にあるmain.pyを以下のコマンドで実行すると撮影が始まります。

% sudo python main.py

anim

できました!!順調です!、と言いたいのですが、

上のGIF画像を生成するのに撮影含めトータルで3分弱ほどかかってしまいました。。。。(長っ)

上のGIF画像は10枚のJPEG画像から作られているのですが

  • 1枚JPEGを撮るのに10秒強(カメラからRaspberry Piにデータを送るのに時間がかかってしまう)
  • さらにGIF画像を生成するのに約1分

それぞれ時間がかかっていました。

処理スピードを全く考えていませんでした。(うぅ。。。)今回は比較的安価なカメラと(メーカーサイトには連写向きじゃないってちゃんと書いていました。。。)Raspberry Pi 1 を使用したのが原因のようです。

今回の結果を踏まえて、連射向きカメラの使用とRaspberry Pi 3の使用を視野に入れた解決策を考えていこうと思います。

まとめと次回に向けて

GIFカメラを作るために、今回はGIF画像の生成をする所まで作りました。

その過程でJPEG画像生成時とGIF画像生成時それぞれの処理に時間がかかるという課題が出てきました。

次回は今回出た課題を解決をしつつ、カメラのガワを3Dプリンターを使って作っていきます。

今回の制作を終えて

今回はハードウエアというよりソフトの部分が多かったですね。

それではまた次回に!

SNSでこの記事をシェア

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

メンバー募集中

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

採用情報

私たちについて

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

ツクロアについて

DESIGN LAB トップ

ページトップ