Professional Documents
Culture Documents
Dale McConachie
Haley Dalzell
Carl Curran
Yixing Shi
2014/01/27
Table of Contents
1. Introductory Information
2. Design Requirements
2.1. Mandatory Requirements
2.2. Coolness Factor Goals
2.2.1. Game State Display
2.2.2. Start From Intermediate Game State
3. Functional Architecture
4. Design Trade Studies
4.1. Game State Controller
4.2. X-Y Positioning System
4.2.1. Curved Track
4.2.2. Two Lead Screws
4.2.3. Timing Belt (our choice)
4.3. Block Manipulator
4.3.1. Collar with Fingers and Roller (our choice)
4.3.2. Mechanical Arm and Gripper
4.4. Motor Interface and Microcontroller
5. Physical Architecture
6. System/Subsystem Depictions/Descriptions
6.1. Block Manipulator Subsystem
6.2. Positioning Subsystem
6.3. Electrical Interfacing and Control
6.3.1. Multiplayer/Solitaire Mode
6.3.2. Autonomous/Manual Input Mode
7. Schedule
8. Budget
9. Team Member Responsibilities
10. Risk Management
1
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
6
8
8
10
11
11
11
12
13
14
14
2.
Design Requirements
2.1.
Mandatory Requirements
2.2.
The Game state display will display the Jenga stack on screen. It will show which blocks
have been removed, as well as off-limits blocks that, if removed, will certainly make the tower
fall. It will also display which blocks gave a high resistance when tested by the Jengabot. A user
may click on a block to indicate that it has been removed by another player, or to tell the
Jengabot to remove that piece next.
2.2.2.
Using the game state display, an intermediate game state may be input to the Jengabot,
allowing it to start playing at any point in a game. This will also allow the Jengabot to play with
different starting Jenga tower sizes besides the mandatory 10 layers.
3.
Functional Architecture
Initial Game
State Input
Game State
Display
Game State
Controller
Next Move
Logic
Instructions
Motor and
Sensor Interface
Complete
d
Commands
Commands
Feedback
New
State
Current
State
X-Y
Positioning
System
Block
Manipulator
Game State
Exchanger
Fig 1. Functional Architecture
4.
The two choices we considered were to use a microcontroller to perform all the logic or
to use a PC to run the logic software. Given that our coolness factors include a graphical user
interface as well as the option to do manual point and click control of the Jengabot we chose to
implement the game state controller in the PC. This way we only need one type of
communication, instructions and feedback, between the microcontroller and the PC rather than
two. If we were to do the logic on the microcontroller we would also need to be able to tell the
PC which block we are moving and to where. By putting all of the game state control in one
place we can separate the functions more cleanly allowing for separate development.
4.2.
Curved Track
A curved track would allow us to position the base using only one motor. It also
constrains the motion of the base to a specific path which removes possible sources of error.
Fabricating difficulty and base stability would be concerns using a curved track. Additionally if
we find we need to adjust the path of the base we would need to refabricate the track.
4.2.2.
2 Lead Screws
Using an x-y lead screw pair would enable us to perform fine manipulation of the base
location without any need to refabricate if we find that our original movement path will not work.
4.2.3.
By using an x-y timing belt pair combined with a stepper motor we can perform fine
control of the position of the base. Using timing belts would also enable us to position the base
more quickly compared to lead screws. We are targeting a maximum travel time of 5 seconds
for the base movement.
4.3.
Block Manipulator
4.3.1.
Using a collar around the Jenga tower will enable us to steady the tower and prevent
more than one block from moving at a time. In order to extract a block we can use one of three
fingers to push the block towards the rollers. Once the block is in the rollers we can pull the
block out the rest of the way into our catcher. To put set the block on the top of the Jenga tower
we reverse the process, using the rollers to push the block back on top of the tower.
4.3.2.
The choice of microcontroller to interface with the motors and sensors will depend on the
inputs and outputs needed by the mechanical system. Our two primary options are the Arduino
Mega or the STM32F407 Discovery board. While the Arduino Mega is more expensive there
are more examples and libraries available for it online that would shorten the time needed to
program the controller. If we find that the Arduino does not have the functionality we need, an
STM32 Discovery board will have all of the interfaces we need to interface with the motors and
sensors.
Table 1: Microcontroller comparison
Cost
PWM Outputs
Analog Outputs
Analog Inputs
UART Interfaces
Other
Arduino Mega
$58.95
15
0
16
4
STM32F407 Discovery
$14.88
48
2
16
8
Quadrature Encoder Input
For our game state display we will be using a laptop with a GUI point and click interface.
5.
Physical Architecture
6.
System/Subsystem Depictions/Descriptions
The goal of this project is to be able to reliably remove a Jenga block in a specified
location within the Jenga tower, and place the removed block back on top of the tower, all
without knocking the tower over and done within thirty seconds. This needs to be repeated at
least five times.
To accomplish this, our team will design a system that utilizes two main mechanical
subsystems for block movements and positioning, and one main unit for electrical interfacing
and control.
6.1.
The block movement subsystem consists of a finger mechanism that tests the stability
of each Jenga block before picking one to poke out. The poked out Jenga block is pushed into
a roller mechanism that slides the block into a tray. The rollers will serve as the means to roll the
block out on top of the tower and into position.
The finger mechanism is a set of three rack and pinion mechanisms, each driven by their own
micro servo.
The block pulling mechanism consists of a tray on which the block will rest on. There are two
rollers, one on each side of the tray that will pull the Jenga block into the tray. The tray can move
side to side via a rack and pinion mechanism so the block can be deposited on the top of the
tower in the desired location. The block is slid out of the tray by reversing the direction of the
rollers.
6.2.
Positioning Subsystem
The positioning subsystem can be divided into two systems. One is responsible for
orienting the block manipulator on the Jenga tower, and the other is responsible for moving the
entire contraption into position. To orient the block manipulator, the base of the contraption is
rotated using a step motor, the height of the block manipulator is then adjusted using a vertical
lead screw powered by a motor. For moving the entire contraption in the X-Y directions, the
design uses a system of timing belts for linear actuation.
We have two systems for positioning: One for the overall positioning of the tall beam like
structure that we refer as the Control Tower. The first is called the X-Y Positioning system.
Another is for positioning of the block manipulator that involves rotation and movement in the zaxis. This is called the Z-Axis.
The X-Y Positioning system consists of a system of timing belts and linear guide rails
and carriages for linear actuation. One timing belt that is used for movement in the x-axis is
mounted on two parallel timing belts used for movement in the y-axis (see figure 5).
The Z-Axial Positioning system consists of a motor mounted at the base of the Control
Tower that allows the Block Manipulator to rotate in the xy-plane. It also has a motor powered
lead screw to allow actuation in the z-axis.
10
6.3.
Different game modes will be available for play, differing by the number of
players and the level of autonomy of the Jengabot.
6.3.1.
Multiplayer/Solitaire Mode
In multiplayer mode, the robot will communicate with another robot to obtain
game state information. If the other player is a human, the game state information will
be input and communicated to the Jengabot through the game state display.
In solitaire mode, the robot will only communicate game state information with
the game state display.
6.3.2.
In autonomous mode, the Jengabot will test the resistance of a block and, if it is
loose enough, try to push it out. If it is very resistive, it will test other blocks until a
sufficiently loose block is found.
In manual mode, the game state display is used to tell the Jengabot which block
to remove next and where to place it. The Jengabot will try to remove the block
regardless of the resistance it gives.
11
7.
Schedule
Week
Goals
Jan 27
Feb 3
Order Parts.
Complete motor control lab. (due Feb 12)
Feb 10
Feb 17
Feb 24
Continue fabrication.
Continue writing software for game state controller and display.
Mar 3
Continue fabrication.
Write software to interface with motors/other actuators.
Mar 10
Spring Break
Mar 17
Mar 24
Mar 31
Apr 7
Carnival
Catch up if behind schedule.
Apr 14
Apr 21
Apr 28
May 5
May 12
Lab Cleanup
Weekly Tasks
Update website.
12
8.
Budget
System
Part Description
Cost
/part
Qty
Total
Cost
PUSH COMPONENT
Mini Servo motors for pushing
29.95
89.85
Aluminum Rods
6.88
6.88
19
19
11.51
11.51
Aluminum tube
5.88
5.88
33.42
33.42
Angle Brackets
5.73
5.73
6.54
6.54
15.95
15.95
15.95
15.95
Radial bearings
10
20
Thrust Bearing
3.53
3.53
Aluminum Base
148.45
148.45
20.18
20.18
Limit Switches
20
5.91
5.91
3.95
7.9
12.44
87.08
19.95
19.95
15.95
15.95
GRAB COMPONENT
BOX
TOWER
MOVEMENT
13
28
28
10.5
21
PTFE-Lined Carriage
51.11
102.22
7.95
39.75
17.28
17.28
5.73
5.73
12
2.45
58.95
58.95
13.9
13.9
10
10
15
15
TOTAL
891.49
sleeve bearings
MICROCONTROLLER
GENERAL
HARDWARE
9.
10.
Risk Management
30 seconds to move each block might seem like a long time but the time it takes to get
into position and the time it will take to lower our block manipulator in place may severely
restrict the time we will have available to remove the blocks and place them on top. If this turns
out to be the case we may need to redesign to move our control tower around the tower faster
and may account for greater inertial forces, moments, and stresses. This may even cause us to
change our timing belts if the kevlar tensioning member cannot withstand the forces.
For the lead screw we will need to make sure that the moment exerted by having the
block manipulator so far from the tower does not cause too much loading. If it does we may
have wear and motion resistance with the lead screw nut. We can solve this by placing and
positioning a counterweight on the other side of the control tower to reduce the
moment. Though this will be at the cost of more load on the positioning motors. An alternative
14
solution is to remove mass from the block manipulator by changing the materials in the
manipulator or fabricate the manipulator so that mass is removed by machining or if 3D printed
is hollowed out.
In the event that we cannot adequately control the height of the block manipulator, we
hope to add a camera and use edge finding to find the edges of blocks, thus providing feedback
to the microcontroller. This will allow us to create a control loop for the block manipulator
height.
There is also a risk that as we play, the force we exert on whatever block we are
removing may cause the tower to sway and fall. This could be solved by using a camera to
monitor the top of the tower and determine whether, while we are removing a block, the tower is
about to fall down.
As always, the cost of prototyping is a concern. Our only solution is to be wise about
what we buy, where we buy it from and where we acquire scrap materials, particularly from
roboclub, the mechanical engineering department scrap bins and the RI Shop.
15