Difference between revisions of "Two Axis Stepper Controller"
Russ hensel (talk | contribs) |
Russ hensel (talk | contribs) |
||
Line 26: | Line 26: | ||
<pre> | <pre> | ||
− | # <<< Arduino: TwoAxis Ver1 2017 11 | + | # <<< TwoAxis Ver1 2017 11 14.00 |
+ | # <<< ok | ||
+ | # >>> ? | ||
+ | # <<< Arduino: TwoAxis Ver1 2017 11 14.00 | ||
# <<< mnn chooseMotor | # <<< mnn chooseMotor | ||
# <<< tn move to Target n | # <<< tn move to Target n | ||
# <<< t-n save Target n | # <<< t-n save Target n | ||
− | # <<< | + | # <<< b baklash adj |
− | # <<< snn | + | # <<< nn cmotor nudge n !! |
− | # <<< ann | + | # <<< snn cmotor setSpeed |
− | # <<< dnn | + | # <<< ann cmotor setAcceleration |
− | # <<< z | + | # <<< dnn doDance |
− | # <<< w | + | # <<< z both motors zeroPosition |
− | # <<< v | + | # <<< w statusReport WhatWhere |
− | # <<< ? | + | # <<< v Version of software |
+ | # <<< ? Help | ||
+ | # <<< ok Help | ||
# <<< ok | # <<< ok | ||
Revision as of 14:11, 14 November 2017
What
Very incomplete, still working on it.
For some time I have wanted to aim a laser with good precision across a room. Long time ago I did this with servo motors, Worked fine excpt for the good precision. I thought that steppers might do better. The problem is that steppers move ( typically ) over a degree per step. Gearing the motor down decreases the speed, but improves the precision. And these motors, with built in gears are available, and they can be cheap ( Amazon.com : Longruner 5x Geared Stepper Motor 28byj 48 Uln2003 5v Stepper Motor Uln2003 Driver Board for arduino LK67 : Camera & Photo ) With these in hand and a 3D printed mount ( *Bare Bones 28BYJ-48 Gimbal. by mmontee - Thingiverse ) for them I went forward with the software.
You can aim the laser in both altitude and azimuth. Once you get it to a place you want the program can memorize the location as a target and then go back there on demand.
How
Laser/Motor Mount
These can be cheap ( Amazon.com : Longruner 5x Geared Stepper Motor 28byj 48 Uln2003 5v Stepper Motor Uln2003 Driver Board for arduino LK67 : Camera & Photo ) With these in hand and a 3D printed mount ( *Bare Bones 28BYJ-48 Gimbal. by mmontee - Thingiverse ) for them I went forward with the software.
Arduino and Driver
These can be cheap ( Amazon.com : Longruner 5x Geared Stepper Motor 28byj 48 Uln2003 5v Stepper Motor Uln2003 Driver Board for arduino LK67 : Camera & Photo ) With these in hand and a 3D printed mount ( *Bare Bones 28BYJ-48 Gimbal. by mmontee - Thingiverse ) for them I went forward with the software.
Arduino Software
In the old days I would have writen the code from the ground up. With the arduino you can often get a well tested library for this. I found the following and decided to use it.
For a long time I have had a belief that almost all arduino programs should have some sort of serial interface. And this is what I did for this project. The arduino is sent commands, typically a single character optionally followed by a number. From the help command built into the program here is a summary of the commands:
# <<< TwoAxis Ver1 2017 11 14.00 # <<< ok # >>> ? # <<< Arduino: TwoAxis Ver1 2017 11 14.00 # <<< mnn chooseMotor # <<< tn move to Target n # <<< t-n save Target n # <<< b baklash adj # <<< nn cmotor nudge n !! # <<< snn cmotor setSpeed # <<< ann cmotor setAcceleration # <<< dnn doDance # <<< z both motors zeroPosition # <<< w statusReport WhatWhere # <<< v Version of software # <<< ? Help # <<< ok Help # <<< ok
Here is a bit more detail on the commands.
- m select the active Motor, either motor one or 2. Motor 1 is the asumith, x motor. Motor 2 is the altitude, y motor. The commands are m1 or m2
- n Nudge the active motor forward or backward by some number of steps. So commands look like n22, n-99 n 10 and so on.
- t Target the laser at one of several ( 24 or more ) different targets that are coded into the program. The commands look like t5, t7.....
you can also change the steps for a target to the "current" location of the target by using a negative target numbers. So t-7 saves the current steps to target 7
- with move the current motor, either motor 1 the asumith x motor or motor 2 the altitude, y motor. So commands look like m22, m-99 m 10 and so on.