Inhoudsopgave:

Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java): 12 stappen (met afbeeldingen)
Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java): 12 stappen (met afbeeldingen)

Video: Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java): 12 stappen (met afbeeldingen)

Video: Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java): 12 stappen (met afbeeldingen)
Video: Hoe bereid je je sollicitatiegesprek voor? 2024, Juli-
Anonim
Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java)
Hoe schrijf je een eenvoudige aandrijflijn voor FRC (Java)

Dit is een tutorial over het maken van een eenvoudige aandrijflijn voor een FRC-robot. Deze tutorial gaat ervan uit dat je de basis van java, eclipse kent en al wpilib hebt geïnstalleerd, evenals CTRE-bibliotheken.

Stap 1:

Afbeelding
Afbeelding

Eclipse openen

Stap 2: Maak een nieuw robotproject

Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
Een nieuw robotproject maken
  1. Klik met de rechtermuisknop op de pakketverkenner, klik op nieuw en vervolgens op anders.
  2. Scroll naar beneden tot je WPIlib Robot Java Development ziet (als je het niet ziet, heb je de wpilib-bronnen niet geïnstalleerd.)
  3. Klik op Robot Java-project
  4. Vul vervolgens de projectnaam in en klik op het opdrachtgebaseerde robotprojecttype. (Pakket moet al zijn ingevuld en hetzelfde met simulatiewereld.)

Stap 3: RobotMap maken/invullen

RobotMap maken/invullen
RobotMap maken/invullen
RobotMap maken/invullen
RobotMap maken/invullen

Maak laatste variabelen die het aantal verschillende talon-poorten bevatten

Stap 4: Verwijder voorbeeldopdracht en voorbeeldsubsysteem

Voorbeeldopdracht en voorbeeldsubsysteem verwijderen
Voorbeeldopdracht en voorbeeldsubsysteem verwijderen
Voorbeeldopdracht en voorbeeldsubsysteem verwijderen
Voorbeeldopdracht en voorbeeldsubsysteem verwijderen

Stap 5: Maak DriveTrainSubSystem aan

DriveTrainSubSystem maken
DriveTrainSubSystem maken
DriveTrainSubSystem maken
DriveTrainSubSystem maken
DriveTrainSubSystem maken
DriveTrainSubSystem maken
  1. Maak een nieuwe constructor in het nieuw gemaakte subsysteem van de aandrijflijn. Maak vervolgens CANTalon-objecten die overeenkomen met de klauwen op de aandrijflijn.
  2. Maak een RobotDrive genaamd Drive
  3. Instantieer deze objecten in de constructor (zorg ervoor dat u de waarden gebruikt voor de klauwen die we in de robotkaart hebben gemaakt). Voor de Robot Drive zullen we de constructor gebruiken die 4 motorcontrollers gebruikt (RobotDrive (SpeedController frontLeftMotor, SpeedController rearLeftMotor, SpeedController frontRightMotor, SpeedController rearRightMotor))
  4. Maak vervolgens een arcadeDrive()-methode met twee invoervariabelen waarbij x voorwaarts en achterwaarts is en y rechts en links is. Binnenin roep je de drive.arcade aan met de waarden voor vooruit en roteren
  5. Wijzig vervolgens de initDefaultCommand() zodat deze de regel setDefaultCommand(new DriveTrainCommand()) bevat.
  6. Maak je nog geen zorgen over alle fouten.

Stap 6: Maak de DriveTrainCommand

Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
Maak de DriveTrainCommand
  1. Begin eerst door naar het menu te gaan dat we hebben gebruikt om het subsysteem en het robotproject zelf te maken (dit is de laatste keer dat ik deze daadwerkelijke stap zal laten zien in de toekomstige stappen die ik zal zeggen alleen om een commando te geven of om een subsysteem en je gaat ervan uit dat het in dit menu staat.) Klik op commando en vul de klassenaam in met DriveTrainCommand (als je de namen van deze bestanden verandert, kunnen ze niet hetzelfde zijn).
  2. In het nieuwe DriveTrainCommand zul je zien dat er 6 methoden zijn, de ene is de constructor en de andere 5 zijn delen van de code die de robot zal aanroepen wanneer de opdracht wordt uitgevoerd. We weten wat de constructor doet, dus laten we uitleggen Initialize, execute, isFinished, end en interrupted. Initialize wordt één keer aangeroepen elke keer dat de opdracht wordt aangeroepen, de methode execute wordt continu aangeroepen totdat de opdracht eindigt, wat wordt veroorzaakt doordat de is voltooid wanneer de isFinished-methode true retourneert de opdracht stopt met uitvoeren. De end-methode wordt één keer aangeroepen nadat de isFinished is voltooid methode wordt aangeroepen en de interrupted wordt aangeroepen wanneer de opdrachtbronnen worden gebruikt door een andere opdracht en de opdracht zal eindigen (zonder de end-methode aan te roepen).
  3. Eerst in de DriveTrainCommand in de constructor moet je de regel (requires(Robot. DriveTrainSub)) toevoegen. Merk op dat de DriveTrainSub niet hetzelfde is als de naam van het subsysteem en dat is expres.

Stap 7: Spring naar Robot

Ga naar Robot
Ga naar Robot
Ga naar Robot
Ga naar Robot
Ga naar Robot
Ga naar Robot
Ga naar Robot
Ga naar Robot
  1. Vervolgens gaan we naar de Robot Class
  2. dan gaan we de regel wijzigen (openbare statische finale VoorbeeldSubsystem voorbeeldSubsystem = nieuw VoorbeeldSubsystem();) naar (openbare statische finale DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem();) merk op dat de eerste naam na final hetzelfde is als de naam van het subsysteem en de naam na nieuw merk ook op dat de DriveTrainSub hetzelfde is als de naam die we in onze laatste stap hebben ingevoerd en dat het niet hetzelfde is als de naam van het subsysteem (U MOET een objectnaam hebben (DriveTrainSub) die niet hetzelfde is als het subsysteem naam).
  3. Importeer dan ons DriveTrainSubSystem.
  4. Vervolgens zullen we de regel verwijderen (chooser.addDefault("Default Auto", new VoorbeeldCommand());)
  5. Verwijder vervolgens de ongebruikte importen.
  6. Sla dan op.

Stap 8: Ga terug naar DriveTrainCommand

Ga terug naar DriveTrainCommand
Ga terug naar DriveTrainCommand
  1. import Robot (de tweede in de afbeelding)
  2. Dan Opslaan

Stap 9: Ga naar DriveTrainSub

Ga naar DriveTrainSub
Ga naar DriveTrainSub
  1. DriveTrainCommand importeren
  2. Sla dan op.

Stap 10: Vervolgens maken we de OI-code

Vervolgens zullen we de OI-code maken
Vervolgens zullen we de OI-code maken
  1. Ga naar OI.
  2. Maak een nieuw openbaar joystick-object met poort 0.
  3. En verwijder de ongebruikte invoer.
  4. Opslaan.

Stap 11: Ga naar DriveTrainCommand

Ga naar DriveTrainCommand
Ga naar DriveTrainCommand
  1. Ga naar DriveTrainCommand.
  2. Nu zullen we het deel doen dat de joysticks neemt en ze toepassen om de robot te verplaatsen. Voeg binnen de execute(omdat het constant draait) de regel toe (Robot. DriveTrainSub.arcadeDrive(Robot.oi. Driver.getRawAxis(1), Robot.oi. Driver.getRawAxis(4));) waar we de arcadeDrive noemen in onze subsysteem met de waarden van Robot.io. Driver.getRawAxis(1) die de waarde van de joystick retourneert en waarbij 1 de as van de linker y-as is en hetzelfde voor de tweede waarde, behalve dat 4 de rechter x-as is. dus dit zou betekenen dat de linker joystick naar voren en naar achteren zou gaan en de rechter joystick naar rechts en links. (als je wilde, zou je terug kunnen gaan naar de RobotMap en nieuwe waarden voor de joystick-as maken en ze vervolgens aanroepen met RobotMap. (naam van de as) en vergeet niet om ze definitief te maken als je het op deze manier doet.)
  3. Verwijder vervolgens alle ongebruikte importen uit het hele project.

Stap 12: Tot slot compileren en uploaden van de code naar de robot

Aanbevolen: