[TH] Arduino: STM32F030F4P6

บทความนี้เป็นการใช้งานบอร์ดไมโครคอนโทรลเลอร์ 32 บิตภายใต้สถาปัตยกรรม RISC แบบ Cortex-M0 ที่มีราคาประหยัดแต่การทำงานนับว่าดีกว่าบอร์ดที่เป็นแบบ 8 บิตพอสมควร ประกอบกับมีวิธีการใช้งานให้ศึกษาอยู่บนอินเทอร์เน็ตมากมาย แต่อย่างไรก็ดีทางทีมพวกเราก็สร้างเป็นทางเลือกหนึ่งสำหรับผู้ที่สนใจได้อ่านกัน โดยบทความเริ่มจากเนื้อหาเกี่ยวกับคุณสมบัติของไมโครคอนโทรลเลอร์ การติดตั้งบอร์ดให้ Arduino IDE รู้จัก และตัวอย่างโปรแกรมการสั่งท็อกเกิ้ลหลอดแอลอีดี การรับส่งข้อมูลผ่านพอร์ตสื่อสาร USART และการทดสอบการหา Prime number เพื่อดูความเร็วในการประมวลผลในแบบการวนรอบซ้ำ ๆ กัน

ภาพที่ 1 บอร์ด STM32F030F4P6

[TH] Arduino:ET-BASE AVR EASY4809

บทความนี้เป็นการแนะนำการใช้งานบอร์ด ET-BASE AVR EASU4809 ของบริษัท ETT ที่ใช้ไมโครคอนโทรลเลอร์ ATMEGA4809 ของบริษัท Microchip ซึ่งถูกนำมาใช้เป็นบอร์ด Arduino ที่ทำงานด้วยสัญญาณนาฬิกา 20MHz มาพร้อมกับหน่วยความจำ FLASH ROM ขนาด 40KB, EEPROM 256 ไบต์ หน่วยความจำ RAM จำนวน 6KB และมี ADC ความละเอียด10 บิต ซึ่งเรียกได้ว่ามีคุณสมบัติที่สูงกว่า ATmega 368P ที่ใช้กับ Arduino Uno หรือ Arduino Nano อย่างมาก แต่บอร์ดที่เลือกมาใช้ในครั้งนี้ยังมีคุณสมบัติที่มากกว่าบอร์ด Arduino พื้นฐานอีกหลายด้าน ซึ่งผู้อ่านสามารถเข้าไปอ่านได้จากหน้าเว็บของบอร์ดเพิ่มเติม

ภาพที่ 1 บอร์ด ET-BASE AVR EASY4809

[TH] ESP-IDF Ep.2 : Hello World!

บทความนี้ต่อเนื่องจากการติดตั้ง ESP-IDF เพื่อทดลองเขียนโค้ด คอมไพล์ และอัพโหลดเข้าบอร์ด ESP32 เพื่อให้ใจขั้นตอนของการพัฒนาโปรแกรมภาษา C ของบอร์ดไมโครคอนโทรลเลอร์ ESP32

ภาพที่ 1 บอร์ด esp32+OLED

[TH] Arduino: LGT8F328P

บทความนี้กล่าวถึงการใช้ Arduino กับไมโครคอนโทรลเลอร์ LGT8F328P ซึ่งได้ชื่อว่าเป็นไมโครคอนโทรลเลอร์ที่มีความคล้ายกับ Atmel AVR atmega328P ที่ใช้กับบอร์ด Arduino Uno และตระกูล Arduino Nano แต่มีความสามารถที่เพิ่มขึ้น เช่น ความเร็วในการทำงานที่สูงขึ้น และมีความละเอียดในการแปลงสัญญาณแอนาล็อกที่มากขึ้นพร้อมทั้งมีภาคแปลงสัญญาณดิจิทัลเป็นแอนาล็อกมาให้ด้วย ดังนั้น บทความนี้จึงไล่เรียงตั้งแต่คุณสมบัติ การติดตั้งบอร์ด และตัวอย่างการใช้งานคุณสมบัติของไมโครคอนโทรลเลอร์ตัวนี้

ภาพที่ 1 บอร์ด LGT8F328P QFP32L

[TH] ESP-IDF Ep.1: ESP-IDF on Raspberry Pi

บทความนี้เป็นขั้นตอนการติดตั้ง ESP-IDF บนบอร์ด Raspberry Pi 3 หรือ 4 ที่ติดตั้ง Raspbian เป็นระบบปฏิบัติการ (หรือประยุกต์เข้ากับการติดตั้งบนระบบปฏิบัติการอื่น ๆ ของเครื่องที่ใช้หน่วยประมวลผลของ AMD/Intel ได้) เพื่อใช้เป็นตัวแปลภาษา C++ สำหรับพัฒนาโปรแกรมสำหรับบอร์ด ESP32 ซึ่งเรียกกว่า bare metal หรือใช้ในการคอมไพล์ MicroPython โดยเฉพาะตัว mpy-cross ซึ่งเป็นตัวแปลภาษาไพธอน (.py) ให้เป็นไบต์โค้ด (.mpy) ซึ่งทำให้สามารถปกป้องรหัสที่เขียน (Source code) ช่วยให้การประมวลผลคำสั่งไวขึ้น (เนื่องจากถูกแปลมาก่อนแล้ว) และขนาดของไฟล์มีขนาดเล็กลง

