Skip to content

File ArducamCamera.h

FileList > includes-api > ArducamCamera.h

Go to the source code of this file

More...

  • #include <stdint.h>

Classes

Type Name
struct ArducamCamera
Camera drive interface and information.
struct CameraInfo
Basic information of the camera module.
struct ClassCamera
struct SdkDate
SDK version update time.
struct SdkInfo
Basic information of the sdk.

Public Types

Type Name
enum ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b
typedef uint8_t(* BUFFER_CALLBACK
enum CAM_BRIGHTNESS_LEVEL
Configure camera brightness level.
enum CAM_COLOR_FX
Configure special effects.
enum CAM_CONTRAST_LEVEL
Configure camera contrast level.
enum CAM_EV_LEVEL
Configure camera EV level.
enum CAM_IMAGE_MODE
Configure camera resolution.
enum CAM_IMAGE_PIX_FMT
Configure image pixel format.
enum CAM_SHARPNESS_LEVEL
Configure camera Sharpness level.
enum CAM_STAURATION_LEVEL
Configure camera stauration level.
enum CAM_VIDEO_MODE
Configure resolution in video streaming mode.
enum CAM_WHITE_BALANCE
Configure white balance mode.
enum CamStatus
Camera status.
enum CameraStatus
enum IMAGE_QUALITY
typedef void(* STOP_HANDLE

Public Attributes

Type Name
union SdkInfo __attribute__
uint8_t day
uint8_t month
uint16_t version
uint8_t year

Public Functions

Type Name
struct SdkDate __attribute__ ((packed))
CamStatus begin (ArducamCamera * camera)
Initialize the configuration of the camera module.
uint8_t cameraHeartBeat (ArducamCamera * camera)
Inform the other party of camera status.
uint32_t cameraImageAvailable (ArducamCamera * camera)
uint32_t cameraReadFifoLength (ArducamCamera * camera)
uint8_t cameraReadReg (ArducamCamera * camera, uint8_t addr)
void captureThread (ArducamCamera * camera)
void clearFifoFlag (ArducamCamera * camera)
ArducamCamera createArducamCamera (int cs)
Create a camera instance.
void debugWriteRegister (ArducamCamera * camera, uint8_t * buff)
Debug mode.
uint8_t getAutoFocusSta (ArducamCamera * camera)
Get auto focus status.
uint8_t getBit (ArducamCamera * camera, uint8_t addr, uint8_t bit)
void lowPowerOff (ArducamCamera * camera)
Turn off low power mode.
void lowPowerOn (ArducamCamera * camera)
Turn on low power mode.
uint32_t readBuff (ArducamCamera * camera, uint8_t * buff, uint32_t length)
Read image data with specified length to buffer.
uint8_t readByte (ArducamCamera * camera)
Read a byte from FIFO.
void registerCallback (ArducamCamera * camera, BUFFER_CALLBACK function, uint8_t blockSize, STOP_HANDLE handle)
Create callback function.
CamStatus reset (ArducamCamera * camera)
reset cpld and camera
CamStatus setAbsoluteExposure (ArducamCamera * camera, uint32_t val)
Set the exposure time Manually.
CamStatus setAutoExposure (ArducamCamera * camera, uint8_t val)
Set the exposure mode.
CamStatus setAutoFocus (ArducamCamera * camera, uint8_t val)
Set auto focus mode.
CamStatus setAutoISOSensitive (ArducamCamera * camera, uint8_t val)
Set the gain mode.
CamStatus setAutoWhiteBalance (ArducamCamera * camera, uint8_t val)
Set white balance mode.
CamStatus setAutoWhiteBalanceMode (ArducamCamera * camera, CAM_WHITE_BALANCE mode)
Set the white balance mode Manually.
CamStatus setBrightness (ArducamCamera * camera, CAM_BRIGHTNESS_LEVEL level)
Set Brightness level.
CamStatus setColorEffect (ArducamCamera * camera, CAM_COLOR_FX effect)
Set special effects.
CamStatus setContrast (ArducamCamera * camera, CAM_CONTRAST_LEVEL level)
Set Contrast level.
CamStatus setEV (ArducamCamera * camera, CAM_EV_LEVEL level)
Set EV level.
CamStatus setISOSensitivity (ArducamCamera * camera, int iso_sense)
Set the exposure time Manually.
CamStatus setImageQuality (ArducamCamera * camera, IMAGE_QUALITY qualtiy)
Set jpeg image quality.
CamStatus setManualFocus (ArducamCamera * camera, uint16_t val)
Set manual focus mode.
CamStatus setSaturation (ArducamCamera * camera, CAM_STAURATION_LEVEL level)
Set saturation level.
CamStatus setSharpness (ArducamCamera * camera, CAM_SHARPNESS_LEVEL level)
Set Sharpness level.
void startCapture (ArducamCamera * camera)
CamStatus startPreview (ArducamCamera * camera, CAM_VIDEO_MODE mode)
Start preview with specified resolution mode.
CamStatus stopPreview (ArducamCamera * camera)
Stop preview.
CamStatus takeMultiPictures (ArducamCamera * camera, CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format, uint8_t number)
Start multi capture with specified number of image.
CamStatus takePicture (ArducamCamera * camera, CAM_IMAGE_MODE mode, CAM_IMAGE_PIX_FMT pixel_format)
Start a snapshot with specified resolution and pixel format.
uint32_t waitI2cIdle (ArducamCamera * camera)
void writeReg (ArducamCamera * camera, uint8_t addr, uint8_t val)

Detailed Description

Author:

Arducam

Date:

2023/3/6

Version:

V2.0.1

Copyright:

Arducam

Public Types Documentation

enum ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b

enum ArducamCamera_8h_1a06fc87d81c62e9abb8790b6e5713c55b {
    SENSOR_5MP_1 = 0x81,
    SENSOR_3MP_1 = 0x82,
    SENSOR_5MP_2 = 0x83,
    SENSOR_3MP_2 = 0x84
};

typedef BUFFER_CALLBACK

typedef uint8_t(* BUFFER_CALLBACK) (uint8_t *buffer, uint8_t lenght);

Callback function prototype


enum CAM_BRIGHTNESS_LEVEL

Configure camera brightness level.

enum CAM_BRIGHTNESS_LEVEL {
    CAM_BRIGHTNESS_LEVEL_MINUS_4 = 8,
    CAM_BRIGHTNESS_LEVEL_MINUS_3 = 6,
    CAM_BRIGHTNESS_LEVEL_MINUS_2 = 4,
    CAM_BRIGHTNESS_LEVEL_MINUS_1 = 2,
    CAM_BRIGHTNESS_LEVEL_DEFAULT = 0,
    CAM_BRIGHTNESS_LEVEL_1 = 1,
    CAM_BRIGHTNESS_LEVEL_2 = 3,
    CAM_BRIGHTNESS_LEVEL_3 = 5,
    CAM_BRIGHTNESS_LEVEL_4 = 7
};


enum CAM_COLOR_FX

Configure special effects.

enum CAM_COLOR_FX {
    CAM_COLOR_FX_NONE = 0,
    CAM_COLOR_FX_BLUEISH,
    CAM_COLOR_FX_REDISH,
    CAM_COLOR_FX_BW,
    CAM_COLOR_FX_SEPIA,
    CAM_COLOR_FX_NEGATIVE,
    CAM_COLOR_FX_GRASS_GREEN,
    CAM_COLOR_FX_OVER_EXPOSURE,
    CAM_COLOR_FX_SOLARIZE
};


enum CAM_CONTRAST_LEVEL

Configure camera contrast level.

enum CAM_CONTRAST_LEVEL {
    CAM_CONTRAST_LEVEL_MINUS_3 = 6,
    CAM_CONTRAST_LEVEL_MINUS_2 = 4,
    CAM_CONTRAST_LEVEL_MINUS_1 = 2,
    CAM_CONTRAST_LEVEL_DEFAULT = 0,
    CAM_CONTRAST_LEVEL_1 = 1,
    CAM_CONTRAST_LEVEL_2 = 3,
    CAM_CONTRAST_LEVEL_3 = 5
};


enum CAM_EV_LEVEL

Configure camera EV level.

enum CAM_EV_LEVEL {
    CAM_EV_LEVEL_MINUS_3 = 6,
    CAM_EV_LEVEL_MINUS_2 = 4,
    CAM_EV_LEVEL_MINUS_1 = 2,
    CAM_EV_LEVEL_DEFAULT = 0,
    CAM_EV_LEVEL_1 = 1,
    CAM_EV_LEVEL_2 = 3,
    CAM_EV_LEVEL_3 = 5
};


enum CAM_IMAGE_MODE

Configure camera resolution.

enum CAM_IMAGE_MODE {
    CAM_IMAGE_MODE_QQVGA = 0x00,
    CAM_IMAGE_MODE_QVGA = 0x01,
    CAM_IMAGE_MODE_VGA = 0x02,
    CAM_IMAGE_MODE_SVGA = 0x03,
    CAM_IMAGE_MODE_HD = 0x04,
    CAM_IMAGE_MODE_SXGAM = 0x05,
    CAM_IMAGE_MODE_UXGA = 0x06,
    CAM_IMAGE_MODE_FHD = 0x07,
    CAM_IMAGE_MODE_QXGA = 0x08,
    CAM_IMAGE_MODE_WQXGA2 = 0x09,
    CAM_IMAGE_MODE_96X96 = 0x0a,
    CAM_IMAGE_MODE_128X128 = 0x0b,
    CAM_IMAGE_MODE_320X320 = 0x0c
};


enum CAM_IMAGE_PIX_FMT

Configure image pixel format.

enum CAM_IMAGE_PIX_FMT {
    CAM_IMAGE_PIX_FMT_RGB565 = 0x02,
    CAM_IMAGE_PIX_FMT_JPG = 0x01,
    CAM_IMAGE_PIX_FMT_YUV = 0x03,
    CAM_IMAGE_PIX_FMT_NONE
};


enum CAM_SHARPNESS_LEVEL

Configure camera Sharpness level.

enum CAM_SHARPNESS_LEVEL {
    CAM_SHARPNESS_LEVEL_AUTO = 0,
    CAM_SHARPNESS_LEVEL_1,
    CAM_SHARPNESS_LEVEL_2,
    CAM_SHARPNESS_LEVEL_3,
    CAM_SHARPNESS_LEVEL_4,
    CAM_SHARPNESS_LEVEL_5,
    CAM_SHARPNESS_LEVEL_6,
    CAM_SHARPNESS_LEVEL_7,
    CAM_SHARPNESS_LEVEL_8
};


enum CAM_STAURATION_LEVEL

Configure camera stauration level.

enum CAM_STAURATION_LEVEL {
    CAM_STAURATION_LEVEL_MINUS_3 = 6,
    CAM_STAURATION_LEVEL_MINUS_2 = 4,
    CAM_STAURATION_LEVEL_MINUS_1 = 2,
    CAM_STAURATION_LEVEL_DEFAULT = 0,
    CAM_STAURATION_LEVEL_1 = 1,
    CAM_STAURATION_LEVEL_2 = 3,
    CAM_STAURATION_LEVEL_3 = 5
};


enum CAM_VIDEO_MODE

Configure resolution in video streaming mode.

enum CAM_VIDEO_MODE {
    CAM_VIDEO_MODE_0 = 1,
    CAM_VIDEO_MODE_1 = 2
};


enum CAM_WHITE_BALANCE

Configure white balance mode.

enum CAM_WHITE_BALANCE {
    CAM_WHITE_BALANCE_MODE_DEFAULT = 0,
    CAM_WHITE_BALANCE_MODE_SUNNY,
    CAM_WHITE_BALANCE_MODE_OFFICE,
    CAM_WHITE_BALANCE_MODE_CLOUDY,
    CAM_WHITE_BALANCE_MODE_HOME
};


enum CamStatus

Camera status.

enum CamStatus {
    CAM_ERR_SUCCESS = 0,
    CAM_ERR_NO_CALLBACK = -1
};


enum CameraStatus

enum CameraStatus {
    Camera_uninit = 0,
    Camera_init,
    Camera_open,
    Camera_close
};

enum IMAGE_QUALITY

enum IMAGE_QUALITY {
    HIGH_QUALITY = 0,
    DEFAULT_QUALITY = 1,
    LOW_QUALITY = 2
};

typedef STOP_HANDLE

typedef void(* STOP_HANDLE) (void);

Callback function prototype


Public Attributes Documentation

variable __attribute__

union SdkInfo __attribute__;

variable day

uint8_t day;

variable month

uint8_t month;

variable version

uint16_t version;

variable year

uint8_t year;

Public Functions Documentation

function __attribute__

struct SdkDate __attribute__ (
    (packed)
) 

function begin

Initialize the configuration of the camera module.

CamStatus begin (
    ArducamCamera * camera
) 

Parameters:

Returns:

Return operation status


function cameraHeartBeat

Inform the other party of camera status.

uint8_t cameraHeartBeat (
    ArducamCamera * camera
) 

Parameters:

Returns:

Returns camera status


function cameraImageAvailable

uint32_t cameraImageAvailable (
    ArducamCamera * camera
) 

function cameraReadFifoLength

uint32_t cameraReadFifoLength (
    ArducamCamera * camera
) 

function cameraReadReg

uint8_t cameraReadReg (
    ArducamCamera * camera,
    uint8_t addr
) 

function captureThread

void captureThread (
    ArducamCamera * camera
) 

function clearFifoFlag

void clearFifoFlag (
    ArducamCamera * camera
) 

function createArducamCamera

Create a camera instance.

ArducamCamera createArducamCamera (
    int cs
) 

Parameters:

  • cs Chip select signal for SPI communication

Returns:

Return a ArducamCamera instance


function debugWriteRegister

Debug mode.

void debugWriteRegister (
    ArducamCamera * camera,
    uint8_t * buff
) 

Parameters:

  • camera ArducamCamera instance
  • buff There are four bytes of buff Byte 1 indicates the device address, Byte 2 indicates the high octet of the register, Byte 3 indicates the low octet of the register, and Byte 4 indicates the value written to the register

function getAutoFocusSta

Get auto focus status.

uint8_t getAutoFocusSta (
    ArducamCamera * camera
) 

Returns:

Return 0x10:focus is finished

Note:

Only 5MP cameras support auto focus control


function getBit

uint8_t getBit (
    ArducamCamera * camera,
    uint8_t addr,
    uint8_t bit
) 

function lowPowerOff

Turn off low power mode.

void lowPowerOff (
    ArducamCamera * camera
) 

Parameters:


function lowPowerOn

Turn on low power mode.

void lowPowerOn (
    ArducamCamera * camera
) 

Parameters:


function readBuff

Read image data with specified length to buffer.

uint32_t readBuff (
    ArducamCamera * camera,
    uint8_t * buff,
    uint32_t length
) 

Parameters:

  • camera ArducamCamera instance
  • buff Buffer for storing camera data
  • length The length of the available data to be read

Returns:

Returns the length actually read

Note:

Transmission length should be less than 255


function readByte

Read a byte from FIFO.

uint8_t readByte (
    ArducamCamera * camera
) 

Parameters:

Returns:

Returns Camera data

Note:

Before calling this function, make sure that the data is available in the buffer


function registerCallback

Create callback function.

void registerCallback (
    ArducamCamera * camera,
    BUFFER_CALLBACK function,
    uint8_t blockSize,
    STOP_HANDLE handle
) 

Parameters:

  • camera ArducamCamera instance
  • function Callback function name
  • blockSize The length of the data transmitted by the callback function at one time
  • handle stop function Callback function name

Note:

Transmission length should be less than 255


function reset

reset cpld and camera

CamStatus reset (
    ArducamCamera * camera
) 

Parameters:

Returns:

Return operation status


function setAbsoluteExposure

Set the exposure time Manually.

CamStatus setAbsoluteExposure (
    ArducamCamera * camera,
    uint32_t val
) 

Parameters:

Returns:

Return operation status

Note:

Before calling this function, you need to use the setAutoExposure() function to turn off the auto exposure function


function setAutoExposure

Set the exposure mode.

CamStatus setAutoExposure (
    ArducamCamera * camera,
    uint8_t val
) 

Parameters:

  • camera ArducamCamera instance
  • val 1 Turn on automatic exposure 0 Turn off automatic exposure

Returns:

Return operation status


function setAutoFocus

Set auto focus mode.

CamStatus setAutoFocus (
    ArducamCamera * camera,
    uint8_t val
) 

Parameters:

Returns:

Return operation status

Note:

Only 5MP cameras support auto focus control


function setAutoISOSensitive

Set the gain mode.

CamStatus setAutoISOSensitive (
    ArducamCamera * camera,
    uint8_t val
) 

Parameters:

  • camera ArducamCamera instance
  • val 1 turn on automatic gain 0 turn off automatic gain

Returns:

Return operation status


function setAutoWhiteBalance

Set white balance mode.

CamStatus setAutoWhiteBalance (
    ArducamCamera * camera,
    uint8_t val
) 

Parameters:

  • camera ArducamCamera instance
  • val 1 turn on automatic white balance 0 turn off automatic white balance

Returns:

Return operation status


function setAutoWhiteBalanceMode

Set the white balance mode Manually.

CamStatus setAutoWhiteBalanceMode (
    ArducamCamera * camera,
    CAM_WHITE_BALANCE mode
) 

Parameters:

Returns:

Return operation status


function setBrightness

Set Brightness level.

CamStatus setBrightness (
    ArducamCamera * camera,
    CAM_BRIGHTNESS_LEVEL level
) 

Parameters:

Returns:

Return operation status


function setColorEffect

Set special effects.

CamStatus setColorEffect (
    ArducamCamera * camera,
    CAM_COLOR_FX effect
) 

Parameters:

Returns:

Return operation status


function setContrast

Set Contrast level.

CamStatus setContrast (
    ArducamCamera * camera,
    CAM_CONTRAST_LEVEL level
) 

Parameters:

Returns:

Return operation status


function setEV

Set EV level.

CamStatus setEV (
    ArducamCamera * camera,
    CAM_EV_LEVEL level
) 

Parameters:

Returns:

Return operation status


function setISOSensitivity

Set the exposure time Manually.

CamStatus setISOSensitivity (
    ArducamCamera * camera,
    int iso_sense
) 

Parameters:

Returns:

Return operation status

Note:

Before calling this function, you need to use the setAutoISOSensitive() function to turn off the auto gain function


function setImageQuality

Set jpeg image quality.

CamStatus setImageQuality (
    ArducamCamera * camera,
    IMAGE_QUALITY qualtiy
) 

Parameters:

Returns:

Return operation status

Note:

Only 3MP cameras support sharpness control


function setManualFocus

Set manual focus mode.

CamStatus setManualFocus (
    ArducamCamera * camera,
    uint16_t val
) 

Parameters:

  • value of VCM code

Returns:

Return operation status

Note:

Only 5MP cameras support maunal focus control


function setSaturation

Set saturation level.

CamStatus setSaturation (
    ArducamCamera * camera,
    CAM_STAURATION_LEVEL level
) 

Parameters:

Returns:

Return operation status


function setSharpness

Set Sharpness level.

CamStatus setSharpness (
    ArducamCamera * camera,
    CAM_SHARPNESS_LEVEL level
) 

Parameters:

Returns:

Return operation status

Note:

Only 3MP cameras support sharpness control


function startCapture

void startCapture (
    ArducamCamera * camera
) 

function startPreview

Start preview with specified resolution mode.

CamStatus startPreview (
    ArducamCamera * camera,
    CAM_VIDEO_MODE mode
) 

Parameters:

  • camera ArducamCamera instance
  • mode Resolution of the camera module

Returns:

Return operation status

Note:

Before calling this function, you need to register the callback function.The default image pixel format is JPEG


function stopPreview

Stop preview.

CamStatus stopPreview (
    ArducamCamera * camera
) 

Parameters:

Returns:

Return operation status


function takeMultiPictures

Start multi capture with specified number of image.

CamStatus takeMultiPictures (
    ArducamCamera * camera,
    CAM_IMAGE_MODE mode,
    CAM_IMAGE_PIX_FMT pixel_format,
    uint8_t number
) 

Parameters:

  • camera ArducamCamera instance
  • mode Resolution of the camera module
  • pixel_format Output image pixel format,which supports JPEG, RGB, YUV
  • number Number of pictures taken

Returns:

Return operation status

Note:

The mode parameter must be the resolution which the current camera supported


function takePicture

Start a snapshot with specified resolution and pixel format.

CamStatus takePicture (
    ArducamCamera * camera,
    CAM_IMAGE_MODE mode,
    CAM_IMAGE_PIX_FMT pixel_format
) 

Parameters:

  • camera ArducamCamera instance
  • mode Resolution of the camera module
  • pixel_format Output image pixel format,which supports JPEG, RGB, YUV

Returns:

Return operation status

Note:

The mode parameter must be the resolution wh


function waitI2cIdle

uint32_t waitI2cIdle (
    ArducamCamera * camera
) 

function writeReg

void writeReg (
    ArducamCamera * camera,
    uint8_t addr,
    uint8_t val
) 


The documentation for this class was generated from the following file neuralspot/neuralspot/ns-camera/includes-api/ArducamCamera.h