Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Servo BMP180
main.cpp
- Committer:
- tsubasa_nakajima
- Date:
- 2021-10-27
- Revision:
- 2:d2cb6b50a8c4
- Parent:
- 1:bb89b58cfa0e
- Child:
- 3:a583276d9fef
File content as of revision 2:d2cb6b50a8c4:
#include "mbed.h"
#include "BMP180.h"
#include "direction.h"
#include "math.h"
#define PIN_SDA D4
#define PIN_SCL D5
GPS gps(D1, D0);
DigitalOut Nichrome(A6);
BMP180 bmp180(PIN_SDA,PIN_SCL);
double bias_la=0,bias_lo=0;
int landing_judgement(){
int x ,y ,n1 , n2 ;
int landing_judgement=0 ;
float h,dp,dt,dp0;
float a ,b ,dp_ave,dt_ave;
bmp180.Initialize(27,BMP180_OSS_ULTRA_LOW_POWER);//27は府大の海抜高度
for(int i=0;i<15;i++){
if(bmp180.ReadData(&dt,&dp)){
a = a + dp;
b = b + dt;
n1 = n1 + 1;
n2 = n2 + 1;
wait(1);
}
}
dp_ave = a / n1;
dt_ave = b / n2;
dp0 = calculate_dp0(dp_ave,dt_ave);
while(x<10){
if(bmp180.ReadData(&dt,&dp)){
h = calculate_h(dp0,dp,dt);
if(h >= 30){
x = x + 1;
}
wait(1);
}
}
//10秒以上高度30mにいた場合離陸判定
wait(10);
while(y<10){
if(bmp180.ReadData(&dt,&dp)){
h = calculate_h(dp0,dp,dt);
if(h <= 10){
y = y + 1;
}
wait(1);
}
}
wait(5);
landing_judgement = landing_judgement + 1;
return landing_judgement;
//離陸判定後、10秒以上高度10m以下にいた場合着地判定
}
int parachute_separation()
{
Nichrome=1;
wait(10);
Nichrome=0;
return 0;
}
int main(void)
{
int land_judgement_1=0,sep_judge=1;
//着地判定
while(1)
{
land_judgement_1 = landing_judgement();
if(land_judgement_1==1)
{
break;
}
}
wait(30);
//中間地点を経由してゴール地点まで自律移動
direction.walk();
return 0;
}