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();
}
//超音波センサー反応無し
//停止
//方向転換
//直進