groupUrl: https://ez.analog.com/mems/
Analog.com Analog Dialogue Wiki English
Analog.com Analog Dialogue Wiki 简体中文
EngineerZone
EngineerZone
  • Site
  • User
  • Site
  • Search
  • User
EngineerZone
EngineerZone
  • Log in
  • Site
  • Search
  • Log in
  • Home
  • Blogs ⌵
  • Browse ⌵
    • All Groups
    • All Members
  • Support ⌵
    • 3D ToF Depth Sensing
    • A2B
    • Aerospace and Defense (ADEF)
    • Amplifiers
    • Analog Microcontrollers
    • Analysis Control Evaluation (ACE) Software
    • Audio
    • Clock and Timing
    • Condition-Based Monitoring
    • Data Converters
    • Design Tools and Calculators
    • Direct Digital Synthesis (DDS)
    • Embedded Vision Sensing
    • Energy Monitoring and Metering
    • FPGA Reference Designs
    • Industrial Ethernet
    • Interface and Isolation
    • Low Power RF Transceivers
    • MEMS Inertial Sensors
    • Motor Control Hardware Platforms
    • Optical Sensing
    • Power Management
    • Precision Technology Signal Chains
    • Processors and DSP
    • Reference Circuits
    • RF and Microwave
    • Signal Chain Power (SCP)
    • Switches/Multiplexers
    • Temperature Sensors
    • Video
    • Wide Band RF Transceivers
    • Wireless Sensor Networks Reference Library
  • About EZ
  • More
  • Cancel
  • 主页
  • 浏览 ⌵
    • 收件箱
    • 个人设置
    • 会员
    • 专区列表
  • 论坛专区 ⌵
    • 放大器专区
    • 精密转换器专区
    • 音频专区
    • ADE电能计量专区
    • MEMS和传感器专区
    • 接口和隔离专区
    • Power 中文专区
    • ADUC微处理器专区
    • 锁相环专区
    • 开关和多路复用器专区
    • 温度传感器
    • 基准电压源专区
    • 资源库
    • 论坛使用指南
    • 技术支持参考库
    • 在线研讨会
    • 论坛社群活动
    • 论坛激励活动
  • More
  • Cancel
MEMS Inertial Sensors
MEMS Inertial Sensors
Documents FAQ: Interface ADIS16364 with Arduino
  • Q&A
  • Discussions
  • Documents
  • File Uploads
  • Video/Images
  • Tags
  • Managers
  • More
  • Cancel
  • New
