[TH] Filaments

บทความนี้เป็นเรื่องการพิมพ์สามมิติเกี่ยวกับ Filament ซึ่งเป็นพลาสติกที่ถูกหลอมและนำไปขึ้นรูปเป็นวัตถุต่างๆ ตามต้องการได้ โดยพูดถึงคุณสมบัต ของ Filament ที่ได้รับความนิยม ซึ่งมี 3 ชนิดคือ PLA, PETG, ABS

ภาพที่ 1 เส้นพลาสติก PLA+ สีขาว

ในการพิมพ์สามมิติสิ่งสำคัญที่ขาดไม่ได้คือวัตถุดิบตัวกลางในการขึ้นรูป ซึ่งก็คือ Filament นั่นเอง โดยแต่ละชนิดนั้นมีคุณสมบัติที่แตกต่างกันไป

PLA

PLA เป็นพลาสติกที่ได้รับความนิยมอย่างมากในการพิมพ์สามมิติ วัสถุถูกผลิตจากวัสดุจากธรรมชาติ โดยมีคุณสมบัติคือ

  1. เป็นวัสดุที่แข็ง ยืดหยุ่นได้น้อย
  2. ทนความร้อนได้ต่ำ
  3. แข็งตัวได้ไว

จากคุณสมบัติที่กล่าวมาจะเห็นได้ว่า PLA นั้นเป็นวัสดุที่เหมาะสมกับชิ้นงานที่ไม่โดนความร้อนมาก สามารถขึ้นรูปได้ง่าย มีความคงทนพอสมควร แต่ไม่ควรใช้สร้างวัตถุที่ต้องมีการยืดหยุ่นเยอะ เพราะมีลักษณะยอมหักไม่ยอมงอ ในปัจจุบันได้มีการพัฒนาเพิ่มคุณสมบัติให้กับ PLA โดยผู้ผลิตหลายเจ้าโดยการใส่สารเพิ่มเติมลงไปซึ่งเป็นสูตรของแต่ละเจ้าเพื่อให้ PLA นั้นมีความคงทนมากขึ้น ยืดหยุ่นและทนความร้อนมากขึ้น โดยมีชื่อเรียกที่แตกต่างกันไปเช่น PLA+ PLA Pro เป็นต้น

PETG

เป็นพลาสติกที่ได้รับความนิยมในหมู่คนที่เริ่มมีความรู้เพิ่มขึ้นในการพิมพ์สามมิติ เนื่องจากการพิมพ์ต้องมีการปรับจูนพอสมควรเพื่อให้ได้วัตถุที่ต้องการ มีคุณสมบัติคือ

  1. เป็นวัสดุที่แข็ง แต่ยืดหยุ่นได้มาก
  2. ทนความร้อนได้มากขึ้นกว่า PLA
  3. แข็งตัวได้ช้าลงเมื่อเทียบกับ PLA

ในการพิมพ์สามมิติด้วย PETG มีข้อคำนึงเพิ่มขึ้นเพื่อแลกกับคุณสมบัติที่มากขึ้นเช่น ความร้อนของฐานต้องเหมาะสม ความร้อนของหัวพิมพ์ต้องเหมาะสม การเปิดปิดพัดลมเป่าชิ้นงาน เนื่องจาก PETG นั้นแข็งตัวช้ากว่าทำให้การพิมพ์จำเป็นต้องใช้พัดลมที่มีประสิทธิภาพและตรงจุด แต่หากพัดลมเปิดผิดจังหวะอาจทำให้แต่ละชั้นในชิ้นงานไม่ติดกันหรือไม่แข็งแรงได้

ABS

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

  1. มีความแข็งแรงทนทานมาก ยืดหยุ่นได้
  2. ทนความร้อนได้สูงกว่า PETG

การพิมพ์ด้วย ABS นั้นต้องปรับจูนการพิมพ์เพิ่มขึ้นและควบคุมทั้งหมดให้คงที่ตลอดเวลาไม่ว่าจะเป็น อุณหภูมิหัวพิมพ์ อุณหภูมิของฐาน รวมถึงปัจจัยภายนอกเช่น ลมที่พัดเข้ามาจึงอาจต้องมีกล่องครอบเพื่อบังลมให้มากที่สุด เพราะหากอุณหภูมิไม่เหมาะสมเมื่อไรชั้นในชิ้นงานที่กำลังพิมพ์ก็พร้อมที่จะหลุดจากกันได้ทันที

