full

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
MEXT1
Date:
Tue May 02 07:11:34 2017 +0000
Commit message:
test

Changed in this revision

HEPTA.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r abaad4af646d HEPTA.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HEPTA.lib	Tue May 02 07:11:34 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/kuropuss/code/HEPTA00/#b5c265b1f157
diff -r 000000000000 -r abaad4af646d main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 02 07:11:34 2017 +0000
@@ -0,0 +1,319 @@
+#include "mbed.h"
+#include "Hepta.h"
+
+HeptaGPS gps(p13,p14);//tx,rx(Din,Data_Out)
+HeptaBattery battery(p16,p29,p26);//(battery voltage,power cotrol transister,3.3V regulater enable)
+SDFileSystem sd(p11, p12, p13, p15, "sd");//(cmd,dat0,clk,dat3)
+HeptaGyro gyro(p28,p27,0xD4);//(sda,scl,I2C address)
+HeptaAccel accel(p28,p27,0x38);//(sda,scl,I2C address)
+TextLCD_SB1602E lcd(p28,p27,0x7C);//(sda,scl,I2C address)
+ATP3011 talk(p28, p27,0x5C); //(sda,scl,I2C address)
+HeptaXbee xbee(p9, p10);//tx,rx(Din,Dout)
+
+HeptaCamera camera(
+    p28,p27,       // SDA,SCL(I2C / SCCB)
+    p21,p22,p23,   // VSYNC,HREF,WEN(FIFO)
+    p5,p6,p7,p8,p30,p17,p25,p18, // D7-D0
+    p20,p24,p19) ; // RRST,OE,RCK
+
+//----SERIAL----//
+
+//----LED----//
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4); 
+
+int main() {
+        char mode;
+    pc.baud(9600);
+    //pc.baud(921600);
+    while(1) {
+        pc.printf("Hello world. This is DEMO mode\r\n");
+        pc.printf("Please select mode.\r\n");
+        pc.printf("1:LED Mode\r\n");
+        pc.printf("2:LED Count Mode\r\n");
+        pc.printf("3:Electrical Vlotage Detection Mode\r\n");
+        pc.printf("4:Battery Charge Mode\n\r");
+        pc.printf("5:Battery Fast Charge Mode\r\n");
+        pc.printf("6:SD Card Check Mode\n\r");
+        pc.printf("7:Storing Battery Voltage to SD Card Mode\r\n");
+        pc.printf("8:Gyro Sensor Mode\r\n");
+        pc.printf("9:Accel Sensor Mode\r\n");
+        pc.printf("a:GPS Sensor Mode\r\n");
+        pc.printf("b:Camera Mode\r\n");
+        pc.printf("c:LCD Mode\r\n");
+        pc.printf("d:Voice Mode\r\n");
+        pc.printf("e:Xbee Mode\r\n");
+        pc.printf("f:All Data Downlink to Pc Mode\r\n");
+        pc.printf("g:All Data Downlink to Pc by Xbee Mode\r\n");
+        pc.printf("h:High speed sensing mode for gyro & accel Mode\r\n");
+        pc.printf("i:High speed sensing mode and caluclate to deg\r\n");
+        mode = pc.putc(pc.getc());
+        pc.printf("\n\r");
+        if(mode=='0'){
+            pc.printf("0:Under construction!!!\n\r");
+        }else if(mode=='1'){
+        pc.printf("1:LED Mode\n\r");
+            while(1) {
+                led1 = 1;
+                wait(0.2);
+                led2 = 0;
+                wait(0.2);
+            }
+        }else if(mode=='2'){
+            pc.printf("2:LED Count Mode\n\r");
+            int k=1; //初期化
+            while(1) {
+                if(k>0x10)k=1;  //kが0b00010000になったら0b00000001にする
+                led1 = k & 0x01;
+                led2 = k & 0x02;
+                led3 = k & 0x04;
+                led4 = k & 0x08;
+                k=k<<1; //kの中を左に1つ移動
+                wait(0.1); //0.1秒待つ
+            }
+        }else if(mode=='3'){
+            pc.printf("3:Electrical Vlotage Detection Mode\n\r");
+            int i,dsize;
+            float bt;
+            char abt[4];
+            pc.printf("Hellow\r\n");
+            while(1){
+                battery.vol(&bt);
+                battery.vol_u16(abt,&dsize);
+                pc.printf("Vol = %f\r\n",bt);
+                pc.printf("Vol_u16 = ");
+                for(i=1;i<dsize;i++){
+                    pc.putc(abt[i]);
+                }
+                pc.printf("\r\n");
+                wait(1.0);
+            }
+        }else if (mode=='4'){
+            pc.printf("4:Battery Charge Mode\n\r");
+            float bt;
+            int save_flag;
+            while(1) {
+                battery.charge(&save_flag);
+                battery.vol(&bt);
+                pc.printf("Vol = %f\r\n",bt);
+                pc.printf("save = %d\r\n",save_flag);
+                if(save_flag == 0){
+                    pc.printf("Vol = %f\r\n",bt);
+                }
+                wait(1.0);
+            }
+        }else if (mode=='5'){
+            pc.printf("5:Fast Cherge Mode\n\r");
+            float bt;
+            battery.vol(&bt);
+            pc.printf("V = %f\r\n",bt);
+            wait(3.0);
+            while(1) {
+                battery.fast_charge();
+            }
+        }else if (mode=='6'){
+            pc.printf("6:SD Card Check Mode\n\r");
+            mkdir("/sd/mydir", 0777);
+            FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
+            if(fp == NULL) {
+                error("Could not open file for write\n");
+            }
+            fprintf(fp, "Hello My name is HEPTA!");
+            fclose(fp);
+        }else if (mode=='7'){
+            pc.printf("7:Storing Battery Voltage to SD Card Mode\n\r");
+            float bt;
+            int i;
+            mkdir("/sd/mydir", 0777);
+            FILE *fp = fopen("/sd/mydir/battery.txt", "w");
+            if(fp == NULL) {
+                error("Could not open file for write\n");
+            }
+            for(i=1;i<=10;i++){
+                battery.vol(&bt);
+                pc.printf("Vol = %f\r\n",bt);
+                fprintf(fp,"%f\r\n",bt);
+                wait(1.0);
+            }
+            fclose(fp);
+            pc.printf("End\n\r");
+        }else if (mode=='8'){
+            pc.printf("8:Gyro Sensor Mode\n\r");
+            float gx,gy,gz;
+            pc.printf("X Y Z\r\n");
+            while(1){
+                gyro.sensing(&gx,&gy,&gz);
+                pc.printf("%2.5f %2.5f %2.5f\r\n",gx,gy,gz);
+                wait(1.0);
+            }
+        }else if (mode=='9'){
+            pc.printf("9:Accel Sensor Mode\n\r");
+            float ax,ay,az;
+            pc.printf("X Y Z\r\n");
+            while(1){
+                accel.sensing(&ax,&ay,&az);
+                pc.printf("%2.5f %2.5f %2.5f\r\n",ax,ay,az);
+                wait(1.0);
+            }
+        }else if (mode=='a'){
+            pc.printf("a:GPS Sensor Mode\n\r");
+            float lad,log;
+            while(1) {
+                gps.sensing(&lad,&log); 
+                pc.printf("Lad = %2.5f Log =%2.5f\r\n",lad,log);
+            }
+        }else if (mode=='b'){
+            pc.printf("b:Camera Mode\n\r");
+            //camera.shoot2();
+            camera.shoot();
+            wait(10);
+            pc.printf("Finish!!\n\r");
+        }else if (mode=='c'){
+            pc.printf("c:LCD Mode\n\r");
+            int i;
+            lcd.printf(0,"Hello\r");
+            lcd.printf(1,"World\r");
+            for(i=1;i<10;i++){
+                lcd.printf(0,"num = %d\r",i);
+                wait(1.0);
+            }
+        }else if (mode=='d'){
+            pc.printf("d:Voice Mode\r\n");
+            talk.Synthe("konnichiha\r");
+            break;
+        }else if (mode=='e'){
+            pc.printf("e:Xbee Mode\r\n");
+            int i=0,rcmd=0,cmdflag=0;
+            //xbee_serial.printf("Count Up!\r");
+            xbee.printf("Count Up!\r");
+            while(1){
+                //xbee_serial.printf("num = %d\r",i);
+                xbee.printf("num = %d\r",i);
+                i++;
+                wait(1.0);
+                xbee.xbee_recieve(&rcmd,&cmdflag);
+                pc.printf("rcmd=%d, cmdflag=%d\r\n",rcmd, cmdflag);
+                if (cmdflag == 1){
+                    if (rcmd == 'a'){
+                        pc.printf("Command Get %d\r\n",rcmd);
+                        xbee.printf("HEPTA Uplink OK\r");
+                    }
+                    xbee.initialize();
+                }
+            }
+        }else if(mode=='f'){ 
+            pc.printf("f:All Data Downlink to Pc Mode\r\n");
+            char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],lad[8],log[8],bt[4];
+            char ddata[44];
+            int dsize[4];
+            while(1) {
+                gyro.sensing_u16(gx,gy,gz,&dsize[0]);
+                accel.sensing_u16(ax,ay,az,&dsize[1]);
+                gps.sensing_u16(lad,log,&dsize[2]);
+                battery.vol_u16(bt,&dsize[3]);
+                //gyro.x_u16(gx,4);
+                pc_transmit(ddata,44,gx,gy,gz,ax,ay,az,lad,log,bt,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[3],9);      
+            }
+        }else if(mode=='g'){ 
+            pc.printf("g:All Data Downlink to Pc by Xbee Mode\r\n");
+            char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],lad[8],log[8],bt[4];
+            char ddata[44];
+            int dsize[4];
+            while(1) {
+                gyro.sensing_u16(gx,gy,gz,&dsize[0]);
+                accel.sensing_u16(ax,ay,az,&dsize[1]);
+                gps.sensing_u16(lad,log,&dsize[2]);
+                battery.vol_u16(bt,&dsize[3]);
+                //gyro.x_u16(gx,4);
+                xbee.xbee_transmit(ddata,44,gx,gy,gz,ax,ay,az,lad,log,bt,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[3],9);      
+            }
+        }else if(mode=='h'){ 
+            pc.printf("h:High speed sensing mode for gyro & accel Mode\r\n");
+            char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],lad[8],log[8],bt[4];
+            char ddata[44];
+            int dsize[4];
+            lad[0] = '0';
+            lad[1] = '0';
+            lad[2] = '0';
+            lad[3] = '0';
+            lad[4] = '0';
+            lad[5] = '0';
+            lad[6] = '0';
+            lad[7] = '0';
+            log[0] = '0';
+            log[1] = '0';
+            log[2] = '0';
+            log[3] = '0';
+            log[4] = '0';
+            log[5] = '0';
+            log[6] = '0';
+            log[7] = '0';
+            dsize[2] = 8;
+            //pc.printf("test");
+            wait(5.0);
+            while(1) {
+                //pc.printf("test2");
+                gyro.sensing_u16(gx,gy,gz,&dsize[0]);
+                accel.sensing_u16(ax,ay,az,&dsize[1]);
+                //gps.sensing_u16(lad,log,&dsize[2]);
+                battery.vol_u16(bt,&dsize[3]);
+                //gyro.x_u16(gx,4);
+                //pc.printf("ffff");
+                wait(0.001);              
+                pc_transmit(ddata,44,gx,gy,gz,ax,ay,az,lad,log,bt,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[3],9);      
+                //pc.printf("cccc");
+            }
+        }else if(mode=='i'){ 
+            pc.printf("i:High speed sensing mode and caluclate to deg\r\n");
+            float gx_ang,gy_ang,gz_ang;
+            float dt;
+            float gx,gy,gz;
+            //char gx[4],gy[4],gz[4],ax[4],ay[4],az[4],lad[8],log[8],bt[4];
+            char ddata[44];
+            int dsize[4];
+            /*lad[0] = '0';
+            lad[1] = '0';
+            lad[2] = '0';
+            lad[3] = '0';
+            lad[4] = '0';
+            lad[5] = '0';
+            lad[6] = '0';
+            lad[7] = '0';
+            log[0] = '0';
+            log[1] = '0';
+            log[2] = '0';
+            log[3] = '0';
+            log[4] = '0';
+            log[5] = '0';
+            log[6] = '0';
+            log[7] = '0';
+            dsize[2] = 8;*/
+            //pc.printf("test");
+            wait(5.0);
+            dt = 0.001;
+            while(1) {
+                //pc.printf("test2");
+                gyro.sensing(&gx,&gy,&gz);
+                //gyro.sensing_u16(gx,gy,gz,&dsize[0]);
+                //accel.sensing_u16(ax,ay,az,&dsize[1]);
+                //gps.sensing_u16(lad,log,&dsize[2]);
+                //attery.vol_u16(bt,&dsize[3]);
+                //gyro.x_u16(gx,4);
+                //pc.printf("ffff");
+                //gyro data to deg
+                    gx_ang += (((gx+1.92556)))*dt;
+                    gy_ang += (((gy+0.41286)))*dt;
+                    gz_ang += (((gz-0.820308)))*dt;
+                pc.printf("%2.5f %2.5f %2.5f\r\n",gx_ang,gy_ang,gz_ang);
+                //pc.printf("%2.5f %2.5f %2.5f\r\n",gx+1.92556,gy+0.41286,gz-0.820308);
+                wait(0.001);              
+                //pc_transmit(ddata,44,gx,gy,gz,ax,ay,az,lad,log,bt,dsize[0],dsize[0],dsize[0],dsize[1],dsize[1],dsize[1],dsize[2],dsize[2],dsize[3],9);      
+                //pc.printf("cccc");
+            }
+        }else{
+            pc.printf("Under construction!!!\r\n");
+        }
+    }
+}
diff -r 000000000000 -r abaad4af646d mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue May 02 07:11:34 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34
\ No newline at end of file