

spresenseでカメラモジュールを繋げて以下のサンプルコードをArduino IDEにて実行すると、  
「variable or field 'CamCB' declared void」というエラー文が出ます。

`void CamCB(CamImage img)`のところがエラーらしいのですがどう変更すればいいのかわかりません。  
プログラミングに詳しい方回答お願いします。

[code]

    //#include [SDHCI.h]
    //#include [stdio.h]
    //#include [Camera.h] /*Cameraライブラリを利用する場合必要*/
    
    //#define  BAUDRATE  (115200)
    
    SDClass theSD;
    
    int take_picture_count = 0; /*SDCardに書き出されるファイル名と作成するファイル数の上限の変数*/
    
    
    /*Previewコールバック*/
    
    
    /*ビデオフレームがキャプチャされたときのカメラライブラリからのコールバック*/
    
    void CamCB(CamImage img)
    {
    
      if(img.isAvailable())
      {
    
        /*RGB565に変換*/
    
        img.convertPixFormat(CAM_IMAGE_PIX_FMT_RGB565);
    
    
        /*startStreaming()で登録される、カメラのPreviewが出力された際に呼び出される関数になります。 
        この関数内では、関数の引数として取得したCamImageのインスタンスが利用可能なものかどうかのチェックを行い、 
        その後、ピクセルフォーマットをRGB565に変換しています。 変換後、getImgSize()とgetImgBuff()で取得したデータサイズとメモリアドレスを表示しています。
        一般的には、この段階で接続したディスプレイなどにイメージデータを出力して、 カメラのファインダービューを構築します。*/
    
        Serial.print("Image data size = ");
        Serial.print(img.getImgSize(),DEC);
        Serial.print(" , ");
    
        Serial.print("buff addr = ");
        Serial.print((unsigned long)img.getImgBuff(), HEX);
        Serial.println("");
        }
        else
        {
          Serial.print("Failed to get video stream image\n");
          }
      }
    
      /*setup()*/
    
    
    void setup() 
    {
      Serial.begin(BAUDRATE);
    
      while(!Serial)
      {
        ;
        }
    
        /*パラメータ無しのbegin()は
         * バッファ数 = 1, 30FPS. QVGA, YUV 4:2:2フォーマット
        */
    
        Serial.println("Prepare camera");
        theCamera.begin();
    
        /*カメラデバイスからビデオデータを受け取った場合、
         * カメラライブラリのCamCBを呼び出す
        */
    
        Serial.println("Start streaming");
        theCamera.startStreaming(true. CamCB);
    
        /*オートホワイトバランスを設定する*/
    
        Serial.println("Set Auto white balance parameter");
        theCamera.setAutoWhiteBalanceMode(CAM_WHITE_BALANCE_DAYLIGHT);
    
        /*静止画に関するパラメータを設定する
         * 次の場合はQUADVGAとJPEG
        */
    
        Serial.println("Start streaming");
        theCamera.setStillPictureImageFormat(
          CAM_IMGSIZE_QUADVGA_H,
          CAM_IMGSIZE_QUADVGA_V,
          CAM_IMAGE_PIX_FMT_JPG);
    
    }
    
    void loop()
    {
      sleep(1);
    
      /*必要に応じてここで静止画のフォーマットを変更することができる
      */
    
      /*theCamera.setStillPictureImageFormat(
       *CAM_IMGSIZE_HD_H,
       *CAM_IMGSIZE_HD_V,
       *CAM_IMAGE_PIX_FMT_JPG);
        */
    
    /*このコードでは開始から１秒ごとに１００枚の写真を撮ることができます。
    */
    
      if(take_picture_count < 100)
      {
    
          /*静止画をとる場合
          * ビデオストリームとは異なり、
          * このAPIは画像データを受信するのを待ちます。
          */
    
         Serial.println("call takePicture()");
         CamImage img = theCamera.takePicture();
    
         /*imgインスタンスの可用性をチェックする
          * もし、エラーが出た場合は利用できない
         */
    
          if(img.isAvailable())
          {
            /*ファイルを作成する
            */
    
            char filename[16] = {0};
            sprintf(filename, "PICT%03d.jpg", take_picture_count);
    
            Serial.print("Save taken picture as ");
            Serial.print(filename);
            Serial.println("");
    
            /*SDカードにファイル名で保存する
            */
    
            File myFile = theSD.open(filename, FILE_WRITE);
            myFile.write(img,getImgBuff(), img.getImgSize());
            myFile.close();
    
            }
    
            take_picture_count++;
      }
    
    }
    
[/code]


CC BY-SA 4.0
2018-12-13T09:11:36.427
51177
2018-12-17T00:51:44.997
2018-12-13T09:51:57.200
19110
29471
question
arduino spresense
spresense cameraサンプルコードについて


エラーはCamera.h のインクルードがコメントアウトされているためですね。

[code]

    //#include [SDHCI.h]
    //#include [stdio.h]
    //#include [Camera.h] /*Cameraライブラリを利用する場合必要*/
    
[/code]

を以下のようにコメントアウトを外せばコンパイルが通るようになります。

[code]

    #include <SDHCI.h>
    #include <stdio.h>
    #include <Camera.h> /*Cameraライブラリを利用する場合必要*/
    
[/code]


CC BY-SA 4.0
2018-12-17T00:51:44.997
51274
2018-12-17T00:51:44.997
31378
51177
answer