Thanapon Tapala

Backend Developer

Embedded Developer

Smart Farmer

Maker

Thanapon Tapala

Backend Developer

Embedded Developer

Smart Farmer

Maker

Blog Post

[Arduino] ติดตั้ง STM32Duino ใน ArduinoIDE กันครับ

January 5, 2019 Arduino
[Arduino] ติดตั้ง STM32Duino ใน ArduinoIDE กันครับ

หลังจากที่ห่างหายจากการเล่นอุปกรณ์ Hardware ไปนาน ปรากฎว่าผมลืมวิธีเขียนโปรแกรมไปเยอะเลยทีเดียว วันนี้ก็ได้มีโอกาสกลับมาทบทวนการใช้งาน บอร์ด STM32F103C8T6 หรือเรียกสั้นๆว่า Bluepill ละกันนะครับ โดยส่วนตัวคิดว่าทำไมถึงใช้บอร์ดตัวนี้ก็เพราะว่ามันมีราคาถูกดี + spec มันจัดจ้านซะเหลือเกิน จริงๆบทความนี้ก็ไม่ค่อยมีอะไรมากหรอกครับ เป็นการติดตั้ง STM32Duino เข้าไปใน Arduino IDE เพื่อให้มันสามารถ compile โค๊ดแล้วยัดลงบอร์ด STM32Fxx เฉยๆครับ จากปกติเราใช้ ArduinoIDE เขียนโปรแกรมเพื่อควบคุมบอร์ดตระกูล Arduino กับ ESPxx กันอยู่แล้ว

ก่อนอื่นผมขอเปรียบเทียบ Spec ระหว่าง STM32F103C8T6 กับ Arduino Pro mini

Image for post
STM32F103C8T6 vs ATmega328p [Arduino Promini 5v/16MHz]
Image for post
Comparison between STM32F103C8T6 and ATmega328p

จากตารางข้างบนผมได้เปรียบเทียบกันในด้านของ Specification ระหว่าง STM32F103C8T6 กับ ATmega328p ซึ่งจะเห็นได้ว่าต่างกันพอสมควรเลยทั้งในด้านของ Architecture, CPU Freq, RAM, Flash Memory, ความละเอียดของ ADC และการเชื่อมต่อกับอุปกรณ์ภายนอก ซึ่ง STM32F103C8T6 นั้นรองรับได้มากกว่า

จากที่ได้ข้อสรุปแล้วว่าทำไมต้องใช้ STM32F103C8T6แล้วปัญหาต่อมาก็คือ เอ๊ะ!! เราจะโปรแกรมบอร์ดนี้ยังไงดีอ่ะ ซึ่งปกติผมก็ใช้แค่ ArduinoIDE นี่ หน่าา

แต่นี้ไม่ใช่ปัญหาครับ เราก็แค่ติดตั้ง STM32Duino เข้าไปใน ArduinoIDE เลยก็จบเรื่องไง!!!

STM32Duino คือ Arduino Core ที่ทำให้เราสามารถโปรแกรมบอร์ดตระกูล STM32F1xx โดยใช้ ArduinoIDE เป็น Editor สำหรับเขียนโปรแกรมซึ่งการติดตั้งนั้นก็ง่ายแสนง่ายครับ

มาเริ่มติดตั้ง STM32Duino กันเลยนะครับ

อันดับแรกให้เราเพิ่ม Additional Boards Manager URL ซึ่งเข้าไปที่ File > Preferences

http://dan.drown.org/stm32duino/package_STM32duino_index.json

Image for post
Additional Boards Manager URL

หลังจากนั้นเข้าไป Tools > Board > Boards Manager … เพื่อจะได้เข้าไปดาวน์โหลด Additional board ตามที่เราต้องการได้ เมื่อเข้าไปหน้า Board Manager แล้วต้องรอให้ ArduinoIDE ทำการดาวน์โหลดข้อมูลจาก URL ที่เราเพิ่มไปก่อนหน้านี้ด้วยนะครับ

Image for post
Board Manager

หลังจาก Board Manager ทำการดาวน์โหลดข้อมูลเสร็จแล้วให้ค้นหาบอร์ด stm32f1 แล้วทำการกดติดตั้งได้เลยครับ เมื่อติดตั้งเสร็จก็ปิดหน้าต่างแล้วไปดูบอร์ดที่เราติดตั้งไปนั้นมีแสดงในรายการ Board ไหม

Image for post

ก็สำหรับใครถ้ามีรูปตามข้างล่างนี้ ก็ถือว่าติดตั้งสำเร็จแล้วครับ ต่อไปก็ลองมาอัพโหลด Sketch Arduino เข้าไปบอร์ดได้เลยนะครับ

Image for post
Tools > Board

เริ่มต้นอัพโหลด Code ที่เราเขียนไปยังบอร์ด Bluepill

อุปกรณ์ที่เราจำเป็นต้องมีนะครับ
– USB to Serial
– STM32F103C8T6[Bluepill]

สำหรับการต่อสายก็ต่อตามรูปเลยครับ

Image for post
BOOT Mode

หลังจากนั้นให้เปลี่ยนตำแหน่งการ Jumper ของ BOOT0 เป็น Programming Mode อันนี้จำเป็นต้องเปลี่ยนนะครับ

เมื่อต่อสายเสร็จ ถึงคราวที่เราต้องมาตั้งค่า Board ใน ArduinoIDE กันบ้างนะครับ โดยให้เลือก Board เป็น Generic STM32F103C8T6 series หลังจากนั้นเลือก Upload Method เป็น Serial ก็ถือว่าเสร็จสิ้นครับ เตรียมตัวอัพโหลดโค๊ดกัน

Image for post

จากตัวอย่างโค๊ดด้านล่างนี้ผมแค่จะทดสอบการ Blink ของ Built-in LED เฉยๆนะครับ

void setup() {
  pinMode(PC13, OUTPUT);
}

void loop() {
  digitalWrite(PC13, HIGH);   
  delay(1000);
  digitalWrite(PC13, LOW);  
  delay(1000);            
}

โค๊ดพร้อมบอร์ดพร้อมใจคุณพร้อมอ่ะป่าวว

ถ้าพร้อมก็กด Upload Sketch ได้เลยครับ

Image for post
Blink Built-in LED

เย้!!!! สำเร็จแล้ว ง่ายจริงๆใช่ไหม

ก็เป็นอันเสร็จสิ้นการติดตั้ง STM32Duino ครับ หากข้อมูลผิดพลาดประการใดก็ขออภัยด้วยนะครับ ขอบคุณและสวัสดีครับ 🙂

Taggs: