[OpenKB][KidBright][KidBrightIDE] ขับมอเตอร์กระแสสูงด้วยบอร์ด Dual-EVO24X9 I2C+R/C

การขับมอเตอร์ขนาดใหญ่ด้วยบอร์ด KidBright หรือ OpenKB จะไม่ใช่เรื่องยากอีกต่อไป
เมื่อใช้บอร์ด Dual_EVO24X9 I2C+R/C  ด้วย KidBright IDE + Plugins

        บอร์ด Dual-EVO24X9 I2C+R/C เป็นบอร์ดขับมอเตอร์ไฟตรงแบบ 2 ช่อง ทำงานโหมด R/C คือต่อกับรีโมตคอนโทรลของวิทยุบังคับ และโหมด I2C ที่ต่อกับไมโครคอนโทรลเลอร์ได้ ต่อพ่วงบอร์ดได้สูงสุด 8 บอร์ดด้วยการกำหนดค่าแอดเดรสที่ต่างกันจาก ดิฟสวิตช์ ตำแหน่งรูเจาะบอร์ดตรงกับบอร์ด KidBright และไฟเลี้ยงที่ใช้เลี้ยงมอเตอร์สามารถจ่ายไฟ 5V ไปให้กับบอร์ด kidBright หรือ OpenKB ได้ด้วย ลดความยุ่งยากในการหาแหล่งจ่ายไฟ 2 ชุดได้เป็นอย่างดี ที่สำคัญขับกระแสได้ถึง 9A ต่อเนื่อง และกระแสชั่วขณะได้ที่ 30A ที่แรงดันสูงสุด 24V จากไอซีขับมอเตอร์เบอร์ VNH5019

คุณสมบัติ

  • ใช้ไอซีขับมอเตอร์เบอร์ VNH5019
  • ขับกระแสไฟฟ้าชั่วขณะ 30A (ขับกระแสไฟฟ้าต่อเนื่อง 9A) ที่แรงดัน 24V
  • รับแรงดันไฟเลี้ยงในช่วง 7-25V
  • แรงดันที่จ่ายให้มอเตอร์เท่ากับ 0.98 เท่าของแรงดันไฟเลี้ยง
  • มีปุ่มสำหรับทดสอบการทำงานของวงจรขับมอเตอร์
  • ควบคุมความเร็วและทิศทางมอเตอร์ได้ทั้งการสื่อสารด้วยระบบบัส I2C จากไมโครคอนโทรลเลอร์ และ R/C Receiver จากรีโมตคอนโทรลของวิทยุบังคับ
  • ในโหมด R/C สามารถเลือกเปิด/ปิด โหมด 2WD R/C Mixer ได้ด้วยจั้มเปอร์
  • เชื่อมต่อแบบ I2C บัสได้ที่ระดับแรงดัน 2.7V – 5V
  • โหมด I2C ต่อพ่วงบอร์ดได้ถึง 8 บอร์ด จากการกำหนดตำแหน่งแอดเดรสด้วยดิฟสวิตช์
  • สามารถอ่านค่าระดับแรงดันไฟขาเข้าบอร์ดได้ผ่าน I2C *
  • สามารถอ่านค่ากระแสขับโหลดโดยประมาณของแต่ละช่อง Output ได้ผ่าน I2C *
  • แสดงทิศทางการหมุนด้วย LED
  • มีวงจรป้องกันการจ่ายไฟเลี้ยงกลับขั้ว
  • ตัดการทางานเมื่อมีอุณหภูมิสูงเกินกว่า 100 องศาเซนเซียส
  • มีฮีทซิงค์ช่วยระบายความร้อน
  • ขนาด PCB 55 x 70 mm.
  • น้าหนักรวม 49 g.

การเชื่อมต่อบอร์ด Dual-EVO24X9 I2C+R/C กับ KidBright และบอร์ด OpenKB

บอร์ด KidBright และบอร์ด OpenKB มีจุดเชื่อมต่อ I2C บัสสำหรับเชื่อมต่อกับบอร์ดขยายต่างๆ ภายนอกอยู่แล้ว สามารถใช้สาย KB-CHAIN ซึ่งมีมาให้กับบอร์ด Dual-EVO24X9 I2C+R/C เชื่อมต่อได้เลย

สำหรับไฟเลี้ยงที่จ่ายให้บอร์ดขับมอเตอร์ จะเป็นแหล่งจ่ายไฟจากแบตเตอรี่ หรืออแดปเตอร์ก็ได้ จะต้องมีแรงดันในช่วง 7-24V โดยแรงดันนี้จะต้องสัมพันธ์กับมอเตอร์ที่ใช้ ถ้าเป็นมอเตอร์ 12V ก็ควรใช้แรงดันไฟเลี้ยงที่อยู่ในช่วง 12V จากตัวอย่างใช้มอเตอร์ 12V และเลือกใช้แบตเตอรี่เป็นแบบลิเธียมโพลิเมอร์ขนาด 3 เซล 11.1V (12.6V เมื่อชาร์จเต็ม) บนบอร์ด Dual-EVO24X9 I2C+R/C มีวงจร Regulator ในตัวที่จะจ่ายแรงดันไฟเลี้ยงย้อนไปให้กับบอร์ด KidBright ได้ด้วย โดยไม่จำเป็นต้องหาไฟเลี้ยงภายนอกเพิ่มเติม

การทดสอบเบื้องต้นก่อนการเขียนโค้ด

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

การติดตั้ง Plugins เพื่อใช้งานบอร์ด Dual-EVO24X9 I2C+R/C

KidBright IDE จะยังไม่มีไลบรารี่และชุดคำสั่งเพื่อติดต่อกับบอร์ด Dual-EVO24X9 ได้โดยตรงจะต้องเพิ่ม Plugins เข้าไปก่อนทำตามขั้นตอนดังนี้

  1. เข้าไปที่ https://store.kidbright.info/
  2. หา Plugins ที่ชื่อ Dual-EVO24X9 โมดูลขับมอเตอร์ 12V จากนั้นคลิกเข้าไป

  1. ที่หน้าต่างแสดงรายละเอียดให้คลิกลงมาด้านล่างสุด

  1. จะได้ไฟล์ dualevo24x9_v1.0.0 เป็น zip ไฟล์มาเก็บไว้

  1. เปิดโปรแกรม KidBright IDE ที่เมนู Plugins เลือก Install Plugins

  1. ชี้ไปยังตำแหน่ง Plugins dualevo24x9_v1.0.0 ที่ดาวน์โหลดมา จากนั้นกดปุ่ม Open

  1. โปรแกรม KidBright IDE จะติดตั้ง Plugins แล้วเปิดปิดตัวโปรแกรมใหม่อีกครั้ง

  1. Plugins Motor Driver (Dual-EVO24X9) ก็ปรากฏขึ้นมาพร้อมใช้งาน

รายละเอียดบล็อกคำสั่งควบคุมมอเตอร์

คำสั่งเพื่อให้มอเตอร์ 1 หรือมอเตอร์ 2 หมุนตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาตามความเร็วที่กำหนด

address เป็นค่าตำแหน่งแอดเดรสของบอร์ด Dual-EVO24X9 ขณะสื่อสารในบัส I2C โดยขึ้นอยู่กับตำแหน่งของดิฟสวิตช์ มีค่าอยู่ระหว่าง 0x50 ถึง 0x57 (ฐานสิบหก)

motor ตำแหน่งของมอเตอร์ที่ต้องการสั่งงาน มี 2 ตัวคือ 1 และ 2

move กำหนดทิศทางการเคลื่อนที่ของมอเตอร์ Forward (ตามเข็ม) Backward (ทวนเข็ม) Stop (หยุด)

speed ความเร็วของมอเตอร์ค่าเป็นเปอร์เซ็นต์ 0-100

ตัวอย่างที่ 1 กดสวิตช์ควบคุมมอเตอร์

ตัวอย่างนี้ใช้สวิตช์ SW1 และ SW2 บนบอร์ด KidBright หรือ OpenKB เพื่อกำหนดควบคุมมอเตอร์ โดย
ถ้ากดสวิตช์ SW1 และ SW2 พร้อมกันจะให้มอเตอร์ทั้งสองตัวหยุดหมุน
ถ้ากดสวิตช์ SW1 ตัวเดียวให้มอเตอร์ทั้งสองตัวเคลื่อนที่ตามเข็มนาฬิกา
ถ้ากดสวิตช์ SW2 ตัวเดียวให้มอเตอร์ทั้งสองตัวเคลื่อนที่ทวนเข็มนาฬิกา

ตัวอย่างที่ 2 ทดลองปรับความเร็วมอเตอร์

ตัวอย่างนี้สร้างตัวแปร X ขึ้นมาเพื่อเก็บค่าความเร็วที่ต้องการส่งไปควบคุมมอเตอร์
repeat while ชุดแรก จะวนเพิ่มค่าตัวแปร X แล้วนำค่าไปขับมอเตอร์ จะหลุดจากลูปก็ต่อเมื่อตัวแปร X มีค่าเท่ากับ 100
repeat while ชุดที่ 2 จะวนลดค่าตัว X นำค่าไปขับมอเตอร์ จนกระทั่งค่าความเร็วมอเตอร์ เท่ากับ 0 ก็จะหลุดจากลูป
โดยขณะที่มีการเปลี่ยนแปลงค่าตัวแปร X ให้นำตัวแปร X ไปแสดงที่หน้าจอ LED 16×8 ด้วย เพื่อให้เห็นการเปลี่ยนแปลงค่าที่เกิดขึ้น

Facebook Comments Box