Length stop using Arduino, lcd, keypad, stepper and belts?

Hello,

I would like to enter the world of Arduino (late to party as I usually am, I know), starting a with a project I would use on a daily basis, so i could also maintain it and constantly improve it. Of course if it's even possible...

Before I start bugging every willing to help soul around here with programming, I would like to ask souls who has some experience if it is even a valid idea.

I need an solution to position a lenght stop (a small metal plate), which acts as a length stop up to which we push material manually, and then cut it, also manually.
So, my idea was a 2GT belt 9mm width, with a free pulley on one end, and motorised one on the other.
I would run it with a stepper motor (or motor with encoder?), by entering a desired length in to keypad, shown on the display, and when confirming entered dimension, it would position it self.
There would be a microswitch to zero it self before every positioning, on one end (needed?).
The lenght of the table is 8 meters, and I need a precision to a mm.

Also, the stop (a metal piece) should be firmly in place on finding a position, as material kicks it a bit (nothing heavy - metal strip).

So, guys, possible - or I should take another road?

Thanks in advance!

That all sounds perfectly feasible. But it would be a complex project for a beginner to programming.

If you do want to do it you should treat it as several small projects - for example,

  • reading a keypad,
  • displaying data on an LCD
  • controlling a stepper motor
  • using a limit switch

and when you can get each part to work you can start joining them into a single project.

Have a look at Planning and Implementing a Program
and at Stepper Motor Basics

You will also need to deal with the mechanical aspects of the project, and you have not said whether you are experienced at that.

...R

I second what Robin2 said and I always urge caution to beginners - it's too easy to start a project that would be considered reasonably complex even by seasoned veterans and then get totally disillusioned about the whole Arduino thing.

Not only do you have to design a coherent hardware implementation, you also have to get the coding (reasonably) OK for it all to come together.

Now, that said, putting some building blocks of Arduino together is not Rocket Science by any means, especially if you start small and build on the experiences you have learned along the way. Let's face it, you wouldn't learn to swim by (trying to) swim across the English Channel, would you?

And watching some beautifully crafted (if I say so myself) newbie-type videos on YouTube, put together by Yours Truly you could easily get the exposure you need. See my sig for the URL! Note that new videos appear at least weekly too so best to subscribe! [/End Shameless Plug]

Thanks for the response. Yes, I am aware it would be a bit complex, and that's why I selected this project, to learn as I go, solving a puzzle :slight_smile:
I have some mechanical experience, and tools, and I am very keen to enter machine creation world. It's been a dream of mine for long time, and now I finally can - well, at least try :slight_smile:

Saing that, I just wanted a confirmation if I have selected a right platform for an absolute bigginer (would guess so), and if whole idea can be indeed realised as I imagined it.

I placed an order for a 2GT belt, some belt plates and 20 teeth pulleys, Arduino Uno is waiting for me packed in my storage for years.
Guess I should pick Mega for this, but Uno will do fine for parts of it, till I put all together.

So, few questions for the ones with an expirience.

Stepper would be a right or wrong pick for this aplication?
Or a DC motor with encoder would be a smarter move?

I am guessing it should be easier with an stepper but I do not know a lot about position losing for theirs, and if it could be a problem over a long distance like mine - 8 meters.
I change a position only about 10 times a day, so it's not exactly heavy duty.

Next thing would be a screen. What's the best pick for using an least resources, but showing largest possible numbers so it could be easily readable from reasonable distance?

Also, keypad. Looking for something more industrial than the ones I've spotted are usually available. Any ideas on how to cope with that? Would need larger keys that are easy to press and that do register lightly, with some resistence to smudged hands and such.
I was trying to find PS2 numpads around, but with no luck...

Many thanks guys!

you have a mechanical problem. a belt is held in place by the strength of the stepper.
in mechanics, you trade speed for strength. use a belt and one revolution = pi*dia of the drive pulley.
very fast, but the torque is based on the drive pulley diameter. so, not much holding power.
bumping the stop, will result in pulley movement.not may, but will.

