กลับไปหน้ารวมไฟล์
non-optical-solar-tracker-east-tower-24kw-f5a828.md

แรงบันดาลใจจากหน้าจอสู่การออกแบบวิศวกรรมจริง

ย้อนกลับไปในวัยเด็ก ผมมักจะหลงใหลในกลไกของ "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) จนสุดท้ายทุกอย่างก็บรรจุลงในชิปตัวจิ๋วนี้ได้สำเร็จ

ระบบทั้งหมดทำงานได้อย่างราบรื่นในเวิร์กช็อป — ทดสอบสายยาว 12 เมตรบน I2C Bus

หัวใจสำคัญของระบบเซนเซอร์คือ 3-axis Accelerometer (ตัววัดความเร่ง 3 แกน) ซึ่งใช้สำหรับคำนวณหา "ระนาบอ้างอิง" ว่าทิศทางไหนคือแนวดิ่ง ค่าที่วัดได้จากเซนเซอร์จะถูกนำไปเปรียบเทียบกับค่าตำแหน่งดวงอาทิตย์ที่คำนวณได้ โดยมีระบบ Hysteresis Band (แถบความต่างเผื่อไว้) เพื่อป้องกันไม่ให้มอเตอร์ขยับยิบย่อยเกินไป ระบบจะสั่งงานผ่านชุดรีเลย์เพื่อเปิด-ปิดมอเตอร์ขับเคลื่อน ผมเลือกใช้การสลับรีเลย์ธรรมดาแทน PWM ในช่วงแรกเพื่อลดสัญญาณรบกวนทางไฟฟ้า (Electrical Noise) โดยมีแบตเตอรี่ 12V 7Ah เพียงก้อนเดียวทำงานร่วมกับ DC/DC Step-up เพื่อขับมอเตอร์ขนาด 36VDC

การติดตั้งกล่อง Gyro/Accelerometer ไว้ใต้แผง — เห็นแผง "Pony" ตรงกลาง

อัลกอริทึมตำแหน่งดวงอาทิตย์

สำหรับการคำนวณตำแหน่งดวงอาทิตย์ ผมใช้กึ่งสำเร็จรูปจากเว็บไซต์ 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 ระยะไกลโดยเฉพาะ ปัญหานี้จึงหมดไปอย่างสิ้นเชิง

ในที่สุดก็สำเร็จ! วงจร Buffer บนบอร์ด Vero ใต้ Arduino Uno ช่วยให้ I2C เสถียรแม้ชาร์จไฟเต็มที่

ด้านล่างนี้คือภาพของกล่องเซนเซอร์รุ่นสมบูรณ์ที่ติดตั้งระบบบัฟเฟอร์และวงจรควบคุมแรงดันเรียบร้อยแล้ว:

วงจร Buffer และ Regulator ภายในกล่องเซนเซอร์ที่ติดตั้งบนโครงแผง

การปรับแต่งเพื่อความทนทาน (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 ครับ!

ข้อมูล Frontmatter ดั้งเดิม

title: "Non Optical Solar Tracker (East Tower 2.4KW)"
description: "Calculates the position of the sun relative to the trackers position on the earth and points the array at the sun."
author: "dougal"
category: "Motors & Robotics"
tags:
  - "solar"
  - "tracking"
views: 29946
likes: 45
price: 299
difficulty: "Intermediate"
components:
  - "1x Arduino UNO"
  - "1x Real Time clock Modual"
  - "1x P82B96  Data Buffer"
  - "1x GYRO / MAG / ACC / TEMP / PRES sensor"
  - "1x LED matrix display"
  - "1x Satellite Jacks - Actuator to move the array 1 x 36\" HD  1 x 24\" STD"
  - "1x Solar Regulator- Powers motors and Arduino Board"
  - "1x 12 to 30V step up power supply"
  - "1x Automotive fuse holders"
  - "1x 2004 LCD with I2C backpack"
  - "1x Fabrication Equipment - Welder / Cutters / Drill"
  - "1x Rotary Encoder with Push-Button"
  - "1x Battery 12V 7 AH  - The ubiquitous UPS battery"
  - "1x Veroboard"
  - "1x HC-05 Bluetooth Module"
  - "1x Machining - Lathe is needed to machine shafts to bearings"
  - "1x Hand Drill"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Android Studio"
  - "1x Visual Studio 2015"
downloadableFiles:
  - "https://projects.arduinocontent.cc/2fbfd2d7-fe3f-4b88-9195-6b07be761f25.ino"
  - "https://projects.arduinocontent.cc/f092302a-9bb6-4686-b4a5-65a296abd21a.zip"
  - "https://projects.arduinocontent.cc/7e417d15-1a13-4940-b58b-05c6db18c041.zip"
  - "https://projects.arduinocontent.cc/45ae452a-4eed-4eff-ba58-b391cff48e9f.zip"
  - "https://projects.arduinocontent.cc/f092302a-9bb6-4686-b4a5-65a296abd21a.zip"
  - "https://projects.arduinocontent.cc/2fbfd2d7-fe3f-4b88-9195-6b07be761f25.ino"
  - "https://projects.arduinocontent.cc/45ae452a-4eed-4eff-ba58-b391cff48e9f.zip"
  - "https://projects.arduinocontent.cc/7e417d15-1a13-4940-b58b-05c6db18c041.zip"
  - "https://projects.arduinocontent.cc/d5515922-a04d-4774-9bc0-989320dea10c.bas"
  - "https://projects.arduinocontent.cc/f587aa65-0133-499a-bdd2-187d4b9d16ad.zip"
  - "https://projects.arduinocontent.cc/d5515922-a04d-4774-9bc0-989320dea10c.bas"
documentationLinks: []
passwordHash: "f744d15358d6d33c9a8d59232c0dae944b105f8a57aeecf96de4c6b64fa2f2ee"
encryptedPayload: "U2FsdGVkX1/taUPsQIi0jGfbolLVkGQ+jrr9BIvyGmz2CuFseH0Bn6PaeeZm8rmgOCL4pOKNYbhn828kRCTJwzdXYzAwxd8AdVWdVR60i/gTZ5lCknzfraj5y88CLXW7lov9fU9ul8HUQIws4jeZeA=="
seoDescription: "Non Optical Solar Tracker for East Tower 2.4KW. Calculates sun position relative to the earth to point the array."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/non-optical-solar-tracker-east-tower-24kw-f5a828_cover.JPG"
lang: "en"