Showing posts with label I2C. Show all posts
Showing posts with label I2C. Show all posts

Jul 25, 2017

ติดตั้ง RTIMULib เพื่อเชื่อมต่อกับ MPU9250 บน Raspberry Pi 3

เราจะติดตั้ง RTIMULib เพื่ออ่านค่าของเซนเซอร์ใน MPU9250 ซึ่งประกอบด้วย accelerometer, gyroscpope และ magnetometer ผ่าน I2C ดังนั้นต้องเปิดการใช้งาน I2C ตามนี้ก่อน จากนั้นให้ทำตามขั้นตอนตามคู่มือของ RTIMULib  ดังนี้

1. ติดตั้ง CMake

sudo apt-get install cmake

2. ติดตั้ง Qt dev

sudo apt-get install libqt4-dev

3. โคลนซอร์สโค๊ด

git clone https://github.com/RPi-Distro/RTIMULib/

4. คอมไฟล์ library

cd RTIMULib/RTIMULib/
mkdir build
cd build
cmake ..
make -j4
sudo make install
sudo ldconfig

ใน RTIMULib/Linux จะมีโปรแกรมต่างๆ เช่น RTIMULibCal, RTIMULibDrive, RTIMULibDrive10 and RTIMULibDrive11 ให้คอมไพล์ ตามนี้

make -j4
sudo make install

ในกรณีที่ Device ID ของ MPU9250 เป็น 115 (0x73) ให้แก้ไขไฟล์ RTIMULib/RTIMULib/IMUDrivers/RTIMUDefs.h คือ

#define MPU9250_ID                  0x73
แล้วคอมไฟล์อีกครั้ง 

ในบางครั้งโมดูลที่เราซื้อมาอาจจะเป็น MPU9255 ซึ่งเป็นชิปเบอร์ใหม่กว่า โดยเฉพาะที่ซื้อจากประเทศจีน แต่โชคดีที่มีคนทำ RTIMULib สำหรับ MPU9255 ไว้ ให้ไปดูรายละเอียดที่
https://github.com/Nick-Currawong/RTIMULib2

ในการใช้งานร่วมกับ ROS ศึกษารายละเอียดต่อที่นี่
http://www.jetsonhacks.com/2015/07/01/bosch-imu-under-ros-on-nvidia-jetson-tk1/

เปิดการใช้งาน I2C บน Raspberry Pi 3 ที่ติดตั้ง Ubuntu MATE 16.04

จากข้อมูล raspberrypi.stackexchange.com, github.com/RPi-Distro/RTIMULib และ kingtidesailing.blogspot.com การเปิดงานใช้งาน I2C เพื่อเชื่อมต่อ Raspberry Pi 3 กับโมดูลต่างๆ มีขั้นตอนดังนี้

1. เปิดการใช้งาน I2C โดยใช้คำสั่ง

sudo raspi-config

จากนั้นเลือก Advance Interface แล้วเลือก I2C จากนั้นทำตามคำสั่งที่โปรแกรมกำหนด

2. เปิดไฟล์ /etc/modules จะพบ

i2c-dev

ถ้าไม่พบให้เพิ่มเข้าไป

3. เปิดไฟล์ /etc/modprobe.d/raspi-blacklist.conf จะไม่พบข้อความเกี่ยวกับ i2c ในนั้น ถ้าพบให้ใส่คอมเมนต์ เช่น

# blacklist i2c-bcm2708

4. สังเกตุว่า /dev/i2c-1 จะเป็นโหมด 666 เพื่อใช้ user ธรรมดาไม่ใช่ root ใช้งานได้ (ไม่ต้องพิมพ์คำสั่ง sudo) แต่ถ้าไม่ใช่ให้เพิ่มไฟล์ /etc/udev/rules.d/90-i2c.rules โดยเพิ่ม

KERNEL=="i2c-[0-7]",MODE="0666"

5. แก้ไข  /boot/config.txt เพื่อให้ i2c ทำงานที่ความถี่สูงสุด 400 kHz โดยเพิ่มข้อความนี้

dtparam=i2c1_baudrate=400000

6. รีบู๊ต

7. ติดตั้ง I2C tool

sudo apt-get install i2c-tools

8. เชื่อมต่อ Raspberry Pi 3 กับโมดูล I2C โดยใช้ Pin 3 (SDA) และ Pin 5 (SCL) แล้วใช้คำสั่งเพื่อดู adress ของอุปกรณ์นั้น

i2cdetect -y 1

หากพบ address ของอุปกรณ์ ก็แสดงว่า I2C ก็พร้อมใช้งานแล้ว