Class導入前です まだできてません
Dependencies: mbed CameraUS015sb612-3
main.cpp
- Committer:
- YUPPY
- Date:
- 2019-11-01
- Revision:
- 1:edc264954800
- Parent:
- 0:6212b283430c
- Child:
- 2:e2b803e3bcbc
File content as of revision 1:edc264954800:
#define cansatB #include “mbed.h” //mbed #include “getgps.h” //GPS #include “motordriver.h” //モータードライバ #include “XBee.h” //XBee #include <SoftwareSerial.h> //カメラ #include <SD.h>//SDカード #include <JPEGCamera.h>//カメラ #include “US015.h” // 超音波センサ #include "sb612a.h"//焦電センサー #include <stdio.h> #include <wiringPi.h> #include <mcp23s17.h> #include <sys/time.h> #include <unistd.h> DigitalOut USSTriger (p12); //P12 :超音波センサ トリガ出力 InterruptIn USSEcho (p11); //p11 :超音波センサ エコー入力 Serial pc(USBTX, USBRX); //GPS GPS gps(p28, p27); //GPS PwmOut motorSpeedR(p26); //モーター PwmOut motorSpeedL(p25); //モーター DigitalIn flight(p22,p23); //フライトピン DigitalOut FET(p21); //FET Timer ActiveTime; XBee xbee(p13, p14); // XBee AnalogIn (p15,p16); //焦電センサ Serial pc (p9); //カメラ //Motor motor1(p22, p16, p17, 1); // pwm, fwd, rev, can brake モーター //Motor motor2(p22, p19, p20, 1); // pwm, fwd, rev, can brake void dist(int distance) { //put code here to happen when the distance is changed printf(“Distance changed to %dmm\r\n”, distance); } printf(“GPS start\r\n”);//GPS 第一回目 FILE *fp = fopen(“/local/gps,foto.txt”, “w”); // Open “gps.txt” on the local file system for writing fprintf(fp, “GPS Start\r\n”); int n; for(n=0;n<45;n++) //GPSの取得を45回行う(これで大体1分半) { printf(“gps for\r\n”); if(gps.getgps()) //現在地取得 fprintf(fp,“(%lf, %lf)\r\n”, gps.latitude, gps.longitude);//緯度と経度を出力 else fprintf(fp,“No data\r\n”);//データ取得に失敗した場合 wait(1); printf(“%d\r\n”,n); //今何回目かを出力(本番ではいらない) } fprintf(fp,“GPS finish\r\n”); // fclose(fp); // GPSの測定終了 */ US015 mu(p11, p12, .1, 1, &dist); //Set the trigger pin to D8 and the echo pin to D9 超音波センサー //have updates every .1 seconds and a timeout after 1 //second, and call dist when the distance changes void motorForwardR(void); void motorStopR(void); void motorReverseR(void); void motorForwardL(void); void motorStopL(void); void motorReverseL(void); LocalFileSystem local(“local”); // Create the local filesystem under the name “local” データ保存 float culculate_distance_3(float a,float b); int main() { printf(“cansat start\r\n”); flight==1; FET = 0; SW = 1; //p23をhigh(3.3V)にする。 while(1) { if(flight==1) { wait(10); printf(“mada\r\n”); } else{ if(flight==1) { wait(10); printf(“madamada\r\n”); } else{ printf(“yattar\r\n”); FET = 0; //FET、ニクロム線切断 wait(20); FET = 1; wait(12); FET = 0; wait(10); FET = 1; wait(12); FET = 0; SW = 0; //p23をlow(0V)にする。 break; } } } motorStopR(); motorStopL(); wait(20); //確認用//デフォ20秒 // FILE *fp = fopen(“/local/gps.txt”, “w”); // Open “gps.txt” on the local file system for writing motorSpeedR.period_ms(4); //モーター調節 motorSpeedR = 0.655; motorSpeedL.period_ms(4); //モーター調節 motorSpeedL = 0.755; motorForwardL(); //車体を時計回りに3秒回転 motorReverseR(); wait(1.6); motorStopR(); motorStopL(); wait(1); motorReverseL(); //車体を反時計回りに3秒回転 motorForwardR(); wait(1.6); motorStopR(); motorStopL(); wait(1); printf(“compass carriblation\r\n”); //キャリブレーション終了 //float mcn1,mcn2; printf(“GPS start\r\n”);//GPS第2回目(移動後) FILE *fp = fopen(“/local/gps,foto.txt”, “w”); // Open “gps.txt” on the local file system for writing fprintf(fp, “GPS Start\r\n”); int n; for(n=0;n<45;n++) //GPSの取得を45回行う(これで大体1分半) { printf(“gps for\r\n”); if(gps.getgps()) //現在地取得 fprintf(fp,“(%lf, %lf)\r\n”, gps.latitude, gps.longitude);//緯度と経度を出力 else fprintf(fp,“No data\r\n”);//データ取得に失敗した場合 wait(1); printf(“%d\r\n”,n); //今何回目かを出力(本番ではいらない) } fprintf(fp,“GPS finish\r\n”); // fclose(fp); // GPSの測定終了 */ if(distance<4000){ motorStopR(); motorStopL(); stopUS015(); startsb612a(); //超音波センサー反応あり //停止 //超音波センサーOFF //焦電センサーON if(detected=true){ stopsb612a(); startCamera(); stopCamera(); sendSD(); sendPC(); //焦電センサー反応あり //焦電センサーOFF //カメラ起動 //カメラOFF //データをSDカードに保存 //保存データをXBeeによりPCへ送信 if(receiveOK()=true){ printf("Unknown Creature has been descovered!\n"); } //"OK"受信、ミッション終了 else if(receiveOK()=false){ printf("Continue!\n"); } //"NO"受信、ミッション再開 else if(detected=false){ stopsb612a(); motorForwardL(); motorStopL(); motorForwardR(); motorForwardL(); startUS015(); } } //焦電センサー反応無し //焦電センサーOFF //方向転換 //超音波センサーON //直進 } else if(distance>=4000){ motorStopL(); motorStopR(); motorForwardL(); motorStopL(); motorForwardR(); motorForwardL(); } //超音波センサー反応無し //停止 //方向転換 //直進