ROS (Robot Operating System) คือ ระบบปฏิบัติการหุ่นยนต์ ที่ประกอบไปด้วย library และ โปรแกรมต่างๆ ที่จะอำนวยความสะดวกในการสร้างหุ่นยนต์ บทความนี้จะรวบรวมข้อมูลในการตั้งต้นสำหรับการใช้งาน ROS บน Raspberry Pi 3 ที่ติดตั้ง Ubuntu MATE
1. ติดตั้ง Ubuntu MATE บน Raspberry Pi โดยส่วนตัวแล้วผมไม่คุ้นเคยกับระบบปฏิบัติการอย่างเป็นทางการของ Raspberry Pi นั่นคือ Raspbian แต่ผมได้ใช้ Ubuntu มาอย่างยาวนาน น่าจะสักตั้งแต่ปี 2007 โชคดีที่ในหน้าดาวน์โหลดของ Raspberry Pi มี OS ทางเลือกที่เป็น Ubuntu MATE การติดตั้ง Ubuntu MATE บน Raspberry Pi 3 ให้ทำตามเอกสารนี้ ณ ขณะที่เขียนนี้ Ubuntu MATE เป็นเวอร์ชั่น 16.04 LTS
ปรับแต่ง Raspbery Pi เพื่อเตรียมพร้อมจะใช้งาน ROS ดังนี้
2. ติดตั้ง ROS ณ ขณะนี้ เวอร์ชั่นที่เป็น LTS คือ Kinectic Kame สำหรับการติดตั้ง ROS ใน Ubuntu MATE บน Raspberry Pi ให้ทำตามขั้นตอนในเอกสารในเวบไซต์ของ ROS หรือ www.intorobotics.com
3. ติดตั้ง ROS สำหรับ Arduino เป็นที่รู้กันว่า Raspberry Pi 3 นั้นมี PWM แค่ 1 ช่อง และไม่มี ADC ซึ่งจำเป็นต่อการสร้างหุ่นยนต์มาก ดังนั้นเพื่อเป็นการเติมเต็มส่วนที่ขาดหาย เราจะเชื่อมต่อ Raspberry Pi กับ Arduino ผ่าน serial port นั่นเอง การติดตั้งขอให้ทำตามเอกสารในเวบไซต์ของ ROS
4. ศึกษา Tutorial เมื่อทุกอย่างทำงานอย่างลงตัว ให้ศึกษาตัวอย่าง
Showing posts with label Raspberry Pi. Show all posts
Showing posts with label Raspberry Pi. Show all posts
Jul 26, 2017
Jul 25, 2017
ติดตั้ง RTIMULib เพื่อเชื่อมต่อกับ MPU9250 บน Raspberry Pi 3
เราจะติดตั้ง RTIMULib เพื่ออ่านค่าของเซนเซอร์ใน MPU9250 ซึ่งประกอบด้วย accelerometer, gyroscpope และ magnetometer ผ่าน I2C ดังนั้นต้องเปิดการใช้งาน I2C ตามนี้ก่อน จากนั้นให้ทำตามขั้นตอนตามคู่มือของ RTIMULib ดังนี้
1. ติดตั้ง CMake
2. ติดตั้ง Qt dev
3. โคลนซอร์สโค๊ด
4. คอมไฟล์ library
ใน RTIMULib/Linux จะมีโปรแกรมต่างๆ เช่น RTIMULibCal, RTIMULibDrive, RTIMULibDrive10 and RTIMULibDrive11 ให้คอมไพล์ ตามนี้
ในกรณีที่ Device ID ของ MPU9250 เป็น 115 (0x73) ให้แก้ไขไฟล์ RTIMULib/RTIMULib/IMUDrivers/RTIMUDefs.h คือ
ในบางครั้งโมดูลที่เราซื้อมาอาจจะเป็น 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/
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 โดยใช้คำสั่ง
จากนั้นเลือก Advance Interface แล้วเลือก I2C จากนั้นทำตามคำสั่งที่โปรแกรมกำหนด
2. เปิดไฟล์ /etc/modules จะพบ
ถ้าไม่พบให้เพิ่มเข้าไป
3. เปิดไฟล์ /etc/modprobe.d/raspi-blacklist.conf จะไม่พบข้อความเกี่ยวกับ i2c ในนั้น ถ้าพบให้ใส่คอมเมนต์ เช่น
4. สังเกตุว่า /dev/i2c-1 จะเป็นโหมด 666 เพื่อใช้ user ธรรมดาไม่ใช่ root ใช้งานได้ (ไม่ต้องพิมพ์คำสั่ง sudo) แต่ถ้าไม่ใช่ให้เพิ่มไฟล์ /etc/udev/rules.d/90-i2c.rules โดยเพิ่ม
5. แก้ไข /boot/config.txt เพื่อให้ i2c ทำงานที่ความถี่สูงสุด 400 kHz โดยเพิ่มข้อความนี้
6. รีบู๊ต
7. ติดตั้ง I2C tool
8. เชื่อมต่อ Raspberry Pi 3 กับโมดูล I2C โดยใช้ Pin 3 (SDA) และ Pin 5 (SCL) แล้วใช้คำสั่งเพื่อดู adress ของอุปกรณ์นั้น
หากพบ address ของอุปกรณ์ ก็แสดงว่า I2C ก็พร้อมใช้งานแล้ว
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 ก็พร้อมใช้งานแล้ว
Jul 21, 2017
เปิดการใช้งาน UART บน Raspberry Pi 3
ผมต้องการเปิดใช้งาน hardware serial บน Raspberry Pi 3 เพื่อในอนาคตจะเชื่อมต่อกับ Arduino ผ่านสายสัญญาณ Tx (Pin 8) และ Rx (Pin 10) จากการสืบเสาะข้อมูลจากเวบของ Raspberry Pi และ stackexchange สรุปได้ว่าใน Rasberry Pi 3 มี serial port อยู่ 2 ช่อง คือ /dev/ttyS0 ซึ่งติดต่ออยู่กับ serial console และ /dev/ttyAMA0 ซึ่งติดต่ออยู่ BlueTooth เพื่อจะทำให้ /dev/ttyAMA0 เชื่อมต่อกับ Tx (Pin 8) และ Rx (Pin 10) เราต้องดำเนินการดังนี้
1. ปิด serial console ก่อน โดยระบบปรับแต่งค่า
a) เปิดใช้งาน UART
enable_uart=1
b) ค่าความเร็วของ CPU ให้คงที่
1. ปิด serial console ก่อน โดยระบบปรับแต่งค่า
sudo raspi-config2. แก้ไข /boot/config.txt
sudo pluma /boot/config.txtเพิ่มเนื้อหาดังต่อไปนี้ แล้ว save
a) เปิดใช้งาน UART
enable_uart=1
b) ค่าความเร็วของ CPU ให้คงที่
force_turbo=1c) ปิดการใช้งาน BlueTooth
arm_freq=1200
core_freq=250
dtoverlay=pi3-disable-bt
3. แก้ไข /boot/cmdline.txt
sudo pluma /boot/cmdline.txt
ลบข้อความ "console=serial0,115200" หรือ "console=ttyAMA0,115200" ออก แล้วเซฟ
4. ปิดการใช้งาน modem
sudo systemctl disable hciuart
5. reboot
การติดตั้ง VNC ใน Ubuntu MATE 16.04 บน Raspberry Pi 3
บทความนี้เราจะติดตั้ง TightVNC เพื่อทำระบบ remote control แบบไร้สายผ่าน WiFi สำหรับ Raspberry Pi 3 ที่ติดตั้ง Ubuntu Mate 16.04 โดยมีขั้นตอนดังนี้
1. ติดตั้ง TightVNC
2. ตั้งค่า lightdm
ที่มา
http://panjitalk.com/connecting-ubuntu-mate-in-raspberry-pi-using-tightvnc/
1. ติดตั้ง TightVNC
sudo apt-get update sudo apt-get install tightvncserver
2. ตั้งค่า lightdm
sudo pluma /etc/lightdm/lightdm.conf จากนั้นใส่เนื้อหาดังนี้ แล้ว save3. จากนั้นรีสตาร์ท lightdm[VNCServer] enabled=true port=5900 width=800 height=600 depth=16
sudo /etc/init.d/lightdm restart
4. ตั้งค่า WiFi เพื่อให้เชื่อมต่ออินเทอร์เนตก่อนจะ login โดยการเข้าไปที่ Edit connection เลือก Edit ชื่อ WiFi hot spot ที่เชื่อมต่อ ในแทบ General เลือก All users may allow to connect
ที่มา
http://panjitalk.com/connecting-ubuntu-mate-in-raspberry-pi-using-tightvnc/
Subscribe to:
Posts (Atom)