ผมจะสร้างโดรนที่ทำได้มากกว่าการถ่ายรูป

Mushi Project DIY Drone Phase#2 Part 2



คำเตือน :: ศัพท์เฉพาะเยอะมาก ศัพท์บางคำอธิบายไว้แล้วในหัวข้อก่อนหน้านี้จ้า





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

           หลังจากหัวข้อล่าสุดที่ผมโพสไป คือการที่เราสามารถส่งข้อมูล PWM หรือ PPM ผ่าน Arduino เข้าสู่ CC3D หรือ FC แล้วสั่งมอเตอร์ให้หมุนได้แล้ว

           ต่อมาผมได้คิดอัลกอริธึ่มเพื่อที่จะทำโหมด Altitude Hold ให้ได้ ผลก็คือติดปัญหา 2-3 อย่างที่น่าปวดหัวเอามากๆ  หลักๆเลยก็คือปัญหาตัวเซนเซอร์ที่ใช้ในการวัดระดับความสูงของโดรน (น่าจะเป็นเพราะว่าเซนเซอร์ made in china แน่ๆ 555)  โดยในโปรเจคนี้ผมใช้ Digital Barometer (Baro) หรือเซนเซอร์วัดความดันอากาศ เพื่อวัดค่าความดันอากาศ ณ จุดที่โดรนลอยอยู่ แล้วแปลงเป็นหน่วยเมตร เพื่อให้ได้ Altitude (ระดับความสูง) ที่ชัดเจนออกมา ซึ่งความสูงที่ได้เมื่อวางตัวเซนเซอร์ไว้นิ่งๆ นั้น ไม่ได้มีสิ่งที่เรียกว่าความแม่นยำอยู่เลยครับ 5555 วางไว้เฉยๆ ซักพักระดับความสูงเพิ่มขึ้นเป็นเมตรสองเมตร หรือไม่ก็ลดลงเป็นเมตรสองเมตร (ไม่ได้เซฟรูปเก็บไว้อวดซะด้วยสิ)

           ผมพยายามหาวิธีแก้ไขปัญหาที่ว่านี้โดยการตั้งสมมติฐานต่างๆนานา เพราะในความเป็นจริงแล้วระดับความสูงมันไม่น่าจะคลาดเคลื่อนขนาดนี้จริงไหมครับ

           ออกตัวไว้ก่อนว่าความจริงผมไม่ชอบเขียนโปรแกรมเอง แต่ผมเป็นประเภทชอบ Debug หรือแก้โปรแกรมคนอื่นมากกว่า (พูดง่ายๆคือก้อปโค้ดของคนอื่นมาใช้นั่นแล 5555)

           โอเค เริ่มจากการเพิ่มโค้ด Low Pass Filter (LPF) เข้าไปที่ Altitude.. ลองเปลี่ยนโค้ดที่ใช้ในการอ่านค่า parameter ในตัวเซนเซอร์.. ลองซื้อเซนเซอร์อีกรุ่นมาใช้.. ก็ยังไม่หาย จนถึงวันนี้ Altitude ที่วัดได้ในขณะที่วางเซนเซอร์ไว้เฉยๆ มีความคลาดเคลื่อนอยู่ประมาณ 20 cm ผมก็เลยเอาวะ คงใกล้เคียงสุดเท่านี้แหละ ประกอบมันเข้ากับเฟรมโดรนเลยก็แล้วกัน  Smiley


           เอาเป็นว่าในส่วนของโหมด Altitude Hold นั้นผมยังทำไม่เสร็จ วันนี้ (อาทิตย์ที่ 3 กรกฎาคม 59) เลยแค่ยัดบอร์ดกับเซนเซอร์ใส่เฟรมโดรนแล้วลองขึ้นบินดูก่อน ผลคือผ่านครับ  (ไม่ได้อัดคลิปมา เพราะชาร์จมือถือไว้บนห้องง่ะ)


to be continued.. สู้ต่อไปทาเคชิ!!!

ปล. หากท่านใดอยากจะแนะนำอะไรผม ก็รบกวนเชิญคอมเม้นได้เลยนะครับ :)




 

Create Date : 03 กรกฎาคม 2559   
Last Update : 3 กรกฎาคม 2559 20:08:25 น.   
Counter : 430 Pageviews.  

Mushi Project DIY Drone Phase#2











ผมจะอัพเดทเฟส 2 ในบล็อกนี้เรื่อยๆนะครับ

หลังจากผมสร้างโดรนที่สามารถบินและควบคุมได้ในโหมดการบิน (Flight Mode) ปกติ (Acro Mode) ซึ่งตัวควบคุมการบิน (Flight Controller, FC) ที่ผมใช้คือ CC3D (ลองกูเกิ้ลดูนะครับ) เป็น FC พื้นฐานและไม่สามารถเพิ่มหรือปรับเปลี่ยนโหมดการบินได้  จริงๆ แล้วเราสามารถซื้อ FC ที่มีโหมดบินหลายๆโหมดมาประกอบก็ได้  แต่ผมชอบความท้าทาย  ดังนั้น ขั้นต่อไปของผมคือการสร้างอัลกอริธึ่มเพื่อเพิ่มโหมดการบินเอง  โดยโหมดแรกคือ Altitude Hold (ระดับความสูงคงที่)  ทีแรกผมเองก็นึกไม่ออกมาจะทำได้ยังไง  พยายามกูเกิ้ลอยู่หลายชั่วโมงจนพบกับคลิปนี้ในยูทูปครับ


