Ramiro Rubio / Mbed 2 deprecated Camara

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 Serial pc(USBTX, USBRX); // tx, rx
00003 Serial wifi(PTE22,PTE23);
00004 Serial cam(PTC4,PTC3);
00005 DigitalOut myled(LED1);
00006 unsigned char reset[]={0x56,0x00,0x26,0x00};
00007 unsigned char init_end[]="Init end";
00008 unsigned char take_pic[]={0x56,0x00,0x36,0x01,0x00};
00009 unsigned char taking_pic[]={0x76,0x00,0x36,0x00,0x00};
00010 unsigned char read_size[]={0x56,0x00,0x34,0x01,0x00};
00011 unsigned char return_size[]={0x76,0x00,0x34,0x00,0x04,0x00,0x00};
00012 unsigned char read_pic[]={0x56,0x00,0x32,0x0C,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00};
00013 unsigned char wait_time[]={0x00,0x0A};
00014 unsigned char stop_pic[]={0x56,0x00,0x36,0x01,0x03};
00015 unsigned char size[2];
00016 unsigned char data_ready;
00017 unsigned char buff[13000];
00018 unsigned int i;
00019 unsigned int j;
00020 unsigned int hex_size;
00021 unsigned char rem;
00022 int main() {
00023     i=0;
00024     myled=0;
00025     cam.baud(38400);
00026     do
00027     {
00028         cam.printf("%c",reset[i++]);
00029     }while(i<4);
00030     i=0;
00031     pc.printf("reset\n");
00032     do
00033     {
00034         if(cam.getc()==init_end[i])
00035         {
00036             i++;
00037         };
00038     }while(init_end[i]);
00039     pc.printf("START\n");
00040     
00041     
00042     i=0;
00043     do
00044     {
00045         cam.printf("%c",take_pic[i++]);  
00046     }while(i<5);
00047     i=0;
00048     do
00049     {
00050         if(cam.getc()==taking_pic[i])
00051         {
00052             i++;
00053         };
00054     }while(i<5);
00055     i=0;
00056     pc.printf("pic taken\n");
00057     wait(1);
00058     do
00059     {
00060         cam.printf("%c",read_size[i++]);   
00061     }while(i<5);
00062     i=0;
00063     do
00064     {
00065         if(cam.getc()==return_size[i])
00066         {
00067             i++;
00068         };
00069         
00070     }while(i<7);
00071     i=0;  
00072     size[0]=cam.getc();
00073     size[1]=cam.getc();
00074     hex_size=0;
00075     hex_size=size[0];
00076     hex_size=(hex_size<<8)+size[1];
00077     
00078     pc.printf("%x",hex_size);
00079     
00080     rem=hex_size%4;
00081     
00082     pc.printf("%x",rem);
00083     do
00084     { 
00085         cam.printf("%c",read_pic[i++]);  
00086     }while(i<12);
00087     i=0;
00088     do
00089     {
00090         cam.printf("%c",size[i++]); 
00091     }while(i<2);
00092     i=0;
00093     do
00094     {
00095         cam.printf("%c",wait_time[i++]);   
00096     }while(i<2);
00097     i=0;
00098     do
00099     {
00100         buff[i]=cam.getc();
00101         if(buff[i]==0xFF & !data_ready)
00102         {
00103             data_ready++;
00104         }
00105         else if(buff[i]==0xD9 & data_ready)
00106         {
00107             data_ready++;
00108         }
00109         else
00110         {
00111             data_ready=0;
00112         }
00113         i++;
00114     }while(data_ready<2);
00115     pc.printf("FOTO");
00116     j=5;
00117     myled=1;
00118     do
00119     {
00120         pc.printf("%c",buff[(j++)]);
00121     }while(j<i);
00122     j=5;
00123 
00124     wifi.printf("%s","file.open(\"http/test.jpg\",\"w+\")\r");
00125     wait(0.2);
00126     wifi.printf("%s","uart.on(\"data\",4,\r");
00127     wait(0.1);
00128     wifi.printf("%s","function(data)\r");
00129     wait(0.1);
00130     wifi.printf("%s","print(\"receive from uart:\", data)\r");
00131     wait(0.1);
00132     wifi.printf("%s","file.write(data)\r");
00133     wait(0.1);
00134     wifi.printf("%s","if data==\"quit\" then\r");
00135     wait(0.1);
00136     wifi.printf("%s","print(\"success\")\r");
00137     wait(0.1);
00138     wifi.printf("%s","uart.on(\"data\")\r");
00139     wait(0.1);
00140     wifi.printf("%s","end\r");
00141     wait(0.1);
00142     wifi.printf("%s","end, 0)\r");
00143     wait(0.1);
00144     do
00145     {
00146         wifi.printf("%c",buff[(j++)]);
00147         wait(0.007);
00148     }while(j<i);
00149     wifi.printf("%s","quit");
00150     wait(1);
00151     wifi.printf("%s","file.close()\r");
00152 }