MEMS Inertial Sensors requires membership for participation - click to join
  • +Documents
  • +AD22282-A-R2: FAQ
  • +ADIS16000: FAQ
  • +ADIS16003 MTBF: FAQ
  • +ADIS16006: FAQ
  • +ADIS16201: FAQ
  • +ADIS16203: FAQ
  • +ADIS16204: FAQ
  • +ADIS16209: FAQ
  • +ADIS16210: FAQ
  • +ADIS16223: FAQ
  • +ADIS16227: FAQ
  • +ADIS16228: FAQ
  • +ADIS16229: FAQ
  • +ADIS16240: FAQ
  • +ADIS16255: FAQ
  • +ADIS16355: FAQ
  • +ADIS16364: FAQ
  • +ADIS16365: FAQ
  • +ADIS16375: FAQ
  • +ADIS16385: FAQ
  • +ADIS16400: FAQ
  • +ADIS16405: FAQ
  • +ADIS16407: FAQ
  • +ADIS16445: FAQ
  • +ADIS16448: FAQ
  • +ADIS16460: FAQ
  • +ADIS16475: FAQ
  • +ADIS16477: FAQ
  • +ADIS1647x: FAQ
  • +ADIS16480: FAQ
  • +ADISUSB: FAQ
  • +ADXL001: FAQ
  • +ADXL203: FAQ
  • FAQ: ADIS1648x Center of Gravity
  • FAQ: ADIS1648x Mounting Tips
  • FAQ: ADIS1648x SPI Extender
  • FAQ: ADIS16495 Pin Compatibility with the ADIS16485
  • FAQ: ADIS16IMU4/PCBZ Issue/Update
  • FAQ: ADXL001 Frequency Response
  • FAQ: Connecting the ADIS16000 to an EVAL-ADIS
  • FAQ: Continuous data sampling on ADIS16223?
  • FAQ: Definition of "g"
  • FAQ: Delta Angle Tutorial, ADIS16480
  • FAQ: Embedded design with the ADIS16460
  • FAQ: EVAL-ADIS Data Streaming into Matlab
  • FAQ: EVAL-ADIS DUT Mounting Holes
  • FAQ: EVAL-ADIS External Supply
  • FAQ: EVAL-ADIS in MATLAB
  • FAQ: EVAL-ADIS or ADISUSB?
  • FAQ: EVAL-ADIS Software Development Support
  • FAQ: EVAL-ADIS SPI Extender
  • FAQ: EVAL-ADIS/IMU Evaluation Product Support
  • FAQ: External Clock for ADIS16485 on EVAL-ADIS
  • FAQ: Extracting an IMU with a Flex Connector
  • FAQ: Getting Started with IMU FIR Filter Design
  • FAQ: Gyroscope Angle Random Walk
  • FAQ: Gyroscope In-Run Bias Stability
  • FAQ: Gyroscope Noise Density
  • FAQ: Gyroscope Sensitivity/Scale Factor Evaluation
  • FAQ: Hard & Soft Iron Correction for Magnetometer Measurements
  • FAQ: Hard & Soft Iron Correction for Magnetometers II
  • FAQ: Importing IMU Evaluation Software Data into Matlab
  • FAQ: IMU Datasheets, What is in them? Where do I find it?
  • FAQ: IMU Design Tools & Tips
  • FAQ: IMU Evaluation Tools & Information (old)
  • FAQ: IMU Evaluation, Writing Register Values to a File
  • FAQ: IMU Legacy Breakout Boards
  • FAQ: IMU Mounting Screws/Magnetic Properties
  • FAQ: Installing an IMU with a Flex Connector
  • FAQ: Interface ADIS16364 with Arduino
  • FAQ: J1 Pins on the EVAL-ADIS
  • FAQ: J3 Pins on the EVAL-ADIS
  • FAQ: MEMS Evaluation Tools
  • FAQ: Sensor filtering functions - Kalman or FIR
  • FAQ: Simple Gyroscope Calibration
  • FAQ: Slip Ring Interface
  • FAQ: Synchronizing Data Capture with ADIS16485 Power-on
  • FAQ: Testing Delta Angle Function in the ADIS16488
  • FAQ: Tilt Angle Window Detector
  • FAQ: Tilt Angle Window Detector with Evaluation Tools
  • FAQ: Vibration Analysis with the ADIS16228
  • FAQ: What is the ADIS16IMU1/PCBZ?
  • FAQ: What's new with the ADIS16460?
  • FAQ: Where can I find information on evaluation tools for ADIS16xxx products? (OLD)
  • FAQ; ADIS16475 Underfill Process Example
  • FAQ; ADIS1648x PROD_ID Read Loop Example
  • FAQ; ADIS1648x Remote Communication/Testing
  • FAQ; ADIS1648x Remote Communication/Testing Setup Guide
  • FAQ; EVAL-ADIS Software Development Tools, LabVIEW
  • FAQ; EVAL-ADIS Software Development Tools, Matlab
  • FAQ; EVAL-ADIS Software Development Tools, VB.NET DLL
  • FAQ; EVAL-ADIS2 Software Development Tools, VB.NET DLL (64-bit)
  • FAQ; Incline Output Response and Format
  • +Test Procedures: FAQ
  • +ADIS16300: FAQ
  • +ADIS16485: FAQ
  • +ADIS16488: FAQ
  • +ADIS16488A: FAQ
  • +ADIS16490: FAQ
  • +ADIS16495: FAQ
  • +ADIS16497: FAQ
  • +ADXL103: FAQ
  • +ADXL150: FAQ
  • +ADxL193: FAQ
  • +ADXL202: FAQ
  • +ADXL206: FAQ
  • +ADXL210: FAQ
  • +ADXL210E: FAQ
  • +ADXL213: FAQ
  • +ADxL230: FAQ
  • +ADXL278: FAQ
  • +ADXL312: FAQ
  • +ADXL313: FAQ
  • +ADXL320: FAQ
  • +ADXL321: FAQ
  • +ADXL322: FAQ
  • +ADXL327: FAQ
  • +ADXL335: FAQ
  • +ADXL337: FAQ
  • +ADXL345: FAQ
  • +3-D Model/STEP: FAQ
  • +AD22290: FAQ
  • +ADIS16003: FAQ
  • +ADIS16133: FAQ
  • +ADIS16135: FAQ
  • +ADIS16265: FAQ
  • +ADIS16305: FAQ
  • +ADXL326: FAQ
  • +ADXL350: FAQ
  • +ADXL362: FAQ
  • +ADXL375: FAQ
  • +ADXL377: FAQ
  • +ADXL78: FAQ
  • +ADXRS150: FAQ
  • +ADXRS290: FAQ
  • +ADXRS300: FAQ
  • +ADXRS401: FAQ
  • +ADXRS453: FAQ
  • +ADXRS610: FAQ
  • +ADxRS614: FAQ
  • +ADXRS623: FAQ
  • +ADXRS646: FAQ
  • +ADXRS652: FAQ
  • +ADXRS800: FAQ
  • +EVAL-ADIS2: FAQ
  • +EVAL-ADIS: FAQ
  • +General: FAQ
  • +Gyroscope: FAQ
  • +SPI Troubleshooting: FAQ
  • +TEMP_OUT Variation: FAQ
  • +ADIS16136: FAQ
  • +ADIS16137: FAQ
  • +ADIS16266: FAQ
  • +ADIS16334: FAQ
  • +ADIS16362 Evaluation Tool: FAQ
  • +ADIS16364 Evaluation Tool: FAQ
  • +ADIS16367: FAQ
  • +ADIS16489: FAQ
  • +ADXL346: FAQ
  • +ADXL363: FAQ
  • +ISEB USB: FAQ
  • +MEMS: FAQ

FAQ: Interface ADIS16364 with Arduino

Q:

How do I connect the ADIS16364 to my Arduino processor system?

---------------------------------------------------------------------------------------------

A:

This software package is an example of how to interface an ADIS16364 iSensor with an Arduino, and plot the data with a simple python program. This project can be used as a whole package, or you can use it to pick and choose code for things such as SPI communication, two's complement conversion, memory map for ADIS16364, python plotting, python serial communication, and much more.

The code project can be found on git hub:

https://github.com/agleason6/ADIS16364_example.git

From there you can download a .zip file, or clone the repository, or you can download the stable version from this FAQ page. Note that if you download the .zip file from github, you will have to change the name of the directory to just "ADIS16364_example"; github adds extra text to the directory name.

What you'll need


  • Arduino Uno or Arduino Mega 2560
  • ADIS16364 with breakout board
  • Jumper wires
  • Arduino IDE
  • Python with modules below, I tested this on Python 2.7
    • pySerial python module, see http://pyserial.sourceforge.net/
    • NumPy python module, see http://numpy.scipy.org/
    • SciPy python module, see http://www.scipy.org/
    • matplotlib python module, see http://matplotlib.sourceforge.net/

Connections

Using jumper wires, make connections from the ADIS16364 breakout board to the Arduino

as shown below:

Arduino Uno Connections:

CS   (J1-3)  - to digital pin 10 (SS)

SCLK (J1-2)  - to digital pin 13 (SCK)

DOUT (J1-4)  - to digital pin 12 (MISO)

DIN  (J1-6)  - to digital pin 11 (MOSI)

VCC  (J1-12) - to 5V

GND  (J1-9)  - to GND

Arduino Mega 2560 Connections:

CS   (J1-3)  - to digital pin 53 (SS)

SCLK (J1-2)  - to digital pin 52 (SCK)

DOUT (J1-4)  - to digital pin 50 (MISO)

DIN  (J1-6)  - to digital pin 51 (MOSI)

VCC  (J1-12) - to 5V

GND  (J1-9)  - to GND

See ADIS16364 datasheet Rev D, Figure 18, pg 17 for illustration of J1 and J2 connectors

http://www.analog.com/static/imported-files/data_sheets/ADIS16364.pdf

How to use

Once you've installed everything above, and made all the proper connections, it's time to

program the Arduino. First open up the ADIS164364.ino file with the Arduino IDE.

Press verify, and upload (after which you have properly setup the IDE with serial port, and device).

Now close the IDE, because you may have issues with the python plotting if you have both

programs trying to access the same serial port.

Plotting data with Python

usage: plot_data.py [-h] -p PORT -r RATE [-b] [-n NUM] [-s]

optional arguments:

  -h, --help            show this help message and exit

  -p PORT, --port PORT  Serial port, ie /dev/ttyACMX on Linux, or COMX on Windows

  -r RATE, --rate RATE  Baud rate

  -b, --bar             Show Bargraphs Instead of line plots

  -n NUM, --num NUM     Window width, default is 100 points

  -s, --smooth          Make lines look smoother

To run on Windows (COMX being the COM port that your Arduino is connected to):

python plot_data.py -p COMX -r 9600

To run on Linux:

python plot_data.py -p /dev/ttyACMX -r 9600

if you don't have udev setup for your Arduino, and you get permission issues, try running it as root:

sudo python plot_data.py -p /dev/ttyACMX -r 9600

Note: plot_data.py samples data as fast as python can plot, so it will run significantly slower than what the part is capable of. Please do not use this script to gauge the performance of the part. If you want to analyze performance, please checkout ADISUSB.


http://www.analog.com/en/mems-sensors/mems-inertial-sensors/adis16364/products/ADISUSB/eb.html

Enjoy,

agleason

Attachments:
ADIS16364_example.zip
  • code_examples
  • software
  • spi
  • firmware
  • accelerometer
  • gyroscope
  • imu
  • adis16364
  • gyro
  • Share
  • History
  • More
  • Cancel
Comments
Anonymous
  • irfan
    irfan over 9 years ago

    Hi mark,

    Thank you for your kind note.

    I am actually trying to come out of this problem. So, trying hard to solve it.

    I am presently using TMS320F28335-TI starer kit for signal processing as MCU.

    Do you have any experience in this field?

    I have got one example file from a website which is written for the same MCU but for a different isensor ADIS16350.

    I am presently facing problem to configure SPI.

    Please help me in this regard in the form of any suggestions.

    Thank you.

    Regards,

    Irfan.

    • Cancel
    • Vote Up 0 Vote Down
    • Reply
    • More
    • Cancel
  • NevadaMark
    NevadaMark over 9 years ago

    Hello Irfan,

    We do not provide code development services for these sensors. agleason was kind enough to share this with the community when he was working on this but he is not longer supporting these products. I suspect that the issue is related to the development tools but I am not well versed in these matters.  Perhaps it would make sense to start with a project that is working and then copy the ADIS16364 code into the working project, to see if you can make it work this way. I will be glad to help with any questions you have on how the interface works while you try this.

    Best,

    NevadaMark

    • Cancel
    • Vote Up 0 Vote Down
    • Reply
    • More
    • Cancel
  • irfan
    irfan over 9 years ago

    Hi agleason,

    Nice to see your code.

    Can you please help me in getting the similar code run for ADIS16407? (ADIS16405/PCBZ).

    I have an arduino Mega 2560.

    @Mark: Can you also guide me if it is possible to re-frame this code and re-work it for ADIS16407?

    Please help me.

    Thanks for your enduring support.

    Regards,

    Irfan.

    • Cancel
    • Vote Up 0 Vote Down
    • Reply
    • More
    • Cancel
  • NevadaMark
    NevadaMark over 9 years ago

    This is great!  We really appreciate this contribution!  For those who want to duplicate this setup, ADIS16364/PCBZ is the correct part number for the "ADIS16364 with breakout board" reference.  The following web site has pictures and documentation for this device:

    http://www.analog.com/en/mems-sensors/mems-inertial-sensors/adis16364/products/EVAL-ADIS16364/eb.html

    • Cancel
    • Vote Up 0 Vote Down
    • Reply
    • More
    • Cancel
Related
 
社交网络
快速链接
  • 关于ADI
  • Partners
  • 模拟对话
  • 职业
  • 联系我们
  • 投资信息
  • 新闻中心
  • 质量和可靠性
  • 办事处与代理商
  • Analog Garage
语言
  • English
  • 简体中文
  • 日本語
  • Руccкий
电子快讯

欲获得最新ADI产品、设计工具、培训与活动的相关新闻与文章,请从我们的在线快讯中选出您感兴趣的产品类别,每月或每季度都会发送至您的收件箱。

订阅
Switch to mobile view
Analog Logo
© 1995 - 2022 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号-1
  • ©
  • 1995 - 2022 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号-1
  • 网站地图
  • 隐私和保密政策
  • 隐私设置
  • 使用条款
 
Social
Quick Links
  • About ADI
  • Partners
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Analog Garage
Languages
  • English
  • 简体中文
  • 日本語
  • Руccкий
Newsletters

Interested in the latest news and articles about ADI products, design tools, training and events? Choose from one of our 12 newsletters that match your product area of interest, delivered monthly or quarterly to your inbox.

Sign Up
Switch to mobile view
Analog Logo
© 1995 - 2022 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号-1
  • ©
  • 1995 - 2022 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号-1
  • Sitemap
  • Privacy & Security
  • Privacy Settings
  • Terms of use
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.