JPEG Color Camera Serial Interface(RS485)
Contents
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.
Model:CAM_JPEG_RS485
Features
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.
Schematic
Specification
- VGA/QVGA/160*120 resolution
- 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.
Pin definition and Rating
Mechanic Dimensions
Usage
Hardware Installation
Evaluation Setup
Programming
- 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 forum to discuss or creat a ticket for your issue at linksprite support.
Resources
- Evaluation Software
- Linksprite Open Source Code for X86
- Tutorial at LinkSprite
- LS-201_product_specification
- user manual
How to buy
Here to buy on LinkSprite Cart
See Also
Other related products and resources.