I'm trying to figure out if it's safe to drive a low-voltage hybrid stepper (200ppr) with a v1 AFMotor (the one with the L293D).
I understand that the L293D is a dumb controller, i.e. no voltage chopping, but I prefer it to the Pololu and Easydriver because it can mount directly on the Arduino.
If the actual voltage to the winding after the losses in the L293 is about right, it will work,
but you won't be able to spin the motor fast.
I know that the four motor phases are controlled via PWM pins. So would it be possible to "implement" chopping by PWM'ing the pins instead of switching them high/low? the AFMotor definitely controls DC motors this way.
You don't understand chopper-drivers. They implement a constant-current output by
a feedback loop controlling a variable duty cycle oscillator cycle-by-cycle - this requires
current sensing and comparators connected to astables or monostables - the current
changes too fast for software control to be appropriate. The hardware also detects
gross-overcurrent and shuts down (which protects against shorts or mis-wired motors).
The Arduino neither has fast-enough ADC nor enough analog comparators to really
do this job itself.
If you want to get performance (ie fast rotation) out of a stepper it has to be low-impedance
and it has to be current-driven from a supply voltage that's far larger than the winding
voltage drop - the extra voltage is needed to overcome back-EMF as the motor spins
If speed isn't an issue then a unipolar high-impedance motor is ideal as a single ULN2803
can drive two motors...
Mounting motor drivers on a shield isn't particularly good idea - the high current
paths induce noise on nearby circuitry. Its better to put the stepper motor drivers
on/near the motors and run power and control signals to them.