Difference between revisions of "JPEG 2M Pixel Color Camera Serial Interface V2 (TTL level) with black housing"

From LinkSprite Playgound
Jump to: navigation, search
(Created page with "== Introduction == File:2M JPEGC CAMERA black housing.jpg *1.Body length: 65mm *2.Diameter:50mm *3.Housing length:82mm *4.Support height:47.5 mm(adjustable) *5...")
 
Line 12: Line 12:
  
 
Note:Because there are a little difference on coming materials, the above size are just for reference, for actual size refer to the real coming materials.
 
Note:Because there are a little difference on coming materials, the above size are just for reference, for actual size refer to the real coming materials.
 +
 +
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_TTLUART][201201004]
 +
*1 X [IT_CAM_IR_CAB ][AA101103]
 +
 +
 +
 +
[[File:JPEG 2M Pixel Color Camera V2 001 photo.jpeg| 400px]]
 +
 +
[[File:JPEG 2M Pixel Color Camera V2 002 photo.jpeg| 400px]]
 +
 +
 +
 +
Cable included:[IT_CAM_IR_CAB ][AA101103]
 +
 +
[[File:IT_CAM_IR_CAB-1.jpg]]
 +
 +
== Specification ==
 +
*2 Million Pixels
 +
*Support capture JPEG from serial port
 +
*Default baud rate of serial port is 115200
 +
*DC 5V power supply
 +
*Size 32mm X 32mm
 +
*Current consumption: 80-100mA
 +
 +
 +
[[File:JPEG 2M Electric Parameters.png| 800px]]
 +
 +
[[File:JPEG 2M Optical Parameters.png| 800px]]
 +
 +
[[File:JPEG 2M Night vison parameters.png| 800px]]
 +
 +
[[File:JPEG 2M Interface Parameters.png| 800px]]
 +
 +
== Application Idea ==
 +
*Different image capture systems
 +
*Environmental monitoring
 +
*Industry monitoring
 +
*Medical equipment
 +
*Video phone
 +
*Security
 +
*Vehicle based GPS
 +
 +
== Usage  ==
 +
 +
 +
 +
=== Hardware Installation  ===
 +
'''Evaluation Setup'''
 +
 +
[[File:evasetup.jpg]]
 +
 +
=== Programming  ===
 +
[[File:evascreenshot.jpg]]
 +
 +
*Step 1: Click Open COM
 +
*Step 2: Click Single Shot.
 +
 +
'''''Arduino sample code provided'''''
 +
<syntaxhighlight lang="c">
 +
/* Linksprite */
 +
 +
#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 [http://www.linksprite.com/forum/index.php forum] to discuss or creat a ticket for your issue at [http://www.linksprite.com/support/ linksprite support].
 +
 +
== Resources  ==
 +
*[http://learn.linksprite.com/?p=2571 User Manual]
 +
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/LS-Y201-2MP.exe Evaluation Software]
 +
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/LSY201.rar Linksprite Open Source Code for X86]
 +
*[http://www.fezzer.com/project/220/linksprite-camera-library/ .Net micro framework source code]
 +
*[http://learn.linksprite.com/jpeg-camera/tutorial-of-using-linksprite-2mp-uart-jpeg-camera-with-arduino/ Arduino Tutorial]
 +
 +
== How to buy  ==
 +
 +
Here to buy on LinkSprite [http://www.linkspritedirect.com/index.php Cart]

Revision as of 01:30, 29 July 2016

Introduction

2M JPEGC CAMERA black housing.jpg


  • 1.Body length: 65mm
  • 2.Diameter:50mm
  • 3.Housing length:82mm
  • 4.Support height:47.5 mm(adjustable)
  • 5.Color: Black (the real product is black color)

Note:Because there are a little difference on coming materials, the above size are just for reference, for actual size refer to the real coming materials.

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_TTLUART][201201004]
  • 1 X [IT_CAM_IR_CAB ][AA101103]


JPEG 2M Pixel Color Camera V2 001 photo.jpeg

JPEG 2M Pixel Color Camera V2 002 photo.jpeg


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 115200
  • DC 5V power supply
  • Size 32mm X 32mm
  • Current consumption: 80-100mA


JPEG 2M Electric Parameters.png

JPEG 2M Optical Parameters.png

JPEG 2M Night vison parameters.png

JPEG 2M Interface Parameters.png

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