Laser diodes and drivers.

I have a few small Laser diodes that work fine from an Arduino output. They have a series resistor. That's all.

The resistor value depends on the diode. If you use the example you had above:
Working voltage: 4.5V; Working current: 20mA;

And if Arduino puts out about 5.0V for a HIGH (close), the resistor needs to drop 0.5V. So:

5.0 - 4.5 = 0.5 R=E/I R= 0.5 / .02 = 25 ohms.

I think the little "Electronic Bricks" I have that plug into Arduino have about 50 ohms. I'll check.

If the current is too low, the laser will not output light, until it receives some "Threshold" current. You can start with 100 ohms and decrease it and go a little lower than when the laser starts "to lase"...

I have a student making a Cat Toy using one of these with two small servos to dance it across the living room carpet...

I have to build one of these for my daughter's cats. They love to chase the human-driven laser pointer... I should have some timing stuff, and a motion sensor to activate it when a cat walks by and no-one is home. A minute or two seems to be cat-attention-span. Your variables may vary.