แรงบันดาลใจจากหน้าจอสู่การออกแบบวิศวกรรมจริง
ย้อนกลับไปในวัยเด็ก ผมมักจะหลงใหลในกลไกของ "Solar Tracker" หรือเครื่องติดตามดวงอาทิตย์มาโดยตลอด โดยเฉพาะหลังจากที่ได้เห็นมันในภาพยนตร์ James Bond เรื่อง “The Man with the Golden Gun” เมื่อเวลาผ่านไปกว่า 35 ปี พร้อมกับปริญญาวิศวกรรมศาสตร์ในมือ ผมจึงตัดสินใจว่า "ทำไมจะลองสร้างสิ่งที่ฝันมานานไม่ได้ล่ะ? — แค่ตัดส่วนที่เป็นปืนเลเซอร์สังหารออกไปก็พอ"
เริ่มต้นด้วยการสร้างหอคอยคู่ (Twin Towers) สองต้นแรก ซึ่งก็เหมือนกับฝาแฝดทั่วๆ ไปครับที่มีความผิดพลาดบ้างเล็กน้อยในช่วงต้น แต่สุดท้ายมันก็ผ่านพ้นไปได้ด้วยดี ผมออกแบบและสร้างระบบนี้ขึ้นมาเองทั้งหมด เนื่องจากในตลาดไม่มีชุดคิท Tracker สำเร็จรูปสำหรับแผงโซลาร์เซลล์ขนาดกลางถึงขนาดใหญ่ การสร้างระบบติดตามสำหรับแผงเดียวหรือสองแผงนั้นอาจจะเป็นเรื่องง่าย แต่การควบคุมแผงโซลาร์เซลล์ 8 แผงที่มีพื้นที่รับลม (Sail area) กว่า 9 ตารางเมตร ภายใต้แรงลมที่อาจสูงถึง 80 กม./ชม. นั้นถือเป็นโจทย์ทางวิศวกรรมที่ท้าทายอย่างมาก
เนื่องจากหอคอยเหล่านี้ตั้งอยู่ในพื้นที่ฟาร์มที่ยังคงใช้งานอยู่ ตัวแผงจึงต้องถูกติดตั้งสูงจากพื้นดิน 5.8 เมตร เพื่อให้รถแทรกเตอร์และเครื่องจักรการเกษตรอื่นๆ สามารถวิ่งผ่านข้างใต้ได้โดยไม่ชนกับระบบ Tracker หากคุณเป็นคนชอบสังเกต จะเห็นว่ามันถูกวางตำแหน่งไว้ระหว่างต้นอะโวคาโด ซึ่งดูเหมือนว่าพวกมันจะเติบโตได้ดีขึ้นภายใต้ร่มเงาเป็นครั้งคราวของแผงเหล่านี้ด้วย
ในส่วนของระบบไฟฟ้า แผงขนาดใหญ่จะเชื่อมต่อกับ Grid Inverter เพื่อส่งไฟเข้าสู่ระบบหลัก ส่วนแผงขนาดเล็กหรือ "Pony Panel" จะทำหน้าที่จ่ายไฟเลี้ยงคอมพิวเตอร์และระบบอิเล็กทรอนิกส์ควบคุม ระบบนี้ไม่มีการดึงพลังงาน (Parasitic power) จากสายส่งหลักมาขับเคลื่อนมอเตอร์เลย เหตุผลสำคัญคือเราต้องการพลังงานที่อิสระเพื่อขยับแผงหลบพายุในเวลาที่ระบบไฟหลักมักจะขัดข้อง
ด้านโครงสร้างทางโยธา ประมาณหนึ่งในหกของความสูงหอคอยถูกฝังอยู่ใต้ดินในฐานรากคอนกรีตขนาด 1.2 ลูกบาศก์เมตร ซึ่งออกแบบเป็นรูปทรง "Top Hat" มีการเสริมเหล็กสองชั้นในส่วนบนและเชื่อมต่อกับตัวเสาเพื่อป้องกันไม่ให้แรงกดเกินขีดจำกัด 40Mpa ของคอนกรีตบริเวณจุดเชื่อมต่อ นอกจากนี้ ฐานล่างสุดยังถูกยึดติดกับชั้นหินที่ลึกลงไป 1.2 เมตรพอดี
จากระบบ Optical สู่ระบบ Computational
หลังจากสร้างกลไกขับเคลื่อนเสร็จทั้งหอคอยทิศเหนือและทิศใต้ คำถามถัดมาคือ "เราจะหันหน้าแผงไปหาดวงอาทิตย์ได้อย่างไร?" ในตอนแรกผมเลือกใช้ระบบ Optical (เซนเซอร์แสง) เพราะดูเป็นตรรกะที่ง่ายที่สุด แต่เมื่อใช้งานจริงกลับพบความน่าหงุดหงิด โดยเฉพาะในวันที่เมฆมาก (ระดับ SCT20 ขึ้นไป) ตัวควบคุมจะเกิดอาการ "หลงทิศ" และพยายามกวาดแผงไปทั่วท้องฟ้าเพื่อหาจุดที่สว่างที่สุด ส่งผลให้มอเตอร์ทำงานหนักเกินจำเป็นและแบตเตอรี่หมดไวมาก
แรงบันดาลใจในการแก้ปัญหาเกิดขึ้นในห้องทำงานของผมเอง พื้นห้องเต็มไปด้วยรอยขีดเขียนของนาฬิกแดดที่ใช้บอกฤดูกาล เพียงแค่เปิดประตูห้องตอนเที่ยงวัน (Solar Noon) ผมก็สามารถบอกได้ทันทีว่าตอนนี้ห่างจากช่วง Equinox หรือ Solstice เท่าไหร่ และแผงควรจะทำมุมที่เท่าไหร่ นี่คือจุดเปลี่ยนที่ทำให้ผมตระหนักว่า เราสามารถคำนวณตำแหน่งของดวงอาทิตย์ล่วงหน้าและ "พาแผงไปรอตรงนั้น" ได้เลย ดังนั้นในโครงการ "East Tower" ซึ่งมีขนาดใหญ่กว่าเดิมเกือบ 50% ผมจึงหันมาใช้ระบบคอมพิวเตอร์ในการคำนวณตำแหน่งดวงอาทิตย์แทน
การเลือกบอร์ดควบคุมและเซนเซอร์
หลังจากได้ช่วยลูกชายทำโครงงานโรงเรียนด้วย Arduino ผมก็ทึ่งในความง่ายและจำนวน Library ที่มีให้เลือกใช้อย่างมหาศาล ซึ่งต่างจากสมัยก่อนที่ผมต้องเขียน Library ทุกอย่างด้วย Machine Code เอง ผมเลือกใช้ Arduino Uno สำหรับโปรเจกต์นี้ แม้หน่วยความจำจะมีจำกัดแต่มันก็เป็นความท้าทายที่สนุกในการเขียนโค้ดให้มีประสิทธิภาพที่สุด (Efficiency) จนสุดท้ายทุกอย่างก็บรรจุลงในชิปตัวจิ๋วนี้ได้สำเร็จ
หัวใจสำคัญของระบบเซนเซอร์คือ 3-axis Accelerometer (ตัววัดความเร่ง 3 แกน) ซึ่งใช้สำหรับคำนวณหา "ระนาบอ้างอิง" ว่าทิศทางไหนคือแนวดิ่ง ค่าที่วัดได้จากเซนเซอร์จะถูกนำไปเปรียบเทียบกับค่าตำแหน่งดวงอาทิตย์ที่คำนวณได้ โดยมีระบบ Hysteresis Band (แถบความต่างเผื่อไว้) เพื่อป้องกันไม่ให้มอเตอร์ขยับยิบย่อยเกินไป ระบบจะสั่งงานผ่านชุดรีเลย์เพื่อเปิด-ปิดมอเตอร์ขับเคลื่อน ผมเลือกใช้การสลับรีเลย์ธรรมดาแทน PWM ในช่วงแรกเพื่อลดสัญญาณรบกวนทางไฟฟ้า (Electrical Noise) โดยมีแบตเตอรี่ 12V 7Ah เพียงก้อนเดียวทำงานร่วมกับ DC/DC Step-up เพื่อขับมอเตอร์ขนาด 36VDC
อัลกอริทึมตำแหน่งดวงอาทิตย์
สำหรับการคำนวณตำแหน่งดวงอาทิตย์ ผมใช้กึ่งสำเร็จรูปจากเว็บไซต์ NOAA (National Oceanic and Atmospheric Administration) โดยนำอัลกอริทึมมาพอร์ตลง Arduino เริ่มต้นจากการทดสอบด้วยข้อมูล GPS NMEA ก่อนจะเปลี่ยนมาใช้ RTC (Real Time Clock) เพื่อให้ระบบสามารถ "Self-calibrate" และระบุตำแหน่งดวงอาทิตย์ได้เองไม่ว่าจะไปติดตั้งที่ไหนบนโลก
อัลกอริทึมนี้จะส่งค่ากลับมาในรูปแบบ Altitude (มุมเงย) และ Azimuth (มุมทิศ) แต่เนื่องจากรูปแบบการติดตั้งของผมต้องการค่า Declination และ Hour Angle ผมจึงต้องเขียนสูตรแปลงค่าเพิ่มเติม ซึ่งข้อดีคือมันทำให้โปรแกรมนี้สามารถนำไปใช้กับ Tracker แบบอื่นๆ ได้ด้วย (เช่น แบบ Alt/Az ที่ใช้เซนเซอร์ Magnetometer 3 แกน)
ส่วนต่อประสานผู้ใช้ (GUI) และปัญหาทางเทคนิค
ผมใช้หน้าจอ LCD 2004 พร้อม I2C Backpack ในการแสดงผล โดยออกแบบ GUI ให้มีกว่า 25 หน้าจอสำหรับการตั้งค่าและวินิจฉัยระบบ ตั้งแต่การตั้งเวลาไปจนถึงการปรับแต่ง Tracking Mode ในกล่องเซนเซอร์ยังมีหน้าจอ "Meat-ball" ที่บอกระยะห่างจากเป้าหมาย (Target offset) และสถานะการเคลื่อนที่ของมอเตอร์อีกด้วย
ความท้าทายที่ใหญ่ที่สุดคือ I2C Bus ด้วยความยาวของสายเคเบิลและการทำงานในสภาพแวดล้อมที่มีสัญญาณรบกวนสูงจากมอเตอร์และแผงโซลาร์ ทำให้ระบบเกิดอาการค้าง (Lockup) บ่อยครั้ง แม้จะใส่ Active Terminator หรือ Ferrite beads แล้วก็ยังไม่หายขาด จนสุดท้ายผมได้ใช้ชิปบัฟเฟอร์ TI P82B96 ซึ่งออกแบบมาเพื่อขับสัญญาณ I2C ระยะไกลโดยเฉพาะ ปัญหานี้จึงหมดไปอย่างสิ้นเชิง
ด้านล่างนี้คือภาพของกล่องเซนเซอร์รุ่นสมบูรณ์ที่ติดตั้งระบบบัฟเฟอร์และวงจรควบคุมแรงดันเรียบร้อยแล้ว:
การปรับแต่งเพื่อความทนทาน (Robustness)
จากการใช้งานจริง ผมพบว่าหอคอยมีการสั่นไหวจากลมแรงถึง 3 องศา ซึ่งมากกว่าค่า Hysteresis 2 องศาที่ตั้งไว้ตอนแรก ผมจึงขยายค่าเผื่อเป็น 4 องศา และเพิ่มระบบ "Night Parking" เพื่อให้ระบบหยุดทำงานโดยสิ้นเชิงในตอนกลางคืน ป้องกันการขยับตามแรงลมที่ไม่จำเป็น นอกจากนี้ยังกำหนดให้มอเตอร์ทำงานทีละแกน (Single axis movement) โดยให้ความสำคัญกับการเคลื่อนที่ทิศตะวันออก/ตะวันตกก่อน
เพื่อให้ระบบมีความน่าเชื่อถือสูงสุด ผมได้เปิดใช้งาน Hardware Watchdog ของชิป ATMega328P ให้รีเซ็ตทุก 4 วินาทีหากโค้ดค้าง และเก็บค่าการตั้งค่าทั้งหมดไว้ใน EEPROM ทำให้เมื่อระบบรีบูตหรือไฟดับ ค่า Config ทุกอย่างจะยังคงอยู่
ระบบยังมี Modbus Interface ผ่าน Bluetooth (HC-05) ทำให้ผมสามารถตรวจสอบค่าผ่านสมาร์ทโฟนได้โดยไม่ต้องปีนขึ้นไปที่กล่องควบคุม
บทสรุปและบทเรียนจากพายุ
ผลลัพธ์ที่ได้น่าประทับใจมากครับ ในวันที่แดดจ้า ระบบ Computational Tracker นี้ให้พลังงานได้พอๆ กับแบบ Optical แต่ในวันที่เมฆมาก มันคือผู้ชนะอย่างแท้จริง เพราะมันยังคงติดตามตำแหน่งดวงอาทิตย์ได้อย่างแม่นยำตลอดเวลาโดยไม่ "แกว่ง" ไปมา
ประเด็นเรื่องการ Parking (จอดเก็บ) ก็สำคัญมาก ในช่วงแรกผมคิดว่าการจอดแผงแนวราบจะลดแรงลมได้ดีที่สุด แต่ในความเป็นจริง หากเกิด Vortex (ลมหมุน) ที่มีขนาดพอๆ กับแผง มันจะทำให้แผงเกิดการสั่นพือ (Flutter) ซึ่งอันตรายต่อโครงสร้างมาก การหันหน้าแผงสู้ลม (Point into the wind) เหมือนที่กะลาสีทำมักจะปลอดภัยกว่าแม้แรงโหลดจะสูงขึ้นก็ตาม
การอัปเดตและพัฒนาอย่างต่อเนื่อง (2017 - 2020)
สิงหาคม 2017: ผมพบว่าอาการ Reboot แบบสุ่มเกิดจาก Solar Regulator ขนาด 10A ที่รองรับกระแสกระชากขณะมอเตอร์ออกตัวไม่ไหว การเปลี่ยนเป็นรุ่น 30A ช่วยแก้ปัญหา Brownout ได้ถาวร นอกจากนี้ผมยังเปลี่ยนจากรีเลย์มาเป็น H-bridge board เพื่อทำ Soft Start ผ่าน PWM ช่วยลดแรงกระชากเชิงกล (Mechanical Stress) ทำให้มอเตอร์ค่อยๆ เร่งความเร็วอย่างนุ่มนวล
มิถุนายน 2018: ระบบซอฟต์แวร์เสถียรมาก แต่ปัญหาเชิงกลใหม่ก็ตามมา แจ็คสแตน (Linear Actuator) ตัวเดิมรับแรงลมไม่ไหวจนเกิดการงอ ผมจึงต้องเปลี่ยนเป็นรุ่น Heavy Duty ที่แข็งแรงกว่าเดิม
กรกฎาคม 2020: ปัญหาแรงลมยังคงเป็นศัตรูหมายเลขหนึ่ง แรงลมกระชากทำให้แผ่นเหล็กหนา 3 มม. ฉีกขาด! นี่คือบทเรียนสำคัญว่าเมื่อพื้นที่แผงใหญ่ขึ้น แรงลมจะเพิ่มขึ้นเป็นทวีคูณ ผมต้องทำการซ่อมแซมและเสริมแผ่น Patch เพื่อความแข็งแรงโดยได้รับความช่วยเหลือจากทีมช่างเชื่อมฝีมือดี
สำหรับใครที่สนใจรายละเอียดการสร้างในภาคต่อ สามารถติดตามได้ที่ Part 2 of the Story ครับ!