2ndsemesterreport

122
Spent Shell Casing Separation Machine Phase II 462 Design Project 2 Report Sponsored by: Members: Cole Cameron Thomas Crandall Steven Duval Nolan Michaelson Mentors: Dr. Majura Selekwa Rob Sailer Table of Contents 1. Introduction 1.1. Project Description ………………………………………………………...….... 4 1. 2.Objective…………..……………………………………………………….…....... 5

Upload: thomas-crandall

Post on 21-Jan-2018

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2ndSemesterReport

Spent Shell Casing Separation

Machine Phase II

462 Design Project 2 Report

Sponsored by:

Members: Cole Cameron Thomas Crandall

Steven Duval Nolan Michaelson

Mentors: Dr. Majura Selekwa Rob Sailer

Table of Contents

1. Introduction

1.1. Project Description ………………………………………………………...…....4

1. 2.Objective…………..……………………………………………………….….......5

Page 2: 2ndSemesterReport

1

2. Design Procedure

2.1. Problem Analysis.………………………………………………..….……….......5

2.2. Decision Matrix .………………………………………………...………………..5

2.2.1. Casing Orientation….……...............…………………………...….…6

2.2.2. Casing Identification……………………………………...…………...6

2.2.3. Casing Delivery………………………………………...……………….7

2.2.4. Claw Grasps & Base Diameter………………………………...…….8

2.2.5. Height & Neck Dimensions …………………………………………..9

2.2.6. Controller ……………………………………………………………..10

2.3. Project Constraints ………………………………………………………..… 10

2.3.1. Engineering Constraints …………....……………………..……….10

2.3.2. Safety Constraints ……………………………………………..…… 12

3. Design

3.1. Alternative Designs ….………………………………………………………...13

3.1.1. Hopper Assembly…………………………………………………….13

3.1.2. Bin Assortment Assembly……………………………………….…14

3.1.3. Delivery System Assembly…………………………………………15

3.1.4. Caliber Identification Assembly …………………………………..15

3.2. Alternative Chosen ……………………..……………………………………...17

3.3 Semester 2 Design Alterations…………………..…………………………....18

3.3.1. Electronic to Pneumatic……………………………………..……....18

3.3.2. XY-Table

Alterations…………………………………………….…....19

3.3.3. Framework……………………………………………………………..20

3.3.4. Efficient Delivery to Claw Grasp…………………………………...21

3.3.5. Elimination of Neck Dimension…………………………………….22

Page 3: 2ndSemesterReport

2

4. Detailed Final Design

4.1. Components……………………………………………………………………..24

4.1.1. Electrical Components……………………………………………....24

4.1.2. Printed Components………………………………………………....26

4.1.3. Mechanical Components…………………………………………….27

4.2. Machine Operation……………………………………………………………...27

5. Project Planning

5.1. Task List ………………………………………………………………………....29

5.1.1. Semester Plan …...…………………………………………………...29

5.1.2. Gantt Chart …………………………………………………………….39

5.2. Variation From Project Plan ………………………………………………….39

5.2.1. Second Semester Additions………………………………………..39

5.2.2. Straying From project Plan………………………………………….40

6. Project Budget

6.1. Budget Justifications ………………………………………………………….41

6.2. Hardware/Dimensioning ……………………………………………………....42

6.3. Frame Materials ………………………………………………………………...44

6.4. Transport Design ……………………………………………………………….45

6.5. Revisions and Actual Spent Funds……………………………………….....47

7. Fabrication and Troubleshooting

7.1. Electronics Assembly and Integration……………………………………...49

7.1.1. Bench Testing………………………………………………………....49

7.1.2. Writing Code…………………………………………........................50

7.2. Fabrication………………………...……………………………………………..51

7.2.1. Modeling………………………………………………………………..51

7.2.2. Fabrication and obstacles……………………………………..…....51

Page 4: 2ndSemesterReport

3

7.2.3. Troubleshooting……………………………….……………………...54

7.2.4. Code Adjustments………………………………………....………....55

7.3. Project Testing…………………………………………………………………..55

8. Future Recommendations

8.1. Near Future…………………….………………………………………………...57

8.2. Phase III…………………………………………………………….……………..57

7. Appendices

7.1. Appendix A ……………....……..……………………………………………….60

7.2. Appendix B ……………………………………………………………………...86

7.3. Appendix C ………………...……………………………………………………88

7.4. Appendix D …………………………………………………………………..….94

1. Problem to be solved

1.1. Introduction

The Red River Regional Marksmanship Center (RRRMC) is a shooting range located in

West Fargo. They deal with a plethora of different spent shell casings each year. It is

estimated that 1.5 million rounds are shot there every year. Most of the spent cases are

sold in bulk as unseparated scrap for roughly $15 per 1000 rounds. Whereas sorted

casings will sell for five times that amount, averaging $75 dollars per 1000 rounds.

Currently, the spent shell casings are sorted manually by physically looking at the

caliber print which is a slow and painstaking ordeal or by using a slightly quick sieving

technique. These sorted shell casings are much more valuable to RRRMC and

consumers because it saves time, money, and inappropriate loading. Therefore, an

accurate and quick shell casing sorter that is automated would be ideal for RRRMC and

many consumers who reload their own ammunition. Currently the available shell casing

Page 5: 2ndSemesterReport

4

sorters are limited to the number of different calibers that they can sort. There are other

homemade shell sorters that can sort a variety of spent shell casings however, with

limited speed and accuracy. Currently on the market are shell sorting sieve that are

affordable to the average consumer, but they will only sort 3-5 different calibers based

on the casing diameter. Larger faster machines are also available for purchase. These

machine are capable of sorting enormous amounts of casings in a somewhat accurate

manner, as it sorts by spinning the shells out and then sorting them strictly by the shell’s

height. They devices can cost as much as $10,000.

The shell sorter project was introduced to the department last year. The task was

similar to one faced now with fewer constraints. The previous group was only required

to sort handgun calibers which is much more simple than the proposed project this year,

which consists of both sorting rifle and handgun casings. With this being the second

attempt at creating a shell sorter through RRRMC, some ideas and designs from the

previous group could be used and improved upon. The two main components to

improve upon is the method of identification to correctly determine the casing caliber

and a more reliable delivery system. As stated previously, the aim of the project is to

improve speed and accuracy of the shell sorting process while increasing the number of

shell casings that are able to be sorted. Currently the RRRMC has volunteers that

collect the spent rounds and sort them manually using multiple sieves differentiating

them by the body diameter. A few problems that exist are that some calibers with

different lengths share the same body diameters or very close to the same, differing by

just a few thousandths of an inch. Nesting often occurs as well where smaller cases will

nestle inside of a larger caliber.

1.2. Project Objectives

The objective of this project is to design and build a machine that will automatically

separate a large variety of handgun and rifle calibers. The calibers will be grouped into

individual bins so the more expensive casings can be sold to be reloaded. This will be

accomplished while meeting the constraint criteria in section 2.2. below.

2. Procedure

2.1. Problem Analysis

The first step in any design procedure was to identify the problem, and then clearly

understand that problem. A general knowledge of firearms was held by the group

members initially helping comprehend the situation yet a great deal of research was

Page 6: 2ndSemesterReport

5

done in the attempt to grasp the presented problem. It was found that there are various

reasons for reloading, as well as how large of an industry it actually is. Rob Sailer is not

only an advisor to the design group, he is also involved with the RRRMC and has an

extensive knowledge of reloading, as well as firearm. He was asset in helping

understand the issue and also very helpful beyond that.

The last years attempt at the project to sort solely handgun calibers, where the project is

now are faced with the task to sort handgun and rifle calibers, greatly increasing the

complexity of the project. Next a decision had to be made as to if there were any ideas

or parts that could be recycled from the previous project. Eventually it was decided to

take the case-feeder that was incorporated into the previous sorter to deliver the shells

to the identification step and orient them properly. The other main component that

might be able to transfer over to the new design is the previous controller board.

2.2. Decision Matrix

A decision matrix was created to help guide the selection process, weighing the pros

and cons and grading the potension selection from 1 to 5 in accuracy, repeatability,

durability, complexity, and price. All of which had their own weight assigned as well. for

each potential decision.

2.2.1. Casing Orientation

The first issue encountered was how to orientate the casings. To get an accurate

identification for the shells it was needed that they all be positions in a uniformed

fashion. The manner in which it was orientated wasn’t too important, it be on the casing

side or on erected. It just had to face the same direction. The Dillon Precision case

feeder which was used during phase 1 was considered as well as a stepper system.

The case feeder was used in the previous group with a high degree of success and it

could run until told to stop by using a trip switch. one possible downside if the feeders

plate are meant to be used by only a certain group of spent casings and this could lead

to more plate being needed and to be swapped. the step feeder design could potentially

orient more shells per cycle of the system. It would orient all shells in a horizontal

manner and this is something else that would have to be built in to lay shells in another

manner.

Variable (importance)

Accuracy

(5) Repeatability

(4) Durability

(3) Less

Complexity

Price

(1) Total

(Higher Better)

Page 7: 2ndSemesterReport

6

(2)

-Case Feeder (Dillon Precision) 5 5 5 5 2 72

-Stepper System 4 4 5 1 2 55

2.2.2. Casing Identification

After a method of orientation was decided upon, the next step was to determine a way

to identify the caliber of the casings. This stage of the process essentially would either

make or break the design, this decision was crucial. Two types of identification were

research. One method would look at the engraving on the bottom of the shell casing

that says the caliber, this would provide an accurate identification. On the other hand, a

physical method of dimension was later looked at as well. The stamps of shells provide

a definitive marking that is as simple as reading the date on a penny. That penny

however can be shiny and new or dull and corroded. This could make it difficult to make

out those 4 numbers. now try reading 6 what if they included both letters and numbers.

any imperfections could create quite a hassle for anyone who is trying to read it. These

same difficulties were faced when it came to trying to use image recognition to read a

code on the back of spent shells. Both the Pen and the webcam struggled with the shiny

material that would hinder accuracy of the software. Also with the image recognition

both options would work best with a computer of some sort which would create another

communication barrier. For the physical dimension aspect weight and physical

dimension, heights and diameters, were contemplated. Weight wasn’t an option

because the difference between shells was too small. Physical Dimensions had two

other paths related to finding heights and diameters one was looking at an image similar

to what phase 1 did except incorporating reading a neck diameter to be capable of

sorting rifle casings. This proved to be costly as the previous group found out. For a

preassembled camera with dimensioning capabilities built in it would cost more than

$1500, and limited software was commercially available that could handle a width and

length let alone a 3rd reading. Then infrared sensors (IR) and linear potentiometers

were looked into. It was quickly found the IRs were not capable to be precise enough for

our project. It was however found that potentiometers were not only accurate they gave

consistent reading that suited the project goals nicely.

Variable (importance)

Accuracy

(5) Repeatability

(4) Durability

(3) Less

Complexity (2)

Price

(1) Total

(Higher Better)

-Image recognition

Page 8: 2ndSemesterReport

7

1. Scanning Pen 5 5 4 1 3 62

2. OCR 5 5 4 1 1 60

-Physical Dimensions

1. Potentiometers 5 5 4 5 5 72

2. I.R. Sensor 1 5 4 5 3 50

3. Image Dimension 5 5 4 2 1 62

2.2.3. Casing Delivery

An accurate identification of the spent casing is meaningless without means of

transporting it to a specific container. It is crucial in order to “sort” the casings. A

conveyor belt system was initially consider for the general simplicity in the concept as

well as a more sophisticated method referred to as an XY-table. It is the same concept

used in a claw machine, or 3D printer. A conveyor was found to create a large and bulky

design that would more than likely tip shells over and could cause them to go into

incorrect bins. Some sort of system would need to be in place to push shell into their

bins. Such a design however could create an easy retrieval of full bins. Bettering Phase

1s delivery system was considered however it would limit the number of bins we could

distribute to as well as their success rate was hindered mostly by their delivery system

and never exceeded 85%. An x-y table design could give us access to a much more

linear tube delivery design as well as fitting 3x as many bins on a footprint only slightly

larger than 2x the phase 1 design. A linear design would give a much easier coordinate

system to work with. Full bins can be accessed much easier if they are all on the front of

the machine then if some are in the back. A circular table design would yield a smaller

footprint but would require a more complex software to deliver in radial coordinates.

Variable (importance)

Accuracy

(5)

Repeatability (4) Durability (3) Less

Complexity (2)

Price (1) Total

(Higher Better)

-Belt/conveyor 4 3 4 2 3 51

-Phase 1 concept 2 2 4 4 5 43

- x-y table

1 Linear 5 5 4 3 3 66

2 Circular 5 5 3 3 4 64

Page 9: 2ndSemesterReport

8

2.2.4. Claw Grasps & Base Diameter

The casing must remain very still throughout the time is is being identified, whether is is

having the imprint recognized or if the dimensions are being taken. A securing grasp is

intended to be implemented to secure the shell throughout the process as well as in the

delivery. It seems simple in theory but there are many options to weigh in the deciding

processes for this component. Multiple claw designs came about and initially it was

thought an OCR program we only considered holding a shell but after the base diameter

was thrown into the mix we considered the levels of precision we needed to hit. We

created designs that increased the travel distance of a measuring device to give more

wiggle room to a big determining factor. It wasn’t until we figured out definitively that

potentiometers specifically would give us a reading accuracy of .0002” with 2.39mV

change and a linearity of 0.05% that we then decided a claw with linear motion wouldn’t

decrease accuracy to an undesirable level. Parallel plate design became more complex

than necessary to complete our task so we no longer considered it. A solenoid being

just a simple on or off device was chosen not only because of an easier complexity but

it was chosen or the other because they are reliable and consistent. The design concept

of having one fixed plate and one moving was proposed for the same reason as the

scissor claw to increase the distance traveled for potentiometer resolution. That point

became null after a baseline was established and the high degree of machining required

to create that design was deemed too great to proceed with such a design.

Variable (importance)

Accuracy (5) Repeatability

(4) Durability (3) Less Complexity

(2) Price

(1) Total

(Higher Better)

- Parallel plates scissor 5 3 3 2 4 54

- linear movement claw

1. solenoid (to

move the claw )

5 5 5 5 4 74

