As we are using a car with automatic transmission in this build it makes it relatively easy to change gears as we just need to move the lever in a linear motion to certain points.

Note: I decided to use the existing lever and not link directly to the transmission cable as I wanted to keep the car as stock looking and interior as normal as possible.

The only difficult thing you might think of is that most automatic transmissions require you to depress a button before you can move the transmission lever. As we are using a linear actuator that has a worm screw, we can use its self locking ability to hold the transmission lever in place when it is not moving it. So as for the button, you can go about locking it into the “depressed” state permanently.

The linear actuator used here needed to have enough stroke to change from the Park position through to Reverse, Neutral and then to Drive. In my cars case it was about 100mm from where I was mounting the actuator. The force required to move the lever was very little (<5kg) so I ended up using a 150mm Stroke/70kg force actuator as it was in stock.

To mount the base of the actuator, I welded up a bracket and attached it to a part of steel frame that was used in the centre console. This allowed it to pivot slightly as it extended/retracted through its stroke.

For the attachment to the transmission lever I just cut a couple of pieces of steel flat bar and used a couple of bolts to keep it in place. It is not clamped hard around the lever, it is just containing it. This allows for it to move and not bind up as it moves.

Determining the position of the actuator I used a sliding potentiometer that would send an analog signal back to my Arduino. I made a custom mount for the pot to the actuator out of some flat bar. I then folded over the tabs of the pots slider around the transmission lever attachment bracket bolt. It works but I should change this to be a better attachment for the pots slider.

To power the actuator I used a motor driver that can go forwards and backwards plus be controlled via a microcontroller. I used a 2x32A Sabertooth Motor Driver from Dimension Engineering but feel free to use anything that works similar. The first channel will be used to control the gear selector actuator and the second will control the brake actuator. Wiring and configuring this motor driver up is straightforward and well documented. Wire in the positive and negative of the battery as labelled and attach the actuators wires to the motor output 1. Connect the 0V to your Arduino’s Ground and the S1 wire to a digital output pin.

Note: I used the simple serial configuration on this build and it has seemed to work quite well. Dimension Engineering has also created a couple of libraries to make communicating with their drivers super simple. They also have some simple examples to get you up and running quickly.

Testing

Circuit - To move the actuator forwards and backwards make up a simple circuit with two momentary buttons as inputs. One to extend the actuator and the other to retract the actuator. This will then give you some control on positioning the actuator into the gear positions.

Programming - Write a simple script to move the actuator backwards and forwards and outputting the value from the sliding potentiometer. When running the script, take note of the potentiometer values for the Park, Reverse, Neutral and Drive gear positions. You will need these to tell the actuator move to these positions in the full code.

Milestone

At this point you should have;

actuator securely mounted in car attachment around gear selector/actuator motor driver wired in with actuator and Arduino control of the extension/retraction of the actuator via the Arduino test circuit to control the extension/retraction of the actuator know the potentiometer values/positions for each gear position

Note: You can also use a multi-position switch circuit to test the gear selector input on your Arduino once you know the positions. This way you will be able to copy the gear selector code directly over into the completed running car code base.