Toma de foto y descomprimir en HEX

Dependencies:   JPEGCamera SDFileSystem mbed

Fork of SaibiCansat2014 by Takashi SASAKI

Committer:
TakashiSasaki
Date:
Thu Jul 17 23:17:45 2014 +0000
Revision:
7:cc8080b31ac5
Parent:
6:9824d4e2f29b
Child:
8:3230ddd3a3d1
bug fux; stopPictures at the end of shoot()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TakashiSasaki 6:9824d4e2f29b 1 #ifndef FAST_JPEG_CAMERA_H
TakashiSasaki 6:9824d4e2f29b 2 #define FAST_JPEG_CAMERA_H
TakashiSasaki 6:9824d4e2f29b 3
TakashiSasaki 6:9824d4e2f29b 4 #include "JPEGCamera/JPEGCamera.h"
TakashiSasaki 6:9824d4e2f29b 5
TakashiSasaki 6:9824d4e2f29b 6 #define FILENAME "/sd/pict%03d.jpg"
TakashiSasaki 6:9824d4e2f29b 7
TakashiSasaki 6:9824d4e2f29b 8 class FastJpegCamera : public JPEGCamera {
TakashiSasaki 6:9824d4e2f29b 9 public:
TakashiSasaki 6:9824d4e2f29b 10 DigitalOut myled1; //show successful picture was taken
TakashiSasaki 6:9824d4e2f29b 11 int baudrate;
TakashiSasaki 6:9824d4e2f29b 12 Serial pc;
TakashiSasaki 6:9824d4e2f29b 13
TakashiSasaki 6:9824d4e2f29b 14 FastJpegCamera(PinName tx, PinName rx) : JPEGCamera(tx,rx), baudrate(38400), pc(USBTX, USBRX), myled1(LED1){
TakashiSasaki 6:9824d4e2f29b 15 this->baud38400();
TakashiSasaki 6:9824d4e2f29b 16 };
TakashiSasaki 6:9824d4e2f29b 17
TakashiSasaki 6:9824d4e2f29b 18 void baud115200(){
TakashiSasaki 6:9824d4e2f29b 19 char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x0d, 0xa6};
TakashiSasaki 6:9824d4e2f29b 20 //char buf[5] = {0x56, 0x00, 0x34, 0x0d, 0xa6};
TakashiSasaki 6:9824d4e2f29b 21 //int ret = sendReceive(buf, sizeof buf, 5);
TakashiSasaki 6:9824d4e2f29b 22 for (int i = 0; i < sizeof buf; i++) putc(buf[i]);
TakashiSasaki 6:9824d4e2f29b 23 this->baudrate = 115200;
TakashiSasaki 6:9824d4e2f29b 24 this->baud(this->baudrate);
TakashiSasaki 6:9824d4e2f29b 25 wait(4);
TakashiSasaki 6:9824d4e2f29b 26 //this->reset();
TakashiSasaki 6:9824d4e2f29b 27 receive(buf, 5, 500);
TakashiSasaki 6:9824d4e2f29b 28 pc.printf("%02x %02x %02x %02x %02x", buf[0], buf[1], buf[2], buf[3], buf[4]);
TakashiSasaki 6:9824d4e2f29b 29 };
TakashiSasaki 6:9824d4e2f29b 30
TakashiSasaki 6:9824d4e2f29b 31 void baud57600(){
TakashiSasaki 6:9824d4e2f29b 32 char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x1c, 0x4c};
TakashiSasaki 6:9824d4e2f29b 33 int ret = sendReceive(buf, sizeof buf, 5);
TakashiSasaki 6:9824d4e2f29b 34 wait(0.5);
TakashiSasaki 6:9824d4e2f29b 35 this->reset();
TakashiSasaki 6:9824d4e2f29b 36 this->baudrate = 57600;
TakashiSasaki 6:9824d4e2f29b 37 this->baud(this->baudrate);
TakashiSasaki 6:9824d4e2f29b 38 };
TakashiSasaki 6:9824d4e2f29b 39
TakashiSasaki 6:9824d4e2f29b 40
TakashiSasaki 6:9824d4e2f29b 41 void baud38400(){
TakashiSasaki 6:9824d4e2f29b 42 char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x2a, 0xf2};
TakashiSasaki 6:9824d4e2f29b 43 int ret = sendReceive(buf, sizeof buf, 5);
TakashiSasaki 6:9824d4e2f29b 44 wait(0.5);
TakashiSasaki 6:9824d4e2f29b 45 //this->reset();
TakashiSasaki 6:9824d4e2f29b 46 this->baudrate = 38400;
TakashiSasaki 6:9824d4e2f29b 47 this->baud(this->baudrate);
TakashiSasaki 6:9824d4e2f29b 48 pc.printf("%02x %02x %02x %02x %02x", buf[0], buf[1], buf[2], buf[3], buf[4]);
TakashiSasaki 6:9824d4e2f29b 49 };
TakashiSasaki 6:9824d4e2f29b 50
TakashiSasaki 6:9824d4e2f29b 51 void shoot(int i){
TakashiSasaki 6:9824d4e2f29b 52
TakashiSasaki 6:9824d4e2f29b 53 if (!this->isReady()) {
TakashiSasaki 7:cc8080b31ac5 54 pc.printf("show camera is not ready\n");
TakashiSasaki 6:9824d4e2f29b 55 //myled4 = 1; //show camera is not ready
TakashiSasaki 6:9824d4e2f29b 56 //wait(2.0);
TakashiSasaki 6:9824d4e2f29b 57 //myled4 = 0;
TakashiSasaki 6:9824d4e2f29b 58 return;
TakashiSasaki 6:9824d4e2f29b 59 }//if
TakashiSasaki 6:9824d4e2f29b 60
TakashiSasaki 6:9824d4e2f29b 61 char filename[32];
TakashiSasaki 6:9824d4e2f29b 62 sprintf(filename, FILENAME, i);
TakashiSasaki 6:9824d4e2f29b 63 printf("Picture: %s ", filename);
TakashiSasaki 6:9824d4e2f29b 64 myled1 = 1;
TakashiSasaki 6:9824d4e2f29b 65 if (this->takePicture(filename)) {
TakashiSasaki 6:9824d4e2f29b 66 while (this->isProcessing()) {
TakashiSasaki 6:9824d4e2f29b 67 this->processPicture();
TakashiSasaki 6:9824d4e2f29b 68 }//while
TakashiSasaki 6:9824d4e2f29b 69 //myled1 = 1; //show successful picture was taken
TakashiSasaki 6:9824d4e2f29b 70 //wait(2.0);
TakashiSasaki 6:9824d4e2f29b 71 //myled1 = 0;
TakashiSasaki 6:9824d4e2f29b 72 } else {
TakashiSasaki 7:cc8080b31ac5 73 pc.printf("shot %s\n", filename);
TakashiSasaki 6:9824d4e2f29b 74 //myled3 = 1; //show picture take failed
TakashiSasaki 6:9824d4e2f29b 75 //wait(2.0);
TakashiSasaki 6:9824d4e2f29b 76 //myled3 = 0;
TakashiSasaki 6:9824d4e2f29b 77 }//if
TakashiSasaki 7:cc8080b31ac5 78 this->stopPictures();
TakashiSasaki 6:9824d4e2f29b 79 myled1 = 0;
TakashiSasaki 6:9824d4e2f29b 80 };//shoot
TakashiSasaki 6:9824d4e2f29b 81
TakashiSasaki 6:9824d4e2f29b 82 };//FastJpegCamera
TakashiSasaki 6:9824d4e2f29b 83
TakashiSasaki 6:9824d4e2f29b 84 #endif