Toma de foto y descomprimir en HEX
Dependencies: JPEGCamera SDFileSystem mbed
Fork of SaibiCansat2014 by
FastJpegCamera.h@6:9824d4e2f29b, 2014-07-17 (annotated)
- Committer:
- TakashiSasaki
- Date:
- Thu Jul 17 23:01:41 2014 +0000
- Revision:
- 6:9824d4e2f29b
- Child:
- 7:cc8080b31ac5
using FastJpegCamera instead of main_camera
Who changed what in which revision?
User | Revision | Line number | New 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 | 6:9824d4e2f29b | 54 | 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 | 6:9824d4e2f29b | 73 | printf("take picture picture\n"); |
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 | 6:9824d4e2f29b | 78 | myled1 = 0; |
TakashiSasaki | 6:9824d4e2f29b | 79 | };//shoot |
TakashiSasaki | 6:9824d4e2f29b | 80 | |
TakashiSasaki | 6:9824d4e2f29b | 81 | };//FastJpegCamera |
TakashiSasaki | 6:9824d4e2f29b | 82 | |
TakashiSasaki | 6:9824d4e2f29b | 83 | #endif |