winner10920's suggestion of just charging it at a constant current to 13.8V using a 14.4V supply is all you need to do really.
The Texas Instruments BQ2031 datasheet shows the methods that chip implements to charge a battery on page 5 (notably figure 4). The only difference here is that they implement an additional trickle charging step for a highly depleted battery until it reaches a minimum "qualifying" voltage that demonstrates the battery is capable of being charged.
It's not impossible to have it certified street legal. In the US you have to follow the requirements (seatbelts, turn signals, defroster, etc.) of your state and have it inspected. You still need insurance of course and that's probably the most difficult hurdle you'll face.
I appreciate cr0sh's sentiment though; seems like it'd be pretty straightforward if you started with an electric golf cart or gas UTV and started bringing it up to spec with the turn signals/etc. Seems odd that it's not done more often.
To be fair, I think the idea is that if you go duck hunting, and not every pellet enters the duck (which no doubt happens) you aren't leaving a lot of lead pellets in the ground/water.
I still have a lead water main on my house. I think I'm in trouble
The idea is that the lead pellets that hit the bird but don't kill it eventually poison it later. Given that bird hunting is generally firing into a large flock it's fully expected that few pellets will hit birds and not take them down, so from a hunting standpoint you want them to recover rather than just die off somewhere else. Adding to this (at least in my location), it is still legal to use lead shot on crows, pigeons, etc. -- the non-tasty types of birds -- so the law is reasonable in that respect.
That is functionally identical to the "Arduino + Digital Pot" solution that has been discussed. PiJoy's post still applies here; the digital potentiometer chips on that board are capable of 5V and 1 millamp max.
I don't know anything about rc servos; what advantages do they present that a stepper doesn't? the rotation can be programmed into the stepper so I achieve any angle I wish and by incorporating delays I can adjust rotation speed
The primary advantages of a servo is that it has its driver built in (a stepper will require an external driver, such as the EasyStepper or Pololu A4988) and contains an internal mechanism so it can keep track of its current position. The primary limitation of a servo is that it cannot perform continuous rotation and still keep track of its position.
Either the stepper or servo can have its rate of rotation adjusted. With a stepper its a matter of what rate you tell it to make steps, and for a servo you just pause at intermediate angles (i.e. when commanding it to turn to 90 degrees you just tell it to stop at 1 degree, 2 degrees, etc.).
You cannot tell a stepper to rotate 90 degrees per se; you can only tell it to "take 50 steps clockwise". If your tray gets knocked or its unbalanced it's quite possible that it will eventually flip itself over as it keeps swaying those 50 steps back and forth; you need to add some type of extra physical stop to prevent that.
If I were building that I'd use an RC servo. A typical servo will be able to swing your tray 90 degrees; if you need a wider range of motion you can look into "sail winch" servos which are capable of 360 or 720 degrees of motion.
Any chance we could get your over that fear? We'll be your support group. It'll be like going to an AA meeting
To control the board you have four main pins. Looking at just the first driver:
1EN : Setting it high powers up the driver and low disables the driver. If you were going to implement a kill switch you would do that here. 1INa / 1INb : When INa is high and INb low, the motor will be set to turn in one direction, and when INa is low and INb is high it will be set to turn the other direction. Setting both high locks the motor and makes it resistant to turning, and setting both low allows the motor to freewheel. 1PWM: when you analogWrite(pwmPin, 0) the motor is stopped, and analogWrite(pwmPin, 255) the motor is full power. Selecting a value between 0 and 255 is a partial power; 64 would be 1/4 power, 128 would be 1/2 power, etc. "pwmPin" is any of the PWM pins on the Arduino: 3, 5, 6, 9, 10 or 11.