このたびは、私たちツクロアに興味を持っていただきありがとうございます。
当サイトでは、ユーザーの同意を得た場合に限り、当サイトの訪問・離脱、訪問中の行動に関する統計情報の分析のため、Cookieを使用します。
詳しくはプライバシーポリシーを参照ください。
今回から全3回の予定で、今までの電子工作シリーズの経験を活かして「GIFカメラ」の制作をしていこうと思います。
最終ゴールは、GIFカメラで撮ったGIF画像をスマホでダウンロードしSNSでシェアする事です。
前々回までの電子工作シリーズでは、Arduinoを用いて電子工作に入門してきました。最初はLチカすらままならないレベル(酷いですね。。。)からのスタートでしたが、最終的にはBluetoothモジュールを使ってMacと通信しプレゼン用のスライドを操作することができるスイッチを作る事ができました。
今回はもう一つ上を目指します。ブレッドボードむき出し状態で終わりにしないで、ガワを作り1つの物を完成させていこうと思います。
今回はGIF画像を生成する所まで制作していきます。
今回はスマホから画像をダウンロードするためにサーバー機能が必要となるためにRaspberry Piを使用します。
なおRaspberry PiはOSのインストールが済んでいる前提ですすめます。
カメラはいつもお世話になっている秋月電子さんからこちらを¥3850で購入しました。
iPhone5Sと比べてみました。かなり小さいです。
今回は連続撮影をして、そこから生まれた復数のJPEG画像からGIF画像を生成します。
秋月電子さんから購入したカメラは、そのままだとジャンプワイヤーで接続できません。L字ピンをハンダ付けし、ジャンプワイヤーを接続できるようにします。その際に、L字ピンとカメラのピッチ(穴の幅)が合わなかったため、L字ピンを少し曲げてハンダ付けをしました。
次に、カメラの基盤に印字してある通りにRaspberry Piにジャンプワイヤーを用いて接続します。ただ、いつもRaspberry Pi のGPIOのピン番号を忘れてしまうんですね。基盤に印字してくれればいいのになぁ。。。今回はこちらのサイトさん(Raspberry PiのGPIOの配置図と基本的な説明ーものづくりエクスペリメントー)を参考にしました。
ImageMagickをRaspberry Piにインストールします。
Raspberry Piのターミナルで以下のコマンドを実行するとインストールできます。
% sudo apt-get install imagemagick
もしうまくいかないようでしたら以下のコマンドでアップデートしてからもう一度試してみてください。
% sudo apt-get update
ここまでで接続関係は終了です。つづいて、処理のコードを書いていきます。
カメラに関しては、メーカーのサイトを探していたらライブラリーが公開されているのを見つけました。Arduino向けなども用意されています。今回はこのPythonで書かれたコードを使います。
このコードのままだと1枚のJPEG画像しか撮れないので、コードを参考にしながら新たに関数を定義したコードがこちらです。
160行目にgeneratePhotos関数を定義しました。引数に連写回数を指定して使います。
ImageMagickを使ってGIF画像を生成するコードがこれです。
makeGif関数を呼ぶことでImageMagickのコマンドを実行しています。
generatePhotos・makeGif、2つの関数を使ってGIF画像を生成します。
この中にあるmain.pyを以下のコマンドで実行すると撮影が始まります。
% sudo python main.py
できました!!順調です!、と言いたいのですが、
上のGIF画像を生成するのに撮影含めトータルで3分弱ほどかかってしまいました。。。。(長っ)
上のGIF画像は10枚のJPEG画像から作られているのですが
それぞれ時間がかかっていました。
処理スピードを全く考えていませんでした。(うぅ。。。)今回は比較的安価なカメラと(メーカーサイトには連写向きじゃないってちゃんと書いていました。。。)Raspberry Pi 1 を使用したのが原因のようです。
今回の結果を踏まえて、連射向きカメラの使用とRaspberry Pi 3の使用を視野に入れた解決策を考えていこうと思います。
GIFカメラを作るために、今回はGIF画像の生成をする所まで作りました。
その過程でJPEG画像生成時とGIF画像生成時それぞれの処理に時間がかかるという課題が出てきました。
次回は今回出た課題を解決をしつつ、カメラのガワを3Dプリンターを使って作っていきます。
今回はハードウエアというよりソフトの部分が多かったですね。
それではまた次回に!