13年4个月前IP:未同步
563782
4楼
附录(都没包含库文件,因为我的程序都不怎么完美,大家看下参考下就好,接线我会把我自己焊接时的草图贴出,由于程序达不到教程的标准就不出详细介绍了,以后改进后再出,坛里有编程好的也可以帮忙优化下)
(如果需要库文件的留言很多的话我也是可以贴出来的)
接线.jpg
附录1(此部分程序只有easy transfer的部分是我改的,其他的都是厂家的源码)
由于代码太长了我直接打包上传了

attachment icon Nano_AHRS3TX.zip 9.98KB ZIP 73次下载
附录2
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085.h>
#include "SD.h"
#include <EasyTransfer.h>
#include <IRremote.h>
EasyTransfer ET;
IRsend irsend;  
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
long back=0;
unsigned long time;
int launch=8;
struct RECEIVE_DATA_STRUCTURE{
  //put your variable definitions here for the data you want to receive
  //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
  float yawDEG;
  float pitchDEG;
  float rollDEG;
};
RECEIVE_DATA_STRUCTURE mydata;

Adafruit_BMP085 bmp = Adafruit_BMP085(10085);
float seaLevelPressure = 1009;
float temperature;
const int chipSelect = 4;
void setup(void)
{
  pinMode(launch,OUTPUT);
  pinMode(3, OUTPUT);
  Serial.begin(57600);
  SD.begin(chipSelect);
  ET.begin(details(mydata), &Serial);
  bmp.begin();
  irrecv.enableIRIn(); // 初始化红外接收器
  File dataFile = SD.open("data.txt",FILE_WRITE);
  if (dataFile){
    dataFile.print("[s:9]ressure(hpa):    ");
    dataFile.print("\\t");
    dataFile.print("Temperature(C):   ");
    dataFile.print("\\t");
    dataFile.print("Altitude(m):    ");
    dataFile.print("\\t");
    dataFile.print("YPR:    ");
    dataFile.print("\\t");
    dataFile.println("time(ms)");
    dataFile.close();
  }
}

void loop(void) {
  time = millis();
  ET.receiveData();
  sensors_event_t event;
  bmp.getEvent(&event);
  bmp.getTemperature(&temperature);
  File dataFile = SD.open("data.txt",FILE_WRITE);
  if (dataFile){


    dataFile.print(event.pressure);
    dataFile.print("\\t");
    dataFile.print(temperature);
    dataFile.print("\\t");
    dataFile.print(bmp.pressureToAltitude(seaLevelPressure,
    event.pressure,temperature));
    dataFile.print("\\t");
    dataFile.print(mydata.yawDEG);
    dataFile.print("\\t");
    dataFile.print(mydata.pitchDEG);
    dataFile.print("\\t");
    dataFile.print(mydata.rollDEG);
    dataFile.println(time);
    dataFile.close();  
    delay(1);  
  }
  if (irrecv.decode(&results)){
    back=results.value;
    if (back==2155813097){
       if (dataFile)
      {
        dataFile.println("launched");  
        dataFile.close();
      }
      delay(2000);
      irsend.sendSony(0xa90, 12);
      irsend.sendSony(0xa90, 12);
      irsend.sendSony(0xa90, 12);
      irsend.sendSony(0xa90, 12);
      irsend.sendSony(0xa90, 12);
      irsend.sendSony(0xa90, 12);
  
      delay(10010);
      digitalWrite(launch,HIGH);
    
      delay(2000);
      digitalWrite(launch,LOW);
      irrecv.resume();
    }
    else
    {
      irrecv.resume();
    }
  }
}


附录3
#include <IRremote.h>                  
IRsend irsend;  int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
int val=0;
int back=0;
int pan=0;
void result()
{
  if (irrecv.decode(&results)){
    back=results.value;
    irrecv.resume();
    if (back==21677){
      Serial.println(F("launch_in_10seconds"));
    }
    else{
      Serial.println(F("Error"));
      }
    }
  }

  void setup()
  {
    Serial.begin(9600);
    Serial.println(F("Enter_launch_password"));
    irrecv.enableIRIn(); // 初始化红外接收器
    pinMode(3, OUTPUT);

  }

void loop(){
  result();
  if (Serial.available() > 0) {
    val=Serial.read();
    if (val==49){

      irsend.sendNEC(0x807F18E9, 32);
      irsend.sendNEC(0x807F18E9, 32);
      irsend.sendNEC(0x807F18E9, 32);
      irsend.sendNEC(0x807F18E9, 32);
      irsend.sendNEC(0x807F18E9, 32);
      irrecv.enableIRIn();

    }
  }
}
评论
文号 / 563782

千古风流
名片发私信
学术分 5
总主题 51 帖总回复 452 楼拥有证书:学者 机友 笔友
注册于 2009/10/23 20:34:01最后登录 2021/07/17 11:07:10
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

炼丹师

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的