Skip to content

Instantly share code, notes, and snippets.

@satakagi
Last active September 26, 2022 04:21
Show Gist options
  • Save satakagi/2c5be63d4759fd21eca939f507e7f7ef to your computer and use it in GitHub Desktop.
Save satakagi/2c5be63d4759fd21eca939f507e7f7ef to your computer and use it in GitHub Desktop.
CHIRIMEN Zero版でカメラを使う

Raspberry Piのカメラのraspistillコマンドのnode.jsラッパーPi-Cameraを使った方法です。

準備

  • Raspberry Piカメラモジュール
  • Zero用ケーブル~上のモジュールは添付されているようです。
  • 接続のしかた : Zeroは専用ケーブルでつなぎます

セットアップ

コマンドプロンプトで、以下設定

  • sudo raspi-config
    • Interface Option ⇒ P1 Camera ⇒ <はい> ⇒ <了解> ⇒ <Finish> (カーソルキーとEnterキーとTABキーで操作)
    • 参考:この情報を参考に
  • cd ~/myApp
  • npm install pi-camera

サンプル

import PiCamera from "pi-camera";
var __dirname = ".";

async function main() {
    const myCamera = new PiCamera({
        mode: 'photo',
        output: `${__dirname}/test.jpg`,
        width: 640,
        height: 480,
        quality: 70,
        nopreview: true,
    });
    
    console.log("snap")
    // ローカルファイルに保存する場合
    await myCamera.snap();

    console.log("dataurl");
    // dataURLとして文字列変数に取得する場合(このまま例えばRelayServerなどに送信できる)
    var imgUrl = await myCamera.snapDataUrl();
    console.log(imgUrl)
}

main();

Note

  • dataURLで画像を変数に格納すれば比較的簡単にサーバに送信したりできるでしょう。
  • 各種センサ (WebGPIO経由で人感センサーなど)を使い、自動的に撮影、サーバにアップロードする仕組みなどもできるでしょう。
  • pi-cameraドキュメント
  • 撮影に何秒かかかるようです。動画もファイルに保存できますが、非圧縮ファイルでその後の扱いに難あり。
  • 静止画の保存がずっと高速にできる、pi-camera-connectがあります。こちらを参照
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment