KernelUNO : Lightweight OS สำหรับ Arduino UNO ที่ใช้คำสั่งแบบ Linux

KernelUNO เป็น Arduino Sketch ที่มีโค้ดจำนวน 546 บรรทัด ซึ่งทำหน้าที่เป็น Lightweight OS สำหรับบอร์ด Arduino UNO โดยมาพร้อมเชลล์ลักษณะคล้าย Linux ที่มีคำสั่งต่าง ๆ เช่น lsdfuname และอื่น ๆ

สิ่งที่คุณต้องมีคือบอร์ด Arduino UNO R3 หรือ บอร์ดที่เข้ากันได้ซึ่งใช้ไมโครคอนโทรลเลอร์ Microchip ATmega328P, สาย USB สำหรับโปรแกรม และอาจมี LED กับตัวต้านทานเล็กน้อยสำหรับทดสอบคำสั่ง gpio ผ่านเทอร์มินัลก็ได้

KernelUNO

KernelUNO มีคุณสมบัติดังต่อไปนี้:

  • Virtual Filesystem – สร้างไฟล์และไดเรกทอรีในหน่วยความจำ RAM (/dev, /home)
  • Hardware Control – ควบคุม GPIO พร้อมตั้งค่าโหมดของขา (pin mode)
  • System Monitoring – ตรวจสอบสถานะระบบ เช่น การใช้หน่วยความจำ, เวลา uptime, และข้อความจากเคอร์เนล (dmesg)
  • Interactive Shell – เชลล์แบบโต้ตอบที่สามารถรันคำสั่งแบบเรียลไทม์ พร้อมระบบบัฟเฟอร์อินพุต
  • มีคำสั่งในตัว 23 คำสั่ง
    • คำสั่งเกี่ยวกับระบบไฟล์ – ls, cd, pwd, mkdir, touch, cat, echo [text] > [file], rm, info [name]
    • คำสั่งควบคุมฮาร์ดแวร์
      • pinmode [pin] [in/out] – ตั้งค่าโหมดของขา
      • write [pin] [high/low] – เขียนค่าไปยังขา
      • read [pin] – อ่านค่าจากขา
      • gpio [pin] [on/off/toggle] – ควบคุม GPIO
      • gpio vixa [count] – โหมดไฟ LED แบบดิสโก้ (ลูกเล่นพิเศษ / easter egg)
    • คำสั่งระบบ – uptime, uname, dmesg, df, free, whoami (hardcoded to root), clear, reboot, help, sh

สามารถดาวน์โหลดโค้ดได้จาก GitHub (สัญญาอนุญาตแบบ BSD 3-Clause) และเนื่องจากเป็น Arduino sketch เพียงไฟล์เดียว คุณจึงสามารถแฟลชลงบอร์ดได้อย่างง่ายดายเพื่อเริ่มใช้งานได้ทันที โดยคำสั่งส่วนใหญ่จะคล้ายกับที่พบในระบบ Linux ใกล้เคียงกับสิ่งที่มีใน BusyBox และมีคำสั่งสำหรับควบคุมฮาร์ดแวร์ GPIO เพิ่มเติม

ตามที่ Hackaday, ระบุไว้ ระบบนี้ไม่มีหน่วยเก็บข้อมูลถาวร ดังนั้นทุกอย่างจะทำงานอยู่ใน RAM ซึ่งทำให้มีข้อจำกัดด้านการใช้งานอยู่บ้าง ในทางทฤษฎีอาจสามารถเพิ่มหน่วยความจำแฟลชภายนอกหรือใช้ EEPROM ได้ แต่ในทางปฏิบัติต้องคำนึงว่าไมโครคอนโทรลเลอร์ ATmega328 (ตระกูล AVR) มีทรัพยากรค่อนข้างจำกัด ได้แก่ RAM 2KB, EEPROM 1KB และ Flash 32KB โดยปัจจุบันมีการใช้งานหน่วยความจำดังนี้:

  • โปรแกรม: ใช้ประมาณ ~38% ของ Flash ขนาด 32KB
  • RAM: ใช้ประมาณ ~85% ของ SRAM ขนาด 2KB (มีการปรับแต่งแล้ว)
  • ระบบไฟล์: รองรับไฟล์/ไดเรกทอรีได้สูงสุด 10 รายการ
  • บัฟเฟอร์ DMESG: เก็บข้อความได้ 6 ข้อความ

มีความเป็นไปได้ในการพัฒนาเพิ่มเติม โดยมีฟีเจอร์ที่อยู่ในรายการ TODO ได้แก่ การบันทึกข้อมูลลง EEPROM และการควบคุมแบบ PWM/อนาล็อก โค้ดทั้งหมดเขียนขึ้นด้วยมือ แต่มีการใช้ Claude AI ช่วยในการจัดทำเอกสารประกอบ

แปลภาษาไทย : KernelUNO – A lightweight OS for Arduino UNO with a Linux-like shell

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา