I am currently in the design phase of a line following robot and have stumbled across some issues and so I find myself in the need to ask for advice.
First off. I want to build a robot that uses two motors and a ballcaster. I haven't made a decision regarding the motors themselves. I am oscillating between a pair of 5V motors found usually in cd-roms (the ones that open/close the cd tray) or a Tamyia gearbox which I think is better, yet it's not that cheap.

The first problem I ran into is the driver part of the robot. Mainly, I have two options: L298 (which is more expensive but can deliver up to 4A) or the cheaper L293B(1A).
Because of the price itself I would prefer the L293B but I don't know exactly how much amps would I need.

Q1: what are fly-back diodes, what's their purpose and what values should I use(Are 1N4004 or 1N4001 useful?)

Q2: If i go for the L293B, can I use a constant current source (made with LM317T) to limit the current to... say 750mA?

Q3: The Vss (5V logic) should be supplied from the Arduino 5V or is it better to use an external regulator IC (like 7805)

These are the problems I need to adress for the time being, in order to get the parts and start building the circuits. I am going for the DIY approach because it's cheaper to get the parts and build the circuits and mechanics myself.

Thank you,

Q1: what are fly-back diodes, what's their purpose and what values should I use(Are 1N4004 or 1N4001 useful?)

When you have current running through a inductor (coil of wire like a motor winding or solenoid) it forma a magnetic field: turns the coil into an electromagnet. When you disconnect the flow of current the magnetic field collapses rapidly. As it collapses the change in magnetic field through the coil induces an electrical current opposite the original current. This can cause a large reverse-current spike. The flyback diodes short out this reverse current spike to prevent it from damaging other semiconductors in the circuit.

You might look into some continuous rotation servos. Already have the gear train and a simple interface that doesn't require a lot of processing to function. Would allow you to get the sense part of the robot working without having to deal with the motor drive problems to start. If you then need more torque (for a larger robot) you could then work with DC motors or Steppers without having to troubleshoot too many complex parts at the same time.

Johnwasser, Thank you for your answer. I now understand why I need those diodes. Is a 1N4001 good for this purpose ? Or any diode will do ? What parameter should I look for when selecting a diode to use as fly-back?

Thank you for your answer, kf2qd. I see how using a continuous rotation servo would help me in reducing the complexity of the project, but unfortunately the servos are expensive in my coutry, specially the continuous rotation ones. One servo costs as much as a Tamiya gearbox... and i'll need two servos. Therefore, due to the low cost character of the project, I think I'll stick with DC motors.

After some digging, I found these Pololu 120:1 motors:

They draw 800mA when stalled at 4.5V.
If I use two of these gearbox motors, can I use an L293B to drive them without damaging the IC ?