- PlatformIO คืออะไร?
- การตั้งค่า PlatformIO สำหรับ Arduino Uno
- การเขียนโปรแกรม Arduino UNO โดยใช้ PlatformIO IDE
- การเขียนโปรแกรมบอร์ด STM32 โดยใช้ PlatformIO IDE
การพัฒนาใน Arduino และ Arduino IDE นั้นง่ายและสนุกเสมอด้วยส่วนต่อประสานผู้ใช้ที่เรียบง่าย Arduino IDE เป็นโอเพ่นซอร์สและใช้งาน Development Environment ได้ฟรีพร้อมคุณสมบัติทั้งหมดเช่นเขียนรวบรวมและอัปโหลดโค้ดไปยังบอร์ด Arduino ใช้ Java และทำงานบนระบบปฏิบัติการหลักเช่น Windows, OS X และ Linux แต่ด้วยความเรียบง่ายและชุมชนขนาดใหญ่จึงไม่มีคุณลักษณะบางอย่างที่นักพัฒนาที่มีประสบการณ์ต้องการสำหรับการพัฒนาที่รวดเร็วซึ่งสามารถลดระยะเวลาการพัฒนาได้ มีสภาพแวดล้อมการพัฒนามากมายสำหรับ Arduino แต่ทั้งหมดมีข้อดีและข้อเสีย วันนี้เราจะเริ่มต้นด้วยสภาพแวดล้อมการพัฒนา PlatformIOซึ่งใช้งานง่ายและได้เพิ่มคุณสมบัติเมื่อเทียบกับสภาพแวดล้อม Arduino
PlatformIO คืออะไร?
PlatformIO เป็นระบบนิเวศโอเพ่นซอร์สที่ใช้ Python สำหรับการพัฒนา IoT และ IDE ข้ามแพลตฟอร์มที่มีดีบักเกอร์แบบรวมที่ทำงานบน Windows, Mac และ Linux PlatformIO มาพร้อมกับตัวจัดการไลบรารีสำหรับแพลตฟอร์มเช่น Arduino หรือรองรับ MBED พร้อมกับการทดสอบหน่วยและการอัปเดตเฟิร์มแวร์ PlatformIO รองรับ Platforms, Frameworks, Boards เช่น Arduino, ESP32, ESP8266 จำนวนมากและมาพร้อมกับตัวอย่างและไลบรารีจำนวนมาก ไม่ขึ้นอยู่กับแพลตฟอร์มที่กำลังทำงานอยู่และต้องใช้ Python ที่ติดตั้งบนคอมพิวเตอร์เท่านั้น
ข้อดีของ PlatformIO
PlatformIO มีการพัฒนาอย่างรวดเร็วด้วยคุณสมบัติเช่น C / C ++ Code Completion และ Smart Code Linter สำหรับการพัฒนาวิชาชีพอย่างรวดเร็วซึ่งไม่มีใน Arduino IDE นอกจากนี้ PlatformIO ยังรองรับธีมด้วยสีเข้มและสีอ่อนเพื่อการพัฒนาได้ตลอดเวลา นอกจากนี้ยังมาพร้อมกับสมาร์ทรหัสเดินเรือและรหัสการจัดรูปแบบคุณสมบัติหลัก ได้แก่ Multi-platform Build System, Library Manager, Serial Port Monitor เป็นต้น
Unified ดีบักเกอร์ด้วยการสนับสนุนสำหรับสถาปัตยกรรมหลายและแพลตฟอร์มการพัฒนาจะช่วยให้การแก้ปัญหาที่ฝังบอร์ดหลายกับศูนย์การกำหนดค่า PlatformIO Unified Debugger มีคุณสมบัติเช่น Conditional Breakpoints, Expressions และ Watchpoints, Memory Viewer, การรีสตาร์ทเซสชันการดีบักที่ใช้งานอยู่ PlatformIO Core เขียนด้วย Python 2.7 และทำงานบน Windows, macOS, Linux, FreeBSD และแม้แต่คอมพิวเตอร์ขนาดบัตรเครดิตที่ใช้ ARM เช่น Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK เป็นต้นนอกเหนือจากนี้ PlatformIO ยังมี File Explorer ที่ช่วย การจัดระเบียบไฟล์เมื่อโครงการเติบโตถึงระดับหนึ่งและจำเป็นต้องจัดระเบียบ
การตั้งค่า PlatformIO สำหรับ Arduino Uno
การใช้ PlatformIO นั้นง่ายมากและต้องใช้ขั้นตอนไม่กี่ขั้นตอนในการเริ่มต้น PlatformIO ต้องการ Python ที่ติดตั้งบนคอมพิวเตอร์เนื่องจากตามที่อธิบายไว้ข้างต้นว่า PlatformIO core เขียนด้วย Python 2.7 โปรดทราบว่า PlatformIO ไม่รองรับ Python 3 ดังนั้นขอแนะนำให้ติดตั้งเวอร์ชัน Python 2จากนั้นดำเนินการตั้งค่า PlatformIO IDE PlatformIO เป็น IDE พร้อมทั้งมีแพ็คเกจอย่างเป็นทางการ (ปลั๊กอินส่วนขยาย) สำหรับ IDE และโปรแกรมแก้ไขข้อความยอดนิยม
วันนี้เราจะติดตั้ง PlatformIO ลงในโปรแกรมแก้ไขข้อความเช่น Atom และ Visual Studio Code ในเอกสารอย่างเป็นทางการของ Platform IDE ระบุว่า PlatformIO IDE สำหรับ VS Code (Visual Studio Code) ให้ประสิทธิภาพของระบบที่ดีขึ้นและผู้ใช้พบว่าง่ายต่อการเริ่มต้น ดังนั้นเราจะตั้งค่า PlatformIO ใน Visual Studio Code VS Code เป็นโปรแกรมแก้ไขข้อความที่รู้จักกันดีซึ่งมีส่วนขยายจำนวนมากให้เราพัฒนาในภาษาโปรแกรมต่างๆ
ขอเริ่มต้นการตั้งค่า PlatformIO ที่จะเริ่มต้นในการพัฒนารหัส UNO มีขั้นตอนที่เกี่ยวข้องซึ่งอธิบายไว้ด้านล่าง:
- ขั้นแรกให้ติดตั้งVisual Studio Codeจากเว็บไซต์ทางการ ขั้นตอนการติดตั้งVisual Studio Codeจะไม่ได้อธิบายไว้ที่นี่ แต่คุณสามารถหาได้จากเว็บไซต์ VS Code มีขั้นตอนทั่วไปที่เกี่ยวข้องเช่นเดียวกับการติดตั้งซอฟต์แวร์อื่น ๆ บน Windows OS
- Visual Studio Code จะมีลักษณะดังนี้เมื่อติดตั้งสำเร็จ
- ขั้นตอนต่อไปรวมถึงการติดตั้ง PlatformIO โดยใช้ VS Code Extensions สำหรับสิ่งนี้คุณต้องไปที่ไอคอนส่วนขยายที่มุมบนซ้ายของ VS Code มีตารางกล่องไอคอนซึ่งเป็น 5 THไอคอนบนมุมบนด้านซ้าย เพียงคลิกที่ช่องนั้นและช่องค้นหาหนึ่งช่องจะปรากฏขึ้นข้างๆซึ่งคุณสามารถค้นหาส่วนขยายมากมายสำหรับภาษาโปรแกรมต่างๆเช่น C / C ++, C #, Python, PHP, Go, JavaScript, TypeScript และ Node.js เป็นต้น
- ค้นหา“ PlatformIO” ในช่องค้นหาส่วนขยายและคุณจะเห็นไอคอน PlatformIO พร้อมชื่อและคำอธิบาย เพียงคลิกที่มันและติดตั้ง อาจใช้เวลาสักครู่ในการติดตั้ง toolchains และการอ้างอิงอื่น ๆ การพึ่งพารวมถึงสภาพแวดล้อม C / C ++ เนื่องจากการพัฒนา Arduino ส่วนใหญ่ทำบน C / C ++
- เมื่อการติดตั้งเสร็จสมบูรณ์คุณจะเห็นอินเทอร์เฟซต่อไปนี้ อินเทอร์เฟซประกอบด้วยการนำทางที่จำเป็นทั้งหมดเช่นการสร้างโครงการใหม่นำเข้าโครงการ Arduino โครงการเปิดตัวอย่างโครงการเป็นต้นขอแนะนำให้รีสตาร์ท VS Code Editor หลังจากการติดตั้ง PlatformIO
เสร็จสิ้นขั้นตอนการติดตั้งของ PlatformIO ตอนนี้ PlatformIO ได้รับการติดตั้งและพร้อมใช้งานแล้ว เช่นเดียวกับ Arduino IDE เราจะเริ่มต้นด้วยโปรแกรมกะพริบและพยายามอัปโหลดโปรแกรมกะพริบใน Arduino UNO
การเขียนโปรแกรม Arduino UNO โดยใช้ PlatformIO IDE
อินเทอร์เฟซ PlatformIO จะอธิบายพร้อมกันในขณะที่เขียนโปรแกรม Arduino UNO ที่นี่เรากำลังเขียนโปรแกรม Arduino สำหรับ LED กะพริบโดยใช้ PlatformIO สามารถทำได้โดยใช้ Arduino IDE ทำตามขั้นตอนด้านล่างด้านล่างเพื่อสร้างโปรเจ็กต์ใหม่สำหรับ LED กะพริบ
- เลือกแท็บ“ โครงการใหม่” จากเมนูการเข้าถึงด่วน
- ตั้งชื่อโครงการ (ในที่นี้คือ 'กะพริบตา') ค้นหาและเลือกบอร์ดซึ่งเป็น Arduino UNO เนื่องจากเรากำลังทำงานในกรอบ Arduino ดังนั้นกรอบงานที่เลือกจะเป็น Arduino หลังจากกรอกรายละเอียดทั้งหมดแล้วให้คลิกที่ Finish
- โครงการจะเริ่มสร้างขึ้นโดยการรวบรวมทรัพยากรและการอ้างอิงอื่น ๆ
- เมื่อสร้างโปรเจ็กต์สำเร็จคุณจะได้รับข้อความแจ้งว่า“ โปรเจ็กต์เริ่มต้นสำเร็จแล้ว” พร้อมรายละเอียดที่กรอกทั้งหมด
- ในการเปิดโปรเจ็กต์ที่สร้างขึ้นเพียงแค่เลื่อนลงไปที่โฮมเมนูของ PlatformIO และคุณจะเห็นรายการโปรเจ็กต์ทั้งหมดที่สร้างขึ้นตั้งแต่ต้น ที่มุมขวาของโครงการที่สร้างขึ้นคลิกที่ 'เปิด' เพื่อเปิดโครงการและเริ่มแก้ไข
- เมื่อโครงการเปิดครั้งแรกมันจะมีลักษณะเช่นที่ซ่อนของมัน แต่ไม่ต้องกังวลที่PlatformIO มีคุณลักษณะสำรวจไฟล์ที่ไฟล์ทั้งหมดของโครงการปัจจุบันจะพบว่า เพียงไปที่มุมบนซ้ายแล้วเปิด "ไม่มีชื่อ (ที่ทำงาน)" เมื่อคลิกไฟล์ทั้งหมดจะปรากฏเป็นเมนูแบบเลื่อนลง หากต้องการค้นหาโปรแกรมแก้ไขข้อความเพื่อแก้ไข 'รหัส' ให้เลือก 'src' และเปิด 'main.cpp' โหมดแก้ไขข้อความจะปรากฏบนหน้าจอหลักพร้อมกับเปิดแท็บใหม่ คุณสามารถเขียนโค้ดทั้งหมดของโครงการที่กำลังดำเนินอยู่ในปัจจุบันได้ที่นี่
- เพียงเขียน Blink Code สำหรับ Arduino UNO โปรดทราบว่า PlatformIO ไม่มีการเข้าถึงไลบรารี Arduino เป็นค่าเริ่มต้นดังนั้นทุกครั้งที่คุณเขียนโค้ดสำหรับ Arduino จะรวมไลบรารี Arduino เช่น“ #include”ไว้ที่จุดเริ่มต้นของโปรแกรมเสมอ
- ขั้นตอนต่อไปจะได้รับการรวบรวมและการอัปโหลดรหัสโดยมาดูฟังก์ชั่นที่ PlatformIO มีให้ นอกจากนี้ PlatformIO ยังเลือก COM Port ตามค่าเริ่มต้น แต่คุณยังสามารถเปลี่ยนพอร์ตได้หากไม่ใช่พอร์ต COM ที่ต้องการ การเปลี่ยนแปลงของพอร์ต COM จะอธิบายในบทช่วยสอนนี้ในภายหลังPlatformIO มีฟังก์ชั่นเช่นรูปร่าง, อัปโหลด, อัปโหลดไปยังอุปกรณ์ระยะไกลสะอาดทดสอบเรียกใช้งานการตรวจสอบอนุกรม, เทอร์มินิฟังก์ชันทั้งหมดสามารถพบได้ที่มุมล่างซ้ายของตัวแก้ไข เมื่อคุณวางเมาส์เหนือไอคอนฟังก์ชันต่างๆจะแสดงขึ้น
- ในการสร้างร่างให้คลิกที่ 'สร้าง' และอัปโหลดแบบร่างคลิกที่ไอคอน 'อัปโหลด' เมื่ออัปโหลดเสร็จแล้วคุณจะสามารถดูเวลาที่ใช้ในการอัปโหลดพร้อมรายละเอียดอื่น ๆ ทั้งหมดและข้อความว่า“ สำเร็จ” อัปโหลดโค้ดเรียบร้อยแล้วและคุณจะเห็นไฟ LED กะพริบในบอร์ด Arduino
หากต้องการเลือกหรือเปลี่ยนพอร์ต COMเพียงไปที่หน้าจอหลักของ PlatformIO จากนั้นไปที่อุปกรณ์ที่นี่คุณจะเห็นอุปกรณ์ทั้งหมดที่เชื่อมต่ออยู่ เลือกพอร์ต COM ที่เหมาะสมและทำตามขั้นตอนเดียวกันเพื่ออัปโหลดร่าง
การเขียนโปรแกรมบอร์ด STM32 โดยใช้ PlatformIO IDE
การเขียนโปรแกรมบอร์ด STM32 จะมีขั้นตอนที่คล้ายกันทุกประการเช่นการเขียนโปรแกรม Arduino UNO ที่อธิบายไว้ข้างต้น ความแตกต่างจะถูกเลือกบอร์ดสำหรับ STM32 เมื่อเปิดโครงการใหม่สำหรับ STM32 สิ่งที่ดีเกี่ยวกับ PlatformIO คือไม่จำเป็นต้องมีแพ็คเกจภายนอกสำหรับบอร์ดใด ๆ ในการดาวน์โหลดแยกต่างหากมันจะดาวน์โหลดแพ็คเกจทั้งหมดโดยอัตโนมัติและทำให้เราเลือกบอร์ดและไปที่ตัวแก้ไข เราจะใช้ JLink / JTAG / STLink / Serial Programmer ภายนอกเพื่ออัปโหลดร่างไปยัง STM32 STM32 สามารถตั้งโปรแกรมด้วย Arduino IDE ได้ ดำเนินการตามขั้นตอนต่อไปนี้เพื่อตั้งโปรแกรมด้วย PlatformIO
- เพียงตั้งชื่อโครงการ (ในที่นี้คือ 'Blink STM32') จากนั้นเลือกบอร์ดสำหรับ STM32 เช่น ' BluePill F103C8 (Generic) ' จากนั้นเลือก Framework เป็น Arduino คลิกที่ Finish และรอสักครู่เนื่องจากในตอนแรกจะใช้เวลาในการดาวน์โหลดแพ็คเกจและการอ้างอิงสำหรับบอร์ด STM32
- เมื่อตั้งค่าแล้วเวลาในการสร้างโปรเจ็กต์ถัดไปจะน้อยลงเมื่อเทียบกับครั้งแรก ตอนนี้เพียงไปที่ Untitled (Workspace) -> src -> main.cpp ใน file explorer ด้านซ้าย
- ตอนนี้ขั้นตอนที่จะเกิดขึ้นจะมีความสำคัญเนื่องจากต้องมีการตัดสินใจว่าเราควรใช้โปรแกรมเมอร์คนไหนในการเขียนโปรแกรมบอร์ด STM32 มีโปรแกรมเมอร์มากมายเช่น JTAG, STLink, JLink, Serial เป็นต้นทุกอย่างจะทำงานได้ แต่คุณต้องกำหนดค่าหน้าการกำหนดค่าหรือไฟล์ "platformio.ini"
- ในโครงการนี้เราใช้ Serial Programmer CP210x USB เข้ากับ UART Bridge เราได้ทำ Programming STM32F103C8 Board โดยใช้พอร์ต USB แล้วขั้นตอนส่วนใหญ่จะดำเนินการจากที่นั่นเท่านั้น คุณสามารถเยี่ยมชมลิงค์และค้นหาเพิ่มเติมเกี่ยวกับเรื่องนี้
- ประการแรกเชื่อมต่อ Serial Programmer กับบอร์ด STM32 โดยใช้การแมปพินต่อไปนี้และเชื่อมต่อกับพีซี
USB เป็น Serial Programmer |
บอร์ด STM32 |
5V |
5V |
Gnd |
Gnd |
Rx |
A9 |
Tx |
A10 |
- ตอนนี้ไปที่ project explorer และเปิดหน้า 'platformio.ini' และเปลี่ยนคำสั่งดังที่แสดงในภาพ upload_protocol จะบอกว่าที่โปรแกรมเมอร์ควรใช้ (STLink, JLINK, อนุกรม ฯลฯ) upload_port เลือกพอร์ต COM คุณสามารถค้นหาได้โดยไปที่ "อุปกรณ์" ในโฮมเพจ เปลี่ยนพอร์ต COM ตามพอร์ต COM ของคุณ
- ไปที่ 'main.cpp' และเปลี่ยนโปรแกรมเพื่อ Blink โปรแกรม ตอนนี้เพียงแค่อัปโหลดโปรแกรมและจะแสดงข้อความแสดงความสำเร็จและเวลาที่ใช้ในการอัปโหลด ตอนนี้ LED จะเริ่มกะพริบเชื่อมต่อที่ขา PC13 ของบอร์ด STM32
เสร็จสิ้นบทช่วยสอนที่สมบูรณ์เกี่ยวกับการเขียนโปรแกรม Arduino UNOและ STM32 Board โดยใช้ PlatformIO หากคุณประสบปัญหาใด ๆ ขณะทำตามขั้นตอนโปรดเขียนลงในฟอรัมหรือแสดงความคิดเห็นด้านล่าง