Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Ubuntu22LTS上でSpresenseをArduinoでつかう その2:カメラをつかう

shuzo-kino.hateblo.jp
ではNuttXでやる方法でしたが、これをArduino版でもやってみます

実際のところ

ハードウェアエンコードArduinoで使用可能という素敵な実装
ただ、ベース基板とカメラモジュールしかないのでシリアル通信でbase64を流すという侠気仕様でいきます

#include <Camera.h>
#include <JPEGEncoder.h> // ハードウェアJPEGエンコーダ用のライブラリ

void setup() {
  Serial.begin(115200);
  if (!Camera.begin()) {
    Serial.println("Camera initialization failed");
    while (1);
  }
  Serial.println("Camera initialized");
}

void loop() {
  Camera.capture();
  uint8_t* image = Camera.getImageBuffer();
  size_t imageSize = Camera.getImageSize();

  // ハードウェアJPEGエンコード
  JPEGEncoder encoder;
  encoder.encode(image, 2608, 1960, 50); // 50はJPEGの品質設定
  uint8_t* jpegImage = encoder.getJPEGBuffer();
  size_t jpegSize = encoder.getJPEGSize();

  // Base64エンコード
  String encodedImage = base64::encode(jpegImage, jpegSize);
  Serial.println(encodedImage);

  delay(5000); // 5秒ごとに画像をキャプチャ
}