ภาพที่ 1 หน้าจอเมื่อเข้าใช้ Terminal

[TH] Arduino : repetition

การเขียนโปรแกรมเป็นการสั่งงานให้หน่วยประมวลผลกระทำตามคำสั่งที่ได้รับ โดย ณ​ เวลาหนึ่งจะมีคำสั่งเข้าประมวลผล 1 ชุด (กรณีที่ไม่ใช่การประมวลผลแบบคู่ขนาน) และเมื่อคำสั่งประมวลผลเสร็จสิ้นจะบันทึกผลการดำเนินคำสั่งเก็บในเรจิสเตอร์สถานะการทำงานแล้วเตรียมประมวลผคำสั่งถัดไป ทำให้การทำงานเป็นการทำทีละคำสั่งจากคำสั่งแรกไปยังคำสั่งถัด ๆ ไป และผู้เขียนโปรแกรมสามารถวางการทำงานให้กระทำตามเงื่อนไขเพื่อแยกการประมวลผล เช่น เมื่อเงื่อนไขใดเป็นจริงให้กระทำ หรือเงินไขใดไม่เป็นจริงไม่ต้องกระทำหรือกระทำสิ่งใด เป็นต้น และสุดท้ายการทำงานของโปรแกรมสามารถให้ทำซ้ำได้โดยอาศัยเงื่อนไขของการกระทำซ้ำ ด้วยเหตุนี้ หลักการเขียนโปรแกรมเบื้องต้นจึงประกอบไปด้วยการทำงาน 3 ลักษณะ คือ

  • กระทำครั้งละคำสั่งจากบนลงล่าง
  • สามารถเพิ่มเติมให้เกิดเงื่อนไขของการประมวลผลคำสั่ง
  • สามารถให้เกิดการทำซ้ำคำสั่งที่ต้องการ

[TH] Arduino : condition

บทความนี้อธิบายรูปแบบของการใช้ชุดคำสั่งสำหรับการตรวจสอบเงื่อนไขเพื่อสร้างทางเลือกในการเขียนโปรแกรม ทั้งนี้การเขียนโปรแกรมภาษา C++ ใช้เครื่องหมาย { และ } เป็นเครื่องหมายบ่งบอกบล็อกของการทำงานแต่ละบล็อก นั่นหมายความว่า ชุดคำสั่งในแต่ละบล็อกมีขั้นตอนการทำงานเรียงจากบนลงล่างเสมอ โดยกระทำทีละ 1 และสามารถเลือกทำคำสั่งด้วยการสร้างเงื่อนไข นอกจากนี้สามารถให้ทำซ้ำในส่วนของคำสั่งที่ต้องการได้ด้วยการทำซ้ำซึ่งจะกล่าวถึงในบทความตอนถัดไป

[TH] Arduino: Expression

นิพจน์ (Expression) คือ การนำตัวดำเนินการและเครื่องหมายดำเนินการมากระทำร่วมกัน โดยสามารถซ้อนนิพจน์ในนิพจน์ได้ แต่ด้วยหลักการเขียนโปรแกรมมีความแตกต่างกับคณิตศาสตร์ ด้วยเหตุนี้ การแปลงนิพจน์จากสมการคณิตศาสตร์มาเป็นนิพจน์ในภาษาเขียนโปรแกรมจะต้องมีขั้นตอนการแปลลำดับของการคำนวณที่ถูกต้องเพื่อป้องกันไม่ให้เกิดความผิดพลาดในการคำนวณ เช่น

[TH] Arduino: Operators

บทความนี้รวบรวมเนื้อหาเกี่ยวกับเครื่องหมายดำเนินการ (Operators) ที่ใช้ใน C++ เพื่อใช้เขียนนิพจน์ (Expression) ของคำสั่ง โดยเครื่องหมายดำเนินการแบ่งเป็น 5 กลุ่ม คือ เครื่องหมายดำเนินการทางคณิตศาสตร์ (Arithmetic) เครื่องหมายดำเนินการทางบูล (Boolean) เครื่องหมายดำเนินการเปรียบเทียบ (Comparison) เครื่องหมายดำเนินการทางบิต (bitwise) และเครื่องหมายดำเนินการแบบประกอบกัน (Compound)

[TH] Arduino: data types

ในบทความนี้กล่าวถึงตัวแปร ประเภทของข้อมูลและค่าคงที่สำหรับใช้กับ Arduino ซึ่งเป็นพื้นฐานของการเขียนโปรแกรม ทั้งนี้เนื่องจากการเขียนโปรแกรมมีหลักการ ดังที่ Niklaus Wirth  ได้กล่าวไว้ตั้งแต่ ค.ศ. 1976 ในหนังสือ ว่า

Algorithms + Data Structures = Programs

หรือ

โปรแกรม = ข้อมูล + ขั้นตอนวิธี

ทั้งนี้ เนื่องจากโปรแกรมคือขั้นตอนวิธีการแก้ปัญหาที่นำข้อมูลมาประมวลผล ซึ่งเป็นสาเหตุสำคัญของความแตกต่างระหว่างการคำนวณกับโปรแกรม