แว่นกันแดดสุดเจ๋งที่ตรวจจับความเข้มแสงได้เอง แล้วสั่งให้ม่านดำปิดหรือเปิดอัตโนมัติ!
เพราะงั้นจากนี้ไปน้องไม่ต้องกังวลเรื่องแสงแดดทำร้ายดวงตาอีกแล้ว แว่นคู่นี้จะคอยปกป้องดวงตาน้องแบบอัตโนมัติ แถมยังเปิดม่านให้มองเห็นชัดเจนตอนแสงน้อยอีกด้วย งานนี้เรียกว่าเซฟทั้งสุขภาพตาและความเท่จัดไปวัยรุ่น!
หุ่นยนต์ตัวนี้สร้างด้วย Arduino และชิ้นส่วนพื้นฐานไม่กี่อย่าง ฟังดูเท่มั้ยล่ะ?
อัพเดทล่าสุด: โปรเจคนี้ถูกเลือกเป็น TOP PROJECT ในนิตยสาร HackSpace ด้วยนะ!
ภาพรวมโปรเจค
"Lumina-Shield SunGlass-BOT" คือตัวท็อปในวงการ หุ่นยนต์สวมใส่แบบตอบสนองอัตโนมัติ (Reactive Wearable Robotics) โปรเจคนี้เปลี่ยนแว่นกันแดดธรรมดาให้เป็นระบบป้องกันอัตโนมัติ ด้วยการใช้ Arduino Pro Mini ขนาดจิ๋วเพื่อตรวจวัดระดับความสว่าง (Lux) และสั่งให้ม่านบังแสงสีเข้มทำงานเมื่อแสงเกินกำหนด มันคือการผสมผสานระหว่าง กลไกไฟฟ้าขนาดเล็ก (miniaturized mechatronics), การวัดแสงแบบอนาล็อก (analog photometry) และ การออกแบบที่เน้นผู้ใช้เป็นศูนย์กลาง (Human-Centric Design) เรียกได้ว่าเจ๋งจริงจริ้ง!
ขั้นตอนที่ 1: เตรียมชิ้นส่วน



- Arduino Pro Mini (5v 16 MHz) 1 ตัว
- เซอร์โวมอเตอร์ขนาดเล็ก (รุ่นไหนก็ได้ แต่ต้องเล็กพอ) 1 ตัว
- LDR (ตัวต้านทานปรับค่าได้ตามแสง) 1 ตัว
- ตัวต้านทาน 10k ohm 1 ตัว
- แว่นกันแดด 1 คู่ (เลือกแบบที่เท่ๆ หน่อยนะน้อง!)
สำหรับการอัพโหลดโค้ด น้องจะต้องใช้ USB to TTL converter หรือจะใช้ Arduino Uno เป็นโปรแกรมเมอร์ก็ได้ ตัวพี่จะใช้ Uno นะ สู้งานนะน้อง!
ขั้นตอนที่ 2: หลักการและเจาะลึกเทคนิค
เราจะสร้างวงจรแบ่งแรงดัน (Voltage Divider) แล้วเชื่อมต่อกับ Arduino รู้มั้ยว่า LDR มันคือตัวต้านทานที่ค่ากระเด้งกระดอนตามความสว่างของแสง พอเราใช้ตัวต้านทาน 10k ohm ค่าที่อ่านได้จาก Arduino จะอยู่ระหว่าง 0 ถึง 1023 แน่นอน
ถ้าแสงจ้าๆ หรือแดดแรงปานกลาง ค่าจะต่ำกว่า 100 ถ้าเป็นแสงในห้อง ค่าจะประมาณ 500-600 แต่ถ้ามืดสนิท ค่าจะพุ่งไปที่ 1023 เลย เข้าใจตรงกันนะ? งั้นไปลุยกันต่อ!
- การทำงานของเซ็นเซอร์วัดแสง (LDR Physics):
- วงจรแบ่งแรงดัน: เราเอา LDR กับตัวต้านทาน 10k ohm มาต่อแบบ Voltage Divider ค่าความต้านทานของ LDR จะตกลงมหาศาลเมื่อเจอแสงจ้า (จาก 1M-ohm เหลือต่ำกว่า 100-ohm) ทำให้แรงดันที่พิน A0 เปลี่ยนไป
- การแปลงค่าความสว่างเป็นมุม: ฟิร์มแวร์ของเราจะใช้ลอจิกแบบง่ายแต่ได้ผล พอค่าจาก ADC ต่ำกว่า "ขีดจำกัดแสงแดด" ที่เราตั้งไว้ (ประมาณ 100) Arduino จะส่งสัญญาณ PWM ไปสั่งให้เซอร์โวหมุนม่านบังแสงลงมา งานนี้ห้ามช็อตนะตัวนี้!
Step 3: วงจรไฟฟ้า (The Circuit)



วงจรนี้เรียบง่ายมาก เอามือใหม่ก็ทำได้สบายๆ พี่ลองทำบนเบรดบอร์ดแล้ว และก็บัดกรีลงบน Arduino Pro Mini แล้ว อย่าลืมเว้นที่ให้ตัวตรวจจับแสง (LDR) นะ มันต้องไปดูดแสงอาทิตย์
Step 4: โปรแกรมมิ่งเจ้า Arduino Pro Mini


อย่างที่เห็นเนอะ Pro Mini ตัวนี้มันไม่มีพอร์ต USB ให้อัพโหลดโค้ดเลย ต้องใช้ตัวแปลง USB to TTL หรือจะใช้เจ้า Arduino Uno ที่เรามีกันทุกคนนี่แหละช่วยก็ได้ อย่าไปเสียตังค์ซื้อของใหม่ให้เปลืองเลย จริงมะ?
- สถาปัตยกรรมของ Pro Mini:
- ตรรกะของการย่อส่วน: เราเลือก Arduino Pro Mini มาใช้ก็เพื่อลดน้ำหนักบนหน้าของผู้ใส่ไงล่ะ ด้วยการตัดฮาร์ดแวร์ USB-to-Serial อันบวมๆ ของ Uno ออกไป Pro Mini เลยมีขนาดจิ๋วแค่ 18x33mm พอดีจะเอาไปติดที่ขาแว่นตาได้สบาย
- การทำ Prototype ผ่าน Uno: เนื่องจาก Pro Mini ไม่มี USB ในตัว โปรเจคนี้เลยแสดงวิธีแก้ปัญหาแบบช่างมืออาชีพให้ดู นั่นคือใช้ Arduino Uno แบบ "ไม่มีหัวเข็ม" (Headerless) เป็น สะพาน USB-to-TTL (Serial Passthrough) ในการอัพโหลดเฟิร์มแวร์
แค่ใช้ไขควงงัดไอซี ATmega328P ออกจากบอร์ด Arduino Uno ให้หลุดออกมา แล้วต่อขาตามนี้เลย:
- UNO -------- Pro mini
- 5v---------------vcc
- Gnd------------Gnd
- tx----------------tx
- rx----------------rx
- reset----------- rst
ถ้างงๆ ลองดูวิดีโอประกอบได้ (ภาษาอาจจะไม่ตรงนะ):
แค่นั้นแหละ! หลังจากนั้นก็เสียบสาย USB ของ Arduino Uno เข้าแล้วต่อกับ PC หรือ Android เพื่ออัพโหลดโค้ด ก่อนอัพโหลด อย่าลืมไปที่ Tools > Board type > เลือก Arduino Pro Mini (แล้วก็เลือกโปรเซสเซอร์ให้ถูกด้วย ของเราคือ 5V 16 MHz) ดูรูปประกอบได้
แล้วก็อัพโหลดโค้ดได้เลย จัดไปวัยรุ่น!
โค้ดตัวอย่างอยู่ด้านล่างนี้เลย:
//*SunGlass-Bot an automatic sunglass by ashraf minhaj.
//full tutorial on youtube: www.youtube.com/c/fusebatti
//Contact if necessary ashraf_minhaj@yahoo.com
#include<Servo.h>
Servo sglass; //servo name
int ldr= 0; //connect LDR to A0
int value= 0; //define value 0
void setup()
{
Serial.begin(9600); //this is not necessary-but to show value to pc
sglass.attach(9); //declare in which pin the servo you attach
}
void loop()
{
value = analogRead(ldr); //read value-analog from A0
Serial.println(value);
delay(100);
if(value<100) //change the value as you wish
{
sglass.write(155); //black glass down
delay(100); //a bit delay for the servo to move there
}
else
{
sglass.write(80); //black glass up
delay(100);
}
}
อัพโหลดโค้ดแล้วไปดูผลงานกันเลย!
ขั้นตอนที่ 5: เตรียมแว่นกันแดด & ลงมือทำแบบช่างๆ




ออกแรงดึงเลนส์ดำออกมาให้หมด แล้วเอาไปติดกับลวดแข็งแบบในรูป จากนั้นก็ติดตั้งเซอร์โวและเอาแขนเซอร์โวมาติดกับโครงเลนส์เสริมที่เราทำไว้
- กลไกการขับเคลื่อน (Mechanical Actuation):
- ระบบข้อต่อของโครงเลนส์เสริม: โปรเจคนี้เราต้อง "ควักไส้" เลนส์ดำออกจากแว่นตาธรรมดา แล้วมาติดตั้งบนแกนหมุนที่ทำจากลวด Micro-Servo (SG90) จะเป็นตัวให้แรงบิดสำหรับพลิกเลนส์ขึ้นลง
- มุมจำกัด: เราตั้งค่าให้เซอร์โวหมุนระหว่าง 80° (เลนส์พับเก็บ) กับ 155° (เลนส์กางออก) เพื่อให้เลนส์แนบกับหน้าได้พอดี ไม่ชนคิ้วหรือเลนส์ใสหลัก
- เทคนิคการประกอบ:
- ใช้การดัดลวดเองเพื่อทำบานพับของเลนส์ การใช้กาวร้อนยึดเซอร์โวช่วยลดแรงกระแทก และปกป้องเฟืองเล็กๆ ภายในจากแรงสั่นสะเทือนเวลาเราเดิน
- ระบบจ่ายไฟแบบพกพา:
- กระแสไฟกระชาก: เซอร์โวตัวจิ๋วอาจกินกระแสสูงถึง 500mA ตอนขยับเร็วๆ เพื่อป้องกันไมโครคอนโทรลเลอร์รีเซ็ต ระบบนี้ใช้ Power Bank 5V 2A เป็นแหล่งจ่ายไฟหลัก จะได้มั่นใจว่าไฟเลี้ยงของ Pro Mini มันนิ่ง แม้เซอร์โวจะกำลังทำงาน
- ความสะดวกสบายและการกระจายน้ำหนัก:
- ตำแหน่งวางเซอร์โวและสายไฟจากแบตเตอรี่สำคัญมากสำหรับความสบาย เวลาสร้าง ต้องบาลานซ์น้ำหนักระหว่าง Pro Mini ที่ขาแว่นข้างหนึ่ง กับเซอร์โวที่อีกข้างหนึ่ง จะได้ใส่แล้วไม่เอียง
- การป้องกันการสั่นไหว (Hysteresis & Debouncing):
- ตรรกะเพื่อความเสถียร: เพื่อไม่ให้เลนส์ "สั่นกระพือ" ตอนเราเดินผ่านแสงเงาที่กะพริบ (เช่น ใต้ต้นไม้เป็นแถว) เราสามารถปรับปรุงโค้ดโดยเพิ่ม Software Hysteresis — คือตั้งค่าระดับการตรวจจับสำหรับ "เปิด" และ "ปิด" ให้ต่างกันเล็กน้อย
ไฟเลี้ยงใช้แหล่งจ่าย 5V 1A อะไรก็ได้ พี่ใช้พาวเวอร์แบงค์ทำเองแหละ ง่ายดี
ขั้นตอนที่ 6: เสร็จแล้ววว!


เปิดไฟเลี้ยงวงจร แล้วจะเห็นไฟบน Arduino ติด คราวนี้ก็ออกไปโชว์ของกับหุ่นยนต์แว่นตาหน้าตาประหลาดแต่เจ๋งๆ ตัวนี้ได้เลย! ไปจัดไปวัยรุ่น! สู้งานนะน้อง ห้ามช็อตนะตัวนี้
สรุป
ในฐานะโปรเจกต์ที่ได้รับการยอมรับว่าเป็น "Top Project" ในวงการเมกเกอร์ SunGlass-BOT แสดงให้เห็นแล้วว่าเราสามารถสร้างระบบอัตโนมัติแบบสวมใส่ (wearable automation) ที่ประสิทธิภาพสูงได้ ด้วยฮาร์ดแวร์ระดับเริ่มต้นและความคิดสร้างสรรค์ทางวิศวกรรมเครื่องกล ง่ายๆเลย ฮาร์ดแวร์ธรรมดา + ไอเดียเจ๋งๆ = งานเทพได้นะน้อง!