ข้อควรระวัง

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

ข้อแนะนำในการเลือกใช้ Filament

หากเป็นมือใหม่ควรเริ่มต้นจาก PLA ก่อนเนื่องจากพิมพ์ได้ง่ายมาก (แต่เราดันห้าวไปใช้ PETG ในการพิมพ์ครั้งแรก ถึงกับปวดหัวเลยครับ) การควบคุมปัจจัยต่างๆ ไม่จำเป็นมาก ใช้เวลาน้อยกว่า

แต่เมื่อต้องการชิ้นงานที่มีความทนมากขึ้นระดับกลางก็ให้เปลี่ยนมาใช้ PETG เนื่องจากตัววัสดุสามารถสร้างชิ้นงานที่มีความแข็งได้พอๆกับ PLA แต่สามารถยืดหยุ่น หักงอได้มากกว่ามาก

สุดท้ายเมื่อต้องการใช้ชิ้นงานที่รับแรงกระแทกหรือคงทนมากๆ ก็ให้เปลี่ยนมาใช้ ABS เพราะมีความคงทนมากที่สุด

สรุป

Filament แต่ละชนิดมีคุณสมบัติที่แตกต่างกันและมีปัจจัยควบคุมที่มีความเข้มงวดต่างกัน โดยที่หากเป็นมือใหม่ควรเริ่มจาก PLA ก่อนเพราะพิมพ์ง่าย และหากต้องการชิ้นงานที่ยืดหยุ่นมากขึ้นให้เปลี่ยนมาใช้ PETG ซึ่งมีคุณสมบัติที่ยืดหยุ่นมากขึ้น แต่หากต้องการใช้ชิ้นงานที่ทนแรงกระแทกมากขึ้นอีกก็เปลี่ยนมาใช้ ABS แต่ยิ่งวัสดุมีความคงทนมากเท่าไรการปรับจูนก็จะยิ่งยากขึ้นไปเท่านั้น

(C) 2022, อ.จารุต บุศราทิจ / อ.ดนัย เจษฎาฐิติกุล

ปรับปรุงเมื่อ 2022-03-17, 2022-03-19

[TH] Hosting Unity WebGL game on the sever

บทความนี้กล่าวถึงการนำตัวเกมที่พัฒนาจาก Unity ในลักษณะของ WebGL ขึ้นไปไว้บนเซิฟเวอร์ที่ใช้ระบบปฏิบัติการ Ubuntu ใน Google compute engine

การพัฒนาเกมด้วยโปรแกรม Unity เราสามารถที่จะสร้างเกมเพียงครั้งเดียวและสร้างตัวเกมในหลายระบบได้ ไม่ว่าจะเป็น Windows, Android หรือเว็บ เป็นต้น ก่อนที่เราจะนำเกมของเราขึ้นเซิฟเวอร์ได้ต้องทำการปรับเปลี่ยน build target เป็น WebGL เสียก่อน โดยเข้าที่ File > Build Settings และเลือก Platform เป็น WebGL ดังภาพที่ 1

ภาพที่ 1 เลือก Platform เป็น WebGL

ในเบราเซอร์จะมีการเข้ารหัสบีบอัดไฟล์เพื่อลดการใช้งานข้อมูลลงซึ่งเราจำเป็นต้องเลือกการบีบอัดที่เบราเซอร์สนับสนุนใน Player Settings > Publishing Settings > Compression Format หากเราไม่ต้องการบีบอัดสามารถเลือกเป็น Disabled ได้ครับ

ภาพที่ 2 ปรับ Compression Format เป็น Disabled

จากนั้นทำการ Build และเลือกตำแหน่งที่ต้องการเก็บไฟล์เราจะได้ไฟล์คร่าวๆ ดังภาพที่ 3

ภาพที่ 3 ไฟล์ที่ได้จากการ Build

เกมที่ได้จะสามารถรันบนเว็บได้ให้เรานำไฟล์ที่ได้ทั้งหมดอัพโหลดขึ้นเซิฟเวอร์ได้ทันทีครับ แต่ต้องไม่ลืมตำแหน่งหรือ URL ที่สามารถเข้าถึงจากภายนอกได้ด้วยนะครับ โดยทางเราอัพโหลดไฟล์ไว้ใน apache เพื่อให้เข้าถึงได้ครับ

ภาพที่ 4 ตัวอย่างเกม

หลังจากอัพโหลดและระบุตำแหน่ง URL เรียบร้อยเราสามารถเข้าเล่นเกมได้ทันทีเลยครับ ทุกท่านสามารถเข้าไปทดลองเล่นได้ที่ https://www.jarutex.com/www/html/lab/

สรุป

การอัพโหลดเกมขึ้นเซิฟเวอร์นั้นสามารถทำได้ง่ายดาย เนื่องจากเกมที่ได้จาก Unity เป็นไฟล์ html ทำให้สามารถใช้งานบนเบราเซอร์ได้ทันที แต่ข้อควรระวังคือการบีบอัด หากเบราเซอร์ไม่สนับสนุนการบีบอัดที่กำหนด เกมของเราก็จะไม่สามารถใช้งานได้ครับ

(C) 2022, อ.จารุต บุศราทิจ / อ.ดนัย เจษฎาฐิติกุล

ปรับปรุงเมื่อ 2022-03-10

[TH] PIC18F458 Ep.5 GPIO and 7-Segments

บทความนี้เป็นการประยุกต์ใช้ GPIO ของ PIC18F458 เพื่อสั่งงานวงจรของแอลอีดี 8 หลอดที่จัดเรียงตำแหน่งกันเป็นเหมือนตัวเลขดังภาพที่ 1 โดยใช้หลอด LED จำนวน 8 หลอดมาจัดวางใหม่และเรียกว่า 7-Segment ที่สามารถนำไปประยุกต์แสดงผลตัวเลข และตัวอักษรได้อีกจำนวนหนึ่ง นอกจากนี้ บนตัวบอร์ดทดลองได้ติดตั้ง 7-Segment เอาไว้จำนวน 4 หลัก ทำให้สามารถเขียนโปรแกรมเพื่อควบคุมการแสดงผลข้อมูล 4 หลัก

ภาพที่ 1 ภาคแสดงผลด้วย 7-Segment บนบอร์ดทดลอง
Read More

[TH] Office Syndrome our series : PIRIFORMIS SYNDROME

บทความนี้เป็นบทความต่อเนื่องเกี่ยวกับการดูแลร่างกายสำหรับคนที่ทำงานหน้าจอคอมพิวเตอร์นานๆ หรือสำหรับคนที่มีปัญหาจากการนั่งนานๆ ซึ่งพูดถึงกล้ามเนื้อ Piriformis ลักษณะอาการ สาเหตุ และวิธีบรรเทาให้อาการลดลง

ภาพที่ 1 กล้ามเนื้อ Piriformis
จาก www.dreamstime.com

Read More

[TH] PIC18F458 Ep.2 เจาะรายละเอียด

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

ภาพที่ 1 บอร์ดทดลองแล็บสถาปัตยกรรม
Read More

[TH] การสแกน QR Code และแสดงวัตถุสามมิติใน Unity3D

สำหรับสุดยอดโปรแกรมสร้างเกมอย่าง Unity3D แล้วนั้นมีจุดเด่นมากมายดังที่เคยกล่าวไป ซึ่งข้อหนึ่งนั้นคือการที่โปรแกรมสามารถสร้างเกมได้ในแทบทุกแพลตฟอร์มไม่ว่าจะเป็น คอมพิวเตอร์หรือมือถือ ซึ่งในบทความนี้จะกล่าวถึงการใช้งานบนมือถือ ซึ่งแน่นอนว่าต้องมีอุปกรณ์ที่คอมพิวเตอร์ไม่มีเช่น กล้อง โดยจะกล่าวถึงวิธีการแสกน QR Code เพื่อสั่งงานตามข้อความที่ถอดมาได้ และสั่งให้แสดงเป็นวัตถุ 3 มิติ

QR Code

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

เมื่อต้องการถอดรหัส QR code เป็นข้อความสามารถทำได้ทั้งการใช้กล้องแสกน หรือ บันทึกรูปภาพและใช้โปรแกรมถอดรหัส

ภาพที่ 1 QR code ของข้อความ “Hello world!! we are Jarutex!!”
Read More

[TH] Into 3d printing

จากบทความก่อนๆ ทุกท่านคงจะทราบดีว่าทางทีมงานได้ทดลองเกี่ยวกับ Microcontroller รวมถึงการสร้างเกม แต่นอกจากนั้นทางทีมงานยังได้ทดลองเกี่ยวกับการพิมพ์ 3 มิติด้วย โดยในบทความนี้จะพูดคุยเกี่ยวกับการพิมพ์ 3 มิติ โดยมีรายละเอียดพอสังเขป

ภาพที่ 1 ที่วางแก้วแบบปรับสมดุลจากการพิมพ์ 3 มิติ
Read More

[TH] Queue data structure with array and Singly Linked List.

บทความนี้เป็นการอธิบายเกี่ยวกับโครงสร้างข้อมูลแบบคิว (Queue) ซึ่งได้เคยเขียนถึงไปในบทความ Queue Data Structure ที่เป็นภาษาไพธอนและถูกนำไปใช้บ่อยกับตัวอย่างของ MicroPython แต่บทความนี้เป็นภาษา C ที่เขียนผ่าน Arduino IDE เพื่อใช้งานกับบอร์ดไมโครคอนโทรลเลอร์ LGT8F328P, SAM-D21, ESP8266, ESP32 และ ESP32-S2 ดังภาพที่ 1 โดยยกตัวอย่างการนำโครงสร้างแถวลำดับ และลิงค์ลิสต์เดี่ยวมาเป็นโครงสร้างข้อมูลแบบคิว และคงเป็นบทความสุดท้ายบน JarutEx แล้วครับ

ภาพที่ 1 บอร์ดไมโครคอนโทรลเลอร์ ESP32-S2, LGY8P326P และ SAM-D21
Read More

[TH] Stack data structure with Singly Linked List.

บทความนี้เป็นการอธิบายเกี่ยวกับโครงสร้างข้อมูลแบบสแต็ก (Stack) เพื่อเขียนโปรแกรมด้วยภาษา C บนแพล็ตฟอร์มต่าง ๆ โดยใช้โครงสร้างข้อมูลแบบลิงค์ลิสต์เดี่ยวเป็นที่เก็บข้อมูลของสแต็กพร้อมตัวอย่างการแถวลำดับเป็นที่เก็บข้อมูล และทดสอบการทำงานกับบอร์ดไมโครคอนโทรลเลอร์ LGT8F328P, SAM-D21, ESP8266, ESP32 และ ESP32-S2 ดังภาพที่ 1 และ 2 ส่วนกรณีที่ต้องการไปใช้กับแพล็ตฟอร์มอื่น ๆ ยังคงสามารถดัดแปลงโค้ดเพื่อนำไปใช้ได้เช่นเดียวกัน

ภาพที่ 1 บอร์ดไมโครคอนโทรลเลอร์ ESP32, LGY8P326P และ SAM-D21
Read More

[TH] Arduino: Using the ST7735s module with an ESP32-S2 via the TFT_eSPI library.

บทความนี้เป็นการใช้โมดูล ST7735s กับไมโครคอนโทรลเลอร์ ESP32-S2 ผ่านไลบรารี TFT_eSPI โดยในก่อนหน้านี้ได้กล่าวถึงการใช้งานกับไมโครคอนโทรลเลอร์ ESP32 และ STM32F103C ไปแล้ว และโมดูล TFT ที่เลือกใช้เป็น REDTAB80x160 (ได้เพิ่มเติมโค้ดสำหรับ GREENTAB80x160 ในตอนท้ายบทความ) แต่สามารถปรับดารตั้งค่าเป็นโมดูลอื่น ๆ ได้ โดยดูรายละเอียดจากไฟล์ User_Setup.h ของไลบรารี TFT_eSPI ดังภาพที่ 1

ภาพที่ 1 โมดูลแสดงผล TFT ขนาด 0.96″ แบบ IPS กับ ESP32-S2
Read More