Jul 14, 2018

การติดตั้ง Arduino_STM32 และ ROS สำหรับ Maple Mini (STM32F103CBT6)

ภาพจาก stm32duino.com

Maple Mini เป็นบอร์ดไมโครคอนโทรลเลอร์ 32 บิทราคาถูกที่หาซื้อได้ทั่วไปจาก AliExpress ในราคา ~$3.3 หรือ ~120 บาท ซึ่งราคาถูกมากเทียบกับประสิทธิภาพ คุณสมบัติสำคัญของบอร์ดนี้ คือ ใช้ชิป STM32F103CBT6 มี Flash 128 KB RAM 20 KB ความเร็ว 72 MHz ซึ่งเพียงพอต่อการเขียนเฟิร์มแวร์สำหรับ ROS บอร์ดนี้ทำงานที่ 3.3V แต่ก็มีบาง pin ที่รับอิพุท 5V ได้ด้วย ซึ่งสามารถทำงานได้กับเซนเซอร์ 5V บางตัว เช่น Hall sensor encoder หรือ Ultrasonic sensor  HC-SR04 บอร์ดอัพโหลดโปรแกรมผ่าน mini USB ได้โดยตรงไม่ต้องใช้ ST-Link ดังนั้นบอร์ดนี้จึงเหมาะที่จะนำมาเป็น base controller สำหรับหุ่นยนต์ ROS


ติดตั้ง Arduino_STM32

Arduino_STM32 เป็นซอฟต์แวร์ที่ทำให้เราสามารถเขียนโปรแกรมสำหรับบอร์ด STM32F103 ด้วย Arduino IDE  ผมได้สรุปวิธีการติดตั้งจากเวบไซต์ของ Arduino_STM32  ดังนี้ โดยผมใช้ระบบปฏิบัติการ Ubuntu 16.04 LTS

1. ติดตั้ง Arduino IDE สำหรับ Linux ตามคำสั่งนี้

2. เปิด Arduino IDE ขึ้นมา ไปที่ Tools->Boards manager เลือกติดตั้ง Arduino SAM boards (Cortex-M3) ขั้นตอนนี้ต้องทำเพราะมีการติดตั้ง arm-none-eabi-g++ toolchain ด้วย

3. ดาวน์โหลด Arduino_STM32 แล้วแตกไฟล์ในไปไว้ในโฟลเดอร์ hardware ของ Arduino IDE สุดท้ายเราจะได้ ~/Arduino/hardware/Arduino_STM32

4. รัน ~/Arduino/hardware/Arduino_STM32/tools/linux/install.sh เพื่อติดตั้ง udev rules

5. ปิดและเปิด Arduino IDE ขึ้นมาใหม่อีกครั้ง เลือก Tools->Board เราก็จะพบว่ามี Maple Mini รวมทั้งบอร์ด STM32 อื่นๆ ที่สนับสนุนให้เลือก ตามภาพ


ถึงตอนนี้ก็เป็นอันว่าเราสามารถเขียนโปรแกรมในสไตล์ Arduino สำหรับบอร์ด Maple Mini ได้แล้ว ซึ่งการเขียนโปรแกรมไม่แตกต่างจากบอร์ด UNO เลย เพียงแต่ต้องศึกษา pinout จากเวบไชต์ stm32duino.com ตามภาพ
 
ภาพจาก stm32duino.com


ติดตั้ง ros_lib สำหรับ Arduino

ros_lib เป็น library ของ ROS สำหรับ Arduino ซึ่งทำให้เราสร้าง node และส่งข้อมูลผ่าน Serial port จากบอร์ด Microcontroller มายัง PC หรือ Raspberry Pi ได้ ซึ่งวิธีการติดตั้ง ros_lib สำหรับ Ubuntu 16.04 LTS และ ROS kinectic มีดังนี้

1. ติดตั้ง rosserial
sudo apt-get install ros-kinetic-rosserial-arduino
sudo apt-get install ros-kinetic-rosserial

2. ติดตั้ง ros_lib
cd ~/Arduino/libraries
rm -rf ros_lib #ลบไฟล์เก่า (ถ้ามี)
rosrun rosserial_arduino make_libraries.py .

3. ปิดแล้วเปิด Arduino IDE ขึ้นมาใหม่ ถ้าการติดตั้งไม่ผิดพลาดเราจะเห็น ros_lib ใน File->Examples ดังภาพ



หลังจากติดตั้ง ros_lib สำหรับ Maple Mini แล้ว ต่อจากนี้ไปก็ศึกษาการเขียนโปรแกรมตามเวบนี้ rosserial_arduino Tutorials

No comments:

Post a Comment