ในคลิป หนุ่มเกาหลีคนนี้ได้ใช้ CC3D เหมือนกันกับผม และมีปัญหาเรื่องการเพิ่มโหมดการบินเช่นเดียวกัน  เค้าแก้ปัญหาด้วยการสร้างอัลกอริธึ่มใส่บอร์ด Arduino  แล้วต่อมันเข้ากับ CC3D  ผลลัพธ์ที่ได้คือ  เมื่อเค้าเปิดโหมด Altitude Hold  โดรนของเค้าจะบินอยู่ที่ระดับความสูงเท่าเดิมเกือบตลอดเวลา  แม้จะมีการรบกวนเกิดขึ้น (อาจจะยังไม่สมบูรณ์แบบ แต่ถือว่าเป็นผลลัพธ์ที่น่าพอใจ)
ผมจึงอีเมล์ไปขอโค้ดจากหนุ่มคนนี้เพื่อใช้ประยุกต์เข้ากับโปรเจคของผม และเค้าก็ใจดีมาก  ส่งโค้ดกลับมาให้ พร้อมบอกผมว่า "ไม่ได้ให้ก้อปไปใช้นะ แต่ให้คุณใช้ศึกษาหรืออ้างอิงแทนดีกว่า" ผมขอขอบคุณบุรุษคนนี้อีกครั้งครับ

ใช้เวลาประมาณ 1 สัปดาห์ ศึกษาในหลายๆ เรื่อง  ที่ปวดหัวสุดคือ PWM ครับ  ตอนนี้ความคืบหน้าคือ ผมสามารถส่งข้อมูล PWM จากรีโมท > รีซีฟเวอร์ > Arduino > CC3D > ESC ได้แล้วตามคลิปเยยย

ขั้นต่อไปคือการสร้างอัลกอริธึ่มเพื่อเปลี่ยนโหมดและสร้างโหมด Altitude Hold ครับ :)




 

Create Date : 05 มิถุนายน 2559   
Last Update : 5 มิถุนายน 2559 22:32:40 น.   
Counter : 448 Pageviews.  

ทดสอบเซนเซอร์ใน GY87 และการส่งข้อมูล PWM เข้าบอร์ด Arduino



GY87 and PWM on Arduino Pro Micro

คลิปนี้คือคลิปที่ผมทดสอบเซ็นเซอร์วัดอุณปกรณ์ในชิป GY87  โดยผ่าน Sketch จากเว็บที่อ้างอิงไว้ด้านล่างครับ โดยในส่วนของเซนเซอร์ตัวอื่นๆ เช่น Gyro, Attitude ก็สามารถทดสอบและใช้งานได้กับชิป GY87 ตัวนี้เช่นกัน


ส่วนคลิปนี้คือการทดสอบการสื่อสารระหว่าง Transmitter(Tx) ไปที่ Receiver(Rx) และไปที่บอร์ด Arduino โดยใช้ Sketch ที่อ้างอิงจากด้านล่างครับ

หากใครมีข้อสงสัยหรืออยากจะแชร์ประสบการณ์ สามารถคอมเม้นมาได้เลย ยินดีรับฟังและตอบปัญหาครับ :)

อ้างอิง :
//Sketch ที่ใช้ทดสอบ GY87  
//Sketch ที่ใช้ทดสอบการส่ง PWM เข้าบอร์ด Arduino




 

Create Date : 01 มิถุนายน 2559   
Last Update : 1 มิถุนายน 2559 22:05:09 น.   
Counter : 384 Pageviews.  

ทุกอย่างย่อมมีการเริ่มต้น





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


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

  จากนี้ไป ผมขอใช้บล็อกนี้ในการบันทึกเรื่องราวการประดิษฐ์ Drone หรือ UAV หรือ Quadcopter ของผม  และผมตั้งใจจะเขียนไปเรื่อยๆ ไม่ให้บล็อกร้างแน่นอน 

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

  ทีนี้บล็อกไหนดีล่ะ  ผมคิด(ไปเอง)ว่าคนไทยใช้บล็อกพันทิพย์มากที่สุด  งั้นเขียนลงบล็อกพันทิพย์นี่แหละ

  ขอบคุณแรงบันดาลใจจากชายเกาหลีคนนึงที่มีน้ำใจเผื่อแผ่โค้ดอันทรงคุณค่า โดยไม่หวังผลตอบแทนอะไรให้กับผม 




 

Create Date : 29 พฤษภาคม 2559   
Last Update : 29 พฤษภาคม 2559 23:21:01 น.   
Counter : 282 Pageviews.  


ขี้เถ้าจะไม่กลับมาเป็นฟืน
Location :


[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




[Add ขี้เถ้าจะไม่กลับมาเป็นฟืน's blog to your web]