สารบัญ:

วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java): 12 ขั้นตอน (พร้อมรูปภาพ)
วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java): 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java): 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java): 12 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: FRC Java Tutorial - WPILib 2022 Command Based Programming Ep 2:Drivetrain & Tele-op Joystick Control 2024, กรกฎาคม
Anonim
วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java)
วิธีเขียนระบบขับเคลื่อนอย่างง่ายสำหรับ FRC (Java)

นี่คือบทช่วยสอนเกี่ยวกับวิธีการสร้างระบบขับเคลื่อนอย่างง่ายสำหรับหุ่นยนต์ FRC บทช่วยสอนนี้อนุมานว่าคุณรู้ว่าพื้นฐานของ java, eclipse และได้ติดตั้ง wpilib แล้ว เช่นเดียวกับไลบรารี CTRE

ขั้นตอนที่ 1:

ภาพ
ภาพ

เปิด Eclipse

ขั้นตอนที่ 2: สร้างโครงการหุ่นยนต์ใหม่

สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
สร้างโครงการหุ่นยนต์ใหม่
  1. คลิกขวาที่ตัวสำรวจแพ็คเกจ คลิกใหม่ จากนั้นคลิกอื่นๆ
  2. เลื่อนลงมาจนกว่าคุณจะเห็น WPILib Robot Java Development (หากคุณไม่เห็น แสดงว่าคุณไม่ได้ติดตั้งทรัพยากร wpilib)
  3. คลิกที่ Robot Java Project
  4. จากนั้นกรอกชื่อโปรเจ็กต์และคลิกประเภทโปรเจ็กต์หุ่นยนต์ตามคำสั่ง (ควรกรอกแพ็คเกจแล้วและเหมือนกับโลกจำลอง)

ขั้นตอนที่ 3: สร้าง/กรอกข้อมูลใน RobotMap

สร้าง/กรอกข้อมูลใน RobotMap
สร้าง/กรอกข้อมูลใน RobotMap
สร้าง/กรอกข้อมูลใน RobotMap
สร้าง/กรอกข้อมูลใน RobotMap

สร้างตัวแปรสุดท้ายที่มีจำนวนพอร์ตกรงเล็บต่างๆ

ขั้นตอนที่ 4: ลบคำสั่งตัวอย่างและระบบย่อยตัวอย่าง

ลบคำสั่งตัวอย่างและระบบย่อยตัวอย่าง
ลบคำสั่งตัวอย่างและระบบย่อยตัวอย่าง
ลบคำสั่งตัวอย่างและระบบย่อยตัวอย่าง
ลบคำสั่งตัวอย่างและระบบย่อยตัวอย่าง

ขั้นตอนที่ 5: สร้าง DriveTrainSubSystem

สร้าง DriveTrainSubSystem
สร้าง DriveTrainSubSystem
สร้าง DriveTrainSubSystem
สร้าง DriveTrainSubSystem
สร้าง DriveTrainSubSystem
สร้าง DriveTrainSubSystem
  1. สร้างคอนสตรัคเตอร์ใหม่ในระบบย่อยระบบขับเคลื่อนที่สร้างขึ้นใหม่ จากนั้นสร้างวัตถุ CANTalon ที่สอดคล้องกับกรงเล็บบนระบบขับเคลื่อน
  2. สร้าง RobotDrive ชื่อ Drive
  3. สร้างอินสแตนซ์ Objects เหล่านี้ในตัวสร้าง (ตรวจสอบให้แน่ใจว่าใช้ค่าสำหรับกรงเล็บที่เราสร้างขึ้นในแผนที่หุ่นยนต์) สำหรับ Robot Drive เราจะใช้ตัวสร้างที่ใช้ตัวควบคุมมอเตอร์ 4 ตัว (RobotDrive(SpeedController frontLeftMotor, SpeedController rearLeftMotor, SpeedController frontRightMotor, SpeedController rearRightMotor))
  4. จากนั้นสร้างวิธีอาร์เคดไดรฟ์ () โดยมีตัวแปรอินพุตสองตัวคือ x ไปข้างหน้าและข้างหลังและ y อยู่ทางขวาและซ้าย ข้างในคุณจะเรียก drive.arcade ด้วยค่าไปข้างหน้าและหมุน
  5. จากนั้นเปลี่ยน initDefaultCommand() เพื่อให้มีบรรทัด setDefaultCommand(new DriveTrainCommand());
  6. ไม่ต้องกังวลกับข้อผิดพลาดทั้งหมดเลย

ขั้นตอนที่ 6: สร้าง DriveTrainCommand

สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
สร้าง DriveTrainCommand
  1. เริ่มแรกโดยไปที่เมนูที่เราเคยใช้สร้างระบบย่อยและหุ่นยนต์ฉายภาพตัวเอง (นี่เป็นครั้งสุดท้ายที่ฉันจะแสดงขั้นตอนจริงนี้ในขั้นตอนต่อไป ฉันจะพูดเพียงเพื่อสร้างคำสั่งหรือสร้าง ระบบย่อยและคุณจะถือว่ามันอยู่ในเมนูนี้) คลิกคำสั่งและกรอกชื่อคลาสด้วย DriveTrainCommand (ถ้าคุณเปลี่ยนชื่อไฟล์เหล่านี้ คุณจะไม่สามารถมีชื่อเดียวกันได้)
  2. ใน DriveTrainCommand ใหม่ คุณจะเห็นว่ามี 6 วิธี วิธีแรกคือตัวสร้าง และอีก 5 วิธีคือส่วนหนึ่งของรหัสที่หุ่นยนต์จะเรียกเมื่อคำสั่งทำงาน เรารู้ว่าคอนสตรัคเตอร์ทำอะไร เรามาอธิบาย Initialize, Run, isFinished, end และ Interrupted Initialize ถูกเรียกหนึ่งครั้งทุกครั้งที่มีการเรียกคำสั่ง วิธี execute จะถูกเรียกอย่างต่อเนื่องจนกว่าคำสั่งจะสิ้นสุด ซึ่งเกิดจากการที่ isFinished คืนค่า true คำสั่งจะหยุดทำงาน วิธี end จะถูกเรียกหนึ่งครั้งหลังจาก isFinished เมธอดถูกเรียก และอินเตอร์รัปต์จะถูกเรียกเมื่อรีซอร์สคำสั่งถูกใช้โดยคำสั่งอื่นและคำสั่งจะสิ้นสุด (โดยไม่เรียกเมธอด end)
  3. ก่อนอื่นใน DriveTrainCommand ใน Constructor คุณต้องเพิ่มบรรทัดที่ต้องใช้ (requires(Robot. DriveTrainSub)) ให้สังเกตว่า DriveTrainSub ไม่เหมือนกับชื่อระบบย่อยและมีจุดประสงค์

ขั้นตอนที่ 7: ข้ามไปที่ Robot

กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
กระโดดไปที่หุ่นยนต์
  1. ต่อไปเราจะข้ามไปที่ Robot Class
  2. จากนั้นเราจะเปลี่ยนบรรทัด (public static ExampleSubsystem exampleSubsystem = new ExampleSubsystem();) เป็น (public static final DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem();) สังเกตว่าชื่อหลัง final เหมือนกับชื่อระบบย่อยและ name after new ให้สังเกตด้วยว่า DriveTrainSub เหมือนกับชื่อที่เราใส่ในขั้นตอนสุดท้าย และไม่เหมือนกับชื่อระบบย่อย (คุณต้องมีชื่ออ็อบเจกต์ (DriveTrainSub) ที่ไม่เหมือนกับระบบย่อย ชื่อ).
  3. จากนั้นนำเข้า DriveTrainSubSystem ของเรา
  4. ต่อไปเราจะลบบรรทัด (chooser.addDefault("Default Auto", new ExampleCommand());)
  5. จากนั้นลบการนำเข้าที่ไม่ได้ใช้
  6. จากนั้นบันทึก

ขั้นตอนที่ 8: กลับไปที่ DriveTrainCommand

กลับไปที่ DriveTrainCommand
กลับไปที่ DriveTrainCommand
  1. นำเข้า Robot (อันที่สองในภาพ)
  2. จากนั้นบันทึก

ขั้นตอนที่ 9: ไปที่ DriveTrainSub

ไปที่ DriveTrainSub
ไปที่ DriveTrainSub
  1. นำเข้า DriveTrainCommand
  2. จากนั้นบันทึก

ขั้นตอนที่ 10: ต่อไปเราจะสร้างรหัส OI

ต่อไปเราจะสร้างรหัส OI
ต่อไปเราจะสร้างรหัส OI
  1. ไปที่ ออย.
  2. สร้างวัตถุจอยสติ๊กสาธารณะใหม่ด้วยพอร์ต 0
  3. และลบการนำเข้าที่ไม่ได้ใช้
  4. บันทึก.

ขั้นตอนที่ 11: ไปที่ DriveTrainCommand

ไปที่ DriveTrainCommand
ไปที่ DriveTrainCommand
  1. ไปที่ DriveTrainCommand
  2. ตอนนี้เราจะทำส่วนที่ใช้จอยสติ๊กและนำไปใช้เพื่อเคลื่อนย้ายหุ่นยนต์ ภายในการดำเนินการ (เพราะมันทำงานอย่างต่อเนื่อง) ให้เพิ่มบรรทัด (Robot. DriveTrainSub.arcadeDrive(Robot.oi. Driver.getRawAxis(1), Robot.oi. Driver.getRawAxis(4));) ที่เราเรียก arcadeDrive ในของเรา ระบบย่อยที่มีค่าของ Robot.io. Driver.getRawAxis(1) ซึ่งจะคืนค่าของจอยสติกและโดยที่ 1 คือแกนของแกน y ด้านซ้าย และเหมือนกันสำหรับค่าที่สอง ยกเว้น 4 คือแกน x ขวา นี่หมายความว่าไม้เท้าซ้ายจะไปข้างหน้าและข้างหลังและไม้ขวาจะไปขวาและซ้าย (ถ้าคุณต้องการ คุณสามารถกลับไปที่ RobotMap และสร้างค่าใหม่สำหรับแกนจอยสติ๊ก จากนั้นเรียกพวกมันด้วย RobotMap (ชื่อแกน) และอย่าลืมทำให้มันมีค่าที่สุดหากคุณทำเช่นนี้)
  3. ถัดไป ลบการนำเข้าที่ไม่ได้ใช้ออกจากทั้งโปรเจ็กต์

ขั้นตอนที่ 12: ในที่สุดรวบรวมและอัปโหลดรหัสไปยัง Robot

แนะนำ: