[vc_row][vc_column width=”1/1″][vc_column_text]LinkSprite JPEG Color Camera is simple camera that you can use with your Arduino projects. Its size is 32 X 32mm.
Arduino is using serial port to communicate with the camera. Refresh time for shooting a picture is about 4-5sec. If you are planing to write it to an SD card you should give it something around 8sec. to take a picture and save it to a file.
You can download the libraries that you need from this link.
It is easy to set up and you can save your images to an SD card. Refresh time for shooting a picture is about 4-5sec. If you are planing to write it to an SD card you should give it something around 8sec. to take a picture and save it to a file. Also, it is possible to change the dimensions, compression of the file and the baud rate of the communication. Serial information about these are all included in the manual.
LinkSprite JPEG camera is running on +3.3v which you can easily get from Arduino. Here is a picture of the camera and the pins:
Arduino is using serial port to communicate with the camera. However, if you want to save this picture to an SD card or send it to processing, you need to use serial ports also. So, in this case we are using soft serial which is included in Arduino Uno. As you can see from the picture, you need to connect power pin to +3.3v and ground pin to Arduino’s ground pin. As I already mentioned, this time we are going to use soft serial port to communicate between Arduino and camera. We are going to connect TX pin to Arduinoss digital pin “2″ and RX pin to Arduino’s digital pin “3″ After making these connections, rest is all up to your code. You definitely need to download the libraries from sparkfun.com and include them to Arduino. They also have good example codes. However, if you are new with programing and Arduino or not a C programmer, you might find these examples a bit complicated. So, I have simplified some of their examples. Here is an example that saves pictures to SD card by using microSD shield.
/* JPEG Camera Example Sketch The sketch will take a picture on the JPEG Serial Camera and store the jpeg to an SD card on an SD Shield Written by Ryan Owens SparkFun Electronics Hardware Notes: This sketch assumes the arduino has the microSD shield from SparkFun attached. The camera Rx/Tx should be attached to pins 2 and 3. IMPORTANT: The JPEG camera requires a TTL level shifter between the camera output and the arduino. Bypassing this may damage the Arduino pins. */ //This example requires the MemoryCard, SdFat, JPEGCamera and NewSoftSerial libraries #include #include #include #include //Create an instance of the camera JPEGCamera camera; //Create a character array to store the cameras response to commands char response[32]; //Count is used to store the number of characters in the response string. unsigned int count=0; //Size will be set to the size of the jpeg image. int size=0; //This will keep track of the data address being read from the camera int address=0; //eof is a flag for the sketch to determine when the end of a file is detected //while reading the file data from the camera. int eof=0; void setup() { //Setup the camera, serial port and memory card camera.begin(); Serial.begin(9600); MemoryCard.begin(); //Reset the camera count=camera.reset(response); delay(3000); //Take a picture count=camera.takePicture(response); //Print the response to the 'TAKE_PICTURE' command. Serial.write(response); Serial.write(count); Serial.println(); //Get the size of the picture count = camera.getSize(response, &size); //Print the size Serial.print("Size: "); Serial.println(size); //Create a file called 'test.txt' on the SD card. //NOTE: The memoryCard libary can only create text files. //The file has to be renamed to .jpg when copied to a computer. MemoryCard.open("/test.txt", true); //Starting at address 0, keep reading data until we've read 'size' data. while(address < size) { //Read the data starting at the current address. count=camera.readData(response, address); //Store all of the data that we read to the SD card for(int i=0; i<count; i++){ //Check the response for the eof indicator (0xFF, 0xD9). If we find it, set the eof flag if((response[i] == (char)0xD9) && (response[i-1]==(char)0xFF))eof=1; //Save the data to the SD card MemoryCard.file.print(response[i], BYTE); //If we found the eof character, get out of this loop and stop reading data if(eof==1)break; } //Increment the current address by the number of bytes we read address+=count; //Make sure we stop reading data if the eof flag is set. if(eof==1)break; } //Close the file MemoryCard.close(); Serial.print("Done."); } void loop() { }
[/vc_column_text][/vc_column][/vc_row]
Leave a Reply
You must be logged in to post a comment.