รายการบทความ#

บทความที่ได้มีการเรียบเรียงและรวบรวมมาแชร์ไว้ เป็นผลจากการศึกษาเรียนรู้และปฏิบัติด้วยตนเองเป็นส่วนใหญ่ และบางส่วนได้จากประสบการณ์การสอนในอดีตของผู้เขียน ในเนื้อหาวิชาที่เกี่ยวข้องกับวิศวกรรมไฟฟ้าและคอมพิวเตอร์


▹ การเรียนรู้ไมโครคอนโทรลเลอร์และระบบสมองกลฝังตัวด้วย Arduino Hardware & Software#

หากสนใจการเรียนรู้การเขียนโปรแกรมสำหรับบอร์ดไมโครคอนโทรลเลอร์ (Microcontroller: MCU) เช่น ภาษา C/C++ ซึ่งเป็นพื้นฐานที่สำคัญสำหรับการพัฒนาระบบสมองกลฝังตัว (Embedded Systems Development) เราจะพบว่า มีตัวเลือกหลากหลายทั้งซอฟต์แวร์และฮาร์ดแวร์ และกล่าวได้ว่า Arduino เป็นหนึ่งในตัวเลือกที่น่าสนใจและเป็นตัวเลือกแรกสำหรับผู้เริ่มต้น → มีบทความที่เกี่ยวข้องดังนี้


▹ ไมโครคอนโทรลเลอร์ตระกูล Arm Cortex-M Series และซอฟต์แวร์ที่เกี่ยวข้อง#

ไมโครคอนโทรลเลอร์ที่ใช้ซีพียูเป็น 32-bit Arm Cortex-M ถือว่าเป็นตัวเลือกที่ได้รับความนิยม มีการใช้งานแพร่หลาย ดังนั้นความรู้เกี่ยวกับการใช้งานชิปตระกูลนี้ จึงเป็นพื้นฐานที่สำคัญ บอร์ดไมโครคอนโทรลเลอร์ที่แนะนำให้ลองใช้งาน ได้แก่ STM32 NUCLEO, Black Pill STM32F4 และ Raspberry Pi Pico เป็นต้น


▹ การใช้งานฮาร์ดแวร์และซอฟต์แวร์ของบริษัท Atmel / Microchip#

หากต้องการใช้ไมโครคอนโทรลเลอร์ของบริษัท Atmel / Microchip เช่น ตระกูล AVR, SAM, PIC แนะนำให้ลองใช้ซอฟต์แวร์ Microchip MPLAB-X IDE และมีบทความที่เกี่ยวข้องดังนี้

  • แนะนำการใช้งานซอฟต์แวร์ MPLAB-X IDE สำหรับ AVR (ATmega328P)
  • แนะนำการใช้งานซอฟต์แวร์ MPLAB Xpress Cloud IDE สำหรับการเขียนโค้ดภาษา C สำหรับชิป AVR (ATmega328P)
  • การนำเข้าไฟล์ Arduino Sketch สำหรับ MPLAB-X IDE สำหรับ AVR (ATmega328P)
  • แนะนำการใช้งานซอฟต์แวร์ MPLAB-X IDE + Harmony Framework v3 สาธิตการเขียนโค้ดสำหรับ ATSAMD21 (Arm Cortex-M0+)

▹ ระบบปฏิบัติการเวลาจริงสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์#

ระบบปฏิบัติการเวลาจริง หรือ RTOS (Real-Time OS) เป็นประเภทหนึ่งของระบบปฏิบัติการ (OS) ถือว่าเป็นซอฟต์แวร์ที่มีความสำคัญสำหรับการพัฒนาระบบสมองกลฝังตัว-ไมโครคอนโทรลเลอร์ ดังนั้นความรู้และทักษะเกี่ยวกับการเขียนโปรแกรมแบบมัลติเธรด (Multi-Threading) หรือแบ่งการทำงานแบบหลายงาน จึงเป็นสิ่งสำคัญสำหรับนักพัฒนาในระดับมืออาชีพ → แนะนำให้ลองศึกษาจากบทความต่อไปนี้

  • สำหรับผู้ที่สนใจเรียนรู้และใช้งาน RTOS: แนวทางการเรียนรู้ RTOS
  • แนวทางการเรียนรู้ Arm Mbed OS for Arm Cortex-M Series MCUs ซึ่งเป็นซอฟแวร์ประเภท Open Source RTOS
  • ซอฟต์แวร์ที่เกี่ยวข้องกับการใช้งาน Mbed OS มีให้เลือกหลายแบบและนำมาใช้งานได้ฟรี ทั้งแบบ Online (Web App) และ Offline (Desktop App)
  • การเขียนโปรแกรมด้วย Arm Mbed Studio IDE + Mbed OS สำหรับบอร์ด Black Pill (STM32F4)
  • การเขียนโปรแกรมด้วย VS Code IDE + PlatformIO + Mbed OS สำหรับบอร์ด Black Pill (STM32F4)
  • ตัวอย่างการเขียนโค้ด Arm Mbed OS สำหรับบอร์ด STM32 (NUCLEO Boards) แบ่งเนื้อหาเป็นตอนที่ 1 | 2 | 3
  • แนวทางการเรียนรู้ ARM Mbed OS โดยใช้บอร์ด Raspberry Pi Pico
  • ตัวอย่างการเขียนโค้ดด้วย Arduino Mbed OS สำหรับบอร์ด RP2040 (Raspberry Pi Pico Board) แบ่งเนื้อหาเป็นตอนที่ 1 | 2 | 3 | 4 | 5
  • ตัวอย่างการเขียนโค้ดด้วย Arduino + FreeRTOS สำหรับชิป 8-bit AVR / ATmega (เช่น บอร์ด Uno, Nano, Mega2560) แบ่งเนื้อหาเป็นตอนที่ 1 | 2 | 3 | 4 | 5
  • แนะนำการเขียนโค้ดสำหรับบอร์ด STM32F411CE BlackPill ด้วย STM32duino และ FreeRTOS

▹ ไมโครคอนโทรลเลอร์สำหรับงาน IoT#

หากต้องการเลือกใช้ไมโครคอนโทรลเลอร์ที่ไม่ได้ใช้สถาปัตยกรรมของซีพียูตระกูล Arm ก็แนะนำให้ลองใช้ชิป ESP32 Series ของบริษัท Espressif ซึ่งมีจุดเด่นคือ สามารถเชื่อมต่อ Wi-Fi และ Bluetooth / BLE ได้


▹ ภาษาคอมพิวเตอร์ที่ไม่ใช่ C/C++ สำหรับไมโครคอนโทรลเลอร์#

ภาษา C/C++ เป็นภาษาคอมพิวเตอร์ที่สำคัญสำหรับการพัฒนาโปรแกรมสำหรับระบบสมองกลฝังตัว แต่ในปัจจุบัน Python ก็เป็นอีกหนึ่งภาษาที่ได้รับความนิยม และได้เริ่มมีการนำมาใช้งานสำหรับไมโครคอนโทรลเลอร์ → มีบทความที่เกี่ยวข้องต่อไปนี้

  • Python for Hardware Programming: การใข้งาน MicroPython และ CircuitPython ในเบื้องต้น
  • แนะนำการเขียนโค้ดสำหรับไมโครคอนโทรลเลอร์ด้วย MicroPython
  • การเขียนโปรแกรม MicroPython สำหรับบอร์ด BBC Micro:bit V2
  • การเขียนโปรแกรม MicroPython สำหรับบอร์ด Raspberry Pi Pico / Pico-W

▹ การใช้งานระบบปฏิบัติการ Linux และการเขียนโปรแกรมที่เกี่ยวข้อง#

ความรู้และทักษะทางด้านคอมพิวเตอร์ที่เกี่ยวข้องกับระบบปฏิบัติการ Linux และการเขียนโปรแกรมภาษา C/C++ ก็ถือว่าเป็นพื้นฐานที่สำคัญมาตั้งแต่อดีตจนถึงปัจจุบัน ในส่วนนี้มีบทความและหัวข้อมาแนะนำให้ลองศึกษาและปฏิบัติ


▹ การใช้งานคอมพิวเตอร์บอร์ดเดี่ยว#

ปัจจุบันคอมพิวเตอร์บอร์ดเดี่ยว (Single-Board Computer: SBC) มีขนาดเล็ก ใช้กำลังไฟฟ้าไม่มาก มีตัวประมวลผลทั้ง 32 บิต หรือ 64 บิต ให้เลือกใช้ และมีหลายแกนอยู่ภายในชิป (Multi-Core) ดังนั้นจึงมีความสามารถมากกว่าไมโครคอนโทรลเลอร์ทั่วไป รองรับระบบปฏิบัติการ เช่น Linux และ Android เป็นต้น สามารถนำมาใช้งานได้ทั้งแบบตั้งโต๊ะ หรือเป็นเครื่องแม่ข่าย และงานทางด้านระบบสมองกลฝังตัว ดังนั้นความรู้และทักษะในการใช้งานฮาร์ดแวร์และซอฟต์แวร์สำหรับอุปกรณ์ประเภทนี้ ก็ถือว่าเป็นพื้นฐานที่สำคัญด้าน IoT


