วันอาทิตย์ที่ 4 ตุลาคม พ.ศ. 2558

Betaflight Firmware [Cleanflight รุ่นปรับปรุง โดย Boris]

Betaflight Firmware [Boris]

Reference: http://www.rcgroups.com/forums/showthread.php?t=2464844

หากท่านไดใช้ Firmware Cleanflight อยู่ แต่ไม่เคยลองรุ่นทดสอบ/ปรับปรุง ของนาย Boris, คุณได้พลาดสุดยอด Firmware ที่มีการพัฒนาข้ามไปอีกขั้นแล้ว... (ขั้นนั้นเลยทีเดียว)

หลังจากที่ได้ลองกับตัวเอง พบว่า Firmware ตัวนี้พัฒนาไปมากครับ สามารถสั่งงาน เลี้ยวซ้าย ขวา,หยุด,  ได้ดั่งใจ ได้ดั่งใจ อย่างที่ไม่เคยเจอมาใน Cleanflight รุ่น official (ตอนนี้ Version 1.10)

นาย  Boris เป็นคนนึง ที่ร่วมพัฒนา Cleanflight ครับ แต่แยกส่วนนึงออกมา เขียน software module "Low Pass Filter" เพื่อกรองสัญญาณรวบกวน ที่มาจาก Sensor ทั้งหลาย ให้ข้อมูลที่ส่งไปประมวลผลที่ CPU ถูกต้องแม่นยำที่สุด นอกจากนั้นเค้าเปลี่ยนวิธีการส่งผ่านข้อมูลจาก Gyro ไปยัง CPU เพื่อการประมวลผลที่เร็วขึ้น

แน่นอนหลังจากที่ทดสอบเป็นที่หน้าพอใจ เค้าก็จะรวม สิ่งที่เค้าเขียนเข้าไปใน Official Cleanflight ใน Version ถัดๆไป... นั่นหมายถึง คนที่จะใช้ Firmware ตัวนี้ ต้องเข้าใจว่านี่คือ รุ่นทดสอบ เป็น beta version ซึ่งเค้ารับ feedback จากพวกเราที่เล่นไปปรับปรุง ตลอดเวลา (อันนี้ต้องทำใจ บางทีวันนึง พี่แก  up beta frimware มากกว่า หนึ่งครั้ง.....)

สิ่งที่ปรับปรุงเพิ่มขึ้นมาของ  Betaflight

1. Gyro based loop implementation

ตอนนี้ เรายังคงคุ้นชินกับการ set ค่า looptime บน flight controller(FC), อันนี้ คงแล้วแต่ความสามารถของ FC แต่ละตัว,  Boris ค้นพบว่า ส่วนใหญ่ ข้อมูลที่ส่งจาก Gyro จะไม่พอดีกับ looptime ทำให้ CUP เสียเวลาเรารับข้องมูลจาก Gyro ไปโดยเปล่าประโยชน์ "Loop and gyro are completaly out of sync"

อันนี้การรับค่า Gyro แบบเดิมๆ


อันนี้ เป็นสิ่งที่ถูกพัฒนาขึ้นไหม่ โดยที่  Looptime จะเริ่มต้นเมื่อมีการอ่านค่าจาก Gyro ได้ก่อน ทำให้ PID Controller ได้รับค่าจาก Gyro เอาไปประมวลผลได้อย่างทันท่วงที
นั่นหมายถึง เราไม่ต้องสนใจค่า Looptime แล้วครับท่าน!!!!!! เพราะวงรอบการทำงานของ  CPU จะถูกทริกโดย ข้อมูลที่ได้จาก Gyro (ในตอนนี้ board STM32F1 +Gyro I2C จะได้ค่า sample ราวๆ 1Khz หรือ Looptime 1000)


























































2. Low-Pass filter (dterm_cut_hz) ที่ถูกออบแบบมาไหม่

ผลของ low-pass filter ที่ออกแบบมาไหม่ ทำให้ FC ได้รับข้อมูลจาก  Gyro แม่นยำขึ้น ดูผลเปรียบเทียบจาก blackbox PID and Gyro Blackbox graph ด้านล่าง

Reference: http://blog.oscarliang.net/betaflight-firmware-setup/#more-9523 

นี่คือค่าของ Gyro ที่บันทึกจาก Cleanflight 1.90


















ค่าของ Gyro ที่ผ่าน Low-pass filter บน  Betaflight

















เห็นความแตกต่างที่ชัดเจนแล้วใช่ไหมครับ
นี่คือเหตุผล ที่ทำให้ Firmware ตัวนี้ทำให้ลำ FPV ของเราเชื่องขึ้น อย่างเห็นได้ชัด รวมไปถึงการตอบสนองต่อการสั่งงานจาก TX Stick และ รอบของ motor ที่เรียบขึ้น (ขอให้เปิด OneShort ด้วยนะครับ)


ปล. ผมใช้  PID controller 2 LuxLloat และ ปิดการทำงานของ Accelerometer ด้วย CLI Command "set acc_hardware=1"

ปิดไปแล้วไม่ต้องกังวล เพราะเรายังมี Gyro แล้วคุณจะค้นพบว่า บิน Acro Mode {Gyro Only) นี่มันดีออกก

ขั้นตอน การ Flash Firmware Betaflight 

เราจะ flash Betaflight ผ่าน ตัว Cleanfligh-configurator ผมจะไม่ลงรายละเอียดตรงนี้นะครับ

1.ไป Download Hex file ได้ที่นี่เลยครับ Download the betaflight firmware ที่นี่
2. เลือก Firmware ที่ตรงกับ Flight Controller ของเราโดยคลิกไปบนชื่อครับ ห้ามคลิ๊กขวา Save as.. เด็ดขาด (ผมใช้ Flip32 ผมจึงเลือก betaflight_NAZE.hex)
3. เมื่อกดแล้วจะมีลักษณะหน้าตาตามภาพด้านล่างนะครับ ทีนี้ เราคลิ๊กขาวตรงปุ่ม RAW แล้ว Save link as.... เป็นFile hex ได้เลย



4. เปิด Cleanflight-Configurator software ขึ้นมา เสียบ Flighcontroller เข้าไป แต่อย่าเพิ่งกด Connect นะครับ
5. มาที่ Tab "Firmware Flasher" [1] แล้วกดปุ่ม Load Firmware [Local] [2] จากนั้นเลือก File hex mujgik load มา แล้วกดปุ่ม Flash Firmware [3] ได้เลย


























*** การเล่นกับ Firmware มีความเสี่ยง โปรดใช้วิจารณญาณในการทำนะครับ :D ข้อให้สนุกกับการบิน 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น