Quantcast
Channel: EngineerZone : Popular Discussions - MEMS Inertial Sensors
Viewing all 2623 articles
Browse latest View live

How to make IMU sensors insusceptible to surrounding electronics?

$
0
0

Hi,

 

I am using two IMU sensors to perform the same tests and they are: ADIS16360 and ADIS16362.

 

I attached my IMU sensor on a robot arm to take some data and the gyroscope measurements were always out of calibration after one or two trials. I took the data with EVAL-ADIS board. The robot's control box is about 2 feet below the arm on which the sensor was attached to. I currently have my sensor wrapped in layers of aluminum foil but that wasn't helping either. Is there something I can do to prevent this?

 

Thanks,

Dao.


Using inclinometer with DAQ card

$
0
0

Hello,

 

I am new to all of this and extremely uninformed and was wondering if there is anyway I could use the ADIS16203 inclinometer with the NI DAQ USB-6210. As in can I connect the digital output of the inclinometer and have it read by the daq card and interpreted? I am trying to be able to measure the angle of a pedal and compare it against the analog output of a hall sensor that is attached to it. I have to software to compare it to an analog inclinometer but I was wondering if I could use a digital output one instead. I'm sorry if this is confusing and not really enough information. Any kind of help is would be immensely useful.

 

Thanks,

Cameron

Odd SPI response from ADIS16488

$
0
0

I'm connecting to an ADIS16488, and debugging the SPI protocol. I'm re-transmitting PROD_ID as recommended, but getting a strange response.

 

I attached the scope outputs. The MOSI looks fine, and the SCLK and the DIN match what I see in the data sheet.

 

However, the DOUT on MISO returns either 0x00 0x00 or 0b00000000 0b10000000. I'm not quite sure what is going wrong.

 

Suggestions?

 

-Eliot

ADIS16334 Flex

$
0
0

I would like to procure the ADIS16334 flex connector from another vendor. Can you provide the design file for the flex connector?

Strange readings from gyro x axis on ADIS16405

$
0
0

Hi, I have a question regarding an ADIS16405 that I bought new last fall and have been using for the last couple of weeks. It started out that the gyro bias on all the axes were of comparable size (< .5 deg/s) and the bias stability matched the specifications. Suddenly, however, the x axis gyro has started giving a much larger bias, sometimes well over 3 deg/s, and it is not very stable. I have attached a 3-minute plot of the x axis gyro measurement from when the sensor was just sitting on my desk. I'm pretty sure something is not right about this, so I'm wondering if it means I need to get the sensor replaced or if there might be some other explanation.

Arduino UNO & ADXL362 problem

$
0
0

Me and a fellow classmate found a library for the ADXL362 on Github. It looks fabulous, but some issues occured during working with the Arduino UNO and the ADXL362. The code looked good en we searched the Internet for solutions. The problem we had with the Arduino was that we couldn't get any 'normal' test results. Where other users got different numbers for XDATA, YDATA, ZDATA and the temperature we only got the numbers -1, 0 and 1. Do you know how we could fix this problem?

 

Thank you

EVAL-ADIS/16485 and IMU Evaluation software

$
0
0

Hi

Can we use IMU evaluation software to evaluate ADIS16485 (using EVAL-ADIS) in Linux under Wine? Some relevant questions I found on the website are as follows:

 

adisusb firmware

FAQ: Interface ADIS16364 with Arduino

 

I would prefer to use the IMU evaluation software to run under wine in Linux and wondering if someone has successfully tested it? Any help/guidance in this regard will be much appreciated.

Bilal

ADXL345 provide activity after free fall

$
0
0

Hello,

 

I am using ADXL345 through SPI 4-wire mode and I trying to get activity, inactivity and free fall interrupts.

I've got some weird problem. After the first free fall interrupt the component does not provide activity interrupt anymore.

It is important to note that I working on ACT dc coupled mode.

 

Thanks.


Question about reading adxl345

$
0
0

Hi,

 

I'm reading the register 0x00 (DEVID) of the adxl345 sensor and I've a problem. Most of times it works well and i get 0xE5, but sometimes it returns 0xCB.

 

Please, can you tell me what I'm doing wrong?

 

I'm using PIC18F26K22 as microcontroller and the code that I'm using to read it, it's as follows:

 

setup_spi(SPI_MASTER |  SPI_H_TO_L |  SPI_CLK_DIV_4 | SPI_XMIT_L_TO_H | SPI_SAMPLE_AT_END);

...

    output_low(PIN_CS);
    spi_write(0x00);
    int8 dato = spi_read(0x00);
    output_high(PIN_CS);

ADIS16480 X_DELTVEL_OUT Linear Velocity measurements

$
0
0

I am trying to read the linear velocity measurements from the ADIS16480 which are internally derived from the accelerometer values. My ADIS16480 is connected through a custom built interface board to a BeagleBone Black (running Angström) and I am using the SPIDEV driver to control the SPI bus.

 

I can read the product_id, attitude and accelerometer values fine, but when I read the line X_DELTVEL_OUT register (and its y,z neighbours) the values seem to be 'stuck' in between 0xffff to 0x0009. After converting to m/s I get values around the -0.006m/s (0xffff). The graph shows the output after letting it sit for a while and then moving it up and down once quickly. There is basically no change in velocity for small movements.delta_vel_debug.jpg

I am using the following code to convert the 2's complement into a float:

<code>

if(x_vel_raw & BITMASK_TEST_2s_NEG){ //if number is negative

        x_vel_raw = ~x_vel_raw;       

        x_vel_raw = x_vel_raw + 1;

        *x_vel = (-1)* ((double) x_vel_raw) * LINEAR_VEL_COUNT_TO_mpsec;      //convert it to m/s

    }else{

        *x_vel = (double) x_vel_raw * LINEAR_VEL_COUNT_TO_mpsec;     //convert it to m/s

    }

</code>

 

My raw data output from a similar test as the figure above can be found in the attached file.

 

 

----

 

Are there any prerequisites to using the delta_vel data? Do I need to set a value >0x0000 for the decremention rate (DEC_RATE)?

How do I get proper values out of these registers?

 

Thanks a lot,

 

Rapha

ADXL345 Activity Interrupt vs. FIFO data

$
0
0

Hello!

I’m using the ADXL with the activity Interrupt and FIFO trigger mode. I’ve make follow interesting notice.

Sometimes I got a activity Interrupt but all values in the FIFO are under the threshold level. How can this happened?

For example. Threshold level = 20 (1.25g), got activity interrupt and read out the FIFO, now the maximum is 17 (1.0625g)

 

Can this happened because the threshold will analyse before filtering and the FIFO data are filtered? (I’ve set the filter to 12.5Hz)

 

Thanks for input and help!

 

Chriss

ADXL345 3 Wire and 4 Wire SPI Example Code

$
0
0

Attached are the ADXL345 3 wire and 4 wire SPI example code. It is verified on EVAL-ADXL345Z-M, the processor is ADUC7026, the development tool is KEIL C. I used GPIO to simulate the 3-Wire and 4-Wire SPI Interface of ADXL345, so it can be repotted easily with other processors.

Elevated Temp. effect on ADIS16255.

$
0
0

Hello,

 

I used ADIS16255 single axis gyro in the application where temp. reached to 125 deg C and 150 Deg C. Since ADIS16255 is recommended to operate up to 85 Deg C, I saw significant increase in temperature dependent bias (around 3.2 deg/s) at 125 deg C and (around 5.2 deg/s) at 150 Deg C. This temperature dependent bias at 125 and 150 C calculated after noise filtering. Does anyone know the reason for increase in bias at such elevated temperature?

 

Does this gyro has any stopped functioning mechanism at elevated temperature? If so, at what specific temperature this gyro stopped or creased to function?

~Chandra

ADIS16485

ADIS16209 Accuracy Problems and Assembly issues

$
0
0

Hi,

 

we have a program in which there is an ADIS16209 as the mail tilt sensor.

we have tested several units via the evaluation board and they performed to spec.

we had made a PCB design which includes the ADIS16209 on-board (according to app notes and the datasheet rev-c).

in this architecture the ADIS is getting stable and filtered3.3V from a switched DC/DC converter (ripple is lower than 15mV)

we had made 10 assemblies via automated SMT. from the 10 units only 3 ADIS units were functional!!

we had x-ray tests to see the solder on the pads and the solders were looking good but the units were none functional.

we had opened a new and seals batch of components and made another 7 SMT units built (taking the soldering profile, SMT aliment etc' under great care).

in this batch we had all 7 working but not according to spec or expectations...

we configure the SMPL_PRD to 41 and the AVG_CNT to 8 (the max value) and our testing facility's temperature is 23C-25C:

here are some questions:

  1. in all 10 units were experiencing jitter of about 4-6 LSB in total stable conditions - in the Evaluation units the jitter were about 1-2 LSB
  2. in most units we have a drift in measurements that behaves as if the sensor is measuring a larger angular degree:
    for example: we have a measuring jig which is leveled to 0.1mRad and there we have accurate wedges for 5, 10 and 15 degrees, those wedges are also very accurate. the PCB with the ADIS16209 is placed on a metal bracket with leveled planes which are placed on the testing equipment.
    we see a measurement drift of about 0.05 degree per every angular degree, meaning, for every actual 1 degree our ADIS16209 sensors are measuring 1.05 degree, therefore 5 actual degrees are measured as 5.25, 10 actual degrees are measured as 10.5 and 15 actual degrees are measured as 15.75, etc'
  3. we have larger deviation in the positive side than in the negative side - for example we measure -14.5 and +15.7 at actual 15 degrees
  4. we see that the Y incl axis has significantly higher errors than the X incl axis (the data above represents the Y axis were the X axis shows about 20% less deviation....)

we had gone through all calculations, checked and rechecked the SPI interface and we are currently in a very problematic situation - we have some 100 units which we are not assembling because we don't know why the first 10 are not operating according to expectations....

 

waiting for any help possible!!!

 

Thanks


ADXL344 demo kit

$
0
0

I ordered the ADXL344 eval kit and it did not include the CD per the documentation. After downloading the documentation off the website I found a difference between the hardware I received and the software provided. The hardware includes a serial cable to connect to the device and the software supports a USB cable. Did I get the wrong hardware or software?

 

My local Arrow FAE, John Kerg, helped to verify the error.

ADXL375 saturating at 25g

$
0
0

I am noticing that the ADXL375 device in my design is saturating at 25g when I set the bandwidth at 3200 hz. Same applies to lower data rates as well.

I am reading the values in bypass mode.

Any help is appreciated.

Ben

High resolution inclinometer

$
0
0

I have a project in that i need to make inclination measures, I choose the ADIS16201 inclinometer because have a good features but the resolution is only 0.0055º an I need at least 0.0025º resolution in the three axis measurements.  The commercial Inclinometer that i have to compare my design uses the 2 accelerometers technique and uses a 24 bit conversion whit the resolution that I mentioned before in the +/-30º range. I need the sensor haves the triaxial measurement option because I need to register the three points for each distance to perform a high accurate path.

 

Thanks in Advance for the help that you can give me.

ADXL362 power consumption

$
0
0

I am having problems with the ADXL362 and getting it into a low power mode. I am using an Arduino Uno, modified to give 3.3V rather than 5 (I changed the voltage regulator on the Uno - a digital high is now 3.3V)

 

I'm using the Sparkfun breakout board.

 

The current readings I get are erratic and seem to depend to some extent on the orientation, but they never go lower than 4uA and are usually around 30uA. This is true even in standby mode.

 

Here is the code I am using:

 

#include <Arduino.h>

#include <SPI.h>

const int slaveSelectPin = 10;

 

void setup(){

  Serial.begin(9600);

  pinMode(slaveSelectPin, OUTPUT);

  SPI.begin();

  SPI.setDataMode(SPI_MODE0); //CPHA = CPOL = 0    MODE = 0

  delay(1000);

 

//soft reset

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0A);  // write instruction

  SPI.transfer(0x1F);

  SPI.transfer(0x52);

  digitalWrite(slaveSelectPin, HIGH);

 

// read Reg 2D before modifying for measure mode

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0B);  // read instruction

  SPI.transfer(0x2D);

  digitalWrite(slaveSelectPin, HIGH);

 

// turn on measurement mode

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0A);  // write

  SPI.transfer(0x2D);  //  Reg 2D

  SPI.transfer(0x02);  // begin measure

  digitalWrite(slaveSelectPin, HIGH);

  delay(100);

 

}

 

 

void loop(){

 

// Read X Value

  int twoRegValue = 0;

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0B);  // read instruction

  SPI.transfer(0x0E);

  twoRegValue = SPI.transfer(0x00);

  int XValue = twoRegValue + (SPI.transfer(0x00) << 8);

  digitalWrite(slaveSelectPin, HIGH);

 

 

// Read Y Value

  twoRegValue = 0;

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0B);  // read instruction

  SPI.transfer(0x10);

  twoRegValue = SPI.transfer(0x00);

  int YValue = twoRegValue + (SPI.transfer(0x00) << 8);

  digitalWrite(slaveSelectPin, HIGH);

 

 

// Read Z Value

  twoRegValue = 0;

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0B);  // read instruction

  SPI.transfer(0x12);

  twoRegValue = SPI.transfer(0x00);

  int ZValue = twoRegValue + (SPI.transfer(0x00) << 8);

  digitalWrite(slaveSelectPin, HIGH);

 

  delay (1000);

  Serial.print("XVALUE=");

  Serial.print(XValue);

  Serial.print("\tYVALUE=");

  Serial.print(YValue);

  Serial.print("\tZVALUE=");

  Serial.println(ZValue);

 

 

}

 

 

I believe that this following code should put it in standby, but it doesn't reduce the current.

 

#include <Arduino.h>

#include <SPI.h>

const int slaveSelectPin = 10;

 

void setup(){

  Serial.begin(9600);

  pinMode(slaveSelectPin, OUTPUT);

  SPI.begin();

  SPI.setDataMode(SPI_MODE0); //CPHA = CPOL = 0    MODE = 0

 

// read Reg 2D

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0B);  // read instruction

  SPI.transfer(0x2D);

  digitalWrite(slaveSelectPin, HIGH);

  delay (100);

 

// turn on standby mode

  digitalWrite(slaveSelectPin, LOW);

  SPI.transfer(0x0A);  // write

  SPI.transfer(0x2D);  //  Reg 2D

  SPI.transfer(0x00);  // standby

  digitalWrite(slaveSelectPin, HIGH);

      

}

 

void loop(){

 

 

Prior to using these sketches, I was using the Arduino library written by Anne Mahaffey and was getting similar results. But by playing around with the timings, and inserting small delays in her code (a few ms) I could make sure the current was about 4uA. With some values of delay(), I could get the current to visibly cycle up and down over a couple of seconds, which makes me think that the ADXL and the Arduino were somehow going in and out of sync. I have never been able to get it into sleep mode.

 

I am very baffled and would appreciate help.

How to interpret magnetometer data of an IMU

$
0
0

Hello,

 

for the purpose of my bachelor thesis I'm currently having a focus on inertial tracking/navigation.

I'd like to determine the position of an IMU in a defined space. Therefore I'm using a ADIS16488 with 3 accelerometers, 3 gyros and 3 magnetometers.

 

As I'm widely unexperienced in the field of inertial navigation, I have some problems to interpret the data of the magnetometers. I totally understand the data that I get from the accelerometers and gyros but I'll need some support with the magnetometers.

 

I guess the magnetometer works like a compass. So it is possible to determine the orientation of my IMU from the data of the 3 magnetometers, is that correct?

But how do I have to handle that data? E.g.: If I place the IMU plane on my desk and rotate the unit around its Z-Axis (YAW) in a certain angle, how do I get the value of that angle from my magnetometer data readings?

 

 

It would be great if someone could give me some hints.

Thank you in advance.

 

Regards,

Udo

Viewing all 2623 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>