kk
Dependencies: SDFileSystem mbed
Fork of cansat_kk by
main.cpp
- Committer:
- mosukro
- Date:
- 2016-02-29
- Revision:
- 2:be9046fb5859
- Parent:
- 1:fa44a6246bcc
- Child:
- 3:efaa785283a6
File content as of revision 2:be9046fb5859:
#include "mbed.h" #include "SDFileSystem.h" Ticker timer; SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board Serial gps(p28, p27); // tx, rx Serial pc(USBTX, USBRX); // tx, rx PwmOut moterl(p21);//左モーター PwmOut moterr(p22);//右モーター DigitalOut led1(LED1); DigitalOut fet3(p23);//ニクロム線 DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalOut janpa1(p19);//パラシュートの開きを検知 DigitalIn janpa2(p20);//パラシュートの開きを検知 char gps_data[256]; float longitude,latitude,gpstime,knot,angle; int i=0; char *gps_target = "$GPRMC,174813.000,A,3606.9349,N,13927.4196,E,0.42,221.65,280216,,,A*6D"; float longitude_target,latitude_target,gpstime_target,knot_target,angle_target; void gps_rx()//GPSデータ受信割り込み { gps_data[i] = gps.getc(); if( gps_data[i] == '$' ) { //$から受信データを保持する gps_data[0] = '$'; i = 1; } else if( gps_data[i-1] == '\r' && gps_data[i] == '\n' ) { // 改行コードまでのデータを解析する gps_data[i+1] = '\0'; if(memcmp(gps_data, "$GPRMC",6) == 0) { // $GPRMCで始ってればデータを分けて格納 sscanf(gps_data,"$GPRMC,%f,A,%f,N,%f,E,%f,%f",&gpstime,&longitude,&latitude,&knot,&angle); } //データをSDに書き込み mkdir("/sd/mydir", 0777); FILE *fp = fopen("/sd/mydir/gpsdata.txt", "a"); if(fp == NULL) { error("Could not open file for write\n"); } fprintf(fp,"%s \n",gps_data); fclose(fp); //PCにデータ送信 pc.printf("%s \n",gps_data); i = 0; } else { //改行コードが来るまでカウントを続ける i++; if(i==255) { pc.printf("*** Error! ***\n"); } } } void move() { //動作 switch (count) { case 0: if( (target_angle+3)>=angle || (target_angle-3)<=angle ) { // } break; case 1: 文2; break; case 2: 文n; break; default: 文; break; } } int main() { gps.baud(9600); gps.attach(gps_rx, Serial::RxIrq);//GPS割り込み sscanf(gps_target,"$GPRMC,%f,A,%f,N,%f,E,%f,%f",&gpstime_target,&longitude_target,&latitude_target,&knot_target,&angle_target); while(1) { move(); } }