こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
開発背景
子供,大人に関わらず,私たちは日々多くの書類の束を抱えて家に帰ってきます.その中には来月の大事な予定が書かれているものや,現時点では必要かわからないけどいつか役にたつかもしれない書類などが入り混じって含まれています.書類を管理する方法として,その書類をスキャンしてデータで保存するという方法が挙げられますが,毎日のように持ち帰ってくる書類の束を,一つ一つ必要かどうかを吟味しつつスキャンし保存するという作業は非常に時間がかかります.また,出先で突然,あの書類に書いてあったけど丁度手元にない,となる事態も起きかねます.これら書類によって日常的に起こされる問題を解決するために,私たちは書類を全自動で全てスキャンし,出先からAndroid端末を通して閲覧できるようなシステムの設計を行いました.
概要
私たち「米々」は,日々溜まっていく書類を簡単に保存,閲覧するための全自動スキャナー「Maimaiスキャナー」を設計しました.Maimaiスキャナーは,特定の場所に書類の束を置いておくだけでそれを自動で撮影し,クラウド上へのアップロードを行なってくれます.また,クラウド上に保存されている書類のデータを専用のAndroidアプリから閲覧することができます.これにより,日々たまる大量の書類の管理から解放されることができます.
以下が動作例になります.
設計
Maimaiスキャナーは書類を設置するための台,書類撮影用カメラやストッパーの制御をするためのラズベリーパイ,送信されてきた画像を保存し,また,外部からその一覧を取得できるようなAPIを提供するサーバ,サーバ上に保存されている画像を閲覧できるAndroidアプリから構成されています.
制御用ラズベリーパイ
ラズベリーパイは以下のような処理を担当しています.
- 書類撮影用カメラの制御
- 撮影された画像をサーバへ送信
- ストッパーのためのモータ制御
書類撮影用カメラ
書類撮影用カメラとしては,Raspberry Pi Camera Board v1.3(以下 ラズパイカメラ)を用いています.ラズパイカメラはストッパーの直上に配置されておりストッパーで止められた書類をカメラで撮影します.カメラは常に動画を撮影しており動画フレーム内の白領域(書類が写っている領域)が一定の閾値を超えたタイミングでそのフレームを画像として保存します.
ストッパーのためのモーター制御
書類を撮影のために止めておくストッパは,モータを用いて動作させています.また,そのモータの制御はモータドライバモジュールであるDRV8830を用いています.
書類の撮影が行われるとストッパが降り,一定時間経つと上がってきます.
サーバの役割
サーバは主にスキャンした画像の管理を行っています.主に以下の3つの要素から構成されます.
- ラズベリーパイから送信された画像を受け取るためのプログラム
- Androidアプリに画像を配信するためのAPIサーバ
- 画像の情報を管理するデータベース
先述のラズベリーパイから送信された画像は,サーバ上で動いている受信用のプログラムが受け取り,データベースに保存されます.
AndroidアプリからAPIサーバに対して画像を要求されると,APIサーバはデータベースを参照して保存した画像をAndroidアプリに送信します.
Androidアプリの設計
Androidアプリではまずサーバから保存されているアイテム全ての情報を取得し,サムネイル画像の一覧を表示します.目的の画像をタッチすると,オリジナルの大きさの画像を閲覧することができます.
今後の課題
現状のMaimaiスキャナーには以下のような課題点があります.
- 両面のスキャンが行えない.
- スキャンのための書類送り出しの際,詰まりが起きることがある.
- 画像の閲覧制限ができていない.
画像の閲覧制限については,アップロード先をGoogleDriveなどにすることを対策として考えています.