SSブログ

SPRESENSEでLowPowerカメラ? [SPRESENSE]

SPRESENSEのカメラ機能と、LowPowerライブラリでLowPowerカメラを作ってみました。クロックも32MHzに落としています。


spresense_and_camera.jpg


一分毎に写真を取って、次の撮影までDeepSleepに落ちて電力を落とします。ファイル名が重なってはいけないので、番号をEEPROMに記録するようになっています。

#include <Camera.h>
#include <SDHCI.h>
#include <LowPower.h>
#include <EEPROM.h>

#define LOWPOWER_32MHz

SDClass theSD;
File myFile;
int addr = 0;
byte val = 0;

void setup() {
  LowPower.begin();
#ifdef LOWPOWER_32MHz
  LowPower.clockMode(CLOCK_MODE_32MHz);
#endif

  Serial.begin(115200);
  Serial.println("bootup");
  theCamera.begin();
  bootcause_e bc = LowPower.bootCause();
  if ((bc == POR_SUPPLY) || (bc == POR_NORMAL)) {
    Serial.println("Power on reset");
    val = 0;   
  } else {
    val = EEPROM.read(addr);
    Serial.println("Read sequence number: " + String(val));
  }

}

void loop() {

  theCamera.setStillPictureImageFormat(320 ,240 ,CAM_IMAGE_PIX_FMT_JPG);
  CamImage img = theCamera.takePicture();
  if (img.isAvailable()) {
    char filename[16] = {0};
    sprintf(filename, "PICT%03d.JPG", val); 
    File myFile = theSD.open(filename, FILE_WRITE);
    myFile.write(img.getImgBuff(), img.getImgSize());
    myFile.close();
    ++val;
    Serial.println("taken picture to " + String(filename));
    EEPROM.write(addr, val);   
  }
  theCamera.end();
  LowPower.deepSleep(60);
}


電力はまだ測定していないのですが、拡張ボード使っているのでそこまで落ちていないだろうなぁ。そのうち、カメラをつけた場合の電力も測定もしてみたいと思います。(環境作るのメンドクサイ…)
(´・A・`)


関連記事
SPRESENSE で DeepSleep から GPS をホットスタート!
https://makers-with-myson.blog.ss-blog.jp/2020-01-26

SPRESENSE の Low Power ライブラリをバッテリー給電で試してみた!
https://makers-with-myson.blog.ss-blog.jp/2019-12-08

SPRESENSE の Low Power ライブラリをUSB給電で試してみた!
https://makers-with-myson.blog.ss-blog.jp/2019-12-01







nice!(27)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 27

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。