For a project I am working on, I am having some difficulty figuring out how to control 16 identical dc motors using an arduino uno. For each of these 16 motors, the operating voltage is between 3V-9V and each one has a no-load current of 30 mA and a stall current of 500 mA. I want to be able to operate the dc motors at close to 3V because the motors are described to operate at around 48 rpm at this voltage which is ideal for my project. Regarding speed control, I do not need to control the speed of any of the motors and only need them to run forwards and backwards. I do however need to control these movements independently for each motor. Sorry I am very new to arduino and do not completely understand how to approach this situation and would appreciate any help. From what I have seen in other similar projects, people have talked about using interfaces likes the TLC59711 to expand the amount of PWM channels which from my understanding are used to control aspects such as motor speed, which is not necessary in my situation, which is also why I am confused about what motor driver to use. If possible, it would also be extremely convenient to use as few motor drivers as possible to handle the 16 dc motors independently for the sake of cost. I understand that this would also mean I would have to use an external power supply for the motor driver(s) however this I think would be dependent on for what load the motor drivers are rated for. I have also tried to look at arduino shields that might suit my application however many I have seen are only capable of controlling 2 dc motors. Unfortunately I am very limited in terms of size so that the components such as the motor drivers among others would ideally take up as less space as possible. Previously I had tried to use servos in place of dc motors for my project however I had to switch to using dc motors because I was not able to find servos small enough to fit inside a 0.75" x 0.75" x 0.75" box, else I would have used servos for they seem easier to use with arduino. I greatly appreciate any help with my issue, thanks.
Also in case it helps, here is the link to the motor I am looking at: Micro DC Geared Motor 6V 112RPM-DFRobot