Difference between revisions of "JPEG Color Camera Serial Interface (TTL level) Hitachi Customized"

From LinkSprite Playgound
Jump to: navigation, search
(Introduction)
(Blanked the page)
 
Line 1: Line 1:
== Introduction  ==
 
  
LS-Y201 is LinkSprite’s new generation serial port camera module. It can captures high resolution pictures using the serial port. LS-Y201 is a modular design that outputs JPEG images through UART, and can be easily integrated into existing design.
 
 
This camera is customized for Hitachi.
 
 
[[File:TTL camera for H.jpg]]
 
 
[[File:TTL camera for H2.jpg]]
 
 
== Application Ideas  ==
 
 
*Different image capture systems
 
*Environmental monitoring
 
*Industry monitoring
 
*Medical equipment
 
*Video phone
 
*Security
 
*Vehicle based GPS
 
 
== Cautions  ==
 
 
The warnings and wrong operations possible cause dangerous.
 
 
== Specification  ==
 
 
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/JPEG+Camera+Procurement+Specification.pdf Spec]
 
 
== 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>
 
 
== FAQ  ==
 
 
*Q: What is the maximum size data that can be read from "Read JPEG file content" - can I read the entire JPEG file in one operation (assuming that the data size read is a multiple of 8 bytes)?
 
 
:A: Because of the different background, the size of the images are not the same.But you can read the data of image size.Manual inside has this command. You can read the entire JPEG file in one operation
 
 
*Q: The datasheet that was sent to me says that the "Maximum HS-UART Interface BPS" is 921.6kbps and I would like to understand how to reach a higher speed than 115.2kbps.
 
 
:A: The highest is 115200.
 
 
*Q: Could you please clearly explain how "Stop taking pictures" works and why it is necessary? Does it have to be executed before I can take another picture? What is it's timing information?
 
 
:A: Send take picture, the camera will have been taking pictures, and middle time interval is very short(can ignore).
 
 
Send stop taking pictures reason:
 
 
:Because I take one picture that the camera image data is stored in the buffer,then immediately take another picture.
 
 
:But before you take another picture,you must be send the stop taking pictures.Otherwise picture won't update.
 
 
== 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  ==
 
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/LSY201evaluationsoftware.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]
 
*[https://github.com/nosebleed/jpeg-ttl-cam Github]
 
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/LS-Y201+product+Specifications.pdf LS-201_product_specification]
 
*[https://s3.amazonaws.com/linksprite/camera/JPEG_camera_uartinterface_TTL/LinkSprite+JPEG+Color+Camera+User+Manual++V1.2.pdf User Manual]
 
*[http://www.cutedigi.com/blog/?p=41 A tutorial of LinkSprite JPEG camera]
 

Latest revision as of 01:45, 5 March 2015