SCARA Robot Drawing System Design
SCARA Robot Drawing System Design
By
Tianhao Chi
Chenghao Duan
Bingzhe Wei
Project No. 19
Contents
1. Introduction ........................................................................................................................................ 1
1.1 Objective ....................................................................................................................................... 1
1.2 Background.................................................................................................................................... 1
1.3 High-Level Requirements List ......................................................................................................... 2
2. Design ................................................................................................................................................. 3
2.1 Block Diagram ................................................................................................................................ 3
2.2 Physical Design .............................................................................................................................. 4
2.3 Functional Overview and Block Requirements................................................................................ 7
2.3.1 SCARA Robotic Arm (15 Points) ............................................................................................... 7
2.3.2 Software (10 Points) .............................................................................................................. 37
2.3.3 Control Board (10 Points) ...................................................................................................... 41
2.3.4 Motor Board (15 Points) ........................................................................................................ 49
2.4 Tolerance Analysis ....................................................................................................................... 58
3. Cost and Schedule ............................................................................................................................. 61
3.1 Cost Analysis ................................................................................................................................ 61
3.1.1 Labor .................................................................................................................................... 61
3.1.2 Parts and Materials ............................................................................................................... 61
3.1.3 Grand Total ........................................................................................................................... 66
3.2 Schedule ...................................................................................................................................... 66
4. Ethics and Safety ............................................................................................................................... 68
References ............................................................................................................................................ 69
ii
1. Introduction
1.1 Objective
Since the advent of computers and subsequently artificial intelligence, a key issue, and one that remains
particularly elusive, has been creativity, the ability to generate output that is both novel and of
significance as would be recognizable by humans. Although alternative programming paradigms that
require less strict process specification and that can infer certain details automatically have been
developed, these logic-based paradigms still require relative stringent and particular specifications as
compared to natural language descriptions and are more difficult to use, and hence most computing
today is still based on the imperative paradigm, resulting in algorithms can solve well-defined specific
problems for which they have been designed to solve with high computational efficiency, but require
manual algorithm discovery and implementation.
Whereas robotics is now commonly used in many industrial applications, there have been far fewer
applications of robotics for artistic purpose, and we are yet to see a robot artist. As compared to other
robotic arm designs, the Selective Compliance Assembly (SCARA) robotic arm design, originally designed
for assembly line work, enables very high manipulator velocities with high positioning accuracy [1]. We
thus seek to combine robotics, specifically, a SCARA robotic arm, together with deep neural networks, to
create a robot capable of learning the art style of any image, applying the learned style, or a synthesized
novel style, to any given input image, and finally output the transformed output image onto a physical
medium, and hence demonstrate a significantly higher level of creative behavior by an artificial
intelligence system.
1.2 Background
Early examples of robotic art systems include Maillardet's automaton [2], a mechanical plotting machine
created back in 18th century based on a clockwork-type mechanism that traced a master copy held
within the mechanism. More recently, there have been computed generated art programs, such as The
Painting Fool [3] and AARON [4]. However, all of these previous systems were either based on
replicating a master copy designed by a human, or were based on careful parameter selection and
relatively rigid, manually designed algorithms, with the algorithms either based on combinations of rules
and/or art primitives, or mathematical relationships such as fractals, chaotic systems, and Lissajous
patterns [5, 6, 7], resulting in computer generated art often having a line-dominant, recursive structure.
Recently, there have been renewed interest in deep neural networks for image processing applications
[8]. Unlike conventional programming, neural networks require comparatively little human input – only
a set of primitives and their interconnections, with most of the detailed instruction specification
required by an imperative programming paradigm instead automatically inferred via parameter
optimization over a given set of input/output example pairs. Viewed as universal function
approximators, neural networks automatically interpolate and extrapolate over the given input/output
domains, thus enabling the creation of arbitrary and potentially novel output from a finite set of
examples without necessitating human engineering [9]. The emergence of deep neural networks
therefore enables the generation of art without first defining any particular algorithm, enabling the
1
generation of art with arbitrary styles and increased complexity which would be otherwise difficult to
describe with primitives or mathematical relationships. In particular, by taking advantage of the
generalization properties of deep neural networks, it is possible to generate new artistic styles from
examples of existing art without additional human intervention.
2
2. Design
2.1 Block Diagram
Overall, the system consists of four components: software running on a PC performing all image
processing steps, a control board with a microcontroller to coordinate all motor movements, a motor
driver board to control the stepper motors required due to the high current and voltage needed to drive
the stepper motors, and the mechanical components of the SCARA robot arm. Given an input image and
a style image, the PC software first performs style transformation on the input image using a deep
neural network, then converts the result into a series of arm angles by clustering colors and thresholding
to get color regions, which are then converted into a series of lines via a vectorization algorithm, before
finally transforming the lines into a list of arm angles via inverse kinematics. The result is sent to the
control board via a USB serial port provided by a USB-to-Serial IC, and subsequently, the control board
sends stepper motor positioning commands via SPI to the stepper motor controller ICs on the motor
board, and pen actuator commands directly as PWM waveforms. The resulting sequence of motor
motions then produces physical output on a piece of Letter-sized paper placed appropriately
beforehand in the robotic arm’s workspace.
3
2.2 Physical Design
4
Base
Base Bearing
Cover Lower
Half
Base Bearing
Cover Upper Half
Stepper
Motors
Arm Segment 1
Arm Segment 2
and Pen
Actuator
5
The physical design of the proposed robot arm is shown in Figure 2 above, while the block diagram of
the SCARA robotic arm is shown below in Figure 4. The SCARA arm type consists of a chain of two arm
segments interconnected with a revolute joint, with a rotational platform controlling a pen located at
one end and another revolute joint at the other end that joins the arm with a base. Each revolute joint is
driven via stepper motors though a short timing belt and aluminum gears and supported via bearings to
ensure accurate movement with low slippage, while rotational platform is driven by a standard size
servo to allow for pen color changes, with three sub-micro servos each attached to a pen to enable
accurate positioning with minimal weight and size. The pen is placed in and out of contact with the
paper by rotating the sub-micro servo attached to that pen. As compared to other robotic arm designs,
the SCARA robotic arm design, originally designed for assembly line work, enables very high manipulator
velocities with high positioning accuracy [1], as all joints are positioned such that self-collisions are
impossible, enabling the ability to move all joints independently and simultaneously. Meanwhile, the
arm provides compliance only in the x-y plane [10], ensuring that the pen will always stay perpendicular
to the work surface and thus further enhancing accuracy. As the workspace of a SCARA robotic arm is a
distorted cardioid-like shape, we plan to have each arm segment be eight inches long, such that a piece
of Letter-sized paper fits within the workspace of the robotic arm. We expect to construct the robotic
arm via 3D printing and bolted connections. Fast and accurate positioning, with very low vibration, is
required to produce a high-quality output with true edges instead of wavy lines in a reasonable amount
of time, which necessitates not only high-powered motors but also smooth, low-slip, low-backlash joints
and transmissions, and we have used synchronous belt drives to drive each arm segment. As can be
seen from Figure 2, Arm Segment 1 is driven by a 1:3 ratio synchronous belt drive, while Arm Segment 2
is driven by two 1:3 ratio synchronous belt drive in series.
6
2.3 Functional Overview and Block Requirements
As the workspace of a SCARA robotic arm is a distorted cardioid-like shape, we plan to have each arm
segment be eight inches long, such that a piece of Letter-sized paper fits within the workspace of the
robotic arm. This is since we can approximate the main lobe of the cardioid by a semicircle, such that
the following diagram holds:
7
11 in
11
Pen Actuator 𝑖𝑛 = 5.5 𝑖𝑛
2
Letter-sized Paper
Arm Segment 2, 𝐿2 = 8 in
8.5 in
Arm Segment 1, 𝐿1 = 8 in
Joint 2
Δ𝑦 Y
X Approximate Workspace
Joint 1
The robot’s inverse kinematics are defined using the following as shown in Figure 7 below, where 𝐸 is
the elbow angle, the angle of Joint 2, 𝑆 is the shoulder angle, the angle of Joint 1, 𝐿1 is the length of arm
segment 1, and 𝐿2 is the length of arm segment 2. Assuming the base of the robot is located at the
origin, given the desired (𝑋, 𝑌) coordinates, we can compute the needed Joint 1 angle and Joint 2 angle
such the pen can be moved to the desired (𝑋, 𝑌) coordinates.
𝑋 2 +𝑌 2 +(𝐿1)2 −(𝐿2)2
𝑆 = 𝑎𝑡𝑎𝑛2(𝑌, 𝑋) − cos −1 ( ) (2)
2(𝐿1)√𝑋 2 +𝑌 2
8
We define 𝑎𝑡𝑎𝑛2(𝑦, 𝑥 ) as
𝑦
tan−1 (𝑥 ) 𝑥>0
𝑦
tan−1 (𝑥 ) + 𝜋 𝑥 < 0, 𝑦 ≥ 0
𝑦
𝑎𝑡𝑎𝑛2(𝑦, 𝑥 ) = tan−1 (𝑥 ) − 𝜋 𝑥 < 0, 𝑦 < 0 (3)
𝜋
𝑥 = 0, 𝑦 > 0
2
𝜋
−2 𝑥 = 0, 𝑦 < 0
{ 𝑢𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 𝑥 = 0, 𝑦 = 0
Suppose we place our piece of letter shaped paper as in Figure 6, where the base of robot, and by
extension, Joint 1, is located at the origin of the coordinate system. From the above diagram, we have
𝐿1 = 𝐿2 = 8 𝑖𝑛 (4)
Hence, we can bound 𝑋 and 𝑌, since the paper defines a rectangular domain on the 𝑋 − 𝑌 plane. We
have
𝑋 2 +𝑌 2 −(𝐿1) 2−(𝐿2)2
(10)
2(𝐿1)(𝐿2)
9
30.25 𝑖𝑛2 +225 𝑖𝑛2 −(8 𝑖𝑛)2−(8 𝑖𝑛)2
= 0.994 (14)
2(8 𝑖𝑛)(8 𝑖𝑛)
Hence the above subexpression, Equation 9, is bounded as follows, as 𝑋 2 + 𝑌 2 gives a function that
does not change in concavity and has no saddle points
𝑋 2 +𝑌 2 −(𝐿1)2 −(𝐿2)2
−0.670 ≤ ≤ 0.994 (15)
2(𝐿1)(𝐿2)
Since the domain of cos −1 (𝑥) is 𝑥 ∈ [−1, 1], we see that for all points on the paper, there is a solution
to the Joint 2 angle. Similarly, for the Joint 1 angle, we have the subexpression
2 2
Hence the above subexpression, Equation 9, is bounded as follows, as √𝑋 + 𝑌 gives a function that
does not change in concavity and has no saddle points
𝑋 2 +𝑌 2 −(𝐿1)2 −(𝐿2) 2
0.406 ≤ ≤ 0.999 (21)
2(𝐿1)(𝐿2)
Since the domain of cos −1 (𝑥) is 𝑥 ∈ [−1, 1] and the domain of 𝑎𝑡𝑎𝑛2(𝑦, 𝑥) is all values of 𝑥 and 𝑦
except 𝑥 = 0, 𝑦 = 0, we see that for all points on the paper, there is a solution to the Joint 1 angle.
Hence, we see that with each arm segment being eight inches long, there is sufficient space to place
centrally in a relatively easy to reach portion of the workspace a piece of Letter-sized paper, provided
the piece of Letter-sized paper is placed as discussed above. Meanwhile, as the pen actuator only needs
a very small amount of z-travel on the order of millimeters, we can approximate our pen actuator as a
linear actuator via the small angle approximation for sine, and as we are using a Cartesian coordinate
system, this implies that our robotic should be able to reach any desired value of z as long as the value
of z is such that the small angle approximation for sine is valid, since both the axis and the joint are of
the same nature, that is, linearly varying.
10
To determine the stepper motor torque needed, we researched some industrial robotic arms and
decided to target a joint velocity of at least 100 °/𝑠, reached in 2𝑠 or less from zero angular velocity.
Assuming that we start from zero angular velocity and do not attempt to brake after reaching the target
velocity, we have, where 𝜔 is the angular velocity about the rotational axis and 𝛼 is the angular
acceleration about the rotational axis
𝜔 = 𝛼𝑡 (22)
Since torque is
𝜏 = 𝐼𝛼 (23)
where 𝐼 is the moment of inertia about the desired rotational axis, we have
𝐼𝜔
𝜏= 𝑡
(24)
From Autodesk Inventor, the rotational inertia of the arm segment about the rotational axis is 𝐼 =
9.845 𝑙𝑏 ⋅ 𝑖𝑛. Thus, the required torque is
𝑑𝑒𝑔 2𝜋
9.845 𝑙𝑏⋅𝑖𝑛⋅100 ⋅ 1𝑁 0.0254 𝑚
𝑠 360 𝑑𝑒𝑔
𝜏= ⋅ ⋅ = 0.971 𝑁 ⋅ 𝑚 (25)
2𝑠 0.22481 𝑙𝑏 1 𝑖𝑛
From the simulations below, we can see that the structure as designed has sufficient structural integrity
for the anticipated loads and forces, evident from the very low displacement and high safety factor of
the structure. To analyze vibration stability, we first convert our targeted joint velocity to frequency 𝑓
via the following formula, where all other symbols are as defined below, and obtain
𝑑𝑒𝑔 2𝜋
𝜔 100 ⋅
𝑠 360 𝑑𝑒𝑔
𝑓= = = 0.278 𝐻𝑧 (26)
2𝜋 2𝜋
Hence, modal analysis shows that all resonance frequencies are at least 20𝐻𝑧 higher compared to the
joint angular velocity we are designing for and thus vibrations will be minimal.
11
Figure 8: Robot Arm Static Analysis - Displacement
12
Figure 10: Robot Arm Modal Analysis – List of Modes
13
Figure 12: Robot Arm Modal Analysis – Mode 2
14
Figure 14: Robot Arm Modal Analysis – Mode 4
15
Figure 16: Robot Arm Modal Analysis – Mode 6
16
Figure 18: Robot Arm Modal Analysis – Mode 8
17
Figure 19: Base Bearing Cover Upper Half Mechanical Drawing (Units: in)
18
Figure 20: Base Bearing Cover Lower Half Mechanical Drawing (Units: in)
19
Figure 21: Base Mechanical Drawing (Units: in)
20
[Link] Joint Motor 1, Motor 2
These stepper motors move arm segment one and arm segment two respectively. They require high
holding torque to ensure no slippage and fast movement. As our mechanical design has the motors
mounted to the base with power transmission via timing belts and gears, which means the motors do
not themselves need to be moved as part of either arm segment, neither mass nor heat dissipation i.e.
current consumption, is a significant concern. Please note that the connections between each arm
segment, joint, and linear actuator is detailed above in Section 2.2. To satisfy the torque requirement
above, we have picked the 23HS22-2804S, which has the following specifications:
21
attached to the motor shaft such that the
length axis of the metal bar is
perpendicular to the motor shaft axis.
4. A mass of 1 N will be attached to the
other end of the metal bar.
5. Using the PC and Control Board,
command the Motor Board rotate the
motor such that the mass moves
upwards.
6. Gradually increase commanded current,
starting from 1A, until the mass moves.
7. If the commanded current exceeds 3A,
the test has failed.
2. Inductance of less than 10mH. 1. Connect the RED and BLU wire (See
Figure 22 above), each to one terminal of
an LCR meter.
2. Connect the BLK and GRN wire (See
Figure 22 above), each to one terminal of
an LCR meter.
3. Measure inductance with the LCR meter
and verify.
3. Have standard NEMA-type mounting 1. The relevant measurements’ correctness
holes, as shown in Figure 23 below. will be confirmed by caliper
measurement of the relevant distance
between the indicated points, using a
with a Husky 6 in Digital Fractional
Caliper with a measurement accuracy of
+/- 0.001 in.
22
[Link] Pen Actuator (5 Points)
This actuator rotates the pen up and down onto the paper to enable drawing. While high speed is
preferred to allow for fast drawing of certain styles e.g. points, very little travel is required. The actuator
needs to prevent compliance in the x-y plane, but should be somewhat compliant in the z-axis to
prevent breaking the pen or scratching the paper at high arm travel velocities. The linear actuator is
controlled by a sub-micro servo responding to appropriate PWM waveforms generated by the
microcontroller in the control board. Unlike the arm joint motors, PID control is integrated within the
servo, and hence a control loop running on the microcontroller is not required for this linear actuator.
Please note that the connections between each arm segment, joint, and linear actuator is detailed
above in Section 2.2.
23
4. Suspension system enabling a z-axis 1. Before manufacturing, the relevant
compliance of 0.25 in +/- 5%. measurement’s correctness will be
confirmed5. via applying the Measure tool
to the relevant 3D model using Autodesk
Inventor.
2. Assemble actuator.
3. After manufacturing, the relevant
measurement’s correctness will be
confirmed by manually moving the
relevant parts and caliper measurement
of the relevant distance between the
indicated points, using a with a Husky 6 in
Digital Fractional Caliper with a
measurement accuracy of +/- 0.001 in.
24
Figure 24: SCARA Robot Arm Segment 2 and Pen Actuator/Pen Holder 3D Model
Figure 25: SCARA Robot Arm Segment 2 and Pen Actuator/Pen Holder Exploded View
25
Figure 26: Pen Holder Rotational Platform Mechanical Drawing (Units: in)
26
Figure 27: Pen Holder Sub-Micro Servo Attachment Mechanical Drawing (Units: in)
27
Figure 28: Pen Holder Clip Mechanical Drawing (Units: in)
28
accuracy, and be of minimal mass to avoid loading down the joint motors. The connections between
each arm segment, joint, and linear actuator is detailed above in Section 2.2. Please note that these
components have been grouped together as our fabrication process is expected to arm segments and
joints as integrated units, rather than as separate units.
29
2. Confirm arm does not break or show
signs of irreversible damage, such as
visible stress patterns.
5. Each revolute joint should enable 270 1. Assemble all physical components and
degrees +/- 20% of freedom about the connect all electronic components and
joint axis. boards together as specified in the block
diagram.
2. Use a short PC program to send
appropriate commands to the Control
Board to actuate joint motor
counterclockwise until limit switches are
triggered.
3. Measure maximum angular displacement
via stepper motor IC controller motor
angle feedback.
4. Use a short PC program to send
appropriate commands to the Control
Board to actuate joint motor clockwise
until limit switches are triggered.
5. Measure maximum angular displacement
via stepper motor IC controller motor
angle feedback.
30
Upper
Half
Lower
Half
Upper
Half Cover
Lower Half
Figure 30: SCARA Robot Arm Segment 1 Exploded View
Cover
31
Figure 31: Arm Segment 1 Lower Half Mechanical Drawing (Units: in)
32
Figure 32: Arm Segment 1 Upper Half Mechanical Drawing (Units: in)
33
Figure 33: Arm Segment 1 Upper Half Bearing Cover Mechanical Drawing (Units: in)
34
Figure 34: Arm Segment 1 Lower Half Bearing Cover Mechanical Drawing (Units: in)
35
Figure 35: Arm Segment 2 Mechanical Drawing (Units: in)
36
[Link] Limit Switches
These limit switches are used to determine if an arm segment has reached the end of its allowable travel
range and thus prevent the robotic arm from colliding with the base or itself, and are also used at
startup to calibrate the zero position of the robotic arm, as by counting the number of steps sent to the
stepper motor controllers allows relative position tracking, but not absolute position tracking. For
simplicity, these switches will be connected directly to the microcontroller’s GPIO pins and utilize built-
in pull-up resistors.
37
necessary, halting if any abnormal conditions including motor overtemperature, motor overcurrent, and
motor stall are detected.
38
39
Figure 36: PC Software Logic Block Diagram
40
Figure 37: Microcontroller Software Logic Block Diagram
41
abnormal conditions, including Motor Board overtemperature, motor overcurrent, motor stalling, and
arm segments reaching end of travel, as determined by the limit switches and other sensors built into
the stepper motor controller IC, and stops the system as necessary, and reports any such conditions to
the PC software and via LEDs such that the user can take corrective action.
42
Figure 39: Control Board PCB Design
[Link] Microcontroller
The microcontroller communicates with the PC software through a USB-to-Serial IC that converts USB
messages to and from logic level serial port signals to fetch lists of arm angles from the PC program. The
microcontroller then parses the lists of motor angles, and commands the motor drivers to generate the
corresponding motor driving waveforms via messages send over the SPI bus. The microcontroller also
checks and stops the motor if any limit switches, connected to the GPIO pins of the microcontroller, are
triggered, or if the motor driver reports any fault conditions as listed above, and relays this information
to the PC program as well as by lighting/extinguishing appropriate output LEDs connected to GPIO pins.
The microcontroller also generates PWM signals for commanding for the servo on the pen linear
actuator via a separate GPIO pin, which will then lift the pen from contact with the paper or drop the
pen into contact with the paper accordingly. We have picked the ATmega1284p to fit our design
requirements and as we are most familiar with the Atmel ATmega architecture.
43
4. Verify output is as expected, i.e. error in
square wave period is less than 0.1 ms,
with an oscilloscope measuring the
aforementioned pin.
2. 5V TTL logic voltage level. 1. Check microcontroller datasheet and
confirm requirements.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that outputs a
50% duty-cycle, 1 ms period square wave
using Timer1 on pin PD4 of the
microcontroller.
4. Verify output on PD4 have low levels
between 0V to 0.8V and high levels
between 2V and 5V with an oscilloscope.
3. Greater than or equal 30 GPIO pins for 1. Check microcontroller datasheet and
reading sensors and controlling status confirm requirements.
LEDs. 2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that allows us
to read and write to/from I/O ports from
a PC serial connection.
4. Using a short PC program compatible
with the aforementioned program, write
to I/O ports containing LEDs all ones to
turn on all LEDs.
5. Verify LEDs light as is as expected.
6. Using a short PC program compatible
with the aforementioned program, write
to I/O ports containing LEDs all zeros to
turn off all LEDs.
7. Verify LEDs turn off as is as expected.
8. Set all switches to OFF position using
tape.
9. Using a short PC program compatible
with the aforementioned program, read
from I/O ports containing switches.
10. Verify switches read as is as expected.
11. Set all switches to ON position using
tape.
12. Using a short PC program compatible
with the aforementioned program, read
from I/O ports containing switches.
13. Verify switches read as is as expected.
44
4. At least one SPI port for communications 1. Check microcontroller datasheet and
with stepper motor drivers. confirm requirements.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that echoes
back all characters sent to it via SPI and
Serial.
4. Using a short PC program, send random
data to the SPI port.
5. Verify output is as expected.
5. At least one serial port for 1. Check microcontroller datasheet and
communication with PC. confirm requirements.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that echoes
back all characters sent to it via SPI and
Serial.
4. Using a short PC program, send random
data to the Serial port.
5. Verify output is as expected.
6. At least 32K program memory. 1. Check microcontroller datasheet and
confirm requirements.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that allows us
to read and write to/from arbitrary Flash
locations from a PC serial connection.
4. Using a short PC program compatible
with the aforementioned program, write
random data to the entire Flash address
space, i.e. every Flash memory bit, and
read back the written data from Flash to
the PC
5. Verify output is as expected.
7. At least 16K RAM for buffering PC arm 1. Check microcontroller datasheet and
angle lists. confirm requirements.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that allows us
45
to read and write to/from arbitrary RAM
locations from a PC serial connection.
4. Using a short PC program compatible
with the aforementioned program, write
random data to the entire RAM address
space, i.e. every RAM bit, and read back
the written data from RAM to the PC.
5. Verify output is as expected.
[Link] Status LEDs
These LEDs are responsible for notifying the user if any limit switches are triggered, or if the motor
driver reports any fault conditions, specifically if the Motor Board is overheating, a motor overcurrent
warning is triggered, or if a motor has stalled and missed a step potentially resulting in incorrect
positioning. The LEDs are connected to the microcontroller via the microcontroller’s GPIO pins.
46
Table 7: USB-to-Serial Converter Requirements and Verification Procedures
Requirement Verification Procedure
1. Enables PC to communicate with serial 1. Check USB-to-Serial Converter IC
port on microcontroller with speed of datasheet.
115.2 Kbps or greater. 2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Upload a modified version of the
microcontroller software that echoes
back all characters sent to it via the serial
port.
4. Using a short PC program, send random
data to the Serial port at 115.2 Kbps.
5. Verify received output on computer is as
expected.
2. Serial port output is 5V TTL compliant. 1. Check USB-to-Serial Converter IC
datasheet.
2. Assemble and connect all electronic
components and boards together as
specified in the block diagram.
3. Using a short PC program, send random
data to the Serial port at 115.2 Kbps.
4. Verify received output on serial port pins
have low levels between 0V to 0.8V and
high levels between 2V and 5V with an
oscilloscope.
[Link] Bench Power Supply (+5V)
This power supply provides power for all logic ICs, in particular, the microcontroller and the USB-to-
Serial converter IC, and also provides power for the status LEDs and the servo used to drive the linear
actuator. As each servo consumes 250 mA and 500 mA peak when stalled, we estimate a 3A total board
consumption. As the system is immobile, a static wall-based power supply is acceptable, and necessary
due to the high system power required.
Table 8: Bench Power Supply (+5V) Converter Requirements and Verification Procedures
Requirement Verification Procedure
1. 5V +/- 10%, 3A +/- 5% output. 1. Make sure the bench power supply,
multimeter, and electronic load
mentioned below are plugged in
correctly and grounded, and are powered
off.
2. Turn on and set a Keysight 34461A
multimeter into DCV mode, then using
banana cables, attach the multimeter
such that the positive terminals of the
multimeter and bench power supply are
connected, and similarly for the negative
terminals.
47
3. Using banana cables, attach the Agilent
6060B electronic load such that the
positive terminals of the electronic load
and bench power supply are connected,
and similarly for the negative terminals.
4. Turn on and set the bench power supply
to output +5V with a current limit of 3A.
5. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +5V 3A DC load.
6. Check that the measured voltage and
current meets requirements, using the
multimeter and an ammeter integrated
in the electronic load respectively.
2. Ripple of 100 mV or lower under steady 1. Make sure the bench power supply,
state, no motor movement conditions. oscilloscope, and robotic arm electronics
mentioned below are plugged in
correctly and grounded, and are powered
off.
2. Turn on the DSO7104B oscilloscope, then
using a probe, attach the oscilloscope
such that the signal terminal of the
oscilloscope and the positive terminal of
the +24V bench power supply are
connected, and similarly for the ground
terminals of both devices.
3. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
4. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
5. Turn on both bench power supplies and
command the Control Board via the PC to
not attempt to move any motors.
48
6. Check that the measured ripple meets
specifications, using measurement
capabilities built into the oscilloscope.
3. Input of 120V AC. 1. Check the specifications of the bench
power supply for proper certifications.
49
Figure 41: Motor Board PCB Design
50
and bench power supply are connected,
and similarly for the negative terminals.
4. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
5. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
6. Turn on both bench power supplies.
7. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +24V 3A RMS, 5A peak load.
8. Command the Control Board via the PC
to move the stepper motors with a 3A
R.M.S. drive current.
9. Maintain this load for 1 hour.
10. Check that the measured current meets
specifications, using measurement
capabilities built into the electronic load
and bench power supplies, and check the
Motor Board and stepper motor
controller for any sign of thermal damage
via visual inspection and a Etekcity 630
Lasergrip non-contact thermometer with
measurement accuracy of +- 0.1 deg. C.
All board and component temperatures
should remain below 100 deg. C.
2. 5A peak motor drive current or greater at 1. Assemble and connect all electronic
24 V operating voltage or greater. components and boards together as
specified in the block diagram, except for
the stepper motors.
2. Make sure the bench power supply,
electronic load, and robotic arm
electronics mentioned below are plugged
in correctly and grounded, and are
powered off.
51
3. Using banana cables, attach the Agilent
6060B electronic load such that the
positive terminals of the electronic load
and bench power supply are connected,
and similarly for the negative terminals.
4. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
5. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
6. Turn on both bench power supplies.
7. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +24V 3A RMS, 5A peak load.
8. Command the Control Board via the PC
to move the stepper motors with a 3A
R.M.S. drive current.
9. Maintain this load for 1 hour.
10. Check that the measured current meets
specifications, using measurement
capabilities built into the electronic load
and bench power supplies, and check the
Motor Board and stepper motor
controller for any sign of thermal damage
via visual inspection and a Etekcity 630
Lasergrip non-contact thermometer with
measurement accuracy of +- 0.1 deg. C.
All board and component temperatures
should remain below 100 deg. C.
3. Overcurrent protection. 1. Assemble and connect all electronic
components and boards together as
specified in the block diagram, except for
the stepper motors.
2. Make sure the bench power supply,
electronic load, and robotic arm
52
electronics mentioned below are plugged
in correctly and grounded, and are
powered off.
3. Using banana cables, attach the Agilent
6060B electronic load such that the
positive terminals of the electronic load
and bench power supply are connected,
and similarly for the negative terminals.
4. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
5. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
6. Turn on both bench power supplies.
7. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +24V 7A RMS, 7A peak load.
8. Command the Control Board via the PC
to move the stepper motors with a 7A
R.M.S. drive current.
9. Wait until overcurrent shutdown occurs.
10. During wait, check that the measured
current meets specifications, using
measurement capabilities built into the
electronic load and bench power
supplies, and check the Motor Board and
stepper motor controller for any sign of
thermal damage via visual inspection and
a Etekcity 630 Lasergrip non-contact
thermometer with measurement
accuracy of +- 0.1 deg. C. All board and
component temperatures should remain
below 100 deg. C.
4. Overtemperature protection. 1. Assemble and connect all electronic
components and boards together as
53
specified in the block diagram, except for
the stepper motors.
2. Make sure the bench power supply,
electronic load, and robotic arm
electronics mentioned below are plugged
in correctly and grounded, and are
powered off.
3. Using banana cables, attach the Agilent
6060B electronic load such that the
positive terminals of the electronic load
and bench power supply are connected,
and similarly for the negative terminals.
4. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
5. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
6. Turn on both bench power supplies.
7. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +24V 5A RMS, 7A peak load.
8. Command the Control Board via the PC
to move the stepper motors with a 5A
R.M.S. drive current.
9. Wait until overheat shutdown occurs.
10. During wait, check that the measured
current meets specifications, using
measurement capabilities built into the
electronic load and bench power
supplies, and check the Motor Board and
stepper motor controller for any sign of
thermal damage via visual inspection and
a Etekcity 630 Lasergrip non-contact
thermometer with measurement
accuracy of +- 0.1 deg. C. All board and
54
component temperatures should remain
below 100 deg. C.
5. Motor stall detection. 1. Assemble all physical components and
connect all electronic components and
boards together as specified in the block
diagram.
2. Make sure the bench power supply and
robotic arm electronics mentioned below
are plugged in correctly and grounded,
and are powered off.
3. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
4. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
5. Turn on both bench power supplies.
6. Command the Control Board via the PC
to move the stepper motors with a 3A
R.M.S. drive current.
7. Block the movement and wait for
shutdown with a piece of metal placed in
the path of the arm.
8. Wait until stall shutdown occurs.
9. Check that the measured current meets
specifications, using measurement
capabilities built into the electronic load
and bench power supplies, and check the
Motor Board and stepper motor
controller for any sign of thermal damage
via visual inspection and a Etekcity 630
Lasergrip non-contact thermometer with
measurement accuracy of +- 0.1 deg. C.
All board and component temperatures
should remain below 100 deg. C.
55
6. Constant-current motor drive with 1. Check the specifications of the stepper
capability for 1/32 microstep divisions or motor controller IC for relevant
better. functionality.
2. Assemble all physical components and
connect all electronic components and
boards together as specified in the block
diagram.
3. Make sure the bench power supply and
robotic arm electronics mentioned below
are plugged in correctly and grounded,
and are powered off.
4. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
5. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
6. Turn on both bench power supplies.
7. Command the Control Board via the PC
to move the stepper motors with a 3A
R.M.S. drive current using the correct
microstepping mode register settings.
8. Check that the measured current meets
specifications for a microstepping
waveform, i.e. is sinusoidal with a Total
Harmonic Distortion of less than 10%
with the correct R.M.S. current level,
using an oscilloscope, and check the
Motor Board and stepper motor
controller for any sign of thermal damage
via visual inspection and a Etekcity 630
Lasergrip non-contact thermometer with
measurement accuracy of +- 0.1 deg. C.
All board and component temperatures
should remain below 100 deg. C.
56
[Link] Bench Power Supply (+24V)
This power supply provides power for the stepper motor driver ICs and the stepper motors themselves.
A separate supply is required for both isolation and to reduce noise coupled into the logic level power
supply. As we have two stepper motors in the system, each with a R.M.S. current consumption of 3A, to
allow some margin for current peaks when the motors are stalled, we estimate a total current
consumption of 10A. As the system is immobile, a static wall-based power supply is acceptable, and
necessary due to the high system power required.
Table 10: Bench Power Supply (+24V) Requirements and Verification Procedures
Requirement Verification Procedure
1. 24V +/- 10%, 10A +/- 5% output. 1. Make sure the bench power supply,
multimeter, and electronic load
mentioned below are plugged in
correctly and grounded, and are powered
off.
2. Turn on and set a Keysight 34461A
multimeter into DCV mode, then using
banana cables, attach the multimeter
such that the positive terminals of the
multimeter and bench power supply are
connected, and similarly for the negative
terminals.
3. Using banana cables, attach the Agilent
6060B electronic load such that the
positive terminals of the electronic load
and bench power supply are connected,
and similarly for the negative terminals.
4. Turn on and set the bench power supply
to output +24V with a current limit of
10A.
5. Turn on and set the Agilent 6060B
electronic load in the correct mode, to
emulate a +24V 10A DC load.
6. Check that the measured voltage and
current meets requirements, using the
multimeter and an ammeter integrated
in the electronic load respectively.
2. Ripple of 100 mV or lower under steady 1. Make sure the bench power supply,
state, no motor movement conditions. oscilloscope, and robotic arm electronics
mentioned below are plugged in
correctly and grounded, and are powered
off.
2. Turn on the DSO7104B oscilloscope, then
using a probe, attach the oscilloscope
such that the signal terminal of the
oscilloscope and the positive terminal of
the +24V bench power supply are
57
connected, and similarly for the ground
terminals of both devices.
3. Using banana cables, attach the robotic
arm’s Control Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+5V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +5V bench power
supply.
4. Using banana cables, attach the robotic
arm’s Motor Boards such that the
positive terminals of the Motor Board’s
motor power supply terminal and the
+24V bench power supply are connected,
and similarly for the negative terminals of
the Motor Board’s motor power supply
terminal and the +24V bench power
supply.
5. Turn on both bench power supplies and
command the Control Board via the PC to
not attempt to move any motors.
6. Check that the measured ripple meets
specifications, using measurement
capabilities built into the oscilloscope.
3. Input of 120V AC. 1. Check the specifications of the bench
power supply for proper certifications.
𝑋 2 +𝑌 2 +(𝐿1)2 −(𝐿2)2
𝑆 = 𝑎𝑡𝑎𝑛2(𝑌, 𝑋) − cos −1 ( ) (28)
2(𝐿1)√𝑋 2 +𝑌 2
8.5
To attain a resolution of 200 px x 200 px, each pixel is spaced 200 𝑖𝑛 = 0.0425 𝑖𝑛 apart in the y-axis and
11
11 𝑖𝑛
200
200
𝑖𝑛 = 0.055 𝑖𝑛 apart in the x-axis, hence, the maximum permissible error in 𝑋, Δ𝑋, is Δ𝑋 = 2
=
8.5
𝑖𝑛
200
0.0275 𝑖𝑛 and the maximum permissible error in Y, Δ𝑌, is Δ𝑌 = 2
= 0.0213 𝑖𝑛. From [11], using
differentials, we have
58
𝑑𝐸
Δ𝐸 = 𝑑𝑋 Δ𝑋 (29)
where Δ𝐸 is the permissible error in Joint 2 angle for the given permissible error in 𝑋, Δ𝑋.
𝑑𝐸
Δ𝐸 = 𝑑𝑌 Δ𝑌 (30)
where Δ𝐸 is the permissible error in Joint 2 angle for the given permissible error in 𝑌, Δ𝑌.
𝑑𝑆
Δ𝑆 = 𝑑𝑋 Δ𝑋 (31)
where Δ𝑆 is the permissible error in Joint 1 angle for the given permissible error in 𝑋, Δ𝑋.
𝑑𝐸
Δ𝑆 = 𝑑𝑌 Δ𝑌 (32)
where Δ𝑆 is the permissible error in Joint 1 angle for the given permissible error in 𝑌, Δ𝑌. We have
𝑑𝐸 X
=− (33)
𝑑𝑋 2
(𝑋2+𝑌2 −(𝐿1)2−(𝐿2)2 )
(𝐿1)(𝐿2)√1−
4(𝐿1) 2(𝐿2)2
𝑑𝐸 Y
=− (34)
𝑑𝑌 2
(𝑋2 +𝑌2−(𝐿1) 2−(𝐿2)2 )
(𝐿1)(𝐿2)√1−
4(𝐿1)2 (𝐿2)2
𝑌 𝑌(𝑋2+𝑌2 +(𝐿1)2−(𝐿2)2 )
− 3
𝐿1√𝑋2+𝑌2
𝑑𝑆 𝑋 2(𝐿1)(𝑋2+𝑌2 )2
𝑑𝑋
= − 𝑋 2 +𝑌 2 + (36)
2 2 2 2 2
√1−(𝑋 +𝑌 +(𝐿1) −(𝐿2) )
4(𝐿1)2 (𝑋2+𝑌2 )
therefore
X
Δ𝐸 = − Δ𝑋 (37)
2
(𝑋2+𝑌2 −(𝐿1)2−(𝐿2)2 )
(𝐿1)(𝐿2)√1−
4(𝐿1)2(𝐿2) 2
Y
Δ𝐸 = − Δ𝑌 (38)
2
(𝑋2+𝑌2 −(𝐿1)2 −(𝐿2)2)
(𝐿1)(𝐿2)√1− 2 2
4(𝐿1) (𝐿2)
59
𝑋 𝑋(𝑋2+𝑌2 +(𝐿1)2−(𝐿2)2 )
− 3
𝐿1√𝑋2+𝑌2
𝑌 2(𝐿1)(𝑋2+𝑌2 )2
Δ𝑆 = − + Δ𝑋 (39)
𝑋 2 +𝑌 2 2 2 2 −(𝐿2)2) 2
√1−(𝑋 +𝑌 +(𝐿1)
4(𝐿1) (𝑋 +𝑌2 )
2 2
( )
From the above, the tolerance required is bounded by the smallest |Δ𝑆| or |Δ𝐸 | found previously, i.e.
𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑒𝑟𝑟𝑜𝑟 ≤ 0.00424 rad, as 𝐸 and 𝑆 do not change in concavity and has no saddle
points, and hence neither do the derivatives of 𝐸 and 𝑆 change in concavity and have saddle points. The
23HS22-2804S stepper motors used have 200 steps per revolution and the L6470 is capable for 1/128
microstepping, i.e. 128 microsteps per motor full step. Additionally, as can be seen from the Figure 2,
Arm Segment 1 is driven by a 1:3 ratio synchronous belt drive, while Arm Segment 2 is driven by two 1:3
2𝜋 𝑟𝑎𝑑 1 1
ratio synchronous belt drive in series. Hence, the angular accuracy of Joint 1 is 200
⋅ 128 ⋅ 3 = 8.18 ⋅
2𝜋 𝑟𝑎𝑑 1 1 1
10−5 𝑟𝑎𝑑 and the angular accuracy of Joint 2 200
⋅ 128 ⋅ 3 ⋅ 3 = 2.73 ⋅ 10−5 𝑟𝑎𝑑, both of which fulfill
the required angular accuracy. Although microstepping will result in a loss of torque, based on our
design criterion, there is sufficient margin to ensure that any torque loss will not result in loss of
functionality.
60
3. Cost and Schedule
3.1 Cost Analysis
3.1.1 Labor
Based on team members’ personal experiences and research on the salary of the ECE and CS graduate
students in the Urbana-Champaign area and the Bay area [12], we estimate an approximate salary of
$50 per hour. Based on the time team members’ have spent so far per week on the project, we estimate
a workload of twenty hours per week for a total of ten weeks, giving a total labor time spent of two
hundred hours per person. We compute the salary per person via the following formula as found on the
ECE 445 website [13]:
61
K103K15X7RF5TL2 10000pF ±10% 50V Vishay Digikey Motor Board
Ceramic Capacitor X7R
Radial
K180J15C0GF5TL2 18pF ±5% 50V Ceramic Vishay Digikey Motor Board
Capacitor C0G, NP0 Radial
L6470H L6470 Stepper Motor STMicroelectroni Digikey Motor Board
Controller IC HTSSOP28 cs
N/A 3x PCB Motor Board OSHPark OSHPark Motor Board
PRT-10571 Screw Terminals 2.54mm Generic Sparkfun Motor Board
Pitch (2-Pin)
UVP1H470MPD 47µF 50V Aluminum Nichicon Digikey Motor Board
Electrolytic Capacitors
Radial, Can 2000 Hrs @
85°C
UVR2AR22MDD 0.22µF 100V Aluminum Nichicon Digikey Motor Board
Electrolytic Capacitors
Radial, Can 2000 Hrs @
85°C
COM-00523 Electrolytic Decoupling Generic Sparkfun Motor
Capacitors - 10µF/25V Board/Control
Board
COM-00536 Crystal 16MHz HC49/US Generic Sparkfun Motor
Board/Control
Board
COM-08375 Capacitor Ceramic 0.1µF Generic Sparkfun Motor
50V Board/Control
Board
COM-08588 Diode Small Signal - Generic Sparkfun Motor
1N4148 Board/Control
Board
COM-09590 LED (5mm) LED - Basic Red Generic Sparkfun Motor
5mm Board/Control
Board
COM-09592 LED (5mm) LED - Basic Generic Sparkfun Motor
Green 5mm Board/Control
Board
COM-09594 LED (5mm) LED - Basic Generic Sparkfun Motor
Yellow 5mm Board/Control
Board
COM-10969 Resistor Kit - 1/4W, Generic Sparkfun Motor
Includes 0Ω, 1.5Ω, 4.7Ω, Board/Control
10Ω, 47Ω, 100Ω, 220Ω, Board
330Ω, 470Ω, 680Ω, 1kΩ,
2.2kΩ, 3.3kΩ, 4.7kΩ,
10kΩ, 22kΩ, 47kΩ, 100kΩ,
330kΩ, 1MΩ
62
PRT-00115 Female Headers 0.1" 40 Generic Sparkfun Motor
Position Board/Control
Board
PRT-00116 Break Away Headers – Generic Sparkfun Motor
Straight 0.1" 40 Position Board/Control
Board
23HS30-2804S NEMA 23 Stepper Motor Generic HobbyUnlimit Robotic Arm
2.8A 1.9Nm ([Link]) ed @ Amazon
76mm Length
60355K704 Ball Bearing, Sealed, Trade McMaster-Carr McMaster- Robotic Arm
Number R8- Carr
2RS, for 1/2" Shaft
Diameter
6484K228 XL McMaster-Carr McMaster- Robotic Arm
Series Timing Belt, Trade Carr
No. 180xL037
6484K237 XL McMaster-Carr McMaster- Robotic Arm
Series Timing Belt, Trade Carr
No. 280xL037
94613A550 100x Off-White Nylon 6/6 McMaster-Carr McMaster- Robotic Arm
Hex Head Screws, 1/4"- Carr
20 Thread Size, 2" Long, F
ully Threaded
94812A700 100x Nylon 6/6 Hex Nut McMaster-Carr McMaster- Robotic Arm
1/4"-20 Thread Size Carr
95606A430 100x Nylon 6/6 Plastic McMaster-Carr McMaster- Robotic Arm
Washer for 1/4" Screw Carr
Size, 0.312" ID, 0.5" OD
HPM# 07828 4x Compression Spring Hillman Lowe's Robotic Arm
5/16" x 1-1/2" x .020"
ROB-09065 Servo - Generic (Sub- Generic Sparkfun Robotic Arm
Micro Size)
ROB-11884 Servo - Hitec HS-422 Hitec Sparkfun Robotic Arm
(Standard Size)
TOL-14584 PLA Filament 2.85mm - Generic Sparkfun Robotic Arm
1kg (Black)
63
COM-08571 Capacitor Ceramic 22pF Control Board 2 $0.25 $0.50
200V
N/A 5x PCB Control Board Control Board 1 $25.84 $25.84
PRT-10811 DC Barrel Jack Adapter - Control Board 1 $0.95 $0.95
Breadboard Compatible
SEN-00246 Optical Detector / Control Board 4 $0.95 $3.80
Phototransistor - QRD1114
3296W-1-204LF 200 kOhms 0.5W, 1/2W PC Motor Board 2 $2.41 $4.82
Pins Through Hole Trimmer
Potentiometer Cermet 25
Turn Top Adjustment
COM-00096 Electrolytic Decoupling Motor Board 4 $0.35 $1.40
Capacitors - 100µF/25V
K103K15X7RF5TL2 10000pF ±10% 50V Ceramic Motor Board 4 $0.21 $0.84
Capacitor X7R Radial
K180J15C0GF5TL2 18pF ±5% 50V Ceramic Motor Board 4 $0.21 $0.84
Capacitor C0G, NP0 Radial
L6470H L6470 Stepper Motor Motor Board 2 $7.72 $15.44
Controller IC HTSSOP28
N/A 3x PCB Motor Board Motor Board 1 $61.70 $61.70
PRT-10571 Screw Terminals 2.54mm Motor Board 8 $0.75 $6.00
Pitch (2-Pin)
UVP1H470MPD 47µF 50V Aluminum Motor Board 2 $0.64 $1.28
Electrolytic Capacitors
Radial, Can 2000 Hrs @ 85°C
UVR2AR22MDD 0.22µF 100V Aluminum Motor Board 2 $0.24 $0.48
Electrolytic Capacitors
Radial, Can 2000 Hrs @ 85°C
COM-00523 Electrolytic Decoupling Motor 4 $0.45 $1.80
Capacitors - 10µF/25V Board/Control
Board
COM-00536 Crystal 16MHz HC49/US Motor 3 $0.95 $2.85
Board/Control
Board
COM-08375 Capacitor Ceramic 0.1µF 50V Motor 16 $0.25 $4.00
Board/Control
Board
COM-08588 Diode Small Signal - 1N4148 Motor 5 $0.15 $0.75
Board/Control
Board
COM-09590 LED (5mm) LED - Basic Red Motor 6 $0.35 $2.10
5mm Board/Control
Board
COM-09592 LED (5mm) LED - Basic Green Motor 5 $0.35 $1.75
5mm Board/Control
Board
64
COM-09594 LED (5mm) LED - Basic Motor 6 $0.35 $2.10
Yellow 5mm Board/Control
Board
COM-10969 Resistor Kit - 1/4W, Includes Motor 1 $7.95 $7.95
0Ω, 1.5Ω, 4.7Ω, 10Ω, 47Ω, Board/Control
100Ω, 220Ω, 330Ω, 470Ω, Board
680Ω, 1kΩ, 2.2kΩ, 3.3kΩ,
4.7kΩ, 10kΩ, 22kΩ, 47kΩ,
100kΩ, 330kΩ, 1MΩ
PRT-00115 Female Headers 0.1" 40 Motor 10 $1.50 $15.00
Position Board/Control
Board
PRT-00116 Break Away Headers – Motor 10 $1.50 $15.00
Straight 0.1" 40 Position Board/Control
Board
23HS30-2804S Nema 23 Stepper Motor Robotic Arm 2 $24.50 $49.00
2.8A 1.9Nm ([Link])
76mm Length
60355K704 Ball Bearing, Sealed, Trade Robotic Arm 6 $8.74 $52.44
Number R8-
2RS, for 1/2" Shaft Diameter
6484K228 XL Robotic Arm 1 $6.41 $6.41
Series Timing Belt, Trade No.
180xL037
6484K237 XL Robotic Arm 1 $8.05 $8.05
Series Timing Belt, Trade No.
280xL037
94613A550 100x Off-White Nylon 6/6 Robotic Arm 1 $8.00 $8.00
Hex Head Screws, 1/4"-
20 Thread Size, 2" Long, Full
y Threaded
94812A700 100x Nylon 6/6 Hex Nut Robotic Arm 1 $6.47 $6.47
1/4"-20 Thread Size
95606A430 100x Nylon 6/6 Plastic Robotic Arm 1 $7.25 $7.25
Washer for 1/4" Screw Size,
0.312" ID, 0.5" OD
HPM# 07828 4x Compression Spring 5/16" Robotic Arm 1 $2.68 $2.68
x 1-1/2" x .020"
ROB-09065 Servo - Generic (Sub-Micro Robotic Arm 3 $8.95 $26.85
Size)
ROB-11884 Servo - Hitec HS-422 Robotic Arm 1 $9.95 $9.95
(Standard Size)
TOL-14584 PLA Filament 2.85mm - 1kg Robotic Arm 3 $25.00 $75.00
(Black)
Parts $435.32
Total
65
3.1.3 Grand Total
𝐺𝑟𝑎𝑛𝑑 𝑇𝑜𝑡𝑎𝑙 = 𝐿𝑎𝑏𝑜𝑟 𝐶𝑜𝑠𝑡 + 𝑃𝑎𝑟𝑡𝑠 𝑎𝑛𝑑 𝑀𝑎𝑡𝑒𝑟𝑖𝑎𝑙𝑠 𝐶𝑜𝑠𝑡
3.2 Schedule
Please note that we have already completed all circuit design and PCB design required for our project,
and have also bought all electrical components needed, so those elements have been excluded from the
schedule below.
66
drawing capabilities drawing capabilities drawing capabilities
and debug as needed and debug as needed and debug as needed
Week 8 Testing and Tune PC style Continue tuning Tune clustering
(April 9th) Fine-Tuning transfer network for algorithms to algorithms for best
best artistic effect increase robot arm artistic effect
movement speed as
much as possible
Week 9 Testing and Train additional style Continue tuning Tune vectorization
(April 16th) Fine-Tuning transfer networks algorithms to algorithms for best
increase robot arm artistic effect
movement speed as
much as possible
Week 10 Work on Final Work on Final Work on Final Work on Final
(April 23th) Report Report, focusing on Report, focusing on Report, focusing on
electrical mechanical software
components of the components of the components of the
project project project
Week 11 Rehearsal and Prepare Powerpoint Prepare Powerpoint Prepare Powerpoint
(April 23th) Preparation slides and materials slides and materials slides and materials
Work on Final and procedures for a and procedures for a and procedures for a
Presentation demonstration of demonstration of demonstration of
robot’s drawing robot’s drawing robot’s drawing
capability to be capability to be capability to be
shown at during the shown at during the shown at during the
Final Presentation, Final Presentation, Final Presentation,
and rehearse for the and rehearse for the and rehearse for the
Final Presentation Final Presentation Final Presentation
67
4. Ethics and Safety
There are several potential safety hazards with our project, the primary being possible impact and pinch
hazards with regards to the moving parts of the robotic arm. We plan to mitigate this by utilizing the
stall detection mechanism built into the stepper motor drivers to automatically stop the robot in case
arm movement is not as expected, which, given our use case, would indicate a collision with an
unexpected entity in the robotics arm’s workspace, and also enclosing the transmission and other
mechanical components of the robotic arm as much as possible to prevent possible pinch hazards, while
the workspace will be covered with a removable transparent shield during robot operation.
There is also a risk with that the stepper motor driver ICs or PCB traces may overheat due to an
overcurrent condition either caused by continual high-power motor operation or a short during
operation, creating a potential burn and fire hazard. We plan to mitigate this by power supply maximum
current limits, overcurrent and over temperature automatic shutdown protocols implemented with the
microcontroller and sensors embedded in stepper motor controller ICs, and appropriate PCB design,
with suitable heatsinking and trace sizing and spacing, as well as isolation by placement in a separate
board from the Control Board and a heat resistant physical enclosure.
It is our responsibility to make sure our project is consistent with the IEEE Code of Ethics [14]. With
regards to the potential safety hazards above, as is consistent with Items 1 and 6, we will implement the
above mitigation procedures and provide appropriate warnings, warning labels/markings, and training
for users of our system. Since our project mainly just serves an artistic purpose, and is unlikely to be a
part of critical infrastructure, our project is very unlikely to harm humanity or society in any form, and
thus consistent with Item 9. As a non-sponsored project and with group members not having any
particular relevant conflicts of interests, our team fulfills Items 2 and 4. As stated earlier in the
introduction, we seek explore and to advance the state of the art of artificial intelligence and its
interactions with society, as is consistent with Item 5. Finally, as engineers, all the members of our team
will develop this project under a code of utmost integrity, mutual support and nondiscrimination,
fulfilling Items 3, 7, 8, and 10.
68
References
[4] H. Cohen, "The Further Exploits of AARON, Painter," Stanford Humanities Review, vol. 4, no. 2,
1995.
[6] Center of Excellence Digital Art, "compArt daDA: the database Digital Art," [Online]. Available:
[Link] [Accessed 8 February 2018].
[8] A. Krizhevsky, I. Sutskever and G. E. Hinton, "ImageNet Classification with Deep Convolutional
Neural Networks," in 25th International Conference on Neural Information Processing Systems,
Lake Tahoe, NV , 2012.
[11] M.-A. Belabbas, "ECE 486: A note on sensitivity," 2015. [Online]. Available:
[Link] [Accessed
26 Feburary 2018].
69
[13] ECE 445 Course Staff, "Design Document," 2018. [Online]. Available:
[Link] [Accessed 26 Feburary
2018].
70