MyProject

Arduino ก้อทำ PID Motor control ได้นะครับ

By January 27, 2009 January 30th, 2011 12 Comments

ตอนนี้ ผมลองๆ กลับไปทำหุ่นยนต์ ตัวน้อยๆ อีกครั้ง แต่ลองทำใหม่ไปที่ล่ะขั้นตอน ผมเริ่มจากตัว motion control หรือ motor control

motor control คืออะไร คือส่วนควบคุมการเคลื่อนที่ของมอเตอร์ ไปยังตำแหน่งที่ถูกต้องโดยการควบคุม จะต้องอาศัย การป้อนกลับ ของเซ็นเซอร์ตำแหน่ง (ผมใช้ encoder)

ซึ่งมอเตอร์ส่วนสำคัญของ งานที่หุ่นยนต์ และงานอุตสาหกรรม เสมอ ซึ่งบทความตอนนี้อาจจะเครียดสักหน่อย วิชาเกินจะเยอะพิเศษ

ตัวอย่างการใช้่งาน

สนใจติดตามอ่านกันต่อไปได้เลยครับ


ใครจะไปเชื่อว่า arduino หรือ mega168 ราคาไอซี 120 กว่าบาท (ถ้าใช้ mega8 ราคาลงไปอีก) สามารถ เอามาใช้งาน ระบบสูงแบบนี้ได้ ซึ่งตามปกติ ในงานลักษณะดังกล่าวที่เรียกว่า feedback control น่าจะใช้ mcu ระดับสูง 16bit 32bit dsp มันต้องมีการคำนวนตัวเลขจำนวนมาก และไม่ได้มี โมดุลพิเศษ สำหรับอ่านค่า encoder ซึ่งเทียบแล้ว เสียเปรียบทุกด้านเลยครับ

ประสิทธิ์ภาพของ motor control ด้วย arduino อาจจะไม่ได้สูงเหมือนเทียบกับของอุตสาหกรรม แต่ ถ้าเทียบกับราคาไอชี กับ คอมไพลเลอร์ที่ฟรี มันก้อน่าสนใจ ที่จะมาลองเรียนรู้ใช่ไหมครับ

วิธีการทำและการใช้งาน จะเป็นลักษณะสไลด์ครับ พี่ๆ น้องๆที่สนใจ สามารถเข้าไปชมจากสไลด์ข้างล่างนี้ได้เลยครับ โดยเอกสารที่ผมจัดทำได้นำไปใช้ใน workshop เพื่อให้น้องได้ลองทำ motor control แบบง่ายๆ เพื่อเพิ่มความเข้าใจด้วยครับ

โดยเนื้อหาจะประกอบด้วย
– แนะนำ arduino
– วิธีการอ่าน encoder โดยใช้ external interrupt
– เทคนิคการควบคุมแบบ feedback (กำลังเรียบเรียง)

ตัวอย่าง Source Code ในสไลด์โหลดได้ที่นี้ครับ

motor_lab

chang

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

12 Comments

  • tongtk says:

    อยากรู้เกี่ยวกับ PID อ่ะครับ
    เคยอ่านหลักการมาบ้างแต่ไม่รู้เอาไปใช้งานจริงๆยังไง
    ช่วยแนะนำการทดลองง่ายๆด้วยนะครับ
    ขอบคุณครับ

  • fixx says:

    อ๊ากกกก อยากทำได้แบบนี้จัง

    ขอบคุณครับสำหรับความรู้ดีๆ

  • M_ says:

    คุณช้างขออีเมลหน่อยได้ไหมครับ คืออยากทราบว่ารับสอนไหม pid

    ราคาตามที่คุณช้างเรียกนะครับ

    • chang says:

      แหม ไม่ผมก้อไม่ถนัดสอนด้วยครับ เอาเป็นว่าติดอะไร ก้อถามมาได้เลยครับ

      email อยู่ที่หน้า contact ครับ

  • ซู๊ดยอดดดดดดดดดดด

  • Pax_z says:

    ผมอยากทราบ PID contron ที่ใช้ในหุ่นวิ่งตามเส้น พอจะมี source code ตัวอย่าง ของ Arduino รึเปล่าคับ

    ขอบคุณคับ

  • Joebiostar says:

    อยากทำอ่ะทำไงอ่ะ
    อยากเอาไปทำอะไรๆๆเล่นหน่อย

  • PID says:

    พี่พอมีตัวอย่างที่เอา PID มา Control ทั้ง Position และ Velocity มั้ยครับ +​ +!

  • ut says:

    ผมอยากทราบว่า บอร์ด Arduino เบอร์ไหนบ้างครับ ที่สามารถต่อกับ motor encoder ได้ หรือ ถ้าดูจาก datasheet เราจะต้องดูคำว่าอะไร ครับ

  • Siwakron Outtama says:

    พี่ครับ ผมขอไลด์เนื้อหาเรื่อง ”

    ARDUINO ก้อทำ PID MOTOR CONTROL ได้นะครับ

    ” หน่อยครับ พอดีผมจะเอาไปศึกษาและทำ Project อ่ะครับ

  • Visarut Tangsuphakit says:

    ทำไมค่าiMaxต้องเท่ากับ100ด้วยครับ

  • ฉัตร says:

    ขอแบบวงจรตัวนี้หน่อยครับจะลองศึกษาดูครับขอบคุณครับ รบกวนช่วยส่งมาที่ death._,1@hotmail.com

Leave a Reply