▹ การใช้งานโมดูลอิเล็กทรอนิกส์#

การประยุกต์ใช้งานไมโครคอนโทรลเลอร์ เกี่ยวข้องกับการใช้งานวงจรอิเล็กทรอนิกส์ ไอซี และโมดูลเซนเซอร์ประเภทต่าง ๆ รายการบทความต่อไปนี้นำเสนอการใช้งานโมดูลอิเล็กทรอนิกส์และเขียนโปรแกรมด้วย Arduino ในเบื้องต้น


▹ วงจรไฟฟ้าและอิเล็กทรอนิกส์#

นอกเหนือจากความรู้เกี่ยวกับการเขียนโปรแกรมแล้ว ความรู้ทางไฟฟ้าและอิเล็กทรอนิกส์และทักษะที่เกี่ยวข้อง ก็มีความสำคัญเช่นกัน → มีบทความที่เกี่ยวข้องต่อไปนี้

 


▹ การออกแบบวงจรดิจิทัลด้วย FPGA#

การออกแบบวงจรดิจิทัล โดยใช้ชิป FPGA ที่โปรแกรมฮาร์ดแวร์ได้ในเชิงลอจิก ถือว่าเป็นอีกหนึ่งตัวเลือกที่สำคัญสำหรับนักพัฒนาระบบสมองกลฝังตัว → มีบทความสำหรับการเรียนรู้ มานำเสนอดังต่อไปนี้

  • หัวข้อในการเรียนรู้สำหรับการออกแบบวงจรลอจิก: Logic Design
  • แนวทางการเรียนรู้และประเด็นในการเลือกใช้งานชิป FPGA
  • การจำลองการทำงานของโค้ด VHDL ด้วย GHDL Simulator
  • การทดลองใช้งานซอฟต์แวร์ Intel FPGA Prime Lite Edition พร้อมตัวอย่างโค้ด VHDL / Verilog สาธิตการใช้บอร์ด Altera Cyclone IV FPGA ในเบื้องต้น
  • การติดตั้งซอฟต์แวร์ AMD / Xilinx Vivado Design Suite: สำหรับ Ubuntu
  • การทดลองใช้งานบอร์ด Mojo v3 - Xilinx Spartan 6 FPGA (legacy): สำหรับ Ubuntu
  • แนะนำการใช้งานบอร์ด Sipeed Tang FPGA
  • การติดตั้งและใช้งานซอฟต์แวร์ Gowin IDE Standard Edition: สำหรับ Ubuntu และบอร์ด Sipeed Tang Nano (Gowin FPGA)
  • การใช้งานซอฟต์แวร์ Open Source FPGA Design Tools: สำหรับบอร์ด Sipeed Tang Nano (Gowin FPGA)
  • การใช้งานซอฟต์แวร์ Lattice Radiant สำหรับการออกแบบวงจรดิจิทัลด้วยชิป Lattice iCE40 FPGA
  • การใช้งานซอฟต์แวร์ Open Source FPGA Design Tools สำหรับการออกแบบวงจรดิจิทัลด้วยชิป Lattice iCE40 FPGA
  • การทดลองใช้งาน PicoRV32 CPU Core ในเบื้องต้น สำหรับบอร์ด Lattice iCE40 FPGA

 


ผู้ที่สนใจยังสามารถติดตามข่าวสารในอีกช่องทางหนึ่งผ่านทาง Facebook Page
→ "IoT Engineering Education" (https://fb.me/iot.kmutnb)


สัญญาอนุญาตการเผยแพร่#

เผยแพร่ภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์ (Creative Commons License): CC BY-SA 4.0

"อนุญาตให้ผู้อื่นสามารถนำผลงานไปใช้ ทำซ้ำ แจกจ่าย หรือดัดแปลงงานนั้นได้ แต่ผลงานที่ดัดแปลงนั้นจะต้องกำกับด้วยสัญญาอนุญาตเงื่อนไขเดียวกันกับต้นฉบับ เว้นแต่ว่าจะได้รับอนุญาตจากเจ้าของผลงานก่อน"

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.