2. Actuator (to

move the claw

5 4 4 3 4 63

- one f ixed plate one rotating

4 5 4 4 5 65

2.2.5. Height Dimensions

After it was found to be possible that a base diameter could be easily obtained through

the use of the grasp that secure the shells throughout the sorting process, it was now

Page 10: 2ndSemesterReport

9

necessary to discover a method that could acquire the shells height if needed. There

were an extensive number of methods brainstormed for this step. Angled plates that

held a conductive property to read a distance dependant on a voltage, controlled plates,

solenoids, basic, and pneumatic actuators were all potential components to achieve this

dimension. Along with many others that didn’t seem qualified or capable enough to be

considered in the decision matrix. Multiple ways were considered to get the height. To

get the height consisted of a design that utilized angles to drop a plate on to the edge of

the shell and to decrease the stroke length needed while increasing the potentiometer

travel. This was not used because the potentiometer travel doesn’t need to be

increased to that level which decrease the amount of force we can touch of on the neck

diameter. Another design consisted of a plate at a fixed angle that we would run our

claw and shell into using the x-y table to find the height and the neck would consist of a

touch off as well but the same inconsistency arose with this design with not enough

force holding the shell in place while finding the neck. A linear drop down plate was was

thrown into the mix to increase the force holding the shell in place while the neck

diameter is found. both actuator and solenoid were considered for this design but

solenoid unless modified to get our length of travel was used it wouldn’t be feasible. A

Linear actuator was assessed to fulfill this need because it has both the range of travel

desired as well as the feature of having a potentiometer built into it with a high degree of

precision available. While only requiring a limit switch to stop the motor from burning

itself out when holding the shell in place.

Variable (importance)

Accuracy (5) Repeatability (4)

Durability (3)

Less Complexity (2)

Price (1)

Total (Higher Better)

-angled plate and x-y table 5 3 4 1 4 55

-drop and hold plate (angled)

5 4 4 3 4 63

-drop and hold plate (linear)

1. Actuator 5 5 5 4 4 72

2. Solenoid 4 5 5 5 5 70

3. Pneumatic Actuator 4 5 4 3 3 61

2.2.6. Controller The final decision made was on how the outputs of the working components would be

collected and translated to an actual dimension. A dimension accurate to a few

Page 11: 2ndSemesterReport

10

thousandths of an inch, so it could be capable enough to differentiate even the slightest

differences between similar casings. It was found that by using the equation 𝑉

2

2# 𝑜𝑓 𝑏𝑖𝑡𝑠

V being the input voltage to the daq it was found that when discounting noise a 10V in

with a 16 bit daq could differentiate down to a change of 1.5 mV.

2.3. Project Constraints

2.3.1. Engineering Constraints

The final design was said to have to meet these criteria: The RRRMC would like for the

sorting process to not only be nearly as accurate as sorting the casings by hand but it

must be completed in a fraction of the time. A shell needs to be sorted every two

seconds as it take the volunteers roughly ten seconds a shell by hand. A 98%

accuracy in identification and proper delivery was desired, which is proving difficult as

some shell casings only differ in a few thousandths of an inch in their size and 2-3% in

total weight, without regarding tolerances. The previous year’s senior design group was

only tasked with handgun calibers and therefore able to only use height and diameter to

identify the casing. Rifle calibers are now asked to be sorted so a third diameter would

most likely be needed. A list of common handgun and rifle calibers are listed in

Appendix A, Item A1. Figure 1 shows the overlap that would occur among the most

common rifle and handgun calibers if tolerances are taken into account.

Page 12: 2ndSemesterReport

11

Figure 1: Casings Dimension Overlapping

Above the figure shows how similar some casing can be. It was first thought that it not

be sufficient to identify the casing caliber with 99% certainty by just looking at the base

diameter and the height. As it is showed, between the most common calibers to be

used at a gun range, there are four areas of overlap that occur amongst different

casings when the tolerances are taken into account. Using the Sporting Arm and

Ammunition Manufacturing Institutes (SAAMI) dimensions the above figure was created

where the diameter is plotted along the X-axis and height along the Y-axis. The

tolerance for both dimensions are shown by the circles and connecting arms on the

points. There would be no issue if only one dimension was shared between calibers but

if both height and diameter overlap, then identification conflicts would occur. Among the

overlapping, some of the calibers are much more common than the other similarly sized

casings. A .270 Winchester and .30-60 are two very common rounds, whereas the .25-

06 will only be shot about 5% as much as the others. The .22-250 and .308 Winchester

are said to be a thousand times more popular among shooters than the similar .338

Federal and .300 Savage calibers. Not shown are the various 9mm calibers, yet only

one is very common. Lastly the .40 Smith & Wesson is tenfold more common than the

similarly sized .357 Sig Sauer.

Page 13: 2ndSemesterReport

12

The figures below emphasize how close the rifle and handgun casings truly explain why

a scale isn’t a simple possibility as well as why there can be conflictions while correctly

identifying the casing caliber. Figure 2, taken from ammoland.com shows the similarity

between the .308 Winchester and.338 Federal rounds (Grey, 2012). Figure 3 shows a

.30-06, .25-06, and .270 Winchester in comparison. Lastly in Figure 4 from

gunsamerica.com one can see the only variance that can be seen by the naked eye is

the presence of the neck on the .357 Sig Sauer when compared against the .40 Smith

and Wesson (McHale, 2014).

Figure 2 Figure 3 Figure 4

The RRRMC estimates that 1.5 million rounds are shot there every year so the design

must be durable enough to separate 1.5 million casings with a reasonable reliability. It

is important that the design rarely malfunctions or breakdowns and doesn’t require

frequent maintenance. If necessary, the design may have a yearly maintenance and

calibration.

2.3.2. Safety Constraints

The operator on the sorter must be able to use the machine safely with little or no

training. The staff at the RRRMC are volunteers who will not be officially trained in.

The other intent is for the club’s members to be able to bring in shells of their own and

have them sorted.

Page 14: 2ndSemesterReport

13

A noise no louder than 85 dB was required. According to the Occupational Safety and

Health Administration (OSHA), eight hours of exposure at 85 dB is when permanent

damage to one’s hearing can occur. This volume will also allow the staff to

communicate with the members operating firearms. A glass or plexi shield separating

the operators and nearby personnel from the working parts is also needed as the design

will be placed in the lobby of the RRMCC lobby for member use.

3. Project Design

3.1. Alternative Designs

3.1.1. Hopper Designs

The other important aspect of the shell sorter is the delivery system. Delivery from bulk

to the area where the shell would be identified, and delivery to the correct bin from

there. From reading the previous group’s report there were two different hopper designs

to feed the casings to the platform in which they could be classified, as well as orient the

spent shells in an organized manner. The first hopper concept is a machine that is used

and found in industry today to orientated bulk items from a large bin. It's referred to as a

step feeder and utilizes a conveyor belt. The feeder has a ledge that passes through

the container grabbing multiple casing every pass, setting them on the conveyor. The

belt would be sized so that only if the casing was oriented upright it would be accepted,

the rest would be swept back into the container to try again. The downfall in this design

is that it can not accommodate a large variety of sizes so the calibers that can be sorted

would be very limited. Figure 4 below displays the step feeder.

Figure 4: Step Feeder (youtube.com) Figure 5: Case Feeder (youtube.com)

The alternative to the stepper was a hopper sold by Dillon-Precision called a case

feeder. The case feeder shown above in Figure 5 is a moderately sized container with

an angled disk located within it. The disk has slots located around the edges sized to fit

certain calibers depending on the particular disk. As it rotates it will collect the spent

Page 15: 2ndSemesterReport

14

casings, as the casing is brought higher, those casings oriented with the primer up will

fall out due to them being too top heavy. The casings oriented primer down will be

brought to the top and dropped through a slot and delivered to the platform where it can

then be identified.

3.1.2. Bin Assembly Designs

An array of tubes connected to an assortment of bins was always the initial design

chosen. At first a circular sketched in Figure 6 below was considered because this

made the distance traveled during transportation shorter due to a centralized home

position. In response the shorter travel distance, there would be a cut down on the time

to transport casings. Although the idea behind a quicker transportation system is

appealing issues were encountered with the footprint. With a circular orientation it would

be required that the casing sorter be accessible in 360 degrees, which was an issue

because the RRRMC would like to be able to put the casing sorter up against a wall in

the facility.

Figure 6: Circular Bin Array Figure 7: Linear Bin Array

After putting into consideration of the sorter needing to be against a wall, a linear design

was created, making the bins stack in a 6X6 orientation for a total of 36 bins. A drawing

is pictured above in Figure 7. Each bin is spaced out one inch further from the one

below it allowing for the delivery tubes to have clearance which will be covered in the

following section. This linear orientation addressed the issue of having it against a wall.

The only potential issue with this design is the loss of time due to not having the home

position of the x-y table centralized. The timing of the processes will only be able to be

determined once the design is built and tested.

Page 16: 2ndSemesterReport

15

3.1.3. Delivery System Designs

Early on during the brainstorming phase of the project, a delivery system was priority

after deciding initially to go with the OCR software route. Last years group had struggled

with this aspect of the project. They had a simpler design that relied on a stepper motor

to swivel an arm that would separate casings into the correct tube that would then lead

to the bins. The stepper motor the previous group had used did not have an encoder

which caused issues with position, because the stepper continuously over-stepped

during operation. The other flaw in the last groups design was the use of flexible vinyl

tubing to direct casings to their bins. The issue with this tubing is it tends to be sticky,

and they had it in a curved orientation which caused casings to get stuck in tube during

the transportation process.

The final design for the delivery system was based off of the last groups deficiencies.

The group wanted to eliminate the possibility of a casing getting stuck in transport. To

eliminate this factor we designed a more direct route for the casing to follow. An x-y

table was designed to transport the casing using a V-Block claw design. This V-Block

clamps onto the casing with a 1.12 pound clamping force and carries the casing to a

position defined by (x,y) coordinates. Once the casings is brought to position by the

clamp it is released. At this point in the process the casing then travels down a ¾” PVC

tube, dropping into its desired bin. Preliminary sketches to better help understand the

XY-table and clamp are included below.

Figure 8: XY-table Concept Figure 9: Grasp Concept

Page 17: 2ndSemesterReport

16

3.1.4. Caliber Identification Designs

There were many different possibilities that were considered when designing the shell

sorter. The first option was to use an image recognition software or optical character

recognition (OCR) program, and incorporate a laptop. The idea was to capture an

image of the imprinted caliber on the bottom of the casing. A web camera, digital

camera, scanners, and scanning pens were all thought of yet none of them would work.

A software program capable of reading the curved text of the various sized shells,

especially a poor quality image due to the reflecting brass and lack of contrast within the

engraving, was unable to be found. The scanning pen was unable to accomplish

identifying the engraved text as well. The text was again too reflective and orientation

of the pen to properly capture the text would be rather difficult. Physical dimensioning

was the only path to go then. A 3D scanner connected to the rendering program,

SolidWorks to dimension the scanned shell was thought of. Ultimately that idea was

much too expensive. There again was to option to follow in the footsteps of the

previous group’s idea to capture the height and width diameters through an image taken

by a smart camera. Another promising design was introduced by our mentors. The

design used an angled plate that was placed near the shell. A v-notched clamp will

center, and grasp the shell and bring it into contact with the plate. When contact is

made the height of the shell as well as the neck diameter can be calculated from the

known angle, distance to center of the shell. It is then moved to yet another location to

make contact with an on/off switch to determine the base diameter from the final

position. Figure 5 below shows it with more clarity. Another idea to get the physical

dimension of the casing was to incorporate an infrared sensor to determine the distance

from the mounting point and find the diameter and height from that distance. The final

concept also incorporated a physical dimensioning system

Page 18: 2ndSemesterReport

17

Figure 10: Angled Plate Design Figure 11: Drop Arm Design

3.2. Alternative Chosen:

The basis of the chosen design was to recycle the case sorter to deliver the spent shells

with the desired orientation of the primer on the bottom. Three plates would be used,

large rifle calibers, small rifle calibers, and handgun calibers. So three runs would be

needed if the spent shells placed into the casefeeder were completely random. The

difficulty that was encountered time and time again was the difficulty of identifying the

shell. The method of delivery was always thought to work, and therefore the

identification part was to be incorporated into the grasp designed to grip and carry the

shell to the correct tube to be sorted. To achieve this, a physical dimensioning method

chosen was to use linear potentiometers. Using the formulas below it was calculated

that the desired potentiometer would have an accuracy of .002 inches with the desired

voltage, which met the needed criteria.

Page 19: 2ndSemesterReport

18

A linear potentiometer works with a slider that travels along the resistor varying the

resistance between it and two other connections. The resistance element is excited by

either DC or AC voltage. The output voltage corresponds to a distance. With the

chosen potentiometers it was possible to achieve the .002 inch tolerance that was

desired. With this possibility it was decided that only two dimensions would be needed

to differentiate all but two calibers, the .30-06 and .25-06 because the dimensions are

identical and the only variance is in the neck dimension. This decision was only made

after sample were taken from the RRRMC and research on the calibers popularity

amongst reloaders was conducted and found that the .25-06 calibers was a fairly

uncommon round to come across. An expert on the issue had told the group that on

average the .30-06 caliber would be encountered twenty times for every one time the

.25-06 was. This gave enough justification to say the .25-06 was not a desired caliber

and the rare occurrence of one could be handpicked out of the .30-06 bin. This allowed

the elimination of a neck diameter dimension as in added a good deal of complexity to

the overall design.

Figure 11: Linear Potentiometer Schematic (instrumentationtoday.com)

Also the XY-table design was kept, but a rectangular profile was chosen with the case

feeder placed in the side of the frame, no longer would it be placed in the center. This

helped to reduce the programing complexity be providing each delivery with a common

direction. Initially it was planned to run the length of the frame with two linear rails and

carriages supporting another rail and carriage spanning the frame. The question arose

of how parallel the rail could be mounted and would it cause chatter if it could not be

mounted perfectly. To fix the issue it as suggested by the group’s mentor to only use

one supporting rail and carriage replication a cantilever beam if a carriage rigid enough

could be found and afforded which it was. Firstly a v-notched clamp will center, and

grasp the shell by engaging a pneumatic cylinder that has been modified to run a linear

potentiometer that will determine the casings base diameter. The secured casing will

then be slightly moved where another pneumatic cylinder fabricated to run a linear

Page 20: 2ndSemesterReport

19

potentiometer that is positioned vertically will come in contact with the top of the casing

to determine the shell height. A more informative image of a decision map showing the

selection process is listed in Appendix B, Figure B3. A written program will then identify

the shell, and the xy-table, with the attached v-notched clamp will deliver it to a certain

tube leading to the correct bin. This should identify the vast majority of rifle and

handgun calibers without overlap. Theoretically the only overlap will be the confusion

between the .30-06 and .25-06.

3.3. Semester 2 Design Alterations

3.3.1 Electronic to Pneumatic

When the plan was solidified at the end of the first semester, the plan design was gonna

use linear actuators with an internal resistance and voltage output together the casing

dimensions. Electrictronic actuators are better known for their high levels of precision.

Though this is not to say pneumatic actuators cannot deliver very precise motion. But

the daunting task to differentiate every possible casing was upon the group and the

highest level of precision was sought after.The cost for this precision can also be quite

large in comparison to the alternative that was presented. Pneumatic component are

much cheaper and were found capable of the precision we needed if the paired

potentiometer was also. Pneumatic actuators provide high force and speed at low unit

cost in a small footprint. Force and speed on pneumatic actuators are also easily

adjustable and are independent of each other. The only con for a pneumatic system in

comparison to the electronics is the noise of the compressor and operating cost. But for

this small of an application maintenance and operation costs are relatively negligible.

The noise would have to be accepted or the compressor running the cylinders could

also just have a long air line supplying the machine.

3.3.2. XY-Table Alterations

To transport the casings the construction of a typical linear motion or XY-table was in

place. Little was initially known about linear motion, so a basic table was thought to be

the route. A typical construction seemed to be the best plan of action. With three rails,

two rails that would span the long distance. Atop those rails would be a shorter rail and

carriage being supported by the first two and mounted to the carriages. But Variations

among XY tables include the ways and the drive mechanism. The ways determine load

capacity, straight-line accuracy, and stiffness, or durability, while the drive mechanisms

determine smoothness and speed. With three rails and other two motors running a

single belt for each direction of travel chatter would most likely occur often with high

level of torsion and also with low levels or torque as well if the table’s rail and carriage

Page 21: 2ndSemesterReport

20

connections were not rigid enough. If any variance in the parallel aspect of the rails

might occur the travel would also not be as effortless and smooth as it needed to be.

To eliminate chatter a cantilevered design was proposed and eventually decided upon

once it was proven that the deflection in the beam would not pose an issue. The

deflection in the beam was calculated and can be seen below. The actual beam

deflection was found to be negligible. The idea would save a good deal of money

eliminating one length of rail and a carriage. It would also function much better provided

that rail could support the levels of moment the cantilever would pose on it and also

travel effortlessly with the full load imposed on it.

Page 22: 2ndSemesterReport

21

Page 23: 2ndSemesterReport

22

3.3.3. Framework

The supporting framework of the design was initially a bit overkill, and incorporated 14

gauge 2” square tubing. Constructing the framework from this material would have

been relatively expensive and unneeded. Later the material was reduced to 1” square

tubing. This original design which can be seen below in Figure 12 also incorporated a

large quantity of weld and precises cuts in an attempt to increase the appearance and

functionality of the framework. With welding many errors could potentially occur without

a professional, and the concept called for tremendous precision in the angles and

dimensions to function well, so the design was simplified. The finalized framework can

is also shown below in Figure 13 and eliminates the vast majority of cuts and weld

essentially simplifying the frame greatly while maintaining all of the previous

functionality.

Figure 12: Original Framework Drawing Figure 13: Final Framework Drawing

3.3.4. Efficient Delivery to Claw Grasp

The complexity as well as the importance of the component that would provide the

medium between the case feeder and claw was greatly underestimated at the start of

the semester and was essentially neglected in the first semester. It was overlooked

because all members thought it would be an easy task to deliver the shell from the case

feere to the claw without tipping. To achieve the desired accuracy the shell must also

be delivered to the same vertical height every time. The original thought was to simply

allow for a free fall and cushion the landing or provide a flexible curtain made from

rubber that would remain rigid enough to prevent tipping but flexible enough to pull the

shell through without moving it. At the beginning of the second semester that idea was

concluded to not be repeatable enough, so a new idea was come up with. It was coined

the “drop down tube”. The delivery system would be constructed from two nested

tubes, with diameters created to allow for all of the expected casings to fit and also

Page 24: 2ndSemesterReport

23

allow them to slide into each other. The resting position would be in the fully extended

position, extending almost entirely from the case feeder to the claw grasp so the falling

shell would be constrained on all side creating a repeatable accurate delivery. The claw

would then trigger and the smaller tube would retract up into the larger tube via a

pneumatic cylinder allowing for the claw and attached shell to travelfreely. To help

understand the concept, a cross sectional is shown below in Figure 14.

Figure 14: Servo Motor with Tube Assembly Cross-Section

3.3.5. Elimination of Neck Dimension

The incorporation of a neck dimensioning mechanism was begun to be questioned.

Adding such a device added a high degree of complexity to the design physically and

electrically. The neck dimension would needed to be independently triggered by a

pneumatic cylinder just as the other dimensioning mechanism were. The addition would

mean a relay must be created on a breadboard within the electrical box to support this

action because all the ports are the Arduino relay shield were occupied. It isn’t

impossible, it’s actually relatively simple to construct a relay on a breadboard but the

Page 25: 2ndSemesterReport

24

machine vibrate a lot and would shake pins and other connections loose if they were not

secured with a set screw. The assembly is shown below in Figure 15. To maintain the

user friendly component that was sought after it was avoided. This wasn't the only

reason though. More consideration was but into the nominal dimensions of the most

commonly fired calibers and most popular calibers among reloaders. Specifically

amongst the rifle calibers and a conclusion was made that all but two calibers could be

sorted without a neck dimension, the .30-06 and .25-06 because the only variance in

the shells are the dimension of the neck. The .308 Winchester and 7.62 NATO also

have identical dimensions in the base, height, and neck. So the addition of a neck

dimension still couldn’t differentiate between them because they are interchangeable. A

comparison of the considered calibers can be seen below in Figure 16. This of course

would only be valid if the precision of the components was as high as expected. To test

this a .45 Long Colt and .45 Auto were tested with the components on a temporary

stage. Based on the base dimension alone, they would consistently be differentiated

between. To do this a precision of 4/1000" was needed. This gave enough justification

to eliminate the neck dimension. The range was contacted to help further justify this

action and two things supported this. They said the .25-06 is a relatively rare caliber

and isn't of much importance. They also said that rifle caliber only compose roughly

20% of the rounds shot there making pistol accuracy the main priority.

Page 26: 2ndSemesterReport

25

Figure 15: Second Stage Assembly

Page 27: 2ndSemesterReport

26

Figure 16: Justifying dimensions to eliminate neck measurement

4. Detailed Final Design

4.1. Components

4.1.1. Electrical Components

As the project progressed further the conditions changed and the previous decision

matrix was then modified to now account for the new priorities given the conditions.

Pneumatics were again looked at, and instead of using an actuator driven with

pneumatic, potentiometers would be used in cooperation with the pneumatic cylinder.

The option was found to be much cheaper and with the incorporation of all the other

components already that were needed it was also found to be the least complex option

Accuracy (5) Repeatability

(4) Price

(3) Durability

(2) Less Complexity

(1) Total (Higher

Better)

1. Actuator 5 5 2 5 2 63

2. Electromagnetic Solenoid

4 5 4 5 3 65

3. Pneumatic Solenoid 4 5 5 4 5 68

Numerous electrical components are used to make the machine function. Three double

acting pneumatic cylinders were chosen and are now used. The first has a 3” stroke

and is used in the delivery of the shell to the claw grasp. The second has a 1 ½” stroke

and is position on the claw to both grasp the shell and obtain the base dimension. The

last has a 2” stroke and is attached to the second stage assembly to gather a height

dimension for the casing if it is needed. To active the cylinders, three 4-way pneumatic

solenoids were used and controlled by the Arduino Uno. A pulse would trigger the

cylinder to extend the rod by filling one end with air, another pulse would fill the other

side with air to retract it. To optimize the pressure for each cylinder, a regulator was

used. Because of the three different purposes, three different pressures were thought

to be needed. Attached to each valve were air flow control valves to vary the speed the

cylinder rod would be retracted or propelled. A 24V 1A AC to DC power supply powers

the solenoids. A linear motor XY-table is responsible for the travel while delivering the

shell. To propell the carriages a NEMA 23 stepper motor is used for each direction of

travel. Powering the motors are two stepper drivers powered by a 48V 7.3A AC to DC

power supply.

An Arduino Uno was used as a controller. Arduino is an open-source platform used for

building electronics projects. Arduino consists of both a physical programmable circuit

Page 28: 2ndSemesterReport

27

board and a piece of software that runs on your computer, used to write and upload

computer code to the physical board. The Arduino platform has become quite popular

with people just starting out with electronics, and for good reason. Unlike most previous

programmable circuit boards, the Arduino does not need a separate piece of hardware

to load a code. It can use a USB and it is free. That is why is was chosen. The

Arduino Uno has the capability to output 5V of power through one pin and 3.3V through

another. From these pins, five smaller components are power: a linear push

potentiometer, a linear slide potentiometer, an IR break beam sensor, and two limit

switches. The potentiometers that will be utilized to gather both the height and base

diameter dimensions will share the 5V output pin as that is what they’re rated for.

Connecting them in parallel with a din rail power block allowing them to both be supplied

with the full 5V providing the most accurate resolution. The two limit switches and IR

sensor do not need and accurate voltage drop. They just need a clear and definitive

drop in the Arduino reading to trigger. This allows all of them to be powered by the 3.3V

pin. The IR sensor will communicate if a shell is in the delivery tube or not, the reading

will control the rate of the Dillon case feeder. The limit switches are used to ensure the

accuracy of the claw grasp. One will be place in the X direction of travel, and the other

in the Y direction of travel. By triggering both of the switches it will relay to the Arduino

that the carriage has returned to the home position and there will be no interference with

the presentation of the shell and the cycle can begin again.

4.1.2. Printed Components

A variety of 3D printed components were made to satisfy the operation of the machine.

The most simple of the printed parts was a box to house the AC to DC

converter/transformer for the arduino. This allowed the disassembly of the arduino

power cord and made it possible to run it to the power switch located on the power pox

supplied with 115V from the wall outlet. Doing this allowed for an easier operation of

the entire system because it now only needed one wall socket to power the machine

and the entire machine could be operated by one switch. Next there were two printed

tubes to serve different functions. The first was made to attach to the casefeeder and

provide a guided path to the next tube. The first not only provides a path of travel, it has

a channel to house a break beam sensor. When the beam is broke it relays to the case

feeder to stop, eliminating a jam and allowing a more controlled rate for shell delivery.

The next tube is positioned directly below the first and has a elbow attached to the

bottom for a proper mount to the arm of the servo motor. A cylinder is screwed on to

Page 29: 2ndSemesterReport

28

the opening in the bottom and a platform to support the shell is attached to the cylinder

rod. As test took place it was realized that a home position for the claw was needed to

center it above the servo motor. To satisfy the Y direction of travel it was necessary to

attach the switch to the carriage guide. A simple clamp was made to hold the switch

stationary with threaded holes and set screws would hold it securely to the rail. Various

parts were needed to optimize the performance and aesthetics of the XY-table. The

carriage traveling the longer distance needed to support the shorter rail, one of the

stepper motors, and also need to secure to belt allowing the longer direction of travel. A

cap for the carriage was created to allow for the NEMA 23 stepper mount and carriage

to be secured. A toothed clamp was also added to allow for the belt to be mounted and

tensioned easily. The final and most important part that was printed was the claw. The

claw was made to to be attached to the dry carriage and travel the span of the table. It

also supported the 1 ½” stroke potentiometer and cylinder. The notch in it allowed for

the shells to all be grasped and transported easily while the angle allow for the

optimization of measurements by exaggerating nominal dimensions do to the allowed

travel of the shells before being confined by the V-notch. The V-notch angle is

emphasized in a modeled isometric view below.

Figure 17: Grasp Isometric

4.1.3. Mechanical Components

The design also had a few mechanical components. Two linear carriage and guide were

used. The longer X-direction of travel used a ball bearing carriage and stainless steel

guide. A ball bearing carriage was needed to support the large amount of torque of the

Page 30: 2ndSemesterReport

29

cantilever beam that provided motion for the shorter Y-direction of travel that was

composed of another carriage and guide system. This pairing was composed of a less

expensive PTFE carriage and aluminum guide which could run dry. The last

mechanical component was the case feeder itself. The shell would be put in an large

quantities and an angled plate would orient them primer down and deliver the casing

individually at a relatively prefered rate based on the duration of the sorting process.

4.2. Machine Operation

The overall design of the machine combines a variety of both mechanical and electrical

technologies. Figure D2 in Appendix D shows a step by step process that occurs to

deliver each and every shell. A Dillon Precision Case Feeder is used to separate the

shells as well as orientate the shells only allowing one shell to be sorted at a time.

Nesting occurs often when a lot of casing from different sized calibers are thrown

together. The tumbling that takes place in the case feed does a good job of eliminating

a portion if this problem. From the case feeder, the shells will be dropped into a tube

that was designed a printed to be able to hold and deliver both the largest and smallest

shells that are planned to be sorted. The tube has a variety of components attached to

it, including, and break beam diode sensor, a rage servo motor, and also a pneumatic

cylinder.

The shell passes through the break beam sensor as it falls into the tube. Once in the

tube, the servo motor rotates 110 degrees to center the tube directly below the xy-table

home position. The pneumatic solenoid is threaded to the bottom of the tube and a

printed plungers is threaded to the cylinder rod to support the shell. The cylinder is then

engaged delivering the shell to a to a corresponding height of our identification stage

through the opening in the claw. The second cylinder is attached on the the grasping

claw and is also responsible for the movement of the first linear potentiometer by

limiting how far it can extend by contacting the shell and stalling. This operation

accurately obtains the base diameter of the casing. Below you can see a cross-

sectional view of the grasp to help identify how the component are attached and

dependent upon each other in Figure 18. The next operation is dependent on if the

casing can be correctly identified by the first dimension alone, if it can't the claw will be

centered under the second stage of the machine by means of the XY-table. The

second stage incorporates another linear potentiometer that is firmly attached to a drop

down plate that touches the casings top plate through the use of the final cylinder, again

the displacement of the cylinder is read by the potentiometer to obtain an accurate

height dimension.

Page 31: 2ndSemesterReport

30

Figure 18: Grasp Cross-Sectional View

After the second stage is retracted, the vast majority of all shell will be able to be

identified. The two voltages will correspond to a library written in the code that will relay

to both stepper motor how many pulses to move or coordinates. When positioned there

it will be directly above one of 36 PVC tubes and the second cylinder will disengage and

release the casing into the tube to be dropped into the corresponding bin. It by some

chance the shell was not identified it will be delivered to a “junk” bin where all the shells

with inaccurate reading or were not in the library will go.

5. Project Planning

5.1. Task List

In order to maintain our course and stay in motion with our project, a project plan was

created. Tasks were brainstormed and estimated time and resources were allocated to

each. A plan for both semesters was created although the second semester plan will

need to be updated later on to accommodate any changes. Below is the first semester

project plan that corresponds to the Gantt Chart.

5.1.1. Semester Plan

Task 1: Define Project

Objective: Analyze and understand fully the problem at hand.

Duration: 9/2 - 9/23 (4wks)

Task Leader: Nolan Michaelson

Page 32: 2ndSemesterReport

31

Additional Personal: 25% All team members

Resources: Dr. Selekwa, Dr. Sailer, & Library Database

Deliverables: Discussion of understanding to make sure everyone is on the same

page.

Task 2: Brainstorming

Objective: Obtain several designs that satisfy our objectives and constraints.

Duration: 9/9 - 9/23 (3wks)

Task Leader: Tom Crandall

Additional Personal: 25% All team members

Resources: Previous Design Documents & Library Databases

Deliverables: Two design sketches/ideas for each member that satisfy objectives and

constraints.

Task 3: Basic Design Selection

Objective: Select one general design to move forward with.

Duration: 9/16 - 9/23 (2wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team members

Resources: Previous Design Documents

Deliverables: One concept Design Sketch

Task 4: Project Planning

Objective: Create project scope that covers all aspects of the project.

Duration: 9/23 - 9/30 (1wks)

Task Leader: Nolan Michaelson

Additional Personal: 25% All team Members

Resources: Project Planning Guides

Deliverables: A detailed outline of our project, timeline (Gantt Chart), and deliverables.

Task 5: Research: Transport Hardware

Objective: Research different hardware mechanisms and analyze their capabilities.

Duration: 9/9 - 9/30 (3wks)

Task Leader: Thomas Crandall

Additional Personal:

Resources: Library Database

Page 33: 2ndSemesterReport

32

Deliverables: Provide options for Transport Hardware relating to concept design.

Task 6: Research: Camera Options

Objective: Research several different options for cameras, while taking into account

their price and functionality.

Duration: 9/9 - 9/30 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Resources: Library Database

Deliverables: Have three potential cameras and there details (pros & cons)

Task 7: Research: OCR Programs

Objectives: Research several OCR programs that are able to fit the needs and

constraints of the project.

Duration: 9/9 - 10/7 (4wks)

Task Leader: Steve Duval

Additional Personal:

Resources: Library Database, Maxx Kureczko

Deliverables: Have three potential programs (pros & cons)

Task 8: Budget Development

Objectives: Create a budget estimate incorporating all expected costs of the products

and other various expenses we might face. The department will then review our budget

and declare the funds our project will be delegated.

Duration: 9/30 - 10/21 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Resources: NDSU Mechanical Engineering department, online catalogs, Creo

Parametric, Excel.

Deliverables: An outlined budget including any possible costs related to the project.

Task 9: Research: Control Modules

Page 34: 2ndSemesterReport

33

Objectives: Investigate the capabilities of control modules and choose one that best fits

our needs. The module chosen will be dependent on the requirements from the other

machine components.

Duration: 9/16- 10/14 (4wks)

Task Leader: Nolan Michaelson

Additional Personal:

Resources: Online Catalogs

Deliverables: Bring info on three potential Control Modules.

Task 10: Design Physical Framework

Objective: Create a frame that will incorporate our components, allowing them to

function together efficiently.

Duration: 10/28-11/18 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Resources: Previous Design Documents

Task 11: Project Re-vamp

Objectives: Renovate the existing project to allow for the use of physical measuring

devices to identify the casings instead of an OCR software.

Duration: 11/11-11/25 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Steve Duval,Cole Cameron, Tom Crandall

Resources: CAD Programs (Solidworks/ PTC Creo), internet

Deliverables: Updated Design

Task 12: Create 1st Semester Report & Presentation

Objectives: Assemble a report comprises of our findings, failures, and progress from

the first semester of design. Then present the report to our peers and advisors.

Duration: 11/25-12/11 (2.5wks)

Task Leader: Cole Cameron

Additional Personal: 25% All Team Members

Resources: Gatherings from Task 1 - Task 11

Deliverables: Final Draft Report & Presentation

Task 14: Determine Part Numbers

Objectives: Solidify all model numbers for the needed design

Duration: 1/18 - 1/22 (1wks)

Page 35: 2ndSemesterReport

34

Task Leader: Steve Duval

Additional Personal: 25% All Members

Resources: Internet and product catalogues

Deliverables: Finalized Parts list

Task 15: Model and Print V-block design

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 1/18 - 1/22 (1wks)

Task Leader: Nolan Michaelson

Additional Personal:

Resources: Solidworks and NDSU 3D printer

Deliverables: V-block part

Task 16: Project Planning Revision

Objective: Create project scope that covers all aspects of the project.

Duration: 1/25 - 2/5 (2wks)

Task Leader: Cole Cameron

Additional Personal: Steve Duval

Resources: Project Planning Guides

Task 17: Budget Revision

Objectives: Create a revised budget to adjust for the project re-vamp incorporating all

expected costs of the products and other various expenses we might face. The

department will then review our budget and declare the funds our project will be

delegated.

Duration: 1/25 - 2/5 (2wks)

Task Leader: Cole Cameron

Additional Personal: All

Resources: NDSU Mechanical Engineering department, online catalogs, Creo

Parametric, Excel.

Deliverables: An outlined budget including all costs related to the project.

Task 18: Determine Control Module Shield

Page 36: 2ndSemesterReport

35

Objectives: Analysis of the needed resolution will output the needed Bit size of the

shield needed to make the previous arduino controller capable for the application.

Duration: 2/1 - 2-5 (1wk)

Task Leader: Tom Crandall

Task 19: Order Control Module Shield

Objectives: Order the shield needed to make the previous arduino controller capable

for the application.

Duration: 2/1 - 2-5 (1wk)

Task Leader: Cole Cameron

Deliverables: Arduino Shield

Task 20: Arduino Program Research

Objectives: Develop a basic knowledge that will be needed to program the arduino to

program the measurement components

Duration: 2/1 - 2/19 (3wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Task 21: Project Revision

Objectives: Renovate the existing project to allow for the use of pneumatic measuring

devices to identify the casings instead of an electrical system.

Duration: 2/2 - 2-9 (1wk)

Task Leader: Nolan Michaelson

Additional Personal: Steve Duval, Tom Crandall

Resources: internet

Deliverables: Updated Design

Task 22: CADD Drawings, BOM

Objectives: Create a 3D model and drawings of our chosen mechanical design to aid in

creating the BOM, FEA, and in physically creating the machine.

Duration: 1/25 - 2-12 (3wks)

Task Leader: Nolan Michaelson

Page 37: 2ndSemesterReport

36

Resources: CAD Programs (Solidworks/ PTC Creo)

Deliverables: Drawings of all components of design w/ BOM.

Task 23: Determine Pneumatic Part Numbers

Objectives: Solidify all model numbers for the needed pneumatic design

Duration: 2/8 - 2/12 (1wks)

Task Leader: Nolan Michaelson

Resources: Internet and product catalogues

Deliverables: Finalized Parts list

Task 24: Prototype Fabrication and Assembly For Identification Platform

Objectives: Assemble the structure of the identification platform. Get all

components assembled, mounted, and communicating properly.

Duration: 2/1-3/4 (4wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Resources: MELabs

Deliverables: Have a design that can properly identify specific casings

Task 25: Arduino Program Research (steppers)

Objectives: Develop a basic knowledge that will be needed to program the arduino to

program the stepper motors

Duration: 2/8 - 3/4 (4wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Task 26: Order Pneumatics

Objectives: Order the pneumatic components that will drive the measuring components

Duration: 2/8 - 2-12 (1wk)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Deliverables: Pneumatic Cylinders

Page 38: 2ndSemesterReport

37

Task 27: Order Power Supply

Objectives: Order the power supply capable of supporting all the needed components.

Duration: 2/15 - 2/19 (1wk)

Task Leader: Tom Crandall

Deliverables: Power Supply

Task 28: Design & Develop Software Application

Objectives: Create an application that can run an iteration executing the identification

casing sorting process. It has to identify various calibers with a 98% accuracy.

Duration: 2/15 - 3/4 (3wks)

Task Leader: Thomas Crandall

Additional Personal: Steve Duval

Resources: Library Database & Computer Science Department

Task 29: Order: Physical Framework Tubing

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 2/15 - 2/19 (1wk)

Task Leader: Nolan Michaelson

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Task 30: Fabricate Physical Framework and Casefeeder

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 2/22 - 3/4 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Deliverables: Project framework and shell orientation process

Task 31: Order Extra Casefeeder Plates

Objectives: Order the needed parts that will allow for the orientation and delivery for

both small and large rifle casings.

Duration: 2/22 - 2/26 (1wk)

Task Leader: Cole Cameron

Deliverables: Shell orientation for small and large rifle calibers

Page 39: 2ndSemesterReport

38

Task 32: Order Air Lines and Air Compressor

Objectives: Order the need parts to run the pneumatic cylinders from the

supplier/manufacturer incorporating sufficient lead time.

Duration: 2/27 - 3/4 (1wk)

Task Leader: Steve Duval

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Task 33: Pick Up Hardware, Bins, and Plexiglass

Objectives: Pick up the needed parts that can be purchased at a hardware store such

as a plexi shield, hanging organizational bins, and nuts/bolts.

Duration: 2/27 - 3/4 (1wk)

Task Leader: Tom Crandall

Resources: Lowes

Deliverables: Parts in hand

Task 34: Debug Identification Program

Objectives: Run the previously developed program and fix any errors or delays to

increase accuracy and speed of shell identification.

Duration: 3/7 - 3/25 (3wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that runs as desired with 98% accuracy.

Task 35: Order Transport Mechanisms

Objectives: Order the need parts to create a linear xy-table from the

supplier/manufacturer incorporating sufficient lead time.

Duration: 3/7 - 3/11 (1wk)

Task Leader: Cole Cameron

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Page 40: 2ndSemesterReport

39

Task 36: Fabrication and Assembly of the XY-Table

Objectives: Assemble the delivery system design to specification.

Duration: 3/21-4/1 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Resources: MELabs

Deliverables: Have a working XY-table capable of the needed speed and accuracy

Task 37: Program Transport Hardware

Objectives: Develop a program that transports the casing depending on the given

measurements.

Duration: 3/21 - 4/1 (2wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that controls transfer of shell casing.

Task 38: Wiring

Objectives: Properly connect all working components including the moving

platform to the power supply.

Duration: 3/21-3/25 (1wks)

Task Leader: Tom Crandall

Additional Personal: Nolan Michaelson

Resources: MELabs

Deliverables: Completed Prototype

Task 39: Debug Transport Hardware

Objectives: Run the previously developed program and fix any errors or delays to

increase accuracy and speed of shell delivery.

Duration: 4/4 - 4/15 (2wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that runs as desired with optimal speed and accuracy.

Page 41: 2ndSemesterReport

40

Task 40: Prototype Testing

Objectives: Data will be assembled from trials of the prototype regarding the machines

accuracy and its ability to Function within our design goals.

Duration: 4/11 - 4/29 (3wks)

Task Leader: Steve Duval

Additional Personal: 25% All team Members

Resources: ME Labs

Deliverables:.Finalized, working design

Task 41: Create 2nd Semester Report

Objectives: Assemble a report compiled of our findings, failures, and final

design/prototype from the last two semesters. Then present the report to our peers and

advisors.

Duration: 4/18 - 4/29 (2wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team Members

Resources: Gathered from tasks 1-40

Deliverables: A well developed delivery of the entire project from start to finish in a

report

Task 42: Create, practice, and deliver 2nd Semester Presentation

Objectives: Assemble a powerpoint compiled of our findings, failures, and final

design/prototype from the last two semesters. Then present the powerpoint in front of

our peers and advisors.

Duration: 4/18-5/5 (3wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team Members

Resources: Gathered from tasks 1-40

Deliverables: A well developed delivery of the entire project from start to finish in

presentation form

5.1.2. Gantt Chart

A gantt chart was created to visually keep track of the progress of our project. The

gantt chart is displayed in Appendix D, Figure D1.

Page 42: 2ndSemesterReport

41

5.2. Variation From Project Plan

5.2.1. Second Semester Additions

In week 9 a decision had to be made because the group did not think it would be

possible to identify the casing by reading the bottom of the casing. This form of

identification would most likely be the only 100% accurate way to determine the calibers

but it just presented too many issues that were out of reach for the students and the

time allotted. A large variety of different softwares were researched, and the more

capable ones were contacted. The result was that the more reputable softwares within

the budget still could not complete the needed task.

The brainstorming task was then revisited and a physical dimensioning of each

individual shell was concluded to be the best option. This was a huge setback, yet it

seemed that the majority of our previous design would remain relevant and work with

the new mean of shell identification. A new design has been selected, a design that

used the means of linear potentiometers to obtain the physical dimensions. It would

identify the shell as it is in the delivery grasp, where it would also be identified in the

previous design.

A few minor issues were encountered during fabrication as well forcing more parts to be

ordered and left the group waiting for lead times and later tasks such as the final report

and wiring were moved up to reduce any free time that was encountered. A large issue

was the upgrade to the ball bearing carriage and rail. It was late in the project and the

largest expense of the project and left the grout with sparse funding. Fortunately the

previous rail was able to be returned and the remainder of the parts were able to be

ordered but not until the final weeks of the project which was far beyond the time that

was expected because the return took some time to process.

5.2.2. Straying from the Project Plan

Near the start of the second semester it was realized how expensive the components

were going to be in order to achieve the needed accuracy. It seemed as though the

initial budget wasn’t enough. Pneumatics would replace many of the electronic

components. The claw grasp capable of determining the base diameter along with the

actuator that obtains the height dimension are pictured in Appendix C, Figures C3-C5

respectively. The initial start of the second semester presented a large delay. The

previous semester ended with the group creating an entirely new design with a new

budget. Specific parts were selected for the design to achieve the accuracy that was

needed. The next roadblock encountered in the second semester was that another

Page 43: 2ndSemesterReport

42

much smaller revision was made and the linear actuators were replaced by a pneumatic

system to allow for the arduino to accommodate the variety of components that were

going to be used. After part numbers were finalized it was found that the project was

well over the initial budget and a second budget was send in for approval delaying vital

parts from being ordered setting back the project fabrication greatly. The budget

approvals took a bit longer than would be expected and fabrication was necessary and

parts needed to be ordered as soon as possible, they was no room for delays anymore.

The vital parts that were need to accomplish the core task at hand which was to

distinguish and separate a variety of spent handgun and rifle calibers. Parts that didn’t

directly help accomplish that were put off and would be order after the project vitals if

the larger second semester report were approved. This issue shuffled up the tasks and

the order they were expected to take place in. A few minor issues were encountered

during fabrication as well forcing more parts to be ordered and left the group waiting for

lead times and later tasks such as the final report and wiring were moved up to reduce

any free time that was encountered. A large issue was the upgrade to the ball bearing

carriage and rail. It was late in the project and the largest expense of the project and

left the grout with sparse funding. Fortunately the previous rail was able to be returned

and the remainder of the parts were able to be ordered but not until the final weeks of

the project which was far beyond the time that was expected because the return took

some time to process. Without question the most underestimated task was the program

and it’s debugging which revealed to be very difficult, even more so to debug without a

fully fabricated design.

6. Project Budget

6.1. Detailed Budget and Justifications:

Last year, the Shell Sorter Phase 1 group created a budget totaling $2,786.36 and was

allocated by the university $3000 dollars for the project. The budget of the OCR design

followed the same trend as the budget of the Phase 1 design, with the shell casing

identification being the majority of the budget. The incorporation of an xy-table delivery

system was introduced and is a considerable extra expense. The first amount of money

allotted to Shell Sorter Phase 2 was a total of $2200.00. The project re-scope and

change of identification methods from the OCR software to physical measurements

freed up a substantial amount of money from the first Shell Sorter Phase 2 budget by

eliminating items such as the laptop, web camera, and of course the OCR program. As

it was previously mentioned the new method of identification is to physically dimension

the spent casings. This concept incorporates the use of a couple different components

Page 44: 2ndSemesterReport

43

such as potentiometers and pneumatics. Since the level of precise is become more

emphasized these components must be very precise. The working parts of the xy-table

are now going to be of a higher quality and possess more accuracy and speed than the

previously budgeted items. The price of the frame remained nearly the same in both

budgets of the Shell Sorter Phase 2. The project budget has increases this semester

due to the new direction it is heading. It is somewhat attributed to the fact that very

general components that were thought to work in the previous design as well as the

initial estimated budget of the re-scope presented at the end of the first semester were

selected off the internet. It is highly stressed that precision as well as speed are needed

to complete the project as well as meet the constraints placed upon the group by the

RRRMC. For example in there are a variety of shell casings that use either the exact

dimension or very similar dimension relative to other calibers. After various research it

was found that three separate dimension would have to occur to correctly identify the

spent casing, with differences between some being so minute that the precise of our

components would have to be +/- 0.001” for not just one, but three needed components

now. Figure 2 below illustrates exactly how similar different calibers can be.

Speed was always known to be an issue and the original budget took this into account

to some extent but not fully. The RRRMC cycles through nearly 1.5 million casing each

and every year. Half of which are capable of being sold for reloading purposes. This

means a casing must be accurately sorted on average in just under 10 seconds

provided the range is open 52 weeks a year, 8 hours a day, without incorporating

recalibrations, time to switch reloading plates, and other stoppage times.

Budget Item Estimated Cost

Hardware/Dimensioning $831.44

Frame cost $226.72

x-y Table cost $1476.35

Total $2534.51

6.2. Hardware/Dimensioning

6.2.1. Potentiometers

After a complete re-scope of the initial project, the shell identification process was

changed. Originally the casing we to be deciphered by the optical character recognition

Page 45: 2ndSemesterReport

44

program. As stated above the new direction is to use a physical dimensioning method.

A linear potentiometer was chosen as the most precise and cost efficient instrument to

obtain the base diameter and neck diameter dimensions. The concept is to touch the

casing side wall and a resistance will be relayed to the controller and converted to a

dimension. Precision is heavily emphasized for the potentiometer. The stroke length is

considered secondary as there will not be much motion to obtain the dimensions. With

this in consideration one potentiometer with a ½’’ stroke length (SKU:987-1025-ND) and

a 1 ½’’ stroke length (SKU:682-9615R5.1KL2.0) will be used for the base and neck

diameter, whereas a 2” stroke length potentiometer will be used to get the height

dimension (SKU:PTB6043-2010BPB103). The price will total to $343.76 after shipping

charges are incorporated. The price is steep for the potentiometers but the quality is felt

necessary as to meet all of the needed requirements.

6.2.2. Pneumatic Cylinders/Components

After a budget revision pneumatics were a much cheaper alternative than the previous

solenoids and actuators. Pneumatic cylinders also have adjustable speed and force

which is much more desirable for this design. Two 5/16’’ bore cylinders with a ½’’ stroke

length and one 5/16’’ bore cylinder with a 2’’ stroke length were quoted at Air

Engineering and Supply. These cylinders came to a total of $55.97. The components

needed will be listed in 3.1.3 Pneumatic Components.

6.2.3. Pneumatic Components

The first component needed to run pneumatics is a 5 port 4-Way Single Solenoid

Valves (x3), which was the most expensive portion of pneumatics totalling a cost of

$32.24/Valve. Some other components are ⅛’’ regulators (x3) and ⅛’’ Breather Vents

(x6) to adjust the air-flow. Tubing and connectors are also included in the budget. All of

which was also quoted from Air Engineering and Supply with a total cost of $276.57.

6.2.4. Arduino Shield

A large amount of consideration was placed into what control module would be

compatible. After the project re-scope it quickly became evident that the control module

will have to run several components with a high degree of accuracy. Last year’s project

used an Arduino controller to run its three components with a moderate level of

accuracy. This project will reuse that same controller, but an arduino shield that is

capable of 24-Bits will need to be add to it to meed the accuracy and other criteria

needed. Iascaled.com sells a shield capable of meeting the criteria (Model Number

LTC2499) for $70.00 with $11.90 delivery charges.

Page 46: 2ndSemesterReport

45

6.2.5. Wiring

After the redirection of the project, many more components were needed to differentiate

the casing calibers. Even more wiring will be used to connect the working electrical

components to the power supply. The solenoid will also need to have current provided

to them throughout the entire casing delivery step across the entire xy-table adding a bit

more intricate wiring system. An estimated $50.00 even is to account for any and all

wire or wiring associated costs.

6.2.6. Claw & Actuator Housing

Three parts of the project are to be machined from aluminum.The linear actuator will be

mounted and encloses in a housing to shield moving parts while allowing for an easy

mount because the identification stage has so many working/moving parts. The raw

materials and machining of the part from grainger will amount to $78.00. The other two

parts will be to support each of the solenoids on the grasping structure. Being smaller

and more simple the material for these two claw platforms can be purchased from

Grainger as well for $10.53.

6.2.7. Power Supply

A Power supply will be needed, one with enough power to run everything off of one

device is ideal because it will be easier to position on the machine. Supplying enough

power for both steppers to run simultaneously while operating at maximum power

requires 48V 10A a Mean Well Switching Power Supply is perfect for this

operation(mouser part # 709-SP-480-48) that will cost $165.40.

Hardware/Dimensioning quantity Price

-Potentiometers 3 $113.07

-Pneumatic Cylinders 3 $55.97

-Pneumatic Components $276.57

-Arduino Shield 1 $81.90

-Wiring NA $50

-Claw 1 $10.53

-Actuator Housing 1 $78

-Power Supply 1 $165.40

Hardware Cost $831.44

Page 47: 2ndSemesterReport

46

6.3. Frame Materials

6.3.1. Steel Tubing

The primary framework that will support the bins and electrical components will be

fabricated from hollow steel tubing to ensure stability. A local metal shop in Fargo is able to cut the tubing to the specific needed lengths. The frame will be constructed from 2” 14 gauge tubing, and for the amount needed cut to the needed specifications, it

would cost $132.72

6.3.2. Bins

Initially starting by sorting 35 separate casings and send the remaining calibers all to a

separate “junk” bin. So 36 bins in total will be needed. The bins previously used can be reused, therefore only 24 bins will need to be purchased. At $2.80/bin over a purchase

of 6+ bins, the cost will reach $71.01 with S&H from McMaster-Carr.

6.3.3. Mounting Brackets

To hold the tubes in place on the machine while it operates so shells don’t go

everywhere. the mounting material will be 2” by ⅛” 304 stainless steel. It comes in lengths of 6f from grainger(item #4YTY3)t. The total length needed is 27ft. That bring

the cost to $22.99.

Frame Materials quantity Price

-Steel Tubing NA $132.72

-Bins 27 $71.01

-Mounting brackets 27’ $22.99

Frame cost $226.72

6.4. Transport design etc. 6.4.1. Shell reservoir/orientation Last years design utilized an auto-orientating shell delivery product. It provided a ½ gallon reservoir for the spent rounds and was store bought. Reusing won't cost

anything. Phase 1 of the project only purchased the pistol casefeed plate therefore the other plates will need to be purchased, a large rifle plate and small rifle plate each are

$38.95 giving a total of $91.39 for the 2 plates including S&H.

Page 48: 2ndSemesterReport

47

6.4.2. 3D printing allocation A variety of components that don't need the strength of a machined part, but are created

for a specific purpose in the design will need to be 3D printed. Such as the v-notched blocks that will held the casings securely, and a platform to support several

components. A single roll of filament will be sufficient for the needed parts, costing $60.00.

6.4.3. X-direction travel The design calls for two ⅜” stainless steel guide rods to be used to guide the casing in the y-direction (front to back). ⅜” was chosen for added strength and two rod with

individual bearings will eliminate and torque or twisting motions during the casing delivery. A short distance of 12 inches is all that’s needed for y-direction travel. A two foot ⅜” stainless steel guide rod will be purchased from McMaster-Carr for $25.43. Two

bearings with platforms from VBX (Product Code: TWA6_NB) will be placed on the guide at the cost of $39.95 each.

6.4.4. Linear Bearings

As for the x-direction of travel which is 32 inches in length. Since the travel is a considerable amount larger it is stressed that the movement is smooth, fast, accurate,

and of course repeatable. To achieve those parameters, two profile linear track and bearings were selected. The redi-rail guide and carriage system by PCB linear seemed

to fit the part. The track is the RR14036.000. Each carriage is $80.73 and the track amounts to $203.44, making the total with S&H $386.36.

6.4.5. Tubes The machine design requires roughly 70’ of tubing, and 1” PVC was chosen due to the

low price. 80’ of PVC will make sure that all the sizes can be achieved and the cost is $25.12 this will be purchased at Lowes so no shipping required.

6.4.6. Stepper motor & encoder Two stepper motors, one for the x dimension, and another for the y dimension will be utilized for transporting the casings to the desired tube. A product offered by applied-

motion.com (STM23R-2NE), easily exceeds the needed criteria asked of the component. The motor itself is $192.00. After both motors and S&H are accounted for the total amount is brought to $448.17.

6.4.7. Stock Parts $50 This will simply cover the rough costs of screws, bolts, washers, and other

miscellaneous stock parts.

Page 49: 2ndSemesterReport

48

6.4.8. Belts & Pulleys An array of belts and pulleys will be essential for the stepper motors to transport the

grasp structure that will hold the casings. Two timing belts (model: LL025MXL) will need to be purchased for the structure to move in both the X and the Y directions. This

can be done for $24.68. To work properly the system must also use multiple pulleys (model: 1254N24) that will amount to $31.46, along with a ¼” rod (model: 6061K21) for $6.05 and multiple bearing mounts (model: 6800N3) for $67.63. All of the components

can be purchased within the same order from McMaster-Carr.

6.4.9. Plexiglass At was a given constraint from the RRRMC that the machine is to be placed in the from lobby and available for the members to use. With that established, a barrier was needed to distance the members in the lobby from any working/moving members of the

project. A plexi shield is going to be mounted. A piece of plexi glass capable of providing a single barrier to all the moving parts will be purchased from Lowes for

$73.50.

x-y Table Transport design quantity Price

-Shell reservoir/orientation 2 case feeder plates $91.39

-3D printing allocation N/A $60.00

-X-direction of travel 2', 2 $211.99

-Tubes 80' $25.12

-Stepper motor+encoder 2 $448.17

-Stock Parts N/A $50.00

-Belts & Pulleys N/A $129.82

-Plexi Glass 1 $73.50

-Linear Bearings 4 $386.36

x-y Table cost $1476.35

6.5. Revisions and Actual Spent Funds

In the second semester the previous budget was revised and finalized and can be seen

in Appendix A section 9.1.2. The estimated costs were roughly $300 more than the

previous semester even with elimination a laptop and expensive OCR software. The

route that was planned was to identify the shell through physically dimensioning them.

To do this properly a very precise tolerance was needed, nominally the machine had to

consistently differentiate down to 4/1000”. The created budget was extensive and the

project followed the overall layout well but a few changes were made altering the

funding. Initially the changes were made just because parts were able to found for a

Page 50: 2ndSemesterReport

49

better price. But the finalized budget was rejected and the project was only allotted the

initial $2200 granted in the first semester so the cheaper components then became a

necessity.

The main variations from the proposed budget were the actuators, steppers, and linear

carriages/guides. Initially the accuracy of the stepper motors was underestimated and

for that reason, expensive stepper motors with encoder built in were budgeted for. It

was thought to be an area of importance since the previous design group used a

stepper motor that would often times lose its orientation by overstepping or stalling and

resulted in a series of improper casing deliveries if left unattended.

After enough research was done it was concluded that the torque of the stepper motor

that was budgeted would not allow any slip or stall for the required load using the

calculations below. Iw was initially calculated with a stepper possessing 58% of the

torque of the chosen one and still held a factor of safety roughly 2.7. With this known

the stepper motors with encoders were no longer required. Linear actuator with highly

accurate potentiometers merged into the construction were initially budgeted for were

also very expensive do to the combination of components meshed together. By

replacing the actuators with much cheaper potentiometers that were capable of

performing the task. A pneumatic conversion to drive the potentiometers also boded

cheaper than the electronically driven actuators. Although considered much cheap than

the linear actuators, the entire pneumatics system was relatively expensive and and

little money was saved.

Page 51: 2ndSemesterReport

50

The PTFE carriages and rails were purchased to save money because the ball bearing

rails were very expensive and in the end had to be purchased for the long direction of

travel anyways.

Amazon also served as a great supplier for the project. Many suppliers that products

were planned on being purchased were found on amazon for a cheaper price with faster

shipping. Electronic components especially were found for much more reasonable

prices on Amazon. The framework when reevaluated also was much cheaper when

Page 52: 2ndSemesterReport

51

purchased from a local company. Outside of what was mention, the components were

close to or exactly what was budgeted. Some of the cushion left in the budget was

spent on part that were not initially accounted for though and were purchased to clean

up the overall appearance of the design or overcome an obstacle that was encountered

during late stages of design, fabrication, and even testing. The actual parts purchased

and funding spent was recorded and can be seen in Figure A1 of Appendix A.

7. Fabrication and Troubleshooting

7.1. Electronics Assembly and Integration

7.1.1. Bench Testing

Once the design was finalized and the electronics were ordered or temporarily

borrowed. They were all bench tested individually to ensure the group could operate

each component individually before it was incorporated as a part of the entire system.

All of the components are either programmed or triggered by the Arduino or Arduino

relay in some manner making the task not as simple as one would think. Each

component needed a code to function, luckily Arduino has an extensive library of codes

that could be used as a templates. To function the way needed though, those library

codes had to all be edited to fit the desired application.

Some of the components have a variety of uses and application, like the IR sensor.

These sensors can be used to detect motion, measure distances, and in certain

applications can measure speeds if two or more are used. This design just simply

require the detection of motion. The sensors were installed into a circuit with resistors

in an attempt to maximize the dropping in the Arduino code which would in theory stop

the case feeder instantly and more importantly stop it consistently. The circuit was built

on a breadboard for testing purposes with the sensor facing each other like the would

be on the machine. A pre-written program was uploaded to the Arduino for testing so

the resistors could be manipulated to achieve the best reading but the ideal reading was

hard to achieve and many circuits were constructed all with similar outputs. Eventually

a circuit was chosen with a subtle drop in the code reading but when incorporated with

the case feeder was found to trigger it easily without any issues. To bench test the

case feeder, it was dependent upon the IR sensor working. The sudden change in the

Arduino readings would trigger the corresponding relay on the shield to turn the case

feeder on or off and therefore preventing shells being fed too quickly.

Page 53: 2ndSemesterReport

52

The stepper motors when tested apart from the system were easy enough. The drivers

and steppers purchased were very compatible with the Arduino Uno and didn't need a

constructed circuit. The only complexity was wiring the right connections was confusing

and presented a hurdle in the fabrication stage. But the code for linear motion was

simple and could be taken directly from the Arduino library. The IR sensor was tested

in this manor as we, a code was taken from the arduino library. The only action needed

was to record a large variance in the reading when the circuit was altered.

Initial testing for the pneumatics was straightforward once a little research was done.

The solenoids were first wired and the air lines, regulators, connection, and airspeed

valves were are installed easily. The three solenoid all required independent operation

of each other and would occupy three of the four relays on the Arduino shield. A code

written to trigger just one of the relays was used at first to confirm the connection of

each of the solenoid was good and was in the polarity that was needed to extend and

retract in the right order and was in sync with the other two solenoids. The next action

was to build the code to engage all the relay ports independently with flawless timing

relative to other actions in the system.

7.1.2. Writing Code

The Arduino code is a text based code that closely resembles C++, but is simplified to

an extent. The code was initially started once the components that were to be

purchased were know. Libraries and online databases were used to build a code to run

general applications or intended function for the chosen components. Those initial code

were used to do the bench testing. The movement of the machine was then defined to

help further the coding progress as early as possible because it was know that it would

take a substantial amount of time to both write and debug. The motion and process of

the design is defined in a flow chart that was mentioned earlier. This allowed for the

individual codes to be combined together and mimic the intended motion of the

machine. This was done without actual values that would later be determined. The

values of the delays, distances, and dimensions all had to be entered after the final

design was securely fabricated and the dimensions were final. The distances for the

steppers had to be done in pulses, an arbitrary amount of pulses were done various

times and the distances were recorded and the distance per inch was calculated to help

with this action. A grid for the tubing array was made, uniformly spacing the rows and

columns to make the code much more simple. Speeds and delays for all components

then were adjusted. The last values were the dimensions. The potentiometers output a

reading in volts not lengths, so a database was made with all the intended calibers

Page 54: 2ndSemesterReport

53

voltage readings from multiple measurements for many shells. With the readings a

range was made to classify each caliber so the machine could sort them by the

corresponding voltage. The final code can be seen in Figure D4 of Appendix D.

7.2. Fabrication

7.2.1. Modeling

Once The orientation of the bins was chosen with a linear orientation and gravity fed

tubing system various models were modeled. Roughly four different frames were

created and the one with a many independent parts was chosen but later was replaced

with the current design. The initial plan was to use the bins the last design group used.

This gave the overall dimensions needed once the number of bins was decided upon.

The next step was to create the separate assemblies. The assemblies were classi fied

into the second stage dimension, electrical housing, case feeder and xy-table grasp.

The importance of modeling the assemblies was to primarily ensure they could meet the

tolerance that was needed of them but secondarily to assist in brainstorming way to

secure them to the main frame. The claw was essentially the heart and soul of the

project, without it the objective would not be met. The model was created early on and

critique and changed time and time again to create the best possible design and

optimize the angle of the notch. The model also gave insight to the length of cylinders

that would eventually be needed and other critical parts like hardware and such. While

modeling the second stage, this is when it was realized how complicated a neck

dimension would be to not only incorporate, but maintain accuracy over a prolonged

time. All the components being housed in the electrical enclosure was know already so

the purpose of modeling it was to determine a size need to house it all with sufficient

room to wire it once the orientation was known to to optimize the space. The case

feeder assembly was modeled for the purposes of knowing how to efficiently mount it.

One everything was created separately it was brought together as one part.

7.2.2. Fabrication and Obstacles

Fabrication began with the assembly of the structural framework. All this was done by

welding. With the frame in tact the linear motion table could then be assembled. For

the table to work properly with the desired construction, a few pieces had to be 3D

printed specifically for this application to fit the carriages and rail as well as the belt and

pulley placement that was planned for. The pieces included were a cover for the long

Page 55: 2ndSemesterReport

54

direction of travel carriage to mount the shorter rail. Two other pieces were needed to

capture the timing belts and maintain the tension. All the printed parts were explained

in detail earlier in section 4.1.2. Immediate trouble were encountered when the XY-

table was built. The clearance of the carriage allowed for slop to occur and to

compensate for that the carriage needed to be tightened to the rail very snuggly

constricting the overall movement to the extent that the motors would time out the

power supply due to the power surge to set the carriage into movement. To eliminate

that issue a little slop was left in the carriage but the cantilevered rail would then sag

leading to a whole order of other issues in terms of accuracies. With slop in the

carriage holding a cantilevered load it would also stall often and chatter very loudly

because of the camming effect occurring within it. After trying to make it work for some

time it was decided that the rail and carriage just were not capable of performing the

task and higher quality materials were needed. A ball bearing carriage was chosen and

it was dimensionally identical to the previous rail so all tolerances and integrated parts

would still maintain their viability. Immediately after installing the new rail all the

previous issue were solved. All chatter was eliminated and the carriage would move

freely even when the cantilevered rail was extremely rigid with no movement.

Many variations of the v-notch grasp were printed and tested earlier in the design

process to ensure the final design could identify even the smallest variances in the

casing diameters. The final claw was printed and would support the pneumatic cylinder

and potentiometer on the same side to reduce the sporadicness of the traveling wires

and air lines because it could potentially be hazardous to the operation of the machine if

any hanging components were to become entangled in any moving parts to rub on any

sharp edges. Eventually a wire router was printed and added to the printed claw and

moving carriage to elevate the once hanging wires for further safety measure.

During this process the second stage dimensioning system, its platform, and the

mounting piece for the casefeeder were all fabricated as well. Initially the intent was to

have the majority of the components welded on and set in place as securely as we

could to meet the required tolerances. Welding was not the best option though, often

time welding could physical dimensions of the pre-existing framework or such. When

exposing materials to such a high degree of heat it can physical change them slightly.

The three components were then left to be attached by bolts and were modified to allow

for adjustment after being secured. These adjustments could eliminate the possibility of

any assembly errors.

Page 56: 2ndSemesterReport

55

The construction of the electrical enclosure along with of the wiring followed. A good

deal of research was put into gaining a knowledge on how each of the components

would act, and how they could be wired to function as one working member. A wiring

schematic shown in Figure D3 of Appendix D shows the initial planning to integrate all

the components. By following the wiring schematic the first attempt was all that was

needed. It worked flawlessly. Later on down the road in the initial stages of testing

some conflict occurred. Problems such as incorporating a home position with the

addition of limiting switches, a flaw in the drop down tube arose, and the wiring

connection weren't as secure as they needed to be. The first issue was the drop down

tube. In theory it was good but in the attempt the to execute it it wasn’t possible.

Initially the tube was 3D printed and ABS filament was used, which wasn’t ideal due to

the rough nature of the printed surfaces. The tube didn’t not move freely in the

slightest. In an attempt to create a smoother surface with much less friction both of the

contacting surfaces were sanded down very thoroughly. Still the movement was

terrible. It was no longer the surface causing the issue though, it was a wedging effect

caused by the pneumatic solenoid. The solenoid was to extend and retract the smaller

tube, but the mounting location could not be centered. When the pressure of the

cylinder was applied the smaller tube would not eject or retract parallel to the larger tube

and would jam up. For the design to actually work 80 psi was required, which is absurd

for such a small application. Since this was the issue no efforts to machine the part

where put in place, a new design had to be created. The new design would not deliver

the shell to the claw from above, but from below. Another tube was printed to deliver

the shell from a tube to the claw with the pneumatic cylinder and attached plunger. The

part was further explained above in section 4.2. The next issue was the loose wire

fittings. Originally it was planned to use the 5V power pin and 3.3V from the Arduino to

run multiple devices. All three of the cylinder would also use the same power supply

which in turn only had room for one output. To compensate for this a breadboard was

going to be used to branch the supplies and grounds so multiple devices could be easily

connected and occupy a single pin. The breadboard immediately showed that the

connection would come loose without any external force. So a din-rail terminal block

concept was brought up and decided upon. This would allow for a ground and a live

wire to be branch to many different devices with the use of a jumper. The reason these

were chosen is because all connection can be secured permanently with a set screw

preventing any connection loses. This same issue arose with the pins on the Arduino

even though the connections were thought to be much more secure than the

breadboard but the natural vibration emitted from operating the machine was enough to

shake the wires from the pins. To solve this a similar solution was used. A specialized

Page 57: 2ndSemesterReport

56

Arduino relay was used, allowing each pin to also be secured with a screw. The final

altercation that was encountered was the home position of the claw. Again this issue

was just simply overlooked and immediately recognized at the initial stages of running

the machine. The stepper motors would overstep and stall out on the bearings because

the system was not aware of the positioning in the slightest. To solve this, two limit

switches were utilized to prevent it from overstepping the lengths of the linear rails and

also aid in returning to the exact some location after each shell has been delivered

which is vital. One limit switch was placed to constrain the X-direction of travel, and

another was used to constrain the movement in the Y-direction.

7.2.3. Troubleshooting

After the obvious obstacles were overcome and the machine was fabrication was

completed, more minor issues presented themselves. Issues with components such as

the XY-table, IR sensor, and various other electrical components. The most prevalent

of them all was the linear motion stage. A horrendous noise was produced often when

it was in motion still. The replaced ball bearing rail and carriage were noticed to not be

the issue quickly, it was the PTFE carriage and aluminum rail causing the problem. The

rail would rattle and vibrate at low speeds and these speed were incorporated into the

code initially to increase the overall accuracy and speed of the system. First in the

homing aspect, to gain an orientation by contacting the limit switches the carriage would

have to approach at a low speed. This was never eliminated but wasn't a large issue

because the code was revised to only home the table every 25-30 deliveries and the

rattle was manageable. The most obnoxious was when the entire distance of the table

would be covered. The code was built in a fashion to travel in a straight line forcing the

shorter carriage to move at a slow rate to arrive at the proper destination simultaneously

with the longer carriage. By separating the X movement from the Y movement the

shorter rail speed could be increased and greatly reduce the noise and eliminate any

presence of rattling. The written code also incorporated acceleration and deceleration

which would produce vibrations during those processes. Fortunately the stepper motors

produced enough torque to allow no slipping if the carriage was brought up to max

speed and back to a halt instantly. The tensioning of the timing belts also played a

critical role, a happy medium was needed. If too tight or too loose, the motor would not

move the carriages optimally and could also cause slipping and other problems

resulting in vibrations and improper coordinate. To solve this, two parts to allow for

easy belt adjustments were printed

Page 58: 2ndSemesterReport

57

The next complication was on behalf of the IR sensor and it’s placement. When the

casing would fall from the case feeder, the passing movement was to break the beam of

light in the tube relaying to the case feeder to stall until the claw has delivered that shell.

The IR sensor would not consistently register that a shell had fallen. It was suspected

that the smaller shells when properly oriented could travel the length of the tube and

could hug the tubing wall and never come into contact with the IR beam. To account

for this a second sensor was positioned so the beams would be positioned

perpendicular to one another. This now design eliminates the possibility for a shell to

pass without triggering at least none of the two signals. It was modified so one signal is

all that it would take to stall the casefeeder as well.

7.2.4. Code Adjustments

The project was fabricated and addition were incorporated during the fabrication

process to account for overlooked things as stated earlier. But issues occured when

trying to integrate some of these components together. To get the servo motor and IR

sensor to communicate adjustments were made. Also parts of the framework were re

adjusted during the stages of testing the code, these types of adjustments were

undesired because it also meant that all the coordinates for the bins as well as some of

the delay in timing the delivery also had to be tampered with. The other technical part

dealing with code adjustments was creating a voltage window that would identify the

calibers with a impeccable accuracy and also eliminating the possibility for overlap.

Finally the most time consuming coding issue was incorporating the limit switches, for

hours every test would result in crashing the arduino run code when the switch would

trigger. In the end the solution was to wire the switches differently.

7.3. Project Testing

The initial stages of test occurred with a dummy setup using the very first few claw

designs held to a wooden board with e slot to guide the potentiometer and pressure was

done manually. This was the first significant sign of assurance that the use of a

relatively inexpensive potentiometer could output the level of accuracy and precision

needed to identify some of the calibers that initial thought would cause concern and

issues. The individual components had all been bench tested before the final assembly

was created and the sub assemblies were also checked to ensure there were in working

order. A large sample of shell was given to the group to allow for testing purposes.

After the working product was nearing completion. Earlier in the stages of design

another large sample of casings was collected and sorted through to gain an

understanding of the frequency the caliber might occur. This would help gain a general

Page 59: 2ndSemesterReport

58

idea of how many calibers were necessary to create a relevant machine. Amongst both

the rifle and pistol caliber it seemed that only two or three different calibers composed

the vast majority of both collected samples. In the end a database was created for the

11 most frequent pistol cartridges and 11 most common rifle calibers as well. To create

this database a variety of shells from each of the 22 selected calibers were kept and ran

through the measurement sensors. The voltage reading from each of the shells were

recorded in an excel file. Using the voltages a tolerance was created for each and if the

reading during operation of the machine would fall within those created tolerances the

casing would be identified as such.

Initially basic testing was for the most part successful. The majority of the shells were

able to be identified by the base diameter alone and if not were successfully categorized

with the addition of the height dimension. Not only were they identified correctly, the

casings were tell delivered with amazing accuracy and a sufficient amount of speed to

meet the constraint of one shell sorted every 10 seconds or less. Unfortunately issues

arose with the power supply that was designated to run the stepper motors. It began to

timeout and eventually become useless. The problem was discussed and looked into

thoroughly and it was concluded that the power supply was faulty or damaged

physically and this did not stem from a design error. With that known a replacement

supply was ordered but the lead time took away from the testing greatly. To make up

for this the identification process was still extensively tested by just gathering the shells

dimensions. A large sample of both pistol and rifle casing were tested. Remarkable

results were recorded while identifying the pistol casing, the machine was able to

perform with 100% accuracy. The rifle shells were not tested to the extent of the pistol.

Creating a database for all 22 calibers was time consuming and so was the pistol

testing and project debugging. The amount of debugging that had to be done took

away from the allotted time for test and the addition of both of the power supplies failing

did not help either. A small sample of rifle casings were able to be tested though and

the results were promising but a concussion should not be made this early in testing.

More strenuous testing is still planned for in the near future for the rifle calibers. It can

not be said for sure if the identification paired with the delivery would maintain the

accuracy gathered in the initial testing or not, but the in previous weeks the linear travel

table was operating with a good deal of accuracy and repeatability as it was intended.

With said it can be assumed that the level of accuracy would not diminish with the

addition of the casing travel.

8. Future Recommendations

Page 60: 2ndSemesterReport

59

8.1. Near Future

The intent of the project was to actually have the design placed in the lobby at the

RRRMC and working well, meeting the provided constraints. The main obstacle, which

was properly identifying the individual calibers was done with a good deal of success.

While the delivery system was operating it too was successful and accurate. Further

test is intended to occur in the near future to further progress the confidence had in the

machine's abilities to perform and meet the constraints. The group is very confident that

the machine will be working well enough for the RRRMC to use it on their own. A few

other improvement that would be made for this is a reality is to eradicate any safety

hazards like sharp edges and house the working components from the operators. This

would serve to protect the user and also keep the RRRMC’s customers from tampering

with the setting that can be changed from outside the electrical housing like the cylinder

speeds. On top of having a universal switch to supply the entire machine with power

and start the code, another switch to differentiate the pistol from rifle code is in the

process of being incorporated as well. The group would also like the machine to last for

a long time, so any surfaces that might rust are intended to be painted and any

adjustable components will have to be set and secured well.

8.2. Phase III

The separation machine was designed to meet as much of the requirements as

thoroughly as it could be done. Unfortunately the constraints outlined on page 9,

section 2.3. could not all be met. With physical dimensioning it will never be truly 100%

accurate, due to some of the overlap in shell casing dimensions. Some accuracy can

be gained from the addition of a neck diameter dimension. The one known caliber that

can not be identified by the two main dimensions is the .25-06 from the .30-06. There

are close overlaps between various other shells but not to the extent the current system

can't handle if operated correctly. The addition of a third dimension would certainly

allow for a higher degree of confidence as well in the casing identification process.

Although casings such as the 7.62 NATO and .308 would still cause confusion and the

only definite mode of identification is the previously discussed OCR method. But as of

no is beyond the realm of possibility. The group contacted a software development

company and to meet the requirements a software would have to be created and to do

so the price was well out of reach.

The main improvement that was not able to get accomplished was included in the

constraints was a presorting machine. The machine would be aimed at the elimination

Page 61: 2ndSemesterReport

60

of rimfire cartridges. Rimfire cartridges first of all can not be reloaded, they also have

tendency to cause issues in the Dillon Casefeeder. With the presence of rimfire shell

the hopper does not run consistently, shell with a narrow enough width can wedge

themselves under the case feeder plates and stall the motor. Incorporated in this

presort machine could also be a method to eliminate steel and aluminum cartridges

because which was one of the secondary constraints as they too are unable to be

reloaded. No design were discussed because all resources were invested in the

accuracy of efficiently identify the calibers.

The next improvement that would improve the function of the design would be to

eliminate all of the printed parts. The parts work well now but the concern of wear is an

issue. After a while the possibility of the ABS platic wearing down and altering the

dimensions is high. Idealy, all the printed part could be machined from aluminum of

another material with better wear characteristics but time was an issue and so was the

experience the members had in the machine shop and the complexity of some of the

parts exceeded what could be fabricated by the design group. An acid bath was also an

option. It essentially creates a more heat and wear resistant surface on the printed

components. A different filament would have to be used in the 3D printer to do so

though. ABS filament can not withstand this treatment and was the only filament on

hand. To build on the last idea, the design could be tweak in various way to help with

maintaining the accuracy and calibration for an extended period of time. One set in

place the components could be more permanently secured, and the number of parts

could be reduced. The idea of one row of tubes that would travel with the carriage was

brought up. This would remove 30 tubes and allow them to be relative to the carriage

and claw movement. Of course more support would be needed for the overhanging

carriage. But it would eliminate the need to maintain accuracy for the 36 bin grid over

time.

The price and the ease of operation were emphasized greatly and there is not much

room to improve on. The components were all eventually purchased for a very

reasonable price for the level of accuracy that is capable. The machine as a whole was

constructed for well for a much lower cost than what was intended. As for the user

interface, the operation of the machine was simplified from the previous attempt and is

operated with just one on/off switch. The improvement comes from the power supply,

only one outlet is now needed.

Page 62: 2ndSemesterReport

61

9. Appendices

9.1. Appendix A

9.1.1. Final Submitted Budget with Mentor Approval

Shell Sorter Phase 2

Final Project Budget

ME 462

Group F15-5 Shell Sorter Phase II

Sponsored By:

February 12, 2016

Members:

Cole Cameron

Thomas Crandall

Steven Duval

Nolan Michaelson

Faculty Mentors:

Dr. Majura Selekwa

Page 63: 2ndSemesterReport

62

Rob Sailer

1. Introduction:

North Dakota State University has received a project presented to them by the Red

River Regional Marksmanship Center to create a machine capable of sorting through

spent (used) rifle and pistol rounds. The intended purpose for this design is to make the

ammunition reloading process faster and more efficient. Many gun owners choose to

reload their own rounds, whether they make trips to the range as a hobby, shoot

competitively, or if they are hunters. They chose to reload because of the many

benefits it has to offer. The list includes:

● Financial reasons: A good portion of the cost of ammunition are the brass

casings The brass usually comprises roughly ⅓ of the price of the entire round.

● Customizing loads: Reloading gives you the opportunity to select the

components that work with your gun. Reloading allows the user to create small

batch bullets that shoot more accurately.

● Ammunition shortages: Certain rounds are hard to find due to a low supply.

These are the reasons that the RRRMC has come to NDSU to create a fast, high

volume shell sorting machine. For an organization that sees so many empty rounds

each day, reloading and the resale of brass cartridges can bring in a bit of added

revenue. The ability to be accurate and fast when sorting is crucial due to the volume

and nature of the intended purposes.

Page 64: 2ndSemesterReport

63

2. Project Model and Budget Overview:

In the first phase of creating a shell sorting machine there were a few areas that had to

be improved. First, the previous delivery system that was in use was unsuccessful at

delivering the shells to the correct bins. In order to reach the desired speed and

accuracy an xy-table was chosen for the new delivery system. Secondly, the previous

shell casing identification method was a SMART camera that was borrowed and far too

expensive. Therefore an Optical Character Recognition (OCR) software was the first

idea for identification through reading the stamp on the bottom of the casing. After a

project re-scope, due to difficulties using the OCR software, identification through

physical measurements was to be used using the xy-table and several linear

potentiometers. A rendering of the proposed project can be below in Figure 1.To

expand upon it, the casings will be loaded into the casefeeder shown in the top left

region of the model. From there they will be fed down through a tube to the

identification platform, where it will be secured so the base and neck diameters of the

casing can be obtained with potentiometers. An pneumatic cylinder will also be

implemented to gather the casing height soon after. From the data the casing will be

able to correctly identify it and then be transferred to the correct bin with use of the xy-

table and grasp that previously secured the casing in the identification stage.

Figure 1

Page 65: 2ndSemesterReport

64

Budget Item Estimated Cost

Hardware/Dimensioning $831.44

Frame cost $226.72

x-y Table cost $1476.35

Total $2534.51

3. Detailed Budget and Justifications:

Last year, the Shell Sorter Phase 1 group created a budget totaling $2,786.36 and was

allocated by the university $3000 dollars for the project. The budget of the OCR design

followed the same trend as the budget of the Phase 1 design, with the shell casing

identification being the majority of the budget. The incorporation of an xy-table delivery

system was introduced and is a considerable extra expense. The first amount of money

allotted to Shell Sorter Phase 2 was a total of $2200.00. The project re-scope and

change of identification methods from the OCR software to physical measurements

freed up a substantial amount of money from the first Shell Sorter Phase 2 budget by

eliminating items such as the laptop, web camera, and of course the OCR program. As

it was previously mentioned the new method of identification is to physically dimension

the spent casings. This concept incorporates the use of a couple different components

such as potentiometers and pneumatics. Since the level of precise is become more

emphasized these components must be very precise. The working parts of the xy-table

are now going to be of a higher quality and possess more accuracy and speed than the

previously budgeted items. The price of the frame remained nearly the same in both

budgets of the Shell Sorter Phase 2. The project budget has increases this semester

due to the new direction it is heading. It is somewhat attributed to the fact that very

general components that were thought to work in the previous design as well as the

initial estimated budget of the re-scope presented at the end of the first semester were

selected off the internet. It is highly stressed that precision as well as speed are needed

to complete the project as well as meet the constraints placed upon the group by the

RRRMC. For example in there are a variety of shell casings that use either the exact

dimension or very similar dimension relative to other calibers. After various research it

was found that three separate dimension would have to occur to correctly identify the

spent casing, with differences between some being so minute that the precise of our

components would have to be +/- 0.001” for not just one, but three needed components

now. Fig-ure 2 below illustrates exactly how similar different calibers can be.

Page 66: 2ndSemesterReport

65

Figure 2

Speed was always known to be an issue and the original budget took this into account

to some extent but not fully. The RRRMC cycles through nearly 1.5 million casing each

and every year. Half of which are capable of being sold for reloading purposes. This

means a casing must be accurately sorted on average in just under 10 seconds

provided the range is open 52 weeks a year, 8 hours a day, without incorporating

recalibrations, time to switch reloading plates, and other stoppage times.

Page 67: 2ndSemesterReport

66

3.1 Hardware/Dimensioning

Hardware/Dimensioning quantity Price

-Potentiometers 3 $113.07

-Pneumatic Cylinders 3 $55.97

-Pneumatic Components $276.57

-Arduino Shield 1 $81.90

-Wiring NA $50

-Claw 1 $10.53

-Actuator Housing 1 $78

-Power Supply 1 $165.40

Hardware Cost $831.44

3.1.1 Potentiometers: After a complete re-scope of the initial project, the shell

identification process was changed. Originally the casing we to be deciphered by the

optical character recognition program. As stated above the new direction is to use a

physical dimensioning method. A linear potentiometer was chosen as the most precise

and cost efficient instrument to obtain the base diameter and neck diameter dimensions.

The concept is to touch the casing side wall and a resistance will be relayed to the

controller and converted to a dimension. Precision is heavily emphasized for the

potentiometer. The stroke length is considered secondary as there will not be much

motion to obtain the dimensions. With this in consideration one potentiometer with a ½’’

stroke length (SKU:987-1025-ND) and a 1 ½’’ stroke length (SKU:682-9615R5.1KL2.0)

will be used for the base and neck diameter, whereas a 2” stroke length potentiometer

will be used to get the height dimension (SKU:PTB6043-2010BPB103). The price will

total to $343.76 after shipping charges are incorporated. The price is steep for the

potentiometers but the quality is felt necessary as to meet all of the needed

requirements.

3.1.2 Pneumatic Cylinders/Components: After a budget revision pneumatics were a

much cheaper alternative than the previous solenoids and actuators. Pneumatic

cylinders also have adjustable speed and force which is much more desirable for this

design. Two 5/16’’ bore cylinders with a ½’’ stroke length and one 5/16’’ bore cylinder

with a 2’’ stroke length were quoted at Air Engineering and Supply. These cylinders

Page 68: 2ndSemesterReport

67

came to a total of $55.97. The components needed will be listed in 3.1.3 Pneumatic

Components.

3.1.3 Pneumatic Components: The first component needed to run pneumatics is a 5

port 4-Way Single Solenoid Valves (x3), which was the most expensive portion of

pneumatics totalling a cost of $32.24/Valve. Some other components are ⅛’’ regulators

(x3) and ⅛’’ Breather Vents (x6) to adjust the air-flow. Tubing and connectors are also

included in the budget. All of which was also quoted from Air Engineering and Supply

with a total cost of $276.57.

3.1.4 Arduino Shield: A large amount of consideration was placed into what control

module would be compatible. After the project re-scope it quickly became evident that

the control module will have to run several components with a high degree of accuracy.

Last year’s project used an Arduino controller to run its three components with a

moderate level of accuracy. This project will reuse that same controller, but an arduino

shield that is capable of 24-Bits will need to be add to it to meed the accuracy and other

criteria needed. Iascaled.com sells a shield capable of meeting the criteria (Model

Number LTC2499) for $70.00 with $11.90 delivery charges.

3.1.5 Wiring: After the redirection of the project, many more components were needed

to differentiate the casing calibers. Even more wiring will be used to connect the working

electrical components to the power supply. The solenoid will also need to have current

provided to them throughout the entire casing delivery step across the entire xy-table

adding a bit more intricate wiring system. An estimated $50.00 even is to account for

any and all wire or wiring associated costs.

3.1.6 Claw & Actuator Housing: Three parts of the project are to be machined from

aluminum.The linear actuator will be mounted and encloses in a housing to shield

moving parts while allowing for an easy mount because the identification stage has so

many working/moving parts. The raw materials and machining of the part from grainger

will amount to $78.00. The other two parts will be to support each of the solenoids on

the grasping structure. Being smaller and more simple the material for these two claw

platforms can be purchased from Grainger as well for $10.53.

3.1.7 Power Supply: A Power supply will be needed, one with enough power to run

everything off of one device is ideal because it will be easier to position on the machine.

Supplying enough power for both steppers to run simultaneously while operating at

Page 69: 2ndSemesterReport

68

maximum power requires 48V 10A a Mean Well Switching Power Supply is perfect for

this operation(mouser part # 709-SP-480-48) that will cost $165.40.

3.2 Frame Materials

Frame Materials quantity Price

-Steel Tubing NA $132.72

-Bins 27 $71.01

-Mounting brackets 27’ $22.99

Frame cost $226.72

3.2.1 Steel Tubing: The primary framework that will support the bins and electrical

components will be fabricated from hollow steel tubing to ensure stability. A local metal shop in Fargo is able to cut the tubing to the specific needed lengths. The frame will be constructed from 2” 14 gauge tubing, and for the amount needed cut to the needed

specifications, it would cost $132.72

3.2.2 Bins: Initially starting by sorting 35 separate casings and send the remaining

calibers all to a separate “junk” bin. So 36 bins in total wi ll be needed. The bins

previously used can be reused, therefore only 24 bins will need to be purchased. At $2.80/bin over a purchase of 6+ bins, the cost will reach $71.01 with S&H from

McMaster-Carr.

3.2.3 Mounting Brackets: To hold the tubes in place on the machine while it operates

so shells don’t go everywhere. the mounting material will be 2” by ⅛” 304 stainless

steel. It comes in lengths of 6f from grainger(item #4YTY3)t. The total length needed is 27ft. That bring the cost to $22.99.

3.3 Transport design etc.

x-y Table Transport design quantity Price

Page 70: 2ndSemesterReport

69

-Shell reservoir/orientation 2 case feeder plates $91.39

-3D printing allocation N/A $60.00

-X-direction of travel 2', 2 $211.99

-Tubes 80' $25.12

-Stepper motor+encoder 2 $448.17

-Stock Parts N/A $50.00

-Belts & Pulleys N/A $129.82

-Plexi Glass 1 $73.50

-Linear Bearings 4 $386.36

x-y Table cost $1476.35

3.3.1 Shell reservoir/orientation: Last years design utilized an auto-orientating shell

delivery product. It provided a ½ gallon reservoir for the spent rounds and was store bought. Reusing won't cost anything. Phase 1 of the project only purchased the pistol

casefeed plate therefore the other plates will need to be purchased, a large rifle plate and small rifle plate each are $38.95 giving a total of $91.39 for the 2 plates including S&H.

3.3.2 3D printing allocation: A variety of components that don't need the strength of a

machined part, but are created for a specific purpose in the design will need to be 3D printed. Such as the v-notched blocks that will held the casings securely, and a

platform to support several components. A single roll of filament will be sufficient for the needed parts, costing $60.00. 3.3.3 X-direction travel: The design calls for two ⅜” stainless steel guide rods to be

used to guide the casing in the y-direction (front to back). ⅜” was chosen for added strength and two rod with individual bearings will eliminate and torque or twisting

motions during the casing delivery. A short distance of 12 inches is all that’s needed for y-direction travel. A two foot ⅜” stainless steel guide rod will be purchased from McMaster-Carr for $25.43. Two bearings with platforms from VBX (Product Code:

TWA6_NB) will be placed on the guide at the cost of $39.95 each.

3.3.4 Linear Bearings: As for the x-direction of travel which is 32 inches in length.

Since the travel is a considerable amount larger it is stressed that the movement is smooth, fast, accurate, and of course repeatable. To achieve those parameters, two profile linear track and bearings were selected. The redi-rail guide and carriage system

by PCB linear seemed to fit the part. The track is the RR14036.000. Each carriage is $80.73 and the track amounts to $203.44, making the total with S&H $386.36.

Page 71: 2ndSemesterReport

70

3.3.5 Tubes: The machine design requires roughly 70’ of tubing, and 1” PVC was

chosen due to the low price. 80’ of PVC will make sure that all the sizes can be

achieved and the cost is $25.12 this will be purchased at Lowes so no shipping required. 3.3.6 Stepper motor+encoder: Two stepper motors, one for the x dimension, and

another for the y dimension will be utilized for transporting the casings to the desired tube. A product offered by applied-motion.com (STM23R-2NE), easily exceeds the

needed criteria asked of the component. The motor itself is $192.00. After both motors and S&H are accounted for the total amount is brought to $448.17.

3.3.7 Stock Parts: $50 This will simply cover the rough costs of screws, bolts, washers,

and other miscellaneous stock parts.

3.3.8 Belts & Pulleys: An array of belts and pulleys will be essential for the stepper

motors to transport the grasp structure that will hold the casings. Two timing belts

(model: LL025MXL) will need to be purchased for the structure to move in both the X and the Y directions. This can be done for $24.68. To work properly the system must

also use multiple pulleys (model: 1254N24) that will amount to $31.46, along with a ¼” rod (model: 6061K21) for $6.05 and multiple bearing mounts (model: 6800N3) for $67.63. All of the components can be purchased within the same order from McMaster-

Carr.

3.3.9 Plexi Glass: At was a given constraint from the RRRMC that the machine is to be

placed in the from lobby and available for the members to use. With that established, a

barrier was needed to distance the members in the lobby from any working/moving members of the project. A plexi shield is going to be mounted. A piece of plexi glass

capable of providing a single barrier to all the moving parts will be purchased from Lowes for $73.50.

9.1.2. First Semester Submitted Project Plan

Page 72: 2ndSemesterReport

71

Semester Two Project Plan

(Revised)

Group F15-5 Shell Sorter Phase II

Sponsored By:

Members:

Cole Cameron

Thomas Crandall

Steven Duval

Nolan Michaelson

Mentors:

Dr. Majura Selekwa

Robert Sailer

Project Plan

1.0 Background

The Red River Regional Marksmanship Center (RRRMC), a shooting range located in

West Fargo, deals with a plethora of different spent shell casings each year. Currently,

Page 73: 2ndSemesterReport

72

the spent shell casings are sorted by hand by physically looking at the caliber print

which is a slow and painstaking ordeal. These sorted shell casings are much more

valuable to RRRMC and consumers because it saves time, money, and inappropriate

loading. Therefore, an accurate and quick shell casing sorter that is automated would

be ideal for RRRMC and many consumers who reload their own ammunition. Currently

the available shell casing sorters are limited to the number of different calipers that they

can sort. There are other homemade shell sorters that can sort a variety of spent shell

casings, however with limited speed and accuracy. With this being the second attempt

at creating a shell sorter through RRRMC, some ideas and designs from the previous

group could be used and improved upon. The two main components to improve upon is

the use of a different camera and a more reliable delivery system. As stated previously,

the aim of the project is to improve speed and accuracy of the shell sorting process

while increasing the number of shell casings that are able to be sorted.

2.0 Justifications

The intended purpose for this is design is to make the ammunition reloading process

faster and more efficient. Many gun owners choose to reload their own rounds, whether

they make trips to the range as a hobby, shoot competitively, or if they are hunters.

They chose to reload because of the many benefits it has to offer. The list includes:

● 2.1 Financial reasons: A good portion of the cost of ammunition is the brass

casings that are used to hold all of the components together. The brass usually

comprises roughly ⅓ of the price of the entire round. The caliber can also

influence the price. Certain rounds are outrageously priced so reloading is more

popular among various calibers.

● 2.2 Customizing loads: Reloading gives you the opportunity to select the

components that work with your gun. Different primers ignite differently. The

bullet itself can be bought with different weights and profiles within the caliber.

The type of gunpowder as well as the volume can affect accuracy greatly.

Another factor to include is the overall length of the round.

● 2.3 Ammunition shortages: The market for ammunition is unstable right now and

a few certain calibers are in high demand, with a low supply. These rounds can

be difficult to find and reloading helps if you can’t always buy the round you are

looking for off the shelves.

Page 74: 2ndSemesterReport

73

These are the reasons that the RRRMC has come to NDSU to create a fast, high

volume shell sorting machine. For an organization that sees so many empty rounds

each day, reloading and the resale of brass cartridges can bring in a bit of added

revenue. The ability to be accurate and fast when sorting is crucial due to the volume

and nature of the intended purposes.

3.0 Project Plan Analysis

While looking at the issues that occurred in the last trial of making a shell casing sorter

the next design could resolve and avoid some of those issues. One main issue was the

inability to account for many shell dimensions, while taking into account tolerance, with

the previous image system. Therefore, a more accurate method of dimensioning is

going to be implemented in this design. This is going to require multiple highly accurate

measuring devices and a high resolution processor to meet the constraints. There were

also issues with the previous delivery system of the shells, so some design

modifications have to be done in order to use gravity as a source of transportation.

4.0 Objectives

The objective of this project is to design a shell casing separator that can sort a variety

of different spent shell casings by using multiple pneumatic driven potentiometers to

collect three separate dimensions on the casing to identify it correctly. This measuring

components, controller, and shell delivery system must be of high accuracy and speed.

This machine must be able to sort, potentially, hundreds of different handgun and rifle

shell casings. These casing are meant to be sorted into individual bins so that they can

easily be sold and reloaded.

5.0 Constraints

Within the project there lies design and safety constraints these include but are not

limited to being able to sort anywhere from 10 to 400 different casings. This being

broken up between rifle and pistol casings. The machine need to operate under 85 dB

as per OSHA standards.

The wide range casing variability stems from a vast range of casings across many

firearms although in reality we more realistically may come across much slimmer

number with a bin devoted to more rare casings that can be sorted by hand. The OCR

software needs to be able to give us a 99% or better reading along with a machine that

will sort to an accuracy of 95%. Those coupled with designing the machine to be

minimum maintenance and reliable to need little to no human interaction to start short of

being switched on will define the engineering constraints

Page 75: 2ndSemesterReport

74

The machine needs to operate under 85 dB in order to meet section 1910.95(b)(2) of

OSHA standards. 85 dB for 8 hours is the longest the human ear can go without

receiving damage. Also for the machine to be operated within the range by the

volunteers while People can still communicate effectively.

6.0 Main Tasks

In order to complete the project to full expectations a task list had to be made. First, the

problem had to he fully understood from the entire group to decide what the final

outcome was following the constraints of the project. After understanding the problem

some research had to be done on image recognition software along with a camera and

processor that can all work together with accuracy and speed. When a budget plan is

made the constraints and abilities of the project can be fully defined. Following, a

software must be able to communicate with the processing module given to voltages

from the potentiometers to deliver the following casing to its distinct place through

mechanical processes.

7.0 Revisions

There were some major changes in the project plan since it was first created at the

beginning of the last semester. Last semester a total project re-vamp took place setting

the project back a ways as well as altering some of the expected actions such as the

method of identification. The initial route was to use an optical character recognition

program, where a physical measurement identification process is the new method. With

the re-vamp a completed concept was still created. The first action item intended to

take place was to analyze the completed design. Again the group had to compensate

for another obstacle and alter the design by convert the electronic devices to pneumatic

components pushing back the ordering dates as well as finalizing the completed design.

Many more changes also needed to occur. Frankly the previous plan became very

vague in the seconds semester. Action items that were to order parts were broad and

grouped the parts by function (Ex. “Order Physical Framework Materials). It is now

known that that single functions need several parts to work properly. Recently it was

brought to attention, that the heart and soul of the project was in the identification stage

and an emphasis was put on completing the platform that would grasp the shell and

support the measuring components as well as programing these components to get

accurate measurements. With that in mind the programming aspect and fabrication of

the platform was moved up and is now the first item to be completed after the part

numbers are finalized. An addition change is that now that some research into specific

Page 76: 2ndSemesterReport

75

parts has been completed, all the time that was allocated to ordering parts is not

needed and has been freed up. That extra time was allotted to the programming,

debugging, and testing actions because it seemed that these tasks were greatly

underestimated when the initial project plan was created.

8.0 Task List

Task 8.1: Define Project

Objective: Analyze and understand fully the problem at hand.

Duration: 9/2 - 9/23 (4wks)

Task Leader: Nolan Michaelson

Additional Personal: 25% All team members

Resources: Dr. Selekwa, Dr. Sailer, & Library Database

Deliverables: Discussion of understanding to make sure everyone is on the

same page.

Task 8.2: Brainstorming

Objective: Obtain several designs that satisfy our objectives and constraints.

Duration: 9/9 - 9/23 (3wks)

Task Leader: Tom Crandall

Additional Personal: 25% All team members

Resources: Previous Design Documents & Library Databases

Deliverables: Two design sketches/ideas for each member that satisfy

objectives and constraints.

Task 8.3: Basic Design Selection

Objective: Select one general design to move forward with.

Duration: 9/16 - 9/23 (2wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team members

Resources: Previous Design Documents

Deliverables: One concept Design Sketch

Task 8.4: Project Planning

Objective: Create project scope that covers all aspects of the project.

Duration: 9/23 - 9/30 (1wks)

Task Leader: Nolan Michaelson

Additional Personal: 25% All team Members

Page 77: 2ndSemesterReport

76

Resources: Project Planning Guides

Deliverables: A detailed outline of our project, timeline (Gantt Chart), and

deliverables.

Task 8.5: Research: Transport Hardware

Objective: Research different hardware mechanisms and analyze their

capabilities.

Duration: 9/9 - 9/30 (3wks)

Task Leader: Thomas Crandall

Additional Personal:

Resources: Library Database

Deliverables: Provide options for Transport Hardware relating to concept design.

Task 8.6: Research: Camera Options

Objective: Research several different options for cameras, while taking into

account their price and functionality.

Duration: 9/9 - 9/30 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Resources: Library Database

Deliverables: Have three potential cameras and there details (pros & cons)

Task 8.7: Research: OCR Programs

Objectives: Research several OCR programs that are able to fit the needs and

constraints of the project.

Duration: 9/9 - 10/7 (4wks)

Task Leader: Steve Duval

Additional Personal:

Resources: Library Database, Maxx Kureczko

Deliverables: Have three potential programs (pros & cons)

Task 8.8: Budget Development

Objectives: Create a budget estimate incorporating all expected costs of the

products and other various expenses we might face. The department will then

review our budget and declare the funds our project will be delegated.

Duration: 9/30 - 10/21 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Page 78: 2ndSemesterReport

77

Resources: NDSU Mechanical Engineering department, online catalogs, Creo

Parametric, Excel.

Deliverables: An outlined budget including any possible costs related to the

project.

Task 8.9: Research: Control Modules

Objectives: Investigate the capabilities of control modules and choose one that

best fits our needs. The module chosen will be dependent on the requirements

from the other machine components.

Duration: 9/16- 10/14 (4wks)

Task Leader: Nolan Michaelson

Additional Personal:

Resources: Online Catalogs

Deliverables: Bring info on three potential Control Modules.

Task 8.10: Design Physical Framework

Objective: Create a frame that will incorporate our components, allowing them to

function together efficiently.

Duration: 10/28-11/18 (3wks)

Task Leader: Cole Cameron

Additional Personal:

Resources: Previous Design Documents

Deliverables: Concept sketch.

Task 8.11: Project Re-vamp

Objectives: Renovate the existing project to allow for the use of physical

measuring devices to identify the casings instead of an OCR software.

Duration: 11/11-11/25 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Steve Duval,Cole Cameron, Tom Crandall

Resources: CAD Programs (Solidworks/ PTC Creo), internet

Deliverables: Updated Design

Task 8.13: Create 1st Semester Report & Presentation

Objectives: Assemble a report comprises of our findings, failures, and progress

from the first semester of design. Then present the report to our peers and

advisors.

Duration: 11/25-12/11 (2.5wks)

Page 79: 2ndSemesterReport

78

Task Leader: Cole Cameron

Additional Personal: 25% All Team Members

Resources: Gatherings from Task 1 - Task 11

Deliverables: Final Draft Report & Presentation

Task 8.14: Determine Part Numbers

Objectives: Solidify all model numbers for the needed design

Duration: 1/18 - 1/22 (1wks)

Task Leader: Steve Duval

Additional Personal: 25% All Members

Resources: Internet and product catalogues

Deliverables: Finalized Parts list

Task 8.15: Model and Print V-block design

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 1/18 - 1/22 (1wks)

Task Leader: Nolan Michaelson

Additional Personal:

Resources: Solidworks and NDSU 3D printer

Deliverables: V-block part

Task 8.16: Project Planning Revision

Objective: Create project scope that covers all aspects of the project.

Duration: 1/25 - 2/5 (2wks)

Task Leader: Cole Cameron

Additional Personal: Steve Duval

Resources: Project Planning Guides

Task 8.17: Budget Revision

Objectives: Create a revised budget to adjust for the project re-vamp

incorporating all expected costs of the products and other various expenses we

might face. The department will then review our budget and declare the funds

our project will be delegated.

Duration: 1/25 - 2/5 (2wks)

Task Leader: Cole Cameron

Additional Personal: All

Page 80: 2ndSemesterReport

79

Resources: NDSU Mechanical Engineering department, online catalogs, Creo

Parametric, Excel.

Deliverables: An outlined budget including all costs related to the project.

Task 8.18: Determine Control Module Shield

Objectives: Analysis of the needed resolution will output the needed Bit size of

the shield needed to make the previous arduino controller capable for the

application.

Duration: 2/1 - 2-5 (1wk)

Task Leader: Tom Crandall

Task 8.19: Order Control Module Shield

Objectives: Order the shield needed to make the previous arduino controller

capable for the application.

Duration: 2/1 - 2-5 (1wk)

Task Leader: Cole Cameron

Deliverables: Arduino Shield

Task 8.20: Arduino Program Research

Objectives: Develop a basic knowledge that will be needed to program the

arduino to program the measurement components

Duration: 2/1 - 2/19 (3wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Task 8.21: Project Revision

Objectives: Renovate the existing project to allow for the use of pneumatic

measuring devices to identify the casings instead of an electrical system.

Duration: 2/2 - 2-9 (1wk)

Task Leader: Nolan Michaelson

Additional Personal: Steve Duval, Tom Crandall

Resources: internet

Deliverables: Updated Design

Task 8.22: CADD Drawings, BOM

Objectives: Create a 3D model and drawings of our chosen mechanical design

to aid in creating the BOM, FEA, and in physically creating the machine.

Page 81: 2ndSemesterReport

80

Duration: 1/25 - 2-12 (3wks)

Task Leader: Nolan Michaelson

Resources: CAD Programs (Solidworks/ PTC Creo)

Deliverables: Drawings of all components of design w/ BOM.

Task 8.23: Determine Pneumatic Part Numbers

Objectives: Solidify all model numbers for the needed pneumatic design

Duration: 2/8 - 2/12 (1wks)

Task Leader: Nolan Michaelson

Resources: Internet and product catalogues

Deliverables: Finalized Parts list

Task 8.24: Prototype Fabrication and Assembly For Identification Platform

Objectives: Assemble the structure of the identification platform. Get all

components assembled, mounted, and communicating properly.

Duration: 2/1-3/4 (4wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Resources: MELabs

Deliverables: Have a design that can properly identify specific casings

Task 8.25: Arduino Program Research (steppers)

Objectives: Develop a basic knowledge that will be needed to program the

arduino to program the stepper motors

Duration: 2/8 - 3/4 (4wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Task 8.26: Order Pneumatics

Objectives: Order the pneumatic components that will drive the measuring

components

Duration: 2/8 - 2-12 (1wk)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Deliverables: Pneumatic Cylinders

Task 8.27: Order Power Supply

Page 82: 2ndSemesterReport

81

Objectives: Order the power supply capable of supporting all the needed

components.

Duration: 2/15 - 2/19 (1wk)

Task Leader: Tom Crandall

Deliverables: Power Supply

Task 8.28: Design & Develop Software Application

Objectives: Create an application that can run an iteration executing the

identification casing sorting process. It has to identify various calibers with a 98%

accuracy.

Duration: 2/15 - 3/4 (3wks)

Task Leader: Thomas Crandall

Additional Personal: Steve Duval

Resources: Library Database & Computer Science Department

Deliverables: Application to execute machine process.

Task 8.29: Order: Physical Framework Tubing

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 2/15 - 2/19 (1wk)

Task Leader: Nolan Michaelson

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Task 8.30: Fabricate Physical Framework and Casefeeder

Objectives: Order the need parts from the supplier/manufacturer incorporating

sufficient lead time.

Duration: 2/22 - 3/4 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Deliverables: Project framework and shell orientation process

Task 8.31: Order Extra Casefeeder Plates

Objectives: Order the needed parts that will allow for the orientation and delivery

for both small and large rifle casings.

Duration: 2/22 - 2/26 (1wk)

Page 83: 2ndSemesterReport

82

Task Leader: Cole Cameron

Deliverables: Shell orientation for small and large rifle calibers

Task 8.32: Order Air Lines and Air Compressor

Objectives: Order the need parts to run the pneumatic cylinders from the

supplier/manufacturer incorporating sufficient lead time.

Duration: 2/27 - 3/4 (1wk)

Task Leader: Steve Duval

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Task 8.33: Pick Up Hardware, Bins, and Plexiglass

Objectives: Pick up the needed parts that can be purchased at a hardware store

such as a plexi shield, hanging organizational bins, and nuts/bolts.

Duration: 2/27 - 3/4 (1wk)

Task Leader: Tom Crandall

Resources: Lowes

Deliverables: Parts in hand

Task 8.34: Debug Identification Program

Objectives: Run the previously developed program and fix any errors or delays

to increase accuracy and speed of shell indentification.

Duration: 3/7 - 3/25 (3wks)

Task Leader: Tom Crandall

Additional Personal: Steve Duval

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that runs as desired with 98% accuracy.

Task 8.35: Order Transport Mechanisms

Objectives: Order the need parts to create a linear xy-table from the

supplier/manufacturer incorporating sufficient lead time.

Duration: 3/7 - 3/11 (1wk)

Task Leader: Cole Cameron

Resources: Manufacturers, online catalogues, ME department

Deliverables: Parts in hand.

Task 8.36: Fabrication and Assembly of the XY-Table

Objectives: Assemble the delivery system design to specification.

Page 84: 2ndSemesterReport

83

Duration: 3/21-4/1 (2wks)

Task Leader: Nolan Michaelson

Additional Personal: Cole Cameron

Resources: MELabs

Deliverables: Have a working XY-table capable of the needed speed and

accuracy

Task 8.37: Program Transport Hardware

Objectives: Develop a program that transports the casing depending on the

given measurements.

Duration: 3/21 - 4/1 (2wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that controls transfer of shell casing.

Task 8.38: Wiring

Objectives: Properly connect all working components including the moving

platform to the power supply.

Duration: 3/21-3/25 (1wks)

Task Leader: Tom Crandall

Additional Personal: Nolan Michaelson

Resources: MELabs

Deliverables: Completed Prototype

Task 8.39: Debug Transport Hardware

Objectives: Run the previously developed program and fix any errors or delays

to increase accuracy and speed of shell delivery.

Duration: 4/4 - 4/15 (2wks)

Task Leader: Cole Cameron

Additional Personal: Tom Crandall

Resources: Library Database, Computer Science Department & Eric Kubischta

Deliverables: A program that runs as desired with optimal speed and accuracy.

Task 8.40: Prototype Testing

Objectives: Data will be assembled from trials of the prototype regarding the

machines accuracy and its ability to Function within our design goals.

Duration: 4/11 - 4/29 (3wks)

Page 85: 2ndSemesterReport

84

Task Leader: Steve Duval

Additional Personal: 25% All team Members

Resources: ME Labs

Deliverables:.Finalized, working design

Task 8.41: Create 2nd Semester Report

Objectives: Assemble a report compiled of our findings, failures, and final

design/prototype from the last two semesters. Then present the report to our

peers and advisors.

Duration: 4/18 - 4/29 (2wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team Members

Resources: Gathered from tasks 1-40

Deliverables: A well developed delivery of the entire project from start to finish in

a report

Task 8.42: Create, practice, and deliver 2nd Semester Presentation

Objectives: Assemble a powerpoint compiled of our findings, failures, and final

design/prototype from the last two semesters. Then present the powerpoint in

front of our peers and advisors.

Duration: 4/18-5/5 (3wks)

Task Leader: Cole Cameron

Additional Personal: 25% All team Members

Resources: Gathered from tasks 1-40

Deliverables: A well developed delivery of the entire project from start to finish in

presentation form

Figure A1 Actual Spend Funds and Part Numbers

Orderd Parts Identification Quantity Price(total)

24V power supply SNANSHI 2 21.98

Arduino shield 1 39.99

48V power supply Genssi 2 69.88

Cylinder 5/16" 2.5" SDR-05-2 1/2 1 20.04

Cylinder 5/16" 1.5" SDR-05-1 1/2 1 19.46

Cylinder 1.2" 2.5" SDR-08-2 1/2 1 20.24

Page 86: 2ndSemesterReport

85

4-way solenoid MMM-41PES-D024 3 96.73

1/8" Regulator MMR-2P 3 81.68

5/32" speed controller elbow NSE532U10 6 36.66

5/32" male straight conection PC532NO1 15 16.27

1/8" breather vent BVS-18 6 3.78

5/32" hose 1J-156-10 100' 16.67

Timing belt pulleys 125N24 4 27.2

belt 7959K21 12' 25.92

1/4" rod 6061K21 1 4.78

2 flange bearing mount 2820T33 2 22.14

DryLin linear carriage 9867K4 1 66.4

DryLin linear guide (500mm) 9867K14 1 65

stainless steel linear guide (1200mm) 9215T43 1 408

1" 10' PVC tubes 531194 6 18.84

3-way manifold M1402-5 1 29.99

NEMA 23 stepper & driver MB450A 2 148.18

18 x 18 x 6 NEMA enclosure G7628731 1 49.93

slide potentiometer PTF01-201A-103B2 1 7

push potentiometer 682-9615R5.1KL2.0 1 42.25

raw materials (framework) NA NA 46.69

power supply cords NA 2 12.62

spray paint 1 3.79

5/32" straight connections (5 pack) 1 13.75

1 1/4" Spade bit 1 2.46

two-circuit din rail terminals 7641K71 4 14.04

din rail terminals end stop 7641K73 1 2.19

din rail terminals cover 7641K72 1 1.14

jumpers 7641K74 1 5.07

closed bearings 4575N33 2 20

open roller bearings 1434K43 2 20.46

Double acting air cylinder 3" 6498K848 1 30.89

Servo motor w/metal gear S142-16-6VM 1 20.69

Page 87: 2ndSemesterReport

86

Arduino screw in shield NA 1 11.99

Servo arm HAN9155 1 8.74

Ball Bearing Carriage 9215T23 1 214.58

Strut Channel 3310T57 6 36.72

Strut Channel Pipe Clamps 3979T11 36 38.52

Wiring Sleeve 9284K4 10' 4.89

Return Shipping Cost 15

Shipping 125

TOTAL 2008.24

Yet to be Ordered

bins S-13396 24 62.37

casefeeder plates 21074, 21075, 20172 3 116.85

TOTAL 2187.46

ALLOCATED 2200.00

REMAINING (UNDER BUDGET) +12.54

9.2. Appendix B

Figure B1 Calibers Chart

Page 88: 2ndSemesterReport

87

Figure B2 Tolerance Graph

Page 89: 2ndSemesterReport

88

Figure B3 Flow Chart

Page 90: 2ndSemesterReport

89

9.3. Appendix C

Figure C1 Modeled Linear Container Arrangement

Page 91: 2ndSemesterReport

90

Figure C2 Fabricated Linear Container Arrangement with Bins, Tubes and Bare Frame

Figures C3 and C4 Fabricated Grasp Design for Base Diameter

Figure C5 Fabricated Design for Height Dimension

Page 92: 2ndSemesterReport

91

Figure C6 Fabricated Servo Motor Design

Figure C7 Fabricated XY-Table

Page 93: 2ndSemesterReport

92

Figure C8 Integrated Power Box

Page 94: 2ndSemesterReport

93

Figure C9 Completed Design vs. Final Model

Page 95: 2ndSemesterReport

94

Figure C10 Alternative Final Product Comparison

9.3. Appendix D

Page 96: 2ndSemesterReport

95

Figure D1 First and second semester gantt chart

Page 97: 2ndSemesterReport

96

Figure D2 Final Design Flow Chart

Page 98: 2ndSemesterReport

97

Page 99: 2ndSemesterReport

98

Figure D3 Wiring Schematic

Page 100: 2ndSemesterReport

99

Page 101: 2ndSemesterReport

100

Figure D4 Final Code as of 5-1-16

#include <AccelStepper.h>

#include <MultiStepper.h>

#include <Servo.h>

int pos = 0; // variable to store the servo position

const int numReadings = 10;

int readings[numReadings]; // the readings from the analog input

int readings_h[numReadings]; // the readings from the analog input height

int readIndex = 0; // the index of the current reading

int readIndex1 = 0; // the index of the current height readings

int total = 0; // the running total for base diameter

int total_h = 0; // the running total for the heights

float average = 0; // the average of base diameter readings

float average_h =0; // the average of the height readings

int inputPin_x = A5; // the zeroing pin on claw in x direction

int inputPin_y = A3; // the zeroing pin on claw in y direction

int inputPin_bd = A1; // the base diameter readings

int inputPin_h = A2; // the height readings

int val_ir = 0; // the ir sensor val_irue

int val_x = 0; // the sensor value on the x direction of claw

int val_y = 0; // the sensor value on the y direction of claw

int x_zero = 1; // the count of zeroing x

int y_zero = 1; // the count of zeroing y

int zero = 1;

float vol_1 = 0; // vol_1=> reading from analogpin 1 inverted

int step_pin = 5; // digital pin for step feeder

int claw_pin = 6; // claw solenoid pin

int height_pin = 7; // height solenoid

int uptube_pin = 4; // drop tube solenoid

int count_1 = 25; // set the number of time for the smoothing funtion of base_diam pot to

run

Page 102: 2ndSemesterReport

101

int count_2 = 25; // set the number of time for teh smoothing function of height pot to run

int base_diam = 0;

int height = 0;

AccelStepper stepperx(AccelStepper::FULL2WIRE, 8, 9); //short travel stepper

AccelStepper steppery(AccelStepper::FULL2WIRE, 2, 3); //long travel stepper

Servo myservo; // create servo object to control a servo

MultiStepper steppers;

long positions[2]; // Array of desired stepper positions

void setup() {

Serial.begin(9600);

myservo.attach(10); // attaches the servo on pin 9 to the servo object

pinMode(step_pin, OUTPUT); // step feeder setup

pinMode(claw_pin, OUTPUT); // claw solenoid setup

pinMode(height_pin, OUTPUT); // height solenoid

pinMode(uptube_pin, OUTPUT); // drop tube solenoid

steppers.addStepper(stepperx);

steppers.addStepper(steppery);

stepperx.setMaxSpeed(2000.0);

stepperx.setAcceleration(2000.0);

steppery.setMaxSpeed(4000.0);

steppery.setAcceleration(3000.0);

Serial.println("Ready");

for (int thisReading = 0; thisReading <= numReadings; thisReading++) {

readings[thisReading] = 0;

}

}

float doACT( ) {

Page 103: 2ndSemesterReport

102

int bd = 0; // base diameter assigned val_irues based on voltage readings

float val_1 = 0;

while (count_1 > 0) {

// subtract the last reading:

total = total - readings[readIndex];

// read from the sensor:

readings[readIndex] = analogRead(inputPin_bd);

// add the reading to the total:

total = total + readings[readIndex];

// advance to the next position in the array:

readIndex = readIndex + 1;

// if we're at the end of the array...

if (readIndex >= numReadings) {

// ...wrap around to the beginning:

readIndex = 0;

}

// calculate the average:

average = (float)total / numReadings;

val_1 = average * (5.0/1023.0);

average = 0;

count_1 = count_1 -1;

}

if ( 2.500 < val_1 && val_1 <= 2.800 ) { bd = 1; } // assigned to

_38Super__9mm__380__38spl__357mag

else if ( 3.300< val_1 && val_1 <= 3.600 ) { bd = 2; } // assigned to

__45Auto__45Long______

else if ( 2.800 < val_1 && val_1 <= 3.200 ) { bd = 3; } // assigned to

__40S&W________

/*

else if ( 2.9 < val_1 && val_1 <= 3.0 ) { bd = 4; } // assigned to __________

else if ( 3.0 < val_1 && val_1 <= 3.25 ) { bd = 5; } // assigned to __________

else if ( 3.25 < val_1 && val_1 <= 3.5 ) { bd = 6; } // assigned to __________

else if ( 3.5 < val_1 && val_1 <= 3.75 ) { bd = 7; } // assigned to __________

else if ( 3.75 < val_1 && val_1 <= 4.0 ) { bd = 8; } // assigned to __________

else if ( 4.0 < val_1 && val_1 <= 5.0 ) { bd = 9; } // assigned to __________

*/

// this wiil de for any shell that doesn't match any of

the criteria

Page 104: 2ndSemesterReport

103

count_1 = 25;

Serial.println(val_1);

return bd;

}

float dohgt(){

int h = 0; // height assigned val_irue based on voltage readings

float val_h = 0;

positions[0] = -2500;

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(height_pin, HIGH);

delay(1000);

while (count_2 > 0) {

// subtract the last reading:

total_h = total_h - readings_h[readIndex1];

// read from the sensor:

readings_h[readIndex1] = analogRead(inputPin_h);

// add the reading to the total:

total_h = total_h + readings_h[readIndex1];

// advance to the next position in the array:

readIndex1 = readIndex1 + 1;

// if we're at the end of the array...

if (readIndex1 >= numReadings) {

// ...wrap around to the beginning:

readIndex1 = 0;

}

// calculate the average:

average_h = (float)total_h / numReadings;

val_h = average_h * (5.00/1023.0);

average_h = 0;

count_2 = count_2 -1;

}

if ( 0.920 < val_h && val_h <= 0.990 ) { h = 1; } // assigned to

__38Super__45Auto__

Page 105: 2ndSemesterReport

104

else if ( 0.700 < val_h && val_h <= 0.800 ) { h = 2; } // assigned to

__9mm______________

else if ( 0.600 < val_h && val_h <= 0.690 ) { h = 3; } // assigned to

__380______________

else if ( 1.400 < val_h && val_h <= 1.600 ) { h = 4; } // assigned to

__45Long__357Mag___

else if ( 0.830 < val_h && val_h <= 0.920 ) { h = 5; } // assigned to

__40S&W____________

else if ( 1.200 < val_h && val_h <= 1.370 ) { h = 6; } // assigned to

__38SPL____________

/*

else if ( 3.25 < val_h && val_h <= 3.5 ) { h == 6; } // assigned to __________

else if ( 3.5 < val_h && val_h <= 3.75 ) { h == 7; } // assigned to __________

else if ( 3.75 < val_h && val_h <= 4.0 ) { h == 8; } // assigned to __________

else if ( 4.0 < val_h && val_h <= 5.0 ) { h == 9; } // assigned to __________

*/

count_2 = 25;

Serial.println(val_h);

digitalWrite(height_pin, LOW);

delay(75);

return h;

}

void bin_1() {

positions[0] = 1150;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

Page 106: 2ndSemesterReport

105

void bin_2() {

positions[0] = 150;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_3() {

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_4() {

positions[0] = -1700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

Page 107: 2ndSemesterReport

106

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_5() {

positions[0] = -2700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_6() {

positions[0] = -3700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -3200;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

Page 108: 2ndSemesterReport

107

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_7() {

positions[0] = 1100;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_8() {

positions[0] = 150;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_9() {

Page 109: 2ndSemesterReport

108

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_10() {

positions[0] = -1800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_11() {

positions[0] = -2775;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

Page 110: 2ndSemesterReport

109

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_12() {

positions[0] = -3700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -5650;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_13() {

positions[0] = 1000;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8050;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_14() {

positions[0] = 150;

Page 111: 2ndSemesterReport

110

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8100;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_15() {

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8100;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_16() {

positions[0] = -1775;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8100;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

Page 112: 2ndSemesterReport

111

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_17() {

positions[0] = -2775;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8100;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_18() {

positions[0] = -3700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -8100;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_19() {

positions[0] = 1100;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

Page 113: 2ndSemesterReport

112

positions[1] = -10450;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_20() {

positions[0] = 150;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -10450;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_21() {

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -10450;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

Page 114: 2ndSemesterReport

113

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_22() {

positions[0] = -1775;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -10450;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_23() {

positions[0] = -2700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -10450;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_24() {

positions[0] = -3700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -10500;

steppers.moveTo(positions);

Page 115: 2ndSemesterReport

114

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_25() {

positions[0] = 1100;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -12900;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_26() {

positions[0] = 150;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -12900;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

Page 116: 2ndSemesterReport

115

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_27() {

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -12900;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_28() {

positions[0] = -1700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -12900;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_29() {

positions[0] = -2700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

Page 117: 2ndSemesterReport

116

positions[1] = -12950;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_30() {

positions[0] = -3700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -12950;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_31() {

positions[0] = 1100;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

Page 118: 2ndSemesterReport

117

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_32() {

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_33() {

positions[0] = -800;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_34() {

Page 119: 2ndSemesterReport

118

positions[0] = -1700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_35() {

positions[0] = -2700;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void bin_36() {

positions[0] = -3650;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = -15300;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

digitalWrite(claw_pin, LOW); //open claw dropping shell

Page 120: 2ndSemesterReport

119

delay(750);

positions[0] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition();

positions[1] = 0;

steppers.moveTo(positions);

steppers.runSpeedToPosition(); // Blocks until all are in position

}

void x0pt1() {

stepperx.setSpeed(2000);

stepperx.runSpeed();

stepperx.run();

}

void x0pt2() {

stepperx.setCurrentPosition(0);

stepperx.setSpeed(1280);

stepperx.runToNewPosition(-1250);

stepperx.run();

stepperx.setCurrentPosition(0); //setting home pos.

stepperx.setMaxSpeed(4000.0);

stepperx.setAcceleration(2000.0);

x_zero = x_zero - 1;

}

void y0pt1() {

steppery.setSpeed(2000);

steppery.runSpeed();

steppery.run();

}

void y0pt2() {

steppery.setCurrentPosition(0); //setting home pos.

y_zero = y_zero - 1;

steppery.setCurrentPosition(0); //setting home pos.

steppery.setMaxSpeed(4000.0);

steppery.setAcceleration(3000.0);

}

Page 121: 2ndSemesterReport

120

void loop() {

while ( x_zero > 0 ) { //zeroing the x direction

for (pos = 0; pos <= 0; pos += 1) { // goes from 0 degrees to 135 degrees

// in steps of 1 degree

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(5); // waits 5ms for the servo to reach the position

}

val_x= analogRead(A5);

if ( val_x > 500 ) {

x0pt1();

}

if ( val_x < 500 ) { //bringing x to home pos.

x0pt2();

}

}

delay(50);

while ( y_zero > 0 ) { //zeroing the y direction

val_y = analogRead(A3);

if ( val_y > 500 ) {

y0pt1();

}

if ( val_y < 500) {

y0pt2();

}

}

digitalWrite(step_pin, HIGH); // step feeder on

val_ir = analogRead(A0);

Serial.println(val_ir);

if (val_ir >= 900) { //watch for the ir to be tripped

digitalWrite(step_pin, LOW); // step feeder off

delay(1); // delay between readings of ir

delay(750);

for (pos = 0; pos <= 135 ; pos += 1) { // goes from 0 degrees to 135 degrees

// in steps of 1 degree

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(5); // waits 5ms for the servo to reach the position

}

delay(1000);

Page 122: 2ndSemesterReport

121

digitalWrite(uptube_pin, HIGH); // lift up tube

delay(750); // let drop tube come up fully

digitalWrite(claw_pin, HIGH); // closes claw on casing

delay(750); // let the reading settle

digitalWrite(uptube_pin, LOW); // up tube return to pos. in hole

for (pos = 0; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(15); // waits 15ms for the servo to reach the position

}

delay(1500);

int (base_diam) = doACT(); // take the diam reading reading

delay(250);

int (height) = dohgt();

delay(250);

Serial.println(base_diam);

Serial.println(height);

//if (base_diam == 10) { bin_17(); } //__resort/junk__

//else { int (height) = dohgt(); } // check the heights

if ( base_diam == 1 && height== 1 ) { bin_6(); } //__38Super____

else if( base_diam == 1 && height == 2 ) { bin_4(); } //__9mm________

else if( base_diam == 1 && height == 3 ) { bin_16(); } //__380________

else if( base_diam == 1 && height == 4 ) { bin_14(); } //__357Mag_____

else if( base_diam == 2 && height == 1 ) { bin_2(); } //__45ACP______

else if( base_diam == 2 && height == 4 ) { bin_15(); } //__45Long_____

else if( base_diam == 3 && height == 5 ) { bin_3(); } //__40S&W______

else if( base_diam == 1 && height == 6 ) { bin_4(); } //__38Spl_______

else { bin_17(); } //__junk/resort_

}

}