You are on page 1of 15

JengaBot

Design Concept Proposal


Mechatronic Design Team D(efault)

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

Must perform legal and stable Jenga moves.


Must retract from neutral area when turn is completed.
Must display some level of game-playing intelligence.
Must exchange game state information with opponent.
Must play game with 10 layer tower.

Must make moves in <= 30 seconds.


Must play 5 solitaire moves without collapse.
Moves must be 80% drop free.

2.2.

Coolness Factor Goals


2.2.1.

Game state display

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.

Start From Intermediate Game State

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.

Design Trade Studies


4.1.

Game State Controller

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.

X-Y Positioning System


4.2.1.

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.

2 Timing Belts (our choice)

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.

Collar with Fingers and Roller (our choice)

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.

Mechanical Arm and Gripper

Building a mechanical arm and gripper


combination would allow us maximum flexibility in how
we approach the task from a game logic and manipulation
standpoint. Mechanically this system would be very
complex with very tight tolerances. To reach the back of
the Jenga tower we would either need the arm to have
extra degrees of freedom to go around the tower or we
would need to move the base an extra time during our
move. As we do not need to build a system capable of
arbitrary manipulation the extra complexity and control
needed to enable this motion would go to waste. This
arrangement also does not give us a way to steady the
tower as we manipulate a block.
4.4.

Fig 2. Kuka YouBot Manipulator,


LinuxGizmos.com, 2014, Web. 25 Jan.
2014

Motor Interface and Game State Controller

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

Fig 3. High Level System Architecture

Figure 4. Detailed Physical System Architecture

6.

System/Subsystem Depictions/Descriptions

Fig 5. JengaBot CAD Model

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.

Block Manipulator Subsystem

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.

Figure 6. Block Manipulator

The finger mechanism is a set of three rack and pinion mechanisms, each driven by their own
micro servo.

Figure 7. Block Pushing Mechanism, or Finger

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.

Figure 8. Block Pulling Mechanism

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.

Electrical Interfacing and Control

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.

Autonomous/Manual Input Mode

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.

Figure 9. System Control Logic Flow

11

7.

Schedule

Week

Goals

Jan 27

Build mock-up design. (due Feb 3)


Complete sensors lab. (due Feb 5)

Feb 3

Order Parts.
Complete motor control lab. (due Feb 12)

Feb 10

Plan details of overall software architecture.


Begin writing software for game state controller.

Feb 17

Begin fabrication of Jengabot, starting with block manipulator.


Continue writing software for game state controller.
Begin writing game state display software.

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

Continue fabrication - should be mostly complete at this point.


Continue writing motor/actuator control software.
Write software for communication between game state controller and motor controller.

Mar 24

Complete fabrication, including wiring of components.


Begin testing software on JengaBot.

Mar 31

Continue testing and tuning of machine and software.

Apr 7

Carnival
Catch up if behind schedule.

Apr 14

Finish testing and tuning of system.

Apr 21

Demo final system. (due Apr 23)

Apr 28

Encore demo final system. (Apr 30)


Work on final report.

May 5

Complete final report. (due May 9)


Complete website (due May 12)
Lab Cleanup

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

3D Printed servo horn gear

3D Printed rack for pushing blocks

Continuous servo motors for roller

19

19

Rubber gripping material

11.51

11.51

Aluminum tube

5.88

5.88

4"x4" Square Aluminum tube

33.42

33.42

Angle Brackets

5.73

5.73

1"x1" Square Alumium tube

6.54

6.54

Stepper Motor for lead screw

15.95

15.95

Stepper Motor for z rotation

15.95

15.95

Radial bearings

10

20

Thrust Bearing

3.53

3.53

Aluminum Base

Set screw hub

Fast Travel Lead screw

148.45

148.45

Fast Travel Lead screw nut

20.18

20.18

Limit Switches

20

Timing belt (x-axis) (1 mm Pitch, 705 Teeth, 6mm


wide Single Sided Polyurethane Belt with Fiberglass
Cords)

5.91

5.91

Timing belt (y-axis) (1 mm Pitch, 375 Teeth, 6mm


wide Single Sided Polyurethane Belt with Kevlar
Cords)

3.95

7.9

Timing pulleys (1 mm Pitch,75 Teeth, 5mm Bore, 2


Flanges/With Hub, Aluminum Alloy Timing Pulley for
6mm Wide Belt)

12.44

87.08

Aluminum to mount pulleys

X-axis Stepper Motor

19.95

19.95

Y-axis Stepper Motor

15.95

15.95

GRAB COMPONENT

BOX

TOWER

MOVEMENT

13

Linear guide rail (x axis 40cm)

28

28

Linear guide rail (y axis 15cm)

10.5

21

PTFE-Lined Carriage

51.11

102.22

Low-Voltage Stepper Motor Driver Carrier

7.95

39.75

Aluminum U-ChannelsUnpolished (Mill) Finish

17.28

17.28

Aluminum90 AnglesUnpolished (Mill) Finish

5.73

5.73

12

2.45

Arduino Mega 2560 R3

58.95

58.95

Arduino Mega ProtoShield

13.9

13.9

pack of 100 Nuts

10

10

pack of 100 Bolts

15

15

pack of 100 Washers

TOTAL

891.49

sleeve bearings
MICROCONTROLLER

GENERAL
HARDWARE

9.

Team Member Responsibilities


Carl Curran: Machining, XYZ axis positioning and orientation
Haley Dalzell: Game State Controller and Game State Exchanger
Dale McConachie: Motor and Sensor interfacing via microcontroller.
Yixing Shi: Machining, Block Manipulator finger and roller actuation

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

You might also like