Controlling 20 small mechanical pins with electromagnetic or similar solution

I need a solution to transform electric on/off signal to small mechanical force to push a pin out so it does not let a miniature wheel to rotate. So, a push solenoid seemed a good choice. I have found some 6V options but even those miniature solenoids are too powerful for my purposes, and also will turn out pretty costly, considering that I need 20 of them.

Is there any option to create a cheap and miniature array of 20 small (not bigger than 2mm diameter) needles that could be triggered by Arduino? Should I attempt to create miniature push-solenoids myself?

A side question - I understand that Arduino alone will not be able to control solenoids and I will need something like 20 pieces of TIP120 transistor or better - 3 pieces of ULN2803.

I'm wondering, how that ULN2803 is able to drive solenoids if, in comparison, one TIP120 has a metal plate to cool it but ULN2803 has no cooling solution at all for its 8 internal Darlington Drivers?

Don't exceed the current rating of the ULN2803. Better yet, use logic level MOSFETS instead of bipolar darlington transistors. Properly specified MOSFETS will have less voltage drop and require very little current to turn on and practically zero current to keep on, unlike a bipolar transistor.

Devices you are describing typically would have the solenoids remote from the pins and actuate the pins using an enclosed push/pull wire. They can be made very small.

Google for "dot matrix print head" and look at the images.

Paul

If you find <=150mA solenoids, consider using a TPIC6B595 shift register.
It can switch eight solenoids directly, and three (or more) of those chips only use three Arduino pins.
Leo..

Thank you for valuable comments.

Yes, something like a print head might be really useful. Will require lots of tweaking to work (bending the output pins, rearranging the layout to be in one line) but might be doable. I'll try to find some to experiment with.

TPIC6B595 also is a good idea, then I won't have to buy Mega.

progmars:
Thank you for valuable comments.

Yes, something like a print head might be really useful. Will require lots of tweaking to work (bending the output pins, rearranging the layout to be in one line) but might be doable. I'll try to find some to experiment with.

TPIC6B595 also is a good idea, then I won't have to buy Mega.

I was shocked to actually find some on Ebay!

Paul