สารบัญ:

PCA9685 Controller ของ Tim: 5 ขั้นตอน (พร้อมรูปภาพ)
PCA9685 Controller ของ Tim: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: PCA9685 Controller ของ Tim: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: PCA9685 Controller ของ Tim: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: 16 channel servo controller with Arduino | PCA9685 16 channel PWM servo motor driver tutorial 2024, พฤศจิกายน
Anonim
PCA9685 Controller ของ Tim
PCA9685 Controller ของ Tim

หลายโครงการที่ทำกับ Arduino เกี่ยวข้องกับการใช้เซอร์โว

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

แต่สำหรับโปรเจ็กต์ที่ต้องการการควบคุมเซอร์โวจำนวนมาก PCA9685 16-channel, 12-bit PWM Fm+ I2C-bus LED Controller (ให้ชื่อเต็มของมัน) อาจเป็นทางเลือกที่ดีกว่า

คอนโทรลเลอร์ PCA9685 LED แม้จะออกแบบมาเพื่อควบคุม LED แต่ก็สามารถกำหนดค่าให้ควบคุม Servo ได้ (แผ่นข้อมูล)

PCA9685 สื่อสารผ่าน I2C และมีที่อยู่ที่เป็นไปได้ 64 แห่ง ซึ่งหมายความว่า 64 ของอุปกรณ์เหล่านี้สามารถถูกล่ามโซ่แบบเดซี่ได้ทีละตัว โดยแต่ละตัวมี 16 เซอร์โวหรือ LED ติดอยู่กับแต่ละตัว มีทั้งหมด 1024 หมายเลขที่ควบคุมได้จาก Arduino ตัวเดียว

ขณะนี้มีโครงการที่มีเซอร์โวจำนวนมากในการควบคุม สมมติว่าเป็นหุ่นยนต์สี่ขา ขาแต่ละข้างมีเซอร์โวสองตัวเพื่อควบคุม (เราเริ่มต้นง่ายๆ ในทางทฤษฎี แอปของฉันสามารถควบคุมได้ 1024)

การตั้งค่าเซอร์โวแปดตัว ค้นหาการตั้งค่าการทริมสำหรับแต่ละรายการ โดยกำหนดสูงสุดที่นั่น และนาที ตำแหน่งอาจใช้เวลานานมาก

การเขียนและเขียนโค้ดใหม่เพื่อดูว่าเกิดอะไรขึ้นอาจเป็นเรื่องยุ่งยาก

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

ขั้นตอนที่ 1: การเชื่อมต่อ

"กำลังโหลด="ขี้เกียจ"

ส่วนสคริปต์เป็นส่วนที่สนุก ซึ่งคุณสามารถสร้างลำดับของตำแหน่งเซอร์โวได้

ให้โครงการของคุณทำในสิ่งที่คุณต้องการจะทำ

  • ปุ่มเพิ่มค่า เพิ่มการตั้งค่าตัวเลื่อนปัจจุบัน
  • ปุ่ม เพิ่มการหน่วงเวลา เพิ่มการหน่วงเวลาเป็นมิลลิวินาทีที่ตั้งไว้ในกล่องถัดจากปุ่ม
  • ปุ่ม Add Address เพิ่มสวิตช์คำสั่งไปยัง PCA9685 อื่น (เปลี่ยนที่อยู่เป็นด้านซ้ายบน) นอกจากนี้ยังใช้เพื่อเปลี่ยนโหมด โหมด Servo หรือโหมด LED
  • ปุ่ม Run Script F เรียกใช้สคริปต์ปัจจุบันไปข้างหน้า
  • ปุ่ม Run Script R เรียกใช้สคริปต์ปัจจุบันย้อนกลับ
  • กล่องกาเครื่องหมายวนรอบจะทำให้สคริปต์ปัจจุบันทำงานซ้ำแล้วซ้ำอีก เมื่อกดปุ่มเรียกใช้สคริปต์ปุ่มใดปุ่มหนึ่ง หากต้องการหยุดการวนซ้ำให้ยกเลิกการเลือกช่องทำเครื่องหมาย
  • ปุ่ม Clear Script ทำหน้าที่ล้างคำสั่งสคริปต์ทั้งหมด
  • ปุ่มโหลด โหลดสคริปต์ที่บันทึกไว้ก่อนหน้านี้
  • ปุ่มบันทึก บันทึกสคริปต์ปัจจุบัน

บันทึก!

ฉันไม่ได้เขียนสคริปต์การตรวจสอบใด ๆ ลงในแอปพลิเคชัน สคริปต์ต้องเป็นไปตามกฎต่อไปนี้:

หนึ่งบรรทัดต่อคำสั่ง ค่าคั่นด้วยช่องว่าง

  • คำสั่งเซอร์โวเริ่มต้นด้วย "S" ตามด้วยค่า 16 ค่า แต่ละค่าระหว่าง 0 ถึง 600
  • คำสั่ง LED เริ่มต้นด้วย "L" ตามด้วยค่า 16 ค่า แต่ละค่าระหว่าง 0 ถึง 4095
  • คำสั่ง Dely เริ่มต้นด้วย "D" ตามด้วยค่าเดียว ระหว่าง 0 ถึง 10, 000
  • คำสั่งที่อยู่เริ่มต้นด้วย "A" ตามด้วยค่าหนึ่งค่าและหนึ่งคำ ค่าระหว่าง 0 ถึง 64 คำว่า "Servo" หรือ "LED"

แอปพลิเคชั่นสามารถควบคุม Servo หรือ LED, อย่าใส่ LED และ Servo บน Breakout Board เดียวกัน, Servo และ LED ต้องการความถี่ที่แตกต่างกันเพื่อให้ทำงานได้อย่างถูกต้อง

หากคุณพยายามควบคุมเซอร์โวด้วยการตั้งค่า LED เซอร์โวอาจดูไม่ปกติ มันจะไม่เป็นอันตรายต่อเซอร์โว แต่หากติดตั้งไว้ในโปรเจ็กต์ คุณอาจไม่ต้องการให้เซอร์โวย้ายไปที่ตำแหน่งใดตำแหน่งหนึ่ง

ฉันได้ทำวิดีโอของสคริปต์ง่ายๆ

ขั้นตอนที่ 5: บทส่งท้าย

เมื่อทำตามคำแนะนำใน Instructables คนส่วนใหญ่คาดหวังว่าจะลงเอยด้วยรายการที่จับต้องได้เมื่อสิ้นสุดการสอน

ฉันพบว่าไม่มีหมวดหมู่ที่เหมือนจริงสำหรับซอฟต์แวร์

ฉันคิดว่าคุณสามารถจัดมันเป็นเครื่องมือได้ ถึงอย่างนั้น คำแนะนำไม่ใช่วิธีการสร้างเครื่องมือ แต่เป็นวิธีการใช้

หวังว่าการมีเครื่องมือเช่นนี้ ผู้คนจะสามารถสร้างโครงการที่ดีขึ้นด้วย Arduino โดยใช้เซอร์โวหรืออาร์เรย์ LED

โปรดแก้ตัวในวิดีโอของโครงการที่กำลังดำเนินการอยู่ ฉันใช้บอร์ดฝ่าวงล้อม ESP32-CAM กับแอปพลิเคชันอื่นที่ฉันสร้างขึ้นเพื่อดูภาพจาก ESP32-CAM

แก้ไข

ฉันได้ปรับปรุงมัน

สามารถพบการอัปเดตได้ที่นี่: Tims_PCA_9685_Controller

แนะนำ: