Project: Inventory management & object dispencer : Redux

This is a revival of my old thread :

For clarity I'll repost my original posts :

Hello, (and please bare with me as English isn't my native language)
For my business I find myself having to manage and manipulate many small light objects from my inventory. My interest would be to build myself a relatively simple system to automate most of the procedure. So I've come to seek you guys experience for input and tips on how to do this the most efficiently.

The objects being small (at most an inch long) I've thought of storing them in a vertical wall of open compartments which a small robotic device going around the surface of the wall to retrieve them.

For the device movements I've figured 2 solutions :

  • either have it placed on an axis which will itself will move (thus giving me the x:y access)
  • Or have it on a cable structure like a vertical xy plotter system (akin to this : search "Project of the ploter for my master work" on youtube as it tells me i can't link here yet)

The objects being lightweight and hard to grasp with certainty I've figured that I'd use the fact that they are magnetizable. So a small arm would come and activate then retreat and disactivate thus letting the object fall in an awaiting container under the device.
I'd probably also need a small light sensor system to verify if I'd indeed captured the object during the retrieval procedure.

All of this controlled preferably through a wifi connection to my program & its database.

I'm conscious that this is going to be a lot more complicated to effectively attain as there is bound to be many problems I've yet to discover. The programming part isn't the one I'm worrying as I've been dabbling in it for some years now

But I'd appreciate any help to point me in the right direction. Which parts would I need (as I must admit I'm a bit lost with the wide range of proposed parts on websites) ?
Is Ardino even the best choice to do such a project while trying to keep it simple enough?

Thanks for any input.

Its just an intended prototype for now, so just want to see how it manages.

So here is the basic structure of it, 2 axis for X & Y with small motors (the 3 little boxes) to control the placement.

So what do I need to start out and make this ? 3 motors I suppose but which type ? how do I control them (do I need an Ardino board for each or can I just all link them to one, lets say placed on the central box) Where can I find the parts for gripping and moving along the axis.

Its been a while but I've been heavily occupied by work but I should getting a bit more time to continue this project.

It indeed is going to pretty much look like a big CNC table and the contraptor website ( seems to have what I need considering the size & rigidity I'll be needing. And I've played around with an arduino controlling a servo which will be moving the small arm which will be fetching the objects.

But one thing that I'm a bit lost on is, how can I control all those motors at the same time ? I know its technically feasible to control a couple of them with one board but I'm a bit lost on how to actually do it.
And considering that I'm probably going to have to control 5-6 at the same time. So can 1 board manage all of those ? or do I need 2 (but in that case I'll need to connect 2 usb to my computer, so does the software manage that well ?)
Any tutorial about managing multiple motors would be handy.

Thanks for any responses !

As mentioned I've been around tutorials and such but they usually are very focused on one very narrow aspect of what I'm trying to do/understand and often are using parts which seem a bit more customized, while I'm trying to stay a bit more "standard" part wise as I'd like to refrain from having to deal with compatibility issues later on patch wise.

Thanks for your patience :wink:

I' d recommend using linear servos(an arduino uno can control up to 8 of them with the servo library), but using DC motors is really easy:
PIN base
5v----------col- T
GND lector emitter
bad image...

setup: pinMode(pin,OUTPUT);
to control motor: analogWrite(pin,0-1023);

For reversing the motor use this circuit:

If you want to have a free running option, put the NPNs on top and the PNPs down.

Hello, Joonazan.

Back in grad school, they told us, when designing a robot system, that tasks suited to robot implementation should be such that a person wearing an oven mit could do the task with their hands behind their back. What you've described (a gantry) has been implemented many times, and will work, but you need to know what you're getting into.

Robots are always more expensive than you expect them to be. The parts are expensive. The engineering is very expensive. The maintenance is expensive. It will take longer than it should to implement, and the result will be a compromise between what you want and what you can afford.

If this doesn't daunt you:

The UNO with a motor shield running steppers can cost less than $50/dof (degree-of-freedom, technobabble for one axis of motion). Its a good deal if you're not moving great weight. The matrix for the gantry can be implemented in a variety of ways, depending on how exact your position requirements are: if you can tolerate slop in the positioning, it becomes much cheaper. Do not be seduced by the idea of cheap positioning and some sort of sensor-based feedback (like vision)...that can work if your engineer is clever, but the money you save in parts you lose in engineering costs.

Cheap is to use rods, sliding blocks on the rods, cables to the steppers, and hall-effect magnetic position sensors. Expensive is to use rack-and-pinion. Very expensive is to use computer vision.

A well designed bot will save you a lot of time and effort. A poor design will drive you nuts. Design it before you begin throwing money around.