การเขียนโปรแกรมฝังตัว

Founder, MyCoding.Academy
วิศวกรไฟฟ้าและโทรคมนาที่หลงไหลการเขียนโปรแกรม เลยได้ทำงานประจำช่วงหนึ่งทางด้านการพัฒนาซอฟต์แวร์ ปัจจุบันก็ยังทำงานเป็นฟรีแลนซ์ทางด้านการเขียนโปรแกรมอยู่นะครับ

การเขียนโปรแกรมฝังตัว (Embedded Programming) เป็นอีกรูปแบบหนึ่งที่ผมได้ใช้งานจริง โดยตอนนั้นจะใช้ MCS-51 Controller เขียนเป็นอุปกรณ์สำหรับเก็บเหตุเสีย (Alarms) ต่างๆ จากแต่ละอำเภอส่งเข้าตัวจังหวัด แล้วนำไปแสดงผลโดยใช้ Visual Basic การทำงานก็จะมีส่วนตัว Master ที่ตัวจังหวัด และ Slaves ที่ตัวอำเภอทำการส่งข้อมูลผ่าน Network ของระบบโทรคมนาคมอีกที ก็ทำตั้งแต่ออกแบบวงจร ออกแบบ PCB เขียนโปรแกรมบนบอร์ด และเขียนโปรแกรมบน PC รวมทั้งโปรโตคอลของการสื่อสารก็ด้วยเช่นกัน

อะไรคือ Embedded Programming

สำหรับผม Embedded Programming คือการเขียนโปรแกรมบน Single Board Computer หรือเรียกว่า Microcontroller ที่เราต้องทำการเชื่อมต่อกับอุปกรณ์ภายนอก เช่น Sensors ต่างๆ โดยตัว Computer ที่ว่าก็จะมีบอร์ดเพียงบอร์ดเดียว อาจจะเป็นบอร์ดสำหรับการเชื่อมต่อเพิ่มได้ การเขียนโปรแกรมในยุคแรก ๆ ก็ใช้ภาษา Assembly หรือ C และ C++ โดยปัจจุบันน่าจะมีน้อยแล้วสำหรับคนเขียน Assembly ยกเว้นมีความต้องการพิเศษจริง 

สำหรับยุคแรก ๆ ที่รู้จักก็คือ Z-80 และ MCS-51 ซึ่งประกอบด้วยชุดคำสั่งและฮาร์ดแวร์ที่ยังไม่เป็นรูปแบบที่แพร่หลายแบบปัจจุบัน คือต่างคนต่างทำบอร์ดของตัวเอง แต่ใช้ Microcontroller เบอร์เดียวกันแค่นั้น ต่างจาก Arduino ในปัจจุบันที่มีคนผลิตบอร์ดออกมาขายในวงกว้างทำให้ราคาถูก และง่ายต่อการเริ่มต้นมาก

การมาของ Arduino และ ESP8255

ก่อนหน้าการมาของ Arduino ซึ่งเป็นของค่ายยุโรป แต่ก็มีการผลิตบอร์ดจากทั้งทางอิตาลี และจีน คุณภาพก็อาจแตกต่างกันเล็กน้อย ก่อนหน้าเราก็จะรู้จัก MCS-51 ซึ่งใช้ชิปของ Atmel หรือ AVR อย่างที่บอกว่าการทำงานก็ยุ่งยากเพราะไม่ค่อยมีบอร์ดหลากหลายเท่าไร การเขียนโปรแกรมก็ต้องมีตัวเขียนโดยเฉพาะลง EPROM หรือ Flash ค่อนข้างยุ่งยากไม่เหมือนสมัยปัจจุบันเสียบปุ๊บก็ใช้งานได้เลย ตัวซอฟต์แวร์ก็ค่อนข้างดี ส่วน ESP8255 จะมีจุดเด่นในเรื่องของการมี Wi-Fi ให้ใช้งานได้เลย และบอร์ดมีขนาดเล็กมาก ตัวเดียวใช้งานได้เลย ไม่ต้องมาต่อ Crystal Oscillator เหมือนสมัยก่อนอีกแล้ว พูดถึงนี่เด็กๆ รุ่นใหม่อาจนึกภาพไม่ออก