using a leadscrew, you have one revolution of the stepper per thread pitch. on a large dia, say, 1 inch, and 4 TPI, you have to rotate a LOT to move 8 meters. 8 meters ? wow, that is a large table.

I would offer that a physical stop may not be the best means to control distance. run your belt, but move a sensor to detect the part. have two, or more, detect when the part is close, then slow the feed and stop when it is at your distance.
that way you have a non-contact sensor.

as for accuracy, you can get sloppy and maintain 1 mm.
taking a stab at the project, a 2GT pulley with 6m bore means you are going to run about 30 teeth on the pulley.
you may want 8 or even 10 mm bore.
a 30 tooth pulley will be about 28mm dia, or pi * d = 87 mm circumference.
a stepper with 200 steps per rotation will move the belt in 0.43 mm per step or 0.22 mm per half step or 0.11 mm per quarter step with a quarter step being a very good balance between strength and speed.

not sure how you would write your sketch to ignore 10 steps.....
probably better to just let it be accurate to 0.1mm and not try to make it sloppy.

.

Malium:
Thanks for the response. Yes, I am aware it would be a bit complex, and that's why I selected this project, to learn as I go, solving a puzzle :slight_smile:
I have some mechanical experience, and tools, and I am very keen to enter machine creation world. It's been a dream of mine for long time, and now I finally can - well, at least try :slight_smile:

Saing that, I just wanted a confirmation if I have selected a right platform for an absolute bigginer (would guess so), and if whole idea can be indeed realised as I imagined it.

I placed an order for a 2GT belt, some belt plates and 20 teeth pulleys, Arduino Uno is waiting for me packed in my storage for years.
Guess I should pick Mega for this, but Uno will do fine for parts of it, till I put all together.

So, few questions for the ones with an expirience.

Stepper would be a right or wrong pick for this aplication?
Or a DC motor with encoder would be a smarter move?

I am guessing it should be easier with an stepper but I do not know a lot about position losing for theirs, and if it could be a problem over a long distance like mine - 8 meters.
I change a position only about 10 times a day, so it's not exactly heavy duty.

Next thing would be a screen. What's the best pick for using an least resources, but showing largest possible numbers so it could be easily readable from reasonable distance?

if you only change a few times a day, you could move your stop and then lock it in place. that would be easier than trying to use the belt to do that.
I chose 30 tooth as below that you have a smaller bore. 8 meters will require a LOT of belt tension to prevent a belly.

you can use a large bright LED type letters to display distance. huge, letters if you like.
as for resources, you do not need a lot of resources in the Arduino. an UNO would be fine.
you move, let the unit do that task. you stop, maybe make a few correction steps
lock the belt in place.
then display the distance.

since you are not trying to do a lot at the same time and in a short period, you can do each step, then move to the next, in less than a second.

Malium:
Stepper would be a right or wrong pick for this aplication?
Or a DC motor with encoder would be a smarter move?

A stepper motor will be much easier to work with. Make sure to read Stepper Motor Basics before spending money. More study would be even better.

What @dave-in-nj says about lead-screws vs toothed belts is correct. If you use a toothed belt you will need something to lock the workpiece to resist loads that might move the belt. I don't know your physical setup but it may be easy to implement an Arduino controlled lock

Leave the question of a screen until you have a bit more Arduino experience. If it was my decision I would just use a cheap laptop which comes with a keyboard. In any case, I suggest you get the whole thing working with a PC before taking on the extra work of building software to use a separate screen and keypad.

Keypads selection should be straightforward. You will pay for robustness.

...R

dave-in-nj:
you have a mechanical problem. a belt is held in place by the strength of the stepper.
in mechanics, you trade speed for strength. use a belt and one revolution = pi*dia of the drive pulley.
very fast, but the torque is based on the drive pulley diameter. so, not much holding power.
bumping the stop, will result in pulley movement.not may, but will.

using a leadscrew, you have one revolution of the stepper per thread pitch. on a large dia, say, 1 inch, and 4 TPI, you have to rotate a LOT to move 8 meters. 8 meters ? wow, that is a large table.

I would offer that a physical stop may not be the best means to control distance. run your belt, but move a sensor to detect the part. have two, or more, detect when the part is close, then slow the feed and stop when it is at your distance.
that way you have a non-contact sensor.

as for accuracy, you can get sloppy and maintain 1 mm.
taking a stab at the project, a 2GT pulley with 6m bore means you are going to run about 30 teeth on the pulley.
you may want 8 or even 10 mm bore.
a 30 tooth pulley will be about 28mm dia, or pi * d = 87 mm circumference.
a stepper with 200 steps per rotation will move the belt in 0.43 mm per step or 0.22 mm per half step or 0.11 mm per quarter step with a quarter step being a very good balance between strength and speed.

not sure how you would write your sketch to ignore 10 steps.....
probably better to just let it be accurate to 0.1mm and not try to make it sloppy.

Hey, thanks a lot for Your post. Leadscrew is out of the picture cause of the price. Here it's almost impossible task to go leadscrew even in short distances cause of the prices, and I have whole 8 meters to cover...
I went with 20 teeth pulleys as to keep power lower and easier to maintain precision. As I plan to keep prototype small - later I can adjust as needed and buy larger pulleys.
I think depending on a stepper lock down could be a problem, and that is why I decided I would go -> input position -> stop plate positioning it self -> automatic system turn off -> manual lock down in place.
I know manual locking kind of puts the whole thing useless, as I could then also position manually with a tape measure stuck on table, but I cannot find a solution that would fit. Was thinking of small servo motor on a stop device that would lock after positioning, but then I should have 8m wires going back and forth, which I am trying to avoid...

Non-contact sensor is not possible, as I unroll very thin metal stripe until the stop, and cut it manually. We unwind it it from a roll manually till length stop, and then we cut it to measure. If the system to unwind the coil would me motorised, than I would go the way You described, but that's a project for a future :slight_smile:

But I do think something about slowing down the speed before reaching the input distance, think this is the must to eliminate the overthrow as much as possible.

dave-in-nj:
if you only change a few times a day, you could move your stop and then lock it in place. that would be easier than trying to use the belt to do that.
I chose 30 tooth as below that you have a smaller bore. 8 meters will require a LOT of belt tension to prevent a belly.

you can use a large bright LED type letters to display distance. huge, letters if you like.
as for resources, you do not need a lot of resources in the Arduino. an UNO would be fine.
you move, let the unit do that task. you stop, maybe make a few correction steps
lock the belt in place.
then display the distance.

since you are not trying to do a lot at the same time and in a short period, you can do each step, then move to the next, in less than a second.

Thanks, I am considering to manually lock the stop piece when it's positioned, to program a automatic system shutdown when it's positioned, and then lock it with lever or something.
I am aware of the tension issue and that I should go with bigger pullies, but I kind of decided to take the less teeth pulley to keep the power request lower and precision higher. I can always get pulleys redone locally if needed.

Regarding LED, You mean matrix?

Robin2:
A stepper motor will be much easier to work with. Make sure to read Stepper Motor Basics before spending money. More study would be even better.

What @dave-in-nj says about lead-screws vs toothed belts is correct. If you use a toothed belt you will need something to lock the workpiece to resist loads that might move the belt. I don't know your physical setup but it may be easy to implement an Arduino controlled lock

Leave the question of a screen until you have a bit more Arduino experience. If it was my decision I would just use a cheap laptop which comes with a keyboard. In any case, I suggest you get the whole thing working with a PC before taking on the extra work of building software to use a separate screen and keypad.

Keypads selection should be straightforward. You will pay for robustness.

...R

Robin2:
A stepper motor will be much easier to work with. Make sure to read Stepper Motor Basics before spending money. More study would be even better.

What @dave-in-nj says about lead-screws vs toothed belts is correct. If you use a toothed belt you will need something to lock the workpiece to resist loads that might move the belt. I don't know your physical setup but it may be easy to implement an Arduino controlled lock

Leave the question of a screen until you have a bit more Arduino experience. If it was my decision I would just use a cheap laptop which comes with a keyboard. In any case, I suggest you get the whole thing working with a PC before taking on the extra work of building software to use a separate screen and keypad.

Keypads selection should be straightforward. You will pay for robustness.

...R

Dear R, Arduino lock would be the best, but I would like to avoid having wires going 8m back and forth, so the lock will have to be manual. Of course thing will be tested from computer, even on a smaller scale, just wanted to hear inputs from guys with experience, as I have none myself :slight_smile:
Regarding keypad, well I searched all over, and cannot seem to find anything beside the standard keypad which is ok, but I would like to have a bit industrial to it...

@Malium, it is a good idea to quote the Reply you are responding to. But all you need is the first few words or a line or two so we can see the reference. Repeating the entire post makes it harder to follow the Thread.

Malium:
but I would like to avoid having wires going 8m back and forth, so the lock will have to be manual.

Perhaps I was mistaken but I had assumed the "lock" would be near the cutter and would not have to move.

...R

Sorry, I tried posting from my cell phone, and it created bit of a mess :roll_eyes:

You gave me an idea, if belt would be locked from moving on the motor side, but with a separate mechanic device, than the stop piece would also be fixed on it's position (eventually some strech). Also, if i put a mechanical belt stop between a motor and a stop, I would avoid the risk of stronger kicks to a stop piece do some damage...

Nice! Tnx! :sunglasses:

about wires.
you could use a solenoid to lock the stop.
two wires,

since the stepper is fixed, you don't have to move that part.

also, if you have only a few changes per day, you could use a manual stop. just move that by means of the belt.
you put in your distance, it moves, you lock it down, then do your work.

if you have only a few dozen lengths, you could put a solenoid at each location, and just activate the correct one.
but, then you would already do that manually.... never mind.

as for the pulley, my concern is the tension needed to keep the belt tight. a 6mm shaft, connected to one end might not be strong enough. it might be better to have a shaft, two pulleys and then a coupling that the motor connects to the shaft.
this will come out in testing and with experience.

I think I will try a belt plate to lock belt in a position...

So, enter dimension on a keypad -> confirm -> belt moves stop till zero -> belt moves the stop plate slow, then accelerate, slow down before reaching position, reaches position and stops -> initiate belt plate which closes the belt in fixed position on a motor side * -> shut down system except matrix led display to show current position.

Not sure if belt plate press to lock is a good idea as probably grooves on plate wont be in a 100% same position as teeth on a belt, but I'll think of something.
Should do the trick, if belt is fixed, should not let the stop plate to move much...

There is many diffrent positions so solenoid at a position is not possible...
Motor will be coonected with a coupler either way...

@Malium, a diagram of your proposed machine would be very useful to ensure we are all talking about the same thing.

It is very easy to reach perfect agreement without understanding each other (indeed, maybe that is the easiest way :slight_smile: ) That may be suitable for politics, but not for engineering.

...R

Dear Robin,

Sorry for a late response, jobs do ruin hobbies :frowning:

I sketched (pun intended), a diagram. Fixed motor (in this step I am thinking of Nema 23 stepper) connected to a pulley which drives a belt. Other end is an free to roll pulley. One side of the belt is connected to a slide which drives a plate which will be used as a "stop". We manually unroll the stripe till it hits this stop, so unrolling would be manual and not connected to this project at all, the idea is only to position the length stop precisely as possible (in a mm range).

In this few days I was not able to answer, I did manage to start my Arduino Uno for the first time, we went trough connecting l2c 16x2 display, switches, leds and finally A4988 stepstick driver and a stepper I nicked from a printer for trials. Currently I am playing with Accel library.

My worries by now, will stepper be a right choice for this task, or I should start researching about closed loops, if my installation is a bit too week for the task (lenght) of the table, My decision to go with 20 teeth pullies and Nema 23 6.35 shaft motor is backed by economy of the whole thing, for the working prototype. If it goes well, I will upgrade.

So, hope things are a bit clearer now.

Keypad to enter numeric value in mm -> shown on the lcd -> confirmed -> stepper goes to end switch on the farest table end -> calculates the value of steps needed to reach target position -> reaches position and stops -> locking device closes the belt from moving -> current position shown on lcd -> motor shuts down.

Regarding keypad, I think maybe a touch panel behind some protective plate would be a best pick, I cannot seem to find anything a bit more "industrial" on a market. I have ordered several types of regular ones to "feel" them, waiting on them to arrive.

Is your diagram a plan view or an upside-down elevation?

Where will the material be relative to the diagram?

You said in your Original Post that there can be a "kick" against the length-stop. What causes that?

There is a lot of writing in this Thread so I may have forgotten or mistaken something. I vaguely remember that the purpose of the moveable length stop is to facilitate cutting the material to different sizes. If that is correct where will the saw be relative to the diagram? Will the cutting process impose any load on the length stop?

Maybe you can make a new diagram with all the components shown?

...R

Dear Robin,

it's a sketch, I will do a better one when I come home... The "material" is a steel strip 1mm thich which we unfold from roll to the table. We unroll it till it hits the stop plate, and then cut it with shears. Shearing will not impose any load to a stop, only load comes from the kick to a stop plate when material is unrolled from the coil. Material is rolled in a box which is located left to a shears, and its unrolled trough the shear device to a table. So shears and the material are left from the motor position and motorised pulley on a skectch above...

the stop to belt connection is one piece of the puzzle. that has to be strong enough to not flex.

you can lock the shaft of the stepper or the far end. also to add stability.

you can add a servo to the pulley and have closed loop feedback

but your concept is good. field testing will prove out what works and what might need to be changed.

Malium:
it's a sketch, I will do a better one when I come home...

The diagram was excellent and your description has cleared things up in my mind.

My guess is that the length-stop could be subject to a significant hammer-blow if the sheet of steel hits it at speed because someone is not as careful as they might be. If it was my project I would not like that blow to be passed through to the belt and the motor as it would either damage something or cause the system to lose position.

I think you mentioned earlier the possibility of a manual lock when the "stop" is in position. That would probably be a good idea if the position does not change very often, but it would be inconvenient if there are frequent changes. There is also the risk, with a manual lock, that someone forgets to unlock it before the motor is instructed to move and that would probably cause the Arduino to lose track of the position and require a move to the HOME position to re-establish it.

One idea, which may be of no value, is to use the stepper and the belt to mark the location at which a piece of bar should be fixed. The bar is what actually stops the material and there would be no external forces on the belt/motor.

...R

Thanks for the replay guys!

The stop plate would actually travel along aluminium "L" profile which serves as a table, so I can make a carriage that would slide along on bearings, closed type that would have no place to move other then move along the length line... It'll be attached to belt on it's ends as it's open loop belt, to create a closed loop. So I think there will be no flex,

However, Robin, You said exactly the same thing I am thinking about for the whole day, and I now do think kicks to a plate will present a big issue, specially with time.
Also, thanks for the thought about manual lock and possible problem if somebody left it locked - I did not think of that, and You are 100% right about that. So manual lock is out of the question.

Which kicks me back to a start, have to think it out all over again. Things would be lot simpler if I could have the belt fixed and let the motor to be a part of a stop plate carriage system, but I just cannot have 9m long wires going back and forth, so motor has to be fixed. I have some small idea about maybe sorting this problem out with gears and a lock, but it has to be "field" tested as this lock would be far from the stop plate itself, so it would probably go some distance only on account of belt strech...

Don't You just love engineering :wink: