หลักออกแบบเชิงอุตสาหกรรมและกล่องหุ้มตามสเกลจริง
วิดีโอประกอบ
ดูบน YouTube (เปิดในแท็บใหม่)
-
Software Development Process - EP02 : User Needs สมาคมสมองกลฝังตัวไทย (TESA)
วิดีโอโดย สมาคมสมองกลฝังตัวไทย (TESA) · ดูทั้งชุดใน playlist AIoT Foundation
Course 3 · Module 1
Suggested time: ประมาณ 2 ชั่วโมง — เรียนรู้แนวคิด ตั้งค่า Scene ใน Blender (หน่วยเป็นมิลลิเมตร) แล้วสร้างกล่องหุ้มแบบหยาบตามขนาดจริง
Format: บทเรียนลงมือทำ — อ่านแล้วทำตามใน Blender ได้เลย ส่วนผิววัสดุและ PBR ไปเรียนที่ M02
Lab · Checklist · ← Table of Contents · M02 →
เป้าหมาย (Learning Outcomes)
หัวข้อที่มีชื่อว่า “เป้าหมาย (Learning Outcomes)”เมื่อเรียนจบ คุณควรทำได้ดังนี้:
- อธิบายหลัก Industrial-grade Design ที่รองรับการผลิตจริง
- ทำงานตามลำดับ Concept → Block Model → Final Model
- อธิบาย workflow ของ Casing / Enclosure / PCB Housing สำหรับอุปกรณ์อัจฉริยะ
- จัดการ Topology, Mesh optimization และ Scale accuracy เบื้องต้นใน Blender
Key phrase
ใน M01 ให้ล็อกขนาดให้ตรงฮาร์ดแวร์ก่อน แล้วค่อยทำให้งาม — ถ้ากล่องหยาบ (block) ผิดตั้งแต่ต้น งานใน M02–M06 จะแก้แพงทั้งหมด
Read alongside this chapter
หัวข้อที่มีชื่อว่า “Read alongside this chapter”| Document | Use when |
|---|---|
| Blender Download | ติดตั้งเครื่องมือหลักของคอร์ส |
| Blender 4.5 LTS Manual — Scene Units | ตั้งหน่วย Metric / mm / Unit Scale |
| Apply Scale / Transforms | กด Ctrl+A ก่อนวัดขนาด ทำ bevel หรือ export |
| Mesh Structure | ความหมายของ vertex / edge / face · tris · quads · n-gons |
| Mesh Modeling intro | แยก Object Mode กับ Edit Mode |
| Set Origin | ตั้งจุดหมุน / จุดวางบนโต๊ะ |
| Blender Fundamentals 4.5 LTS | วิดีโอสอนทางการ (ภาษาอังกฤษ) |
| INC111-2021 Blender (Thai) | Tutorial ภาษาไทย |
| IDSA — What is Industrial Design? | นิยามวิชาชีพ industrial design |
| All About Circuits — 3D-printed electronics enclosure | ลำดับงาน PCB → เปลือกกล่อง → เจาะช่อง · ระยะเผื่อ |
| Protolabs Network — Enclosure design for 3D printing | ผนังประมาณ 2 mm · ระยะเผื่อประมาณ 0.5 mm |
| KIT_PSE84_EVAL kit guide (Infineon) | หาเอกสารและไฟล์แบบของบอร์ดที่ใช้ |
| TESAIoT Developer Hub | อ้างอิงบอร์ดและตัวอย่างเฟิร์มแวร์ |
| ternion-3d-assets-free | ดูตัวอย่างสเกลโมเดล (ไม่ใช้แทนกล่องที่คุณออกแบบเอง) |
| Course 2 M03 Blender intro | พื้นฐาน Twin 3D ถ้าเคยเรียน Course 2 |
| Checklist | แบบฟอร์มกรอกตอนทำแล็บ |
1. Why Industrial Design Matters for Edge AI Devices
หัวข้อที่มีชื่อว่า “1. Why Industrial Design Matters for Edge AI Devices”Industrial Design (ตาม IDSA) คือการออกแบบผลิตภัณฑ์ที่คนใช้จริงทุกวัน — ไม่ใช่แค่ “รูปสวยในจอ” แต่ต้อง ใช้งานได้ ผลิตได้ และประกอบกับวิศวกรรมภายในได้
สำหรับอุปกรณ์ Edge AI / IoT กล่องหุ้ม (enclosure) ต้องรับมือกับอย่างน้อย:
| Topic | Why it matters |
|---|---|
| ขนาด PCB + ส่วนสูง (connectors, sensors) | ใส่ไม่ลง / กดปุ่มไม่ถึง |
| ช่องเซ็นเซอร์ / พอร์ต USB | ถูกบัง → ข้อมูลเพี้ยน หรือเสียบสายไม่ได้ |
| การจับถือ / วางโต๊ะ | ergonomics และจุด origin ใน Twin |
| การผลิตต้นแบบ (FDM/SLA) → ฉีดพลาสติกภายหลัง | ผนังหนา / fillet / bosses ต่างข้อจำกัด |
| Digital Twin | สเกลและแกนผิด → animation / telemetry ดูหลอก |
ในคอร์สนี้ใช้ Blender เพราะฟรี โอเพนซอร์ส และส่งออก glTF/GLB ไป Bitstream Studio ได้ใน M04
Concept sketch → Block model (this module) → Detailed model + materials (M02) → Motion clips (M03) → Twin + validation (M04–M05) → Print / fitment / report (M06)2. Industrial-grade Design — Four Lenses
หัวข้อที่มีชื่อว่า “2. Industrial-grade Design — Four Lenses”ผลิตภัณฑ์ “industrial-grade” ในหลักสูตรนี้หมายถึง: ตอบคำถามสี่มิติได้ก่อนลงรายละเอียดผิว
| Lens | Questions to answer | Edge device example |
|---|---|---|
| Function | ใช้ทำอะไร ในสภาพแวดล้อมใด | มอนิเตอร์สิ่งแวดล้อม · สวมใส่ · ติดเครื่องจักร |
| Form & Proportion | สัดส่วนจับถนัดไหม สมดุลไหม | สูงเกินไปจนล้มง่าย · ขอบคม |
| Material & Manufacturing | พิมพ์ 3D / ฉีดพลาสติก / CNC ได้จริงไหม | ผนังบางเกิน · โพรงพิมพ์ยาก |
| User Experience | เปิดฝา ดู LED เสียบสายได้โดยไม่พึ่งคู่มือยาวไหม | ช่อง USB หันผิดทาง |
อ่านนิยามวิชาชีพเพิ่ม: IDSA — What is Industrial Design?
สำหรับอุปกรณ์ที่มี PCB ภายใน ให้เพิ่มเลนส์ที่ห้าในใจตลอดคอร์ส:
Electronics fit — ทุกมิลลิเมตรของกล่องต้องอ้างอิงชิ้นส่วนจริงหรือ placeholder ที่วัดแล้ว
แนวทางลำดับงาน enclosure ที่ใช้ในอุตสาหกรรมต้นแบบ (สรุปจากบทความ All About Circuits และ Protolabs Network):
- โมเดล ชิ้นภายในก่อน (PCB, battery, connectors)
- สร้าง เปลือกนอก แล้วเว้นผนัง + clearance
- เจาะช่องพอร์ต / LED / เซ็นเซอร์
- แยกฝาบน–ฐาน · เตรียมจุดยึด (bosses) ในโมดูลหลัง
- ตรวจ interference ก่อนพิมพ์
3. Concept → Block → Final (Do Not Skip Stages)
หัวข้อที่มีชื่อว่า “3. Concept → Block → Final (Do Not Skip Stages)”| Stage | Deliverable | Do not do yet |
|---|---|---|
| Concept | สัดส่วนหยาบ ทิศทางรูปทรง ใครถือ/วางอย่างไร | วัสดุเงา · fillet เล็ก · สกรูละเอียด |
| Block Model | กล่องแทน PCB + แบต + โมดูล · enclosure นอกตามสเกล mm | Boolean ช่องพอร์ตสวย · UV |
| Final Model | รายละเอียดใช้งานจริง (ไปต่อ M02+) | — |
3.1 Concept (15–20 นาทีบนกระดาษก็พอ)
หัวข้อที่มีชื่อว่า “3.1 Concept (15–20 นาทีบนกระดาษก็พอ)”ก่อนเปิด Blender ให้ตอบสั้น ๆ ใน checklist:
- ผู้ใช้ถือเครื่องอย่างไร (มือ / โต๊ะ / ติดผนัง)
- พอร์ตไหนต้องเห็นจากภายนอก
- เซ็นเซอร์ไหนต้องการช่องเปิดอากาศ / มุมมอง
- ฝาเปิดทางไหน (บน / ด้านข้าง)
3.2 Block Model (หัวใจของ M01)
หัวข้อที่มีชื่อว่า “3.2 Block Model (หัวใจของ M01)”Block = รูปทรงหยาบที่ขนาดถูกต้อง
- PCB = กล่องบางตาม กว้าง × ยาว × หนา
- Enclosure = กล่องด้านนอกที่หุ้มชิ้นส่วนภายใน
- เว้นระยะภายในตามแนวทาง clearance (ดู §4)
3.3 Final Model (ยังไม่จบใน M01)
หัวข้อที่มีชื่อว่า “3.3 Final Model (ยังไม่จบใน M01)”รายละเอียด fillet, พื้นผิว, ช่องเจาะสวยงาม = M02
Animation เปิดฝา = M03
Key phrase
รายละเอียดผิวเร็วเกินไปบนสเกลผิด = งานสวยที่ใส่บอร์ดจริงไม่ได้
4. Enclosure and PCB Housing Workflow
หัวข้อที่มีชื่อว่า “4. Enclosure and PCB Housing Workflow”4.1 Collect real sizes first
หัวข้อที่มีชื่อว่า “4.1 Collect real sizes first”ลำดับที่แนะนำ:
- วัดบอร์ดจริงด้วยเวอร์เนีย (กว้าง × ยาว × หนา + ความสูงชิ้นส่วนสูงสุด)
- หรือเปิดเอกสารชุดประเมินผลที่ใช้ — เช่น KIT_PSE84_EVAL guide และ Hardware design files จาก PSOC Edge kits page
- จดแหล่งที่มาของตัวเลขลง checklist
ถ้ายังไม่มีบอร์ดในมือ ใช้ Lab placeholder ใน แล็บ (ขนาดฝึกที่ประกาศชัด) แล้วเปลี่ยนเป็นขนาดจริงภายหลังได้
4.2 Lab clearance rules of thumb
หัวข้อที่มีชื่อว่า “4.2 Lab clearance rules of thumb”ตัวเลขเริ่มต้นจากแนวทาง enclosure สำหรับพิมพ์ 3D (Protolabs Network, All About Circuits):
| Parameter | Lab default | Notes |
|---|---|---|
| ระยะ PCB ↔ ผนังด้านใน | ≥ 0.5 mm ต่อด้าน | FDM มักเผื่อมากกว่า (ถึง ~1 mm) |
| ความหนาผนัง (wall) | ≈ 2.0 mm | ขั้นต่ำที่แนะนำสำหรับ enclosure ทั่วไป |
| ช่องว่างเหนือชิ้นส่วนสูงสุด | ≥ 2–3 mm | สายไฟ / หัว USB / ความคลาดเคลื่อนพิมพ์ |
| ช่องพอร์ต | เผื่อรอบปลั๊ก | อย่าเจาะพอดีพิกเซลกับ connector |
ใน M01 คุณยังไม่ต้อง Solidify ผนังจริง — แต่ต้องวาด outer box ให้ใหญ่กว่า PCB อย่างน้อย:
outer_X ≈ PCB_X + 2×clearance + 2×wallouter_Y ≈ PCB_Y + 2×clearance + 2×wallouter_Z ≈ PCB_Z_stack + top_air + bottom_air + wall(s)ตัวอย่างตัวเลข (เมื่อ PCB = 80 × 55 × 1.6 mm, clearance 0.5, wall 2, top air 3, bottom 1):
inner needs ≈ 81 × 56 × (1.6+3+1)outer ≈ 81+4 × 56+4 × … → ประมาณ 85 × 60 × ความสูงที่คำนวณจดสูตรและตัวเลขจริงของคุณใน checklist — อย่าจำจากตัวอย่างอย่างเดียว
4.3 Interference check (manual, no physics required)
หัวข้อที่มีชื่อว่า “4.3 Interference check (manual, no physics required)”ใน Blender Viewport:
- ดูจากมุม Orthographic บน/ด้านข้าง (Viewports)
- สลับ Wireframe (
Z→ Wireframe) เพื่อเห็น PCB ภายใน - ยืนยันว่า PCB ไม่ทะลุ ผนังนอกโดยไม่ตั้งใจ
- ถ้าวัตถุทับกันผิดปกติ — ขยายกล่องนอก หรือย่อชิ้นแทน PCB
5. Hands-on in Blender — Scene Units and Scale Accuracy
หัวข้อที่มีชื่อว่า “5. Hands-on in Blender — Scene Units and Scale Accuracy”ทำตามทีละขั้น (ใช้คู่กับ แล็บ)
5.1 Install and open a clean file
หัวข้อที่มีชื่อว่า “5.1 Install and open a clean file”- ติดตั้งจาก blender.org/download (แนะนำสาย LTS ให้ตรงคู่มือ 4.5 เมื่อเป็นไปได้)
File → New → General- ลบ Cube เริ่มต้นถ้าต้องการฉากว่าง: เลือก →
X→ Delete
ทบทวน UI: Interface · วิดีโอ Fundamentals · ไทย INC111-2021
5.2 Set metric millimeters (lab recipe)
หัวข้อที่มีชื่อว่า “5.2 Set metric millimeters (lab recipe)”ตามแผง Scene Properties → Units:
- คลิกไอคอน Scene Properties (กรวย/ฉาก ทางขวา)
- ส่วน Units:
- Unit System =
Metric - Length =
Millimeters - Unit Scale =
0.001
- Unit System =
ทำไมใส่ 0.001?
คู่มือ Blender อธิบายว่า Unit Scale เป็นตัวแปลงระหว่างหน่วยภายในกับตัวเลขบน UI (Scene Units)
ในงานโมเดลผลิตภัณฑ์/พิมพ์ 3D นิยมตั้งแบบนี้เพื่อให้พิมพ์ตัวเลข80แล้วได้ความยาวระดับมิลลิเมตรบน UI สอดคล้องกับการคิดแบบวิศวกรรม (แนวทางเดียวกับคู่มือชุมชนเช่น Blender for 3D Printing — Units)
กฎทีม: ทั้งทีมต้องใช้สูตรหน่วยเดียวกัน และจดใน checklist — ตอน export Twin ใน M04 จะได้ไม่สเกลเพี้ยนคนละไฟล์
ตรวจกริด (ถ้าเส้นหายไปเพราะสเกลเล็ก):
- Overlay → Grid · ปรับ Scale ของกริดให้มองเห็นช่วงงาน ~10–100 mm
เปิดการวัดขอบใน Edit Mode ได้จาก Overlay → Measurements (Mesh edit overlays / overlay panel) เพื่ออ่านความยาวขอบ
5.3 Create a PCB placeholder (exact dimensions)
หัวข้อที่มีชื่อว่า “5.3 Create a PCB placeholder (exact dimensions)”Add → Mesh → Cube- Object Mode → แผง Item (
N) → Dimensions - ใส่ค่า เช่น
X=80 mm,Y=55 mm,Z=1.6 mm(หรือค่าที่วัดจริง) - ตั้งชื่อวัตถุ:
PCB_placeholder - Object → Set Origin → Origin to Geometry (Set Origin)
- ย้ายให้อยู่เหนือพื้นเล็กน้อย (เช่น Location Z ตามความหนาฐานที่จะออกแบบ)
- Object → Apply → Scale (
Ctrl+A→ Scale) — อ่านเหตุผลใน Apply
หลัง Apply Scale ค่า Scale ในแผง Item ควรเป็น 1, 1, 1 ในขณะที่ Dimensions ยังเป็นขนาดจริง
5.4 Create the enclosure block
หัวข้อที่มีชื่อว่า “5.4 Create the enclosure block”Add → Mesh → Cubeชื่อEnclosure_block- ตั้ง Dimensions ตามสูตร §4.2
- Origin to Geometry · Apply Scale
- จัดตำแหน่งให้ PCB อยู่กลางช่องว่างภายใน (ดู Wireframe)
- (ทางเลือก) ใส่ Material สีต่างกันชั่วคราวแค่แยกชิ้น — ยังไม่ต้อง PBR จริง
ยังไม่ต้องเจาะช่องพอร์ตใน M01 — แค่ block ที่ “หุ้มได้”
5.5 Optional: ชิ้นแทนแบตเตอรี่หรือจอแสดงผล
หัวข้อที่มีชื่อว่า “5.5 Optional: ชิ้นแทนแบตเตอรี่หรือจอแสดงผล”ถ้าโปรเจกต์มี แบตเตอรี่ หรือ จอแสดงผล (display):
- สร้าง Cube เพิ่มตามขนาดคร่าว ๆ จาก datasheet
- วางใน enclosure แล้วตรวจว่าไม่ชน PCB
6. Topology and Mesh Optimization (What You Need in M01)
หัวข้อที่มีชื่อว่า “6. Topology and Mesh Optimization (What You Need in M01)”จาก Mesh Structure:
| Element | Short meaning |
|---|---|
| Vertex | จุดในพื้นที่ |
| Edge | เส้นเชื่อมสองจุด |
| Face | พื้นผิว (tri / quad / n-gon) |
สำหรับ block enclosure ใน M01:
| Do | Avoid |
|---|---|
| ใช้ Cube แล้วปรับ Dimensions | Subdivision ทับซ้อนโดยไม่จำเป็น |
เก็บชิ้นส่วนแยก object (PCB_…, Enclosure_…) |
รวมเป็นก้อนเดียวตั้งแต่แรก |
| Apply Scale หลังปรับขนาด | ปล่อย Scale เป็น 2.0, 0.5, … |
| Flat shading ของกล่องก็พอ | Smooth ทุกอย่างจนมองไม่เห็นขอบประกอบ |
Optimization ในระดับ M01 = อย่าเพิ่ม polygon จนกว่าสเกลและ clearance จะถูกล็อก
การลด poly สำหรับ Twin จะทบทวนอีกครั้งก่อน export ใน M04
Non-manifold / รูรั่ว สำคัญตอน STL ใน M06 — ตอนนี้ถ้าใช้ Cube ตันเป็น block ยังไม่ต้องกังวล manifold ของเปลือกกลวง
7. Origin and Axis Habits (Prepare for Twin)
หัวข้อที่มีชื่อว่า “7. Origin and Axis Habits (Prepare for Twin)”สิ่งที่ควรทำตั้งแต่ M01 เพื่อให้งานใน M03–M04 ง่ายขึ้น:
| Habit | Why |
|---|---|
| วาง Origin ที่กึ่งกลางฐานกล่อง หรือมุมประกอบ | วางบนโต๊ะใน Twin ได้ง่าย |
| ให้แกนตั้งฉากกับพื้นของฉาก | หมุนฝาใน M03 แล้วไม่เอียงผิดทาง |
| ตั้งชื่อ object เป็นภาษาอังกฤษสั้น ชัด | อ้างชื่อใน clip list / Twin ได้ง่าย |
| ทั้งทีมใช้หน่วยเดียวกัน | กันไฟล์คนละสเกล (เช่น ผิด 1000 เท่า) เมื่อรวมงาน |
ตั้ง origin: Object Origin
8. How M01 Feeds the Rest of Course 3
หัวข้อที่มีชื่อว่า “8. How M01 Feeds the Rest of Course 3”| Carry forward from M01 | Use in |
|---|---|
| Block ถูกสเกล + checklist | M02 ขึ้นรูปละเอียด / PBR |
| ชิ้นส่วนแยกฝา–ฐานในใจแล้ว | M03 animation เปิด–ปิด |
| Origin / หน่วยทีม | M04 GLB → Bitstream Studio |
| Clearance ที่จดไว้ | M05 validation · M06 พิมพ์และ fitment |
Next Steps
หัวข้อที่มีชื่อว่า “Next Steps”- ทำแล็บทีละขั้น: แล็บ
- กรอก scale-and-block-checklist.md
- เมื่อพร้อม ไปต่อ M02 — Modeling, Materials, and Render
References and Further Reading
หัวข้อที่มีชื่อว่า “References and Further Reading”Blender (official)
หัวข้อที่มีชื่อว่า “Blender (official)”- Download Blender
- Scene Properties — Units (4.5 LTS)
- Apply Location / Rotation / Scale (4.5 LTS)
- Mesh Structure · Mesh Modeling
- Object Origin
- Blender Fundamentals 4.5 LTS
- INC111-2021 Blender playlist (Thai)
Industrial design & enclosure practice
หัวข้อที่มีชื่อว่า “Industrial design & enclosure practice”- IDSA — What is Industrial Design?
- Six Steps for Designing a Custom 3D Printed Electronics Enclosure (All About Circuits)
- How do you design enclosures for 3D printing? (Protolabs Network)
- Blender for 3D Printing — Units (แนวทาง Unit Scale กับงาน mm)
Hardware / course portals
หัวข้อที่มีชื่อว่า “Hardware / course portals”- KIT_PSE84_EVAL documentation · PSOC Edge kits + design files
- TESAIoT Developer Hub
- Bitstream Studio
- ternion-3d-assets-free
- Course 3 TOC · Course 2 M03
เช็กความเข้าใจ
หัวข้อที่มีชื่อว่า “เช็กความเข้าใจ”คำถามสั้นสามข้อใน quiz.yaml ผูกกับเป้าหมายของบทเรียนนี้ข้อละหนึ่งคำถาม ลองตอบเองก่อน แล้วค่อยเทียบกับเฉลยและคำอธิบายในไฟล์
ลงมือต่อที่ แล็บ: กล่องหุ้มแบบ block ตามสเกลฮาร์ดแวร์
Lab · Checklist · ← Table of Contents · M02 →
คำถามทบทวน
ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย
-
“ช่อง USB หันผิดทาง” เป็นปัญหาของเลนส์ใดในตาราง Four Lenses (เป้าหมายข้อ 1)
- User Experience
- Function
- Material & Manufacturing
- Form & Proportion
ดูเฉลย
คำตอบ: A. User Experience
ตารางในหัวข้อ 2: เลนส์ User Experience ถามว่าเปิดฝา ดู LED เสียบสายได้โดยไม่พึ่งคู่มือยาวไหม
-
PCB กว้าง 80 mm, clearance 0.5 mm ต่อด้าน, ผนังหนา 2 mm ขนาดภายนอกแกน X ประมาณเท่าใด (เป้าหมายข้อ 2)
- 84 mm
- 90 mm
- 85 mm
- 81 mm
ดูเฉลย
คำตอบ: C. 85 mm
สูตรในหัวข้อ 4.2: outer_X ≈ PCB_X + 2×clearance + 2×wall = 80 + 1 + 4 = 85 mm
-
ค่า Unit Scale ที่บทเรียนตั้งสำหรับงานโมเดลหน่วยมิลลิเมตร (เป้าหมายข้อ 3)
- 0.001
- 1.0
- 1000
- 0.01
ดูเฉลย
คำตอบ: A. 0.001
หัวข้อ 5.2: Unit System = Metric, Length = Millimeters, Unit Scale = 0.001
อ้างอิงบทเรียนนี้
ถ้านำบทเรียนนี้ไปสอน ทำสไลด์ หรือทำเอกสารต่อ ให้อ้างอิงด้วยข้อความนี้ ถ้าดัดแปลงเนื้อหา ให้เติม (ดัดแปลง)ต่อท้ายชื่อบทเรียน
"หลักออกแบบเชิงอุตสาหกรรมและกล่องหุ้มตามสเกลจริง" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
ข้อความอ้างอิงภาษาอังกฤษ: "Industrial Design Principles and a True-scale Enclosure" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0
บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C3/M01/README.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 3 (C3/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA