JPEG 2M Pixel Color Camera Serial Interface(RS232 level)

From LinkSprite Playgound
Revision as of 09:54, 13 August 2014 by Yajuan.dai (talk | contribs) (Package List)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Description

LS-Y201-2MP is LinkSprite’s new generation high resolution serial port camera module. Its resolution is 2 million pixel. It can captures high resolution pictures using the serial port. LS-Y201-2MP is a modular design that outputs JPEG images through UART, and can be easily integrated into existing design.

Package List

  • 1 X [CAM_JPEG_2M_RS232][201201005]
  • 1 X [IT_CAM_IR_CAB ][AA101103]


model:[CAM_JPEG_2M_RS232]201201005]

2M JPEGC CAMERA.jpg400px


Cable included:[IT_CAM_IR_CAB ][AA101103]

IT CAM IR CAB-1.jpg

Specification

  • 2 Million Pixels
  • Support capture JPEG from serial port
  • Default baud rate of serial port is 38400
  • DC 3.3V or 5V power supply
  • Size 32mm X 32mm
  • Current consumption: 80-100mA
  • The pin near C03 is AV output pin, which is an analog output pin.

2M camera Spec.jpg

Application Idea

  • Different image capture systems
  • Environmental monitoring
  • Industry monitoring
  • Medical equipment
  • Video phone
  • Security
  • Vehicle based GPS

Usage

Hardware Installation

Evaluation Setup

Evasetup.jpg

Programming

Evascreenshot.jpg

  • Step 1: Click Open COM
  • Step 2: Click Single Shot.

Arduino sample code provided <syntaxhighlight lang="c"> /* Linksprite */

  1. include <NewSoftSerial.h>

byte incomingbyte; NewSoftSerial mySerial(4,5); //Configure pin 4 and 5 as soft serial port int a=0x0000,j=0,k=0,count=0; //Read Starting address uint8_t MH,ML; boolean EndFlag=0;

void SendResetCmd(); void SendTakePhotoCmd(); void SendReadDataCmd(); void StopTakePhotoCmd();

void setup() {

 Serial.begin(19200);
 mySerial.begin(38400);

}

void loop() {

    SendResetCmd();
    delay(4000);                               //After reset, wait 2-3 second to send take picture command
     
     SendTakePhotoCmd();
    while(mySerial.available()>0)
     {
       incomingbyte=mySerial.read();
     }   
     byte a[32];
     
     while(!EndFlag)
     {  
        j=0;
        k=0;
        count=0;
        SendReadDataCmd();
        delay(25);
         while(mySerial.available()>0)
         {
              incomingbyte=mySerial.read();
              k++;
              if((k>5)&&(j<32)&&(!EndFlag))
              {
              a[j]=incomingbyte;
              if((a[j-1]==0xFF)&&(a[j]==0xD9))      //Check if the picture is over
              EndFlag=1;                           
              j++;

count++;

              }
         }
        
         for(j=0;j<count;j++)
         {   if(a[j]<0x10)
             Serial.print("0");
             Serial.print(a[j],HEX);
             Serial.print(" ");
         }                                       //Send jpeg picture over the serial port
         Serial.println();
     }      
    while(1);

}

//Send Reset command void SendResetCmd() {

     mySerial.print(0x56, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x26, BYTE);
     mySerial.print(0x00, BYTE);

}

//Send take picture command void SendTakePhotoCmd() {

     mySerial.print(0x56, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x36, BYTE);
     mySerial.print(0x01, BYTE);
     mySerial.print(0x00, BYTE);  

}

//Read data void SendReadDataCmd() {

     MH=a/0x100;
     ML=a%0x100;
     mySerial.print(0x56, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x32, BYTE);
     mySerial.print(0x0c, BYTE);
     mySerial.print(0x00, BYTE); 
     mySerial.print(0x0a, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(MH, BYTE);
     mySerial.print(ML, BYTE);   
     mySerial.print(0x00, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x20, BYTE);
     mySerial.print(0x00, BYTE);  
     mySerial.print(0x0a, BYTE);
     a+=0x20;                            //address increases 32,set according to buffer size

}

void StopTakePhotoCmd() {

     mySerial.print(0x56, BYTE);
     mySerial.print(0x00, BYTE);
     mySerial.print(0x36, BYTE);
     mySerial.print(0x01, BYTE);
     mySerial.print(0x03, BYTE);        

}

</syntaxhighlight>

Support

If you have questions or other better design ideas, you can go to our forum to discuss or creat a ticket for your issue at linksprite support.

Resources

How to buy

Here to buy on LinkSprite Cart