| #include <MPU6050.h> | ||
| #include <BMP180.h> | ||
| #include <qbcan.h> | ||
| #include <RFM69.h> | ||
| #include <RFM69registers.h> | ||
| #include <qbcan.h> | ||
| #include <SPI.h> | ||
| #include <SoftwareSerial.h> | ||
| #include <TinyGPS++.h> | ||
| #include <I2Cdev.h> | ||
| #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE | ||
| #include "Wire.h" | ||
| #endif | ||
| #define Author "R.Stewart" | ||
| //Radio | ||
| #define NODEID 2 | ||
| #define NETWORKID 10 | ||
| #define GATEWAYID 1 | ||
| #define ENCRYPTKEY "IhaveCreatedOverAThousandBlades" //UNLIMITED BLADE WORKS! | ||
| char payload[50]; | ||
| #define OUTPUTMPU | ||
| RFM69 radio; | ||
| TinyGPSPlus gps; | ||
| SoftwareSerial ss( 9, 8 ); | ||
| BMP180 bmp; | ||
| MPU6050 mpu (0x68); | ||
| float N; | ||
| float V; | ||
| float A; | ||
| int buffersize=1000; | ||
| int acel_deadzone=8; | ||
| int giro_deadzone=1; | ||
| int16_t ax, ay, az, gx, gy, gz; | ||
| void setup() | ||
| { | ||
| #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE | ||
| Wire.begin(); | ||
| #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE | ||
| Fastwire::setup(400, true); | ||
| #endif | ||
| delay(5000); | ||
| pinMode (A4,INPUT); | ||
| pinMode (A5,INPUT); | ||
| Serial.begin(9600); //Board | ||
| Serial1.begin(115200);//Radio/Openlog | ||
| ss.begin(9600);//GPS | ||
| mpu.initialize(); | ||
| Serial.println("Testing device connections..."); | ||
| Serial.println(mpu.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); | ||
| bmp.begin(); | ||
| { | ||
| radio.initialize(FREQUENCY,NODEID,NETWORKID); | ||
| radio.setHighPower(); //To use the high power capabilities of the RFM69HW | ||
| radio.encrypt(ENCRYPTKEY); | ||
| Serial.println("Transmitting at 433 Mhz"); | ||
| } | ||
| Serial.print(mpu.getXAccelOffset()); Serial.print("\t"); // -76 | ||
| Serial.print(mpu.getYAccelOffset()); Serial.print("\t"); // -2359 | ||
| Serial.print(mpu.getZAccelOffset()); Serial.print("\t"); // 1688 | ||
| Serial.print(mpu.getXGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print(mpu.getYGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print(mpu.getZGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print("\n"); | ||
| mpu.setXGyroOffset(-5); | ||
| mpu.setYGyroOffset(4); | ||
| mpu.setZGyroOffset(10); | ||
| Serial.print(mpu.getXAccelOffset()); Serial.print("\t"); // -76 | ||
| Serial.print(mpu.getYAccelOffset()); Serial.print("\t"); // -2359 | ||
| Serial.print(mpu.getZAccelOffset()); Serial.print("\t"); // 1688 | ||
| Serial.print(mpu.getXGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print(mpu.getYGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print(mpu.getZGyroOffset()); Serial.print("\t"); // 0 | ||
| Serial.print("\n"); | ||
| } | ||
| void loop() | ||
| { | ||
| int sensorV = analogRead(A4); | ||
| float V = sensorV *(5.0/1023.0); | ||
| double T,P; | ||
| bmp.getData(T,P); | ||
| mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); | ||
| while (ss.available() > 0) | ||
| if (gps.encode(ss.read())) | ||
| { | ||
| Serial1.print(T); | ||
| Serial1.print(","); | ||
| Serial1.print(P); | ||
| Serial1.print(","); | ||
| Serial.print(T); | ||
| Serial.print(","); | ||
| Serial.print(P); | ||
| Serial.print(","); | ||
| { | ||
| delay(200); | ||
| if (gps.location.isValid()) | ||
| { | ||
| Serial.print(gps.location.lat(), 6); | ||
| Serial.print(F(",")); | ||
| Serial.print(gps.location.lng(), 6); | ||
| Serial.print(F(",")); | ||
| Serial.print(gps.course.deg()); | ||
| Serial.print(F(",")); | ||
| Serial.print(gps.time.centisecond(), 6); | ||
| delay(50); | ||
| Serial1.print(gps.location.lat(), 6); | ||
| Serial1.print(F(",")); | ||
| Serial1.print(gps.location.lng(), 6); | ||
| Serial1.print(F(",")); | ||
| Serial1.print(gps.course.deg()); | ||
| Serial1.print(F(",")); | ||
| Serial1.print(gps.time.centisecond(), 6); | ||
| } | ||
| else | ||
| { | ||
| Serial.print(F("N/A")); | ||
| Serial1.print(F("N/A")); | ||
| } | ||
| Serial.print(","); | ||
| Serial.print(V); | ||
| Serial.print(","); | ||
| Serial1.print(","); | ||
| Serial1.print(V); | ||
| Serial1.print(","); | ||
| } | ||
| #ifdef OUTPUTMPU | ||
| Serial.print(ax); | ||
| Serial.print(","); | ||
| Serial.print(ay); | ||
| Serial.print(","); | ||
| Serial.print(az); | ||
| Serial.print(","); | ||
| Serial.print(gx); | ||
| Serial.print(","); | ||
| Serial.print(gy); | ||
| Serial.print(","); | ||
| Serial.println(gz); | ||
| delay(50); | ||
| Serial1.print(ax); | ||
| Serial1.print(","); | ||
| Serial1.print(ay); | ||
| Serial1.print(","); | ||
| Serial1.print(az); | ||
| Serial1.print(","); | ||
| Serial1.print(gx); | ||
| Serial1.print(","); | ||
| Serial1.print(gy); | ||
| Serial1.print(","); | ||
| Serial1.print(gz); | ||
| #endif | ||
| /* | ||
| #ifdef OUTPUT_BINARY_ACCELGYRO | ||
| Serial1.write((uint8_t)(ax >> 8)); Serial.write((uint8_t)(ax & 0xFF)); | ||
| Serial1.write((uint8_t)(ay >> 8)); Serial.write((uint8_t)(ay & 0xFF)); | ||
| Serial1.write((uint8_t)(az >> 8)); Serial.write((uint8_t)(az & 0xFF)); | ||
| Serial1.write((uint8_t)(gx >> 8)); Serial.write((uint8_t)(gx & 0xFF)); | ||
| Serial1.write((uint8_t)(gy >> 8)); Serial.write((uint8_t)(gy & 0xFF)); | ||
| Serial1.write((uint8_t)(gz >> 8)); Serial.write((uint8_t)(gz & 0xFF)); | ||
| #endif | ||
| */ | ||
| float Lng, Lat, Deg, Tim; | ||
| Lng = gps.location.lat(); | ||
| Lat = gps.location.lng(); | ||
| Deg = gps.course.deg(); | ||
| Tim = gps.time.centisecond(); | ||
| delay(100); | ||
| { | ||
| Serial.println(); | ||
| Serial1.println("Outputing RF"); | ||
| Serial1.println(); | ||
| sprintf(payload,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",(int)ax,(int)ay,(int)az,(int)gx,(int)gy,(int)gz,(int)Lng,(int)Lat,(int)Deg,(int)Tim,(int)T,(int)P,(int)V); | ||
| Serial1.println(payload); | ||
| radio.send(GATEWAYID, payload, 50); | ||
| Serial1.println("Send complete"); | ||
| delay(100); | ||
| } | ||
| } | ||
| } | ||
Welcome to James Snyder's ICT blog on computer programming and web development.
Wednesday, 8 July 2020
European Space Agency Can Satellite Arduino code 16 Zenith
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment