The Engineer's grabber is most likely going to be driven by a solenoid, a "piston" driven by electrical current creating a magnetic field. There is currently no code created to drive one of these, however, so we are being given a testbench ahead of time to practice on.
The solenoids we are using are driven by Pulse Width Modulation, or PWM. Effectively, you send a signal in to the solenoid, and pulse it at different frequencies to achieve different desired extension lengths from the solenoid. Managing the timing and math of PWM is a created module in taproot (see pwm.hpp and pwm.cpp), using this and communicating on PWM port C1 (the same port that our hopper servo currently uses), a grabber subsystem should be created with the goal of driving the solenoid to any arbitrary position.
Much of this code will be similar to the hopper subsystem, which uses PWM to drive a servo motor.
Tasks:
The Engineer's grabber is most likely going to be driven by a solenoid, a "piston" driven by electrical current creating a magnetic field. There is currently no code created to drive one of these, however, so we are being given a testbench ahead of time to practice on.
The solenoids we are using are driven by Pulse Width Modulation, or PWM. Effectively, you send a signal in to the solenoid, and pulse it at different frequencies to achieve different desired extension lengths from the solenoid. Managing the timing and math of PWM is a created module in taproot (see pwm.hpp and pwm.cpp), using this and communicating on PWM port C1 (the same port that our hopper servo currently uses), a grabber subsystem should be created with the goal of driving the solenoid to any arbitrary position.
Much of this code will be similar to the hopper subsystem, which uses PWM to drive a servo motor.
Tasks: