การขับมอเตอร์ขนาดใหญ่ด้วยบอร์ด 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 เข้าไปก่อนทำตามขั้นตอนดังนี้
- เข้าไปที่ https://store.kidbright.info/
- หา Plugins ที่ชื่อ Dual-EVO24X9 โมดูลขับมอเตอร์ 12V จากนั้นคลิกเข้าไป
- ที่หน้าต่างแสดงรายละเอียดให้คลิกลงมาด้านล่างสุด
- จะได้ไฟล์ dualevo24x9_v1.0.0 เป็น zip ไฟล์มาเก็บไว้
- เปิดโปรแกรม KidBright IDE ที่เมนู Plugins เลือก Install Plugins
- ชี้ไปยังตำแหน่ง Plugins dualevo24x9_v1.0.0 ที่ดาวน์โหลดมา จากนั้นกดปุ่ม Open
- โปรแกรม KidBright IDE จะติดตั้ง Plugins แล้วเปิดปิดตัวโปรแกรมใหม่อีกครั้ง
- 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 ด้วย เพื่อให้เห็นการเปลี่ยนแปลงค่าที่เกิดขึ้น