WPILib Örnek Projeler

Uyarı

WPILib örneklerini işlevsel tutmak için her girişimde bulunulsa da, “olduğu gibi” kullanılması amaçlanmamıştır. Kodun bir kullanıcı robotunda çalışması için en azından robota özgü sabitlerin değiştirilmesi gerekecektir. Birçok ampirik sabitin değerleri, gösterim amacıyla “sahte” hale getirilmiştir. Kullanıcıların, örnek kodu kopyalamak yerine kendi kodlarını (sıfırdan veya mevcut bir şablondan) yazmaları şiddetle tavsiye edilir.

WPILib örnek projeleri, çok sayıda kitaplık özelliği ve kullanım desenleri gösterir. Projeler, tek bir işlevin basit gösterimlerinden eksiksiz, rekabete uygun robot programlarına kadar çeşitlilik gösterir. Bu örneklerin tümü VS Code’da şu şekilde kullanılabilir Ctrl+Shift+P, ardından WPILib: Create a new project ve örnek seçilerek.

../../../_images/create-new-project.png

Temel Örnekler

Bu örnekler, temel / minimum robot işlevselliğini gösterir. Robot programlamaya ilk aşina olan, ancak işlevsellik açısından oldukça sınırlı olan yeni başlayan ekipler için kullanışlıdır.

  • Arcade Drive (Java, C++): DifferentialDrive sınıfı aracılığıyla “arcade” tarzı kontroller kullanarak basit bir diferansiyel sürücü uygulamasını gösterir.

  • Arcade Drive Xbox Controller (Java, C++): Sıradan bir joystick yerine bir XboxController kullanılması dışında, önceki örnekte görülen aynı işlevselliği gösterir.

  • Getting Started (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gettingstarted> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/GettingStarted> __): Yarım hızda iki saniye ileri götüren basit bir otonom rutini gösterir.

  • Mecanum Drive (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdrive> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/MecanumDrive> __): MecanumDrive sınıfını kullanarak basit bir mecanum sürücü uygulamasını gösterir.

  • Motor Controller (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrol> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/MotorControl> __): Bir motorun çıkışının bir kumanda çubuğu ile nasıl kontrol edileceğini gösterir.

  • Enkoderli Motor Kontrolü (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrolencoder> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/MotorControlEncoder> __): Motor pozisyonunu okumak için bir kodlayıcının eklenmesi dışında yukarıdaki örnekle aynıdır.

  • Simple Vision (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/quickvision> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/QuickVision> __): Bir USB kameradan kontrol paneline video akışının nasıl yapıldığını gösterir.

  • Relay (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/relay> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Relay> __): Bir dizi kumanda kolu düğmesiyle bir röle çıkışını kontrol etmek için Relay sınıfının kullanımını gösterir.

  • Solenoids (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/solenoid> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Solenoid> __): Solenoid çıkışlarını bir dizi kumanda kolu düğmesiyle kontrol etmek için Solenoid ve DoubleSolenoid sınıflarının kullanımını gösterir.

  • TankDrive (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrive> __): DifferentialDrive sınıfı aracılığıyla “tank” tarzı kontrolleri kullanarak basit bir diferansiyel sürücü uygulamasını gösterir.

  • Tank Drive Xbox Controller (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrivexboxcontroller> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/TankDriveXboxController> __): Sıradan bir joystick yerine bir XboxController kullanılması dışında önceki örnekte görülen aynı işlevselliği gösterir.

Kontrol Örnekleri

Bu örnekler, yaygın robot kontrollerinin WPILib uygulamalarını gösterir. Sensörler mevcut olabilir, ancak bu örneklerin vurgulanan konsepti değildir.

  • DifferentialDriveBot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdrivebot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/DifferentialDriveBot> __): DifferentialDriveOdometry sınıfı aracılığıyla enkoder ve cayro odometri ve PID hız kontrolü ile kompozisyon dahil olmak üzere gelişmiş bir diferansiyel sürücü uygulamasını gösterir. DifferentialDriveKinematics ve PIDController sınıfları.

  • Elevator with profiled PID controller (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorprofiledpid> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ElevatorProfiledPID> __): Bir asansör mekanizmasının konumunu kontrol etmek için ProfiledPIDController sınıfının kullanımını gösterir.

  • Elevator with trapezoid profiled PID (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatortrapezoidprofile> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ElevatorTrapezoidProfile> __): Bir asansörün konumunu kontrol etmek için bir “smart motor controller” ile birlikte TrapezoidProfile sınıfının kullanımını gösterir mekanizma.

  • Gyro Mecanum (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyromecanum> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/GyroMecanum> __): Bir cayro ile birlikte MecanumDrive sınıfı aracılığıyla bir mecanum robotunun alan odaklı kontrolünü gösterir.

  • MecanumBot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumbot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/MecanumBot>” __): ``MecanumDriveOdometry` sınıfı aracılığıyla kodlayıcı ve cayro odometri ve``MecanumDriveKinematics`` ve PIDController sınıfları aracılığıyla PID hız kontrollü kompozisyon dahil olmak üzere gelişmiş bir mekanik sürücü uygulamasını gösterir.

  • Potansiyometre PID (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/PotentiometerPID> __): PIDController sınıfının ve bir asansör mekanizmasının konumunu kontrol etmek için bir potansiyometrenin kullanımını gösterir.

  • RamseteController (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/RamseteController> __): Otonom dönem boyunca bir yörüngeyi izlemek için RamseteController sınıfının kullanımını gösterir.

  • SwerveBot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/SwerveBot>” __): ``SwerveDriveOdometry` sınıfı aracılığıyla kodlayıcı ve cayro odometrisi ve PID konumu ve hız kontrolü ile kompozisyon dahil olmak üzere gelişmiş bir swerve sürücü uygulamasını gösterir SwerveDriveKinematics ve PIDController sınıfları aracılığıyla.

  • UltrasonicPID (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonicpid> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/UltrasonicPID> __): Bir nesneden belirli bir mesafeye gitmek için ultrasonik sensörle birlikte PIDController sınıfının kullanımını gösterir.

Sensör Örnekleri

Bu örnekler, WPILib kullanarak sensör okumayı ve veri işlemeyi gösterir. Mekanizma kontrolü mevcut olabilir, ancak bu örneklerin vurgulanan konsepti değildir.

  • Axis Camera Sample (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/axiscamera> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/AxisCameraSample> __): Yakalanan bir video beslemesinde bir dikdörtgeni kaplamak ve bunu kontrol paneline aktarmak için OpenCV ve bir Axis Netcam kullanımını gösterir.

  • PDP CAN İzleme (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/canpdp> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/CANPDP> __): PowerDistributionPanel sınıfını kullanarak CAN üzerinden PDP’den sensör bilgisi almayı gösterir.

  • Görev Döngüsü Kodlayıcı (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/dutycycleencoder> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/DutyCycleEncoder> __): PWM tipi bir mutlak kodlayıcıdan değerleri okumak için ``DutyCycleEncoder` sınıfının kullanımını gösterir.

  • DutyCycleInput (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/dutycycleinput> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/DutyCycleInput> __): Bir PWM girişinin frekansını ve kesirli görev döngüsünü okumak için DutyCycleInput sınıfının kullanımını gösterir.

  • Encoder (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/encoder> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Encoder> __): Bir dörtlü kodlayıcıdan değerleri okumak için Encoder sınıfının kullanımını gösterir.

  • Gyro (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyro> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Gyro> __): Robotun yönünü ölçmek ve sürüşü stabilize etmek için AnalogGyro sınıfının kullanımını gösterir.

  • Intermediate Vision (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/intermediatevision> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/IntermediateVision> __): Yakalanan bir video beslemesinin üzerine bir dikdörtgenin üzerine bindirmek ve bunu kontrol paneline aktarmak için OpenCV ve USB kamera kullanımını gösterir.

  • Ultrasonic (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonic> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Ultrasonic> __): Sinyal gürültüsünü azaltmak için ``MedianFilter` sınıfı ile birlikte bir ultrasonik sensörden veri okumak için Ultrasonic sınıfının kullanıldığını gösterir.

Komut-Tabanlı Örnekler

Bu örnekler: Command-Based framework. ‘ın kullanımını gösterir.

  • ArmBot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ArmBot> __): Bir robot kolunu kontrol etmek için bir ProfiledPIDSubsystem kullanıldığını gösterir.

  • ArmBotOffboard (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard> __): Bir robot kolunu kontrol etmek için bir TrapezoidProfileSubsystem in “smart motor controller” ile birlikte kullanımını gösterir.

  • DriveDistanceOffboard (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/drivedistanceoffboard> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/DriveDistanceOffboard> __): Trapezoidal hareket profiliyle belirli bir mesafede ileri gitmek için bir “smart motor controller” ile birlikte bir TrapezoidProfileCommand kullanımını gösterir .

  • FrisbeeBot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/Frisbeebot> __): 2013 FRC’ye özgü basit bir frizbi atan robot için eksiksiz bir robot kodu seti |reg| oyun Ultimate Ascent. PIDSubystem sınıfı aracılığıyla basit PID kontrolünü gösterir.

  • Gears Bot (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/GearsBot> __): WPI gösteri robotu GearsBot için eksiksiz bir robot kodu seti.

  • Gyro Drive Commands (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyrodrivecommands> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/GyroDriveCommands> __): Bir robotu belirli bir başlığa bakacak şekilde döndürmek için bir jiroskopla birlikte PIDCommand ve ProfiledPIDCommand ın kullanımını gösterir ve sürüş sırasında istikameti sabitlemek için.

  • Inlined Hatchbot (Java, C++): A complete set of robot code for a simple hatch-delivery bot typical of the 2019 FRC game Destination: Deep Space. Commands are written in an “inline” style, in which explicit subclassing of Command is avoided.

  • Traditional Hatchbot (Java, C++): A complete set of robot code for a simple hatch-delivery bot typical of the 2019 FRC game Destination: Deep Space. Commands are written in a “traditional” style, in which subclasses of Command are written for each robot action.

  • MecanumControllerCommand (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand> __): TrajectoryGenerator ve MecanumControllerCommand sınıflarını kullanarak bir mecanum sürücü ile yörünge oluşturmayı ve takibi gösterir.

  • RamseteCommand (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/RamseteCommand>” __): ``TrajectoryGenerator``ve ``RamseteCommand` sınıflarını kullanarak yörünge oluşturmayı ve bir diferansiyel sürücü ile takibini gösterir. Eşleşen bir adım adım öğretici bulunabilir here.

  • Scheduler Event Logging (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/schedulereventlogging> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/SchedulerEventLogging> __): Bir komut başladığında, bittiğinde veya kesintiye uğradığında pano olay işaretleyicilerini günlüğe kaydetmek için zamanlayıcı olay eylemlerinin kullanımını gösterir.

  • Select Command Example (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/selectcommand> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/SelectCommand> __): Çalışma zamanı tarafından değerlendirilen bir koşula bağlı olarak komutlardan birini çalıştırmak için SelectCommand sınıfının kullanımını gösterir.

  • SwerveControllerCommand (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervecontrollercommand> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand> __): TrajectoryGenerator ve SwerveControllerCommand sınıflarını kullanarak bir swerve sürücüsüyle yörünge oluşturmayı ve takip etmeyi gösterir.

State-Space Durum Uzayı Örnekleri

Bu örnekler, State-Space Control. ‘ın kullanımını gösterir.

  • StateSpaceFlywheel (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheel> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheel> __): Bir volanın durum-uzay kontrolünü gösterir.

  • StateSpaceFlywheelSysId (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheelsysid> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheelSysId> __): Bir volanı kontrol etmek için FRC Karakterizasyonu Sistem Tanımlamasını kullanarak durum alanı kontrolünü gösterir.

  • ** StateSpaceElevator ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceelevator> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceElevator> __): Bir asansörün durum alanı kontrolünü gösterir.

  • ** StateSpaceArm ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacearm> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceArm> __): Bir Kolun durum-uzay kontrolünü gösterir.

  • ** StateSpaceDriveSimulation ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation> __): Controller ve Field2d sınıfını takip eden bir RAMSETE yolu ile birlikte bir diferansiyel aktarma organının durum alanı kontrolünü gösterir.

Simülasyon Fiziği Örnekleri

Bu örnekler, fizik simülasyonunun kullanımını göstermektedir.

  • ** ElevatorSimulation ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorsimulation> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation> __): Basit bir asansörle fizik simülasyonunun kullanımını gösterir.

  • ** ArmSimulation ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armsimulation> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ArmSimulation> __): Basit tek eklemli kol ile fizik simülasyonunun kullanımını gösterir.

  • ** StateSpaceDriveSimulation ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation> __): Controller ve Field2d sınıfını takip eden bir RAMSETE yolu ile birlikte bir diferansiyel aktarma organının durum alanı kontrolünü gösterir.

  • ** SimpleDifferentialDriveSimulation ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/simpledifferentialdrivesimulation> __, `` C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/SimpleDifferentialDriveSimulation> `__): Simülasyonda kullanılabilecek temel bir aktarma organının barebone örneği.

Çeşitli Örnekler

Bu örnekler, yukarıdaki kategorilerin hiçbirine uymayan çeşitli WPILib işlevselliğini gösterir.

  • Addressable LED (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/addressableled> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/AddressableLED> __): Robot dekorasyonu ve / veya sürücü geri bildirimi için RGB LED’leri kontrol etmek için AddressableLED sınıfının kullanımını gösterir.

  • ** DMA ** (C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/DMA> __): RoboRIO’nun CPU’sunu kullanmadan sensörlerden okumak için DMA (Doğrudan Bellek Erişimi) kullanımını gösterir (yalnızca C ++).

  • ** HAL ** (C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/HAL> __): WPILib’in geri kalanını kullanmadan HAL (Donanım Soyutlama Katmanı) kullanımını gösterir. Bu örnek ileri düzey kullanıcılar içindir (yalnızca C ++).

  • HID Rumble (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hidrumble> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/HidRumble> __): Desteklenen HID’lerde (XboxControllers gibi) dokunsal geri bildirim için “rumble” işlevinin kullanımını gösterir.

  • ** PacGoat ** (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/PacGoat> __): FRC Team 190’ın 2014 robotundan tam bir komut tabanlı robot projesi. Komut çerçevesinin eski sürümünü kullanır; karışıklığı önlemek için çeşitli olarak kategorize edilmiştir.

  • Shuffleboard (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/shuffleboard> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/ShuffleBoard> __): Shuffleboard sınıfının akıcı oluşturucu API’si aracılığıyla robot kodundan “Shuffleboard” panosundaki sekme / widget düzenlerini yapılandırmayı gösterir.

  • RomiReference (Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/romireference> __, C ++ <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibcExamples/src/main/cpp/examples/RomiReference> __): Aşağıdaki komutun nasıl çalıştırılacağına dair komuta dayalı bir örnek: doc: Romi robot </docs/romi-robot/index>.