Use of Arduino In Custom Vending Machine

I am currently involved in designing and manufacturing a custom vending machine as part of a final year project for college. My group consists of all mechanical engineers so we have not been exposed to too much programming in our curriculum and I am posting this in hopes of some guidance or if our ideas will even work.

We plan on using linear actuators to do the physical dispensing of the product as we can not use traditional screw motors that are seen in most snack machines due to the nature of the product we will be dispensing. Traditional vending machine controllers (VMC's) are available and pre-programmed to operate these screw motors as well as the coin dispensers and ordering operations. We want to use an off the shelf VMC to avoid the programming required to control all the money functions and such. Our problem is that we do not believe that the off the shelf VMC will be able to control the linear actuators because the screw motors have a position feedback that the linear actuators do not. The linear actuators also need a polarity shift in the power supply to retract (to clarify: switching the power supply leads on the actuator would do the opposite action, either extend or retract). The linear actuators require 12 volts for operation and they just have the two power supply wires, the speed and force are constant.

Here is where we need advice: our idea was that we could intercept the the signal from the VMC with an arduino board (possibly with a motor shield) and then use the arduino to control the linear actuators, in a way tricking the VMC into thinking that it is operating the screw motors that it usually does. Again, we have little programming knowledge so we were wondering if this was even possibility or even the right approach to take

Side note: we have contacted multiple VMC companies to determine if their controllers would have a shot of operating the actuators but everyone we spoke with did not have enough technical knowledge to answer our questions.

Thanks

That sounds entirely possible. You will need H-bridges to drive the linear actuators in both directions. If you tell us how much current the actuators take, you may get advice on suitable H-bridges to use.

I don't know exactly what amperage the actuators require because it is not listed on the spec sheet, but I do know that they are DC. In a demonstration video on the actuator site they have one hooked up to a lab-type power supply (the kind with the red and black alligator clips), and on the display of that power supply it read 0.00 on whatever range of amps it was set on. So I'm assuming it was low, unless it was set on kilo amps or something. I could contact the manufacturer for a precise range need be it. Thank you for the help

My group consists of all mechanical engineers so we have not been exposed to too much programming in our curriculum

I find this so hard to understand. I'm a Mechanical Engineer. I got my degree 34 years ago, and I took more than half a dozen programming classes during the 4 year program. I can't believe that as computers have become more prevalent, more powerful, and more indispensable, that programming is given even less attention now than 30 years ago. Perhaps it has more to do with your choices than the school's program?

I don't know exactly what amperage the actuators require because it is not listed on the spec sheet,

Why the hell not? Don't be planning to use equipment that is not properly spec'ed.

I could contact the manufacturer for a precise range need be it.

It needs to be!

because the screw motors have a position feedback that the linear actuators do not.

Well, maybe you should consider actuators like below. There might be less expensive solutions, but not knowing what you are doing leaves those out.

I think the OP's problem was not exactly not finding the right actuator, but having to retract after moving forward, which VMC doesn't do. I agree with dc42 that the project is entirely doable. The VMC doesn't need to know what it is hooked up to. If you intercept the power to the screw motor, and feed back to the VMC pulses that the screw motor would, you will trick the VMC. On the othe side of the story, you use arduino and motor shield to operate the actuator.

I suggest you borrow an oscilloscope to watch how the VMC works with a matching screw motor, with control voltage and pulse feedback. Then you finish the arduino screw motor simulation part so the VMC is happy. At the end, finish arduino control of actuator to complete the project.

Paul,

I didn't know you are a mechanical engineer. I always thought you were an x% programmer + (1-x%) electrical engineer. I can understand why OP had trouble. I have lots of mechanical engineering students in my intermediate physics and electronics for non ECE majors. They are not required to take a single programming course except for some 100-level intro to engineering stuff. No wonder they don't know electronics or programming as much as you did back in college. They only take the minimal, the required courses, and they think they can somehow become good candidates for future jobs. Nobody is trying to gain extra capacity outside their tiny boxes. The only reason I am getting many of them was sadly not because my courses are required by their degree, but because they are taking my courses to maintain full student status (required by some financial aid and all foreign students) until they can get into their senior design course, which only has a fixed enrollment number, a number less than the demand and the number refuses to change!!!

Thanks for the responses.
To help clear things up we are using a linear actuator to essentially push the bottom package from a stack of packages into another section of the vending machine. After the package is dispensed, the actuator retracts to its original position.

liudr, that was our intention to essentially to send the power signal sent from the VMC to an Arduino and then operate the actuators through the arduino. We just had the issue with the homing signal(the position feedback associated with the screw motor) sent from the VMC. I'm currently checking if the homing function can just ignored or overridden through the VMC interface. If it can not be ignored, then we will figure it out with an oscilloscope. Thanks for the suggestion.

The selection of the linear actuators was just based on the force and speed it offered, we didn't anticipate the homing issue originally.
Here's a link for it:
http://progressiveautomations.com/tubular-high-speed-linear-actuator-tubular-high-speed-linear-actuator-stroke-size-force-lbs-speed-551sec-p-127.html

PaulS:

My group consists of all mechanical engineers so we have not been exposed to too much programming in our curriculum

I find this so hard to understand. I'm a Mechanical Engineer. I got my degree 34 years ago, and I took more than half a dozen programming classes during the 4 year program. I can't believe that as computers have become more prevalent, more powerful, and more indispensable, that programming is given even less attention now than 30 years ago.

Here's an ironic twist from my days in college: CompScis had to take a version of Numerical Analysis which had no programming. MEs has to take a version of Numerical Analysis that was all programming.

How much force is required and what is the push distance? Servos like below or smaller (even some in the $7 range) might make a less expensive alternative motive source to a linear actuator.

I found the datasheet for that actuator at Linear Actuators & Motion Control Products - Progressive Automations. It takes from 2A at no load to 9A at full load and max speed. If the load is expected to be light then MC33926-based H-bridges such as Pololu - Dual MC33926 Motor Driver Carrier should be suitable.

The homing sensor is likely to be an optical pickup that provides a signal once per revolution of the screw so that revolutions can be counted. Once you know its details, you can easily simulate that with an Arduino.

zoomkat:
How much force is required and what is the push distance? Servos like below or smaller (even some in the $7 range) might make a less expensive alternative motive source to a linear actuator.

http://www.hobbyking.com/hobbyking/store/__18743__Vigor_VSD_11YMB_MG_HV_Extra_Large_360_Degree_Winch_Servo_0_75sec_40kg_150g.html

14" push distance and the force just needs to be above 10lbs. We considered using servo with a rack and pinion or a belt to do the moving, but I didn't realize they were that cheap. I'll look around at some of them.

dc42:
I found the datasheet for that actuator at Linear Actuators & Motion Control Products - Progressive Automations. It takes from 2A at no load to 9A at full load and max speed. If the load is expected to be light then MC33926-based H-bridges such as Pololu - Dual MC33926 Motor Driver Carrier should be suitable.

The homing sensor is likely to be an optical pickup that provides a signal once per revolution of the screw so that revolutions can be counted. Once you know its details, you can easily simulate that with an Arduino.

Thanks for your help, I appreciate it. The homing function I was originally referring to is done at the machine start up. The VMC re-homes each motor at start up, if a motor takes too long to respond then a motor error is reported and that motor is shut down until the error is resolved. You may have described another potential scenario with the feedback that we will need to simulate.

the screw motor and the linear actuator are really the same thing.

So if you push out the bottom package from the bottom of a stack of packages, all the rest of the packages
in the stack are going to fall on top of your pushing device.

Here's an ironic twist from my days in college: CompScis had to take a version of Numerical Analysis which had no programming. MEs has to take a version of Numerical Analysis that was all programming.

I think the idea is to learn how to do it the other way, whatever it is. If the only tool you have is a hammer, everything looks like a nail. Having CompSci types learn that not everything needs a computer solution makes them understand that less than half the battle as a programmer is getting the code to work.

Having the ME's learn how to use computers to do the hard stuff gives them an advantage when real-life problems arise. Use a computer to analyze a variety of solutions, instead of the back of an envelope to find one solution.

The below actuator has 18" stroke and is on sale for $70. These actuators have internal limit switches, so a simple relay setup can drive them full stroke both ways.

michinyon:
So if you push out the bottom package from the bottom of a stack of packages, all the rest of the packages
in the stack are going to fall on top of your pushing device.

We have a "pushing block" in the design that takes the place of the package that is being dispensed so the stack remains at the same height until the actuator is fully retracted.

PaulS:
I think the idea is to learn how to do it the other way...

Sort of. Numerical Analysis for a CompSci was theoretical math (e.g. what is the Runge–Kutta method and how can it be correctly implemented on a digital computer). The idea is that a CompSci's role is to make the computer correctly and efficiently perform advanced math.

Numerical Analysis for an engineer was practical programming (e.g. when would I use the Runge–Kutta method and how can a computer help). The idea is that an Engineer's role is to apply the CompSci's work to the physical world.

Collaborating on homework with someone from the other discipline is an excellent opportunity. Shooting down Scud missiles and moon landings are the end result.