/** * @brief Initializes the gyro/accelerometer and the magnetometer unit of the imu. * As well as the arduino subsystem */ void setup() { Wire.begin(); delay(1500); /********/ /* GYRO */ /********/ gyro.init(); gyro.writeReg(L3G_CTRL_REG4, 0x00); // 245 dps scale gyro.writeReg(L3G_CTRL_REG1, 0x0F); // normal power mode, all axes enabled, 100 Hz //8.75 mdps/LSB /****************/ /* MAGNETOMETER */ /****************/ compass.init(); compass.enableDefault(); compass.writeReg(LSM303::CTRL2, 0x08); // 4 g scale: AFS = 001 //0.122 mg/LSB compass.writeReg(LSM303::CTRL5, 0x10); // Magnetometer Low Resolution 50 Hz //Magnetometer 4 gauss scale : 0.16mgauss/LSB //ROS-TF base frame of the imu_data imu_msg.header.frame_id="base_imu_link"; //Register ROS messages nh.initNode(); nh.advertise(imu_pub); nh.advertise(mag_pub); //starting value for the timer timer=millis(); }
void Accelerometer::setup(){ Wire.begin(); compass.init(); compass.enableDefault(); memset(lastValuesX,0,sizeof(lastValuesX)); memset(lastValuesY,0,sizeof(lastValuesY)); memset(lastValuesZ,0,sizeof(lastValuesZ)); index =0; }
bool Hal::initHal() { debugPrintLn("Start init"); // initialize all the hardware initLora(); initSwitch(); initLTC(); compass.init(); compass.enableDefault(); htu.begin(); // setAckOn(); debugPrintLn("Einde init"); }
void setup(){ Serial.begin(115200); Wire.begin(); //gyro code gyro.init();//gyro code gyro.enableDefault(); //gyro code ps.enableDefault(); //baro code handshaken = 0; /*accelerometer code*/ compass.init(); compass.enableDefault(); /*accelerometer code*/ /*sonar code*/ pinMode(TRIGGER_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(TRIGGER_PIN2, OUTPUT); pinMode(ECHO_PIN2, INPUT); pinMode(TRIGGER_PIN3, OUTPUT); pinMode(ECHO_PIN3, INPUT); pinMode(TRIGGER_PIN4, OUTPUT); pinMode(ECHO_PIN4, INPUT); pinMode(TRIGGER_PIN5, OUTPUT); pinMode(ECHO_PIN5, INPUT); /*sonar code*/ pinMode(MOTOR, OUTPUT); /* Calibration values; the default values of +/-32767 for each axis lead to an assumed magnetometer bias of 0. Use the ACCalibrate program to determine appropriate values for your particular unit. */ //compass.m_min = (LSM303::vector<int16_t>){-32767, -32767, -32767}; //compass.m_max = (LSM303::vector<int16_t>){+32767, +32767, +32767}; //LSM303::vector<int16_t> running_min = {-2872, -3215, -1742}, running_max = {+3019, +3108, +3570}; //calibration init data for compass compass.m_min = (LSM303::vector<int16_t>){-2872, -3215, -1742}; compass.m_max = (LSM303::vector<int16_t>) {+3019, +3108, +3570}; }
void Accel_Init() { compass.init(); compass.enableDefault(); switch (compass.getDeviceType()) { case LSM303::device_D: compass.writeReg(LSM303::CTRL2, 0x18); // 8 g full scale: AFS = 011 break; case LSM303::device_DLHC: compass.writeReg(LSM303::CTRL_REG4_A, 0x28); // 8 g full scale: FS = 10; high resolution output mode break; default: // DLM, DLH compass.writeReg(LSM303::CTRL_REG4_A, 0x30); // 8 g full scale: FS = 11 } //compass.heading((LSM303::vector<int>){0, 0, -1}); //compass.m_min = (LSM303::vector<int16_t>){-2304, -2194, -2156}; //compass.m_max = (LSM303::vector<int16_t>){+2771, +2860, +2753}; }
void setup(){ rled = 1; gled = 1; bled = 1; autoSD.ready_datalogger(); // Prepares a datalog filename according to index.txt pc.printf("Index: %d\r\n",autoSD.curr_index()); if(!ps.init()){ //enable pressure sensor pc.printf("Unable to talk to Barometer\r\n"); while(1){ rled = !rled; wait_ms(100);} } else{ ps.enableDefault(); } if(!gyr.init()){ pc.printf("Unable to talk to Gyroscope\r\n"); while(1){ rled = !rled; wait_ms(100);} } else{ gyr.enableDefault(); } if(!acc.init()){ pc.printf("Unable to talk to Accelerometer\r\n"); while(1){ rled = !rled; wait_ms(100);} } else{ acc.enableDefault(); } fp = fopen(autoSD.filepath, "w"); if (fp == NULL) { pc.printf("Unable to write the file \r\n"); while(1){ rled = !rled; wait_ms(100);} } pc.printf("Success in Set Up\r\n"); }
void setup() { Serial.begin(9600); Wire.begin(); compass.init(); compass.enableDefault(); compass.setMagGain(LSM303::magGain_47); }