May 27, 2014

Week 9: Control Box and Small Modifications

Primarily, this week focused on developing the final report. However, more progress was also made on the project.

Small changes were made, like drilling holes into the frame for speakers and affixing a door to the back of the frame. This door is a simple piece of backboard which can swing open and close on hinges. Featuring a deadbolt, it allows for access to the inner workings of the final product while still keeping all components within the frame. Handles were screwed into the frame to allow for easier transportation of the entire product. Minor tweaks in programming occurred to continue accurate communication with the modified electrical system. Finally, as another jumper mechanism is being printed out, the current mechanism was fine-tuned by sanding down pieces of it for smoother backboard movement, and gluing small metal brackets to help guide the jump movement.

Additionally, a control box was designed and constructed. This was a relatively simple task. Using scrap wood, a small, handheld box was built with slots into which the push buttons were embedded. This allows users a contained and visually-appealing method of controlling the player figure.

As the jumper mechanism was modified, the lift mechanism was changed as well to reflect these modifications. In order for the jumper mechanism to travel along the length of the lift mechanism to move the player figure in the direction of the x-axis, the jumper mechanism must fit inside an upside-down T-shaped slot. Initially, the plan was to route this into the lift mechanism, but it became clear that this would be difficult to physically accomplish with the given tools. In place of this, two L-shaped brackets were glued to the lift mechanism to create the desired T-shape. An image of this can be seen below.

The jumper mechanism will move underneath these brackets

May 22, 2014

Week 8: Circuitry and Programming

This week focused primarily on circuitry and programming, as electronics and control are the final pieces of the project as it comes together.

Unfortunately, it turned out that the solder job done on the servo driver was faulty; due to some misunderstandings and a lack of experience, the jumper cables did not properly connect to servo driver, and the driver was damaged beyond use. After turning to a more experienced upperclassmen for assistance, a new circuit was built on a larger breadboard.

Through this new circuit, communication with servos was achieved, signifying a large step forward in programming - coding the program is actually the easier step when compared to establishing communication. Through the breadboard circuit that had been set up, some simple code was written to communicate varying frequencies to a servo, which results in a faster or slower servo rotation. A video demonstrating this can be seen below.



In addition to these advances, minor changes were made to the lift system: a groove was cut into the backboard, giving the ball a slot to ride on; the rubber tubing was glued to the PVC column; and a ramp was affixed to behind the backboard, which allows the obstacles to exit the lift shaft and enter the play area again.

May 13, 2014

Week 7: Simulations, Models, Soldering, and Programming

As planned, a CAD model of the character jump mechanism was modeled and sent to be 3D-printed. This mechanism functions by sitting on the lift and rolling from side-to-side on it; in front of the backboard is a seat for the servo. The servo can rotate a pair of gears, which let the figure placeholder and its accelerometer rise within a groove in response to a jump command. Pictures of these models can be seen below.

A front-angle shot of the movement mechanism; this is what the player will see

A back-angle shot of the movement mechanism; this section comes in contact with the lift


Additionally, a simulation was made using MATLAB to calculate the speed the obstacles would attain at the endpoint of a ramp, as constrained by the degree tilt of the ramp. A video looping this simulation can be viewed below.


The process of soldering the circuitry together began as well. A servo driver was purchased last week; this will act as a channel of communication and source of power for the five servos involved in the device, as the Raspberry Pi is not powerful enough to power the servos sufficiently. A progress picture of the soldering can be seen below.

Nick and Valerie soldering the servo driver

Once the driver soldering has been completed, the process of communicating between the Pi and the servos will begin. At this point, the Pi is connected to a wired network, which can then be remotely accessed via Secure Shell. While this is useful, a more convenient solution would involve the Pi connecting wirelessly to a network for completely unshackled programming. As such, this is one of the current secondary objectives. A picture of Andy writing the MATLAB simulation and Amndeep communicating with the Pi can be seen below.


Amndeep and Andy programming

However, regardless of the wireless or wired nature of the connection, as soon as the driver soldering is done and the servo driver is connected to the Pi, communication between the Pi and the servos can begin - which will be a substantial step forward.

Week 6: Moving Forward on Manufacturing

A lot was accomplished this past week. In addition to making additional purchases of electronics (such as extension cords and speakers). Numerous hours were spent in the machine shop turning the theoretical design into physical reality. Along the way, sometimes it became clear that an idea would not work in practice as well as it did in theory; the lift was determined to be too opposed by friction when it enclosed its vertical columns, it was decided instead to place it between the vertical columns and the backboard.



Servos were also mounted to the inner top of the frame. To do this, the servos were screwed to wooden blocks, which were screwed to the main frame to act as extrusions. The current plan is to attach plastic spools to their rotary disks and have them spin continuously, pulling or releasing the lift by way of nylon string, but implementation has not yet occurred as the jumping mechanism has not yet been printed to the point of being functional. The servo configuration can be seen below.

The servo is attached to wooden blocks, which are attached to the frame


Furthermore, the physical ball conveyor also underwent its initial construction. This conveyor was discussed in the previous update: essentially, it acts similarly to an Archimedes screw, forcing the balls up a locked channel by seating them on a rotating helix. A brief mechanical simulation of this technique can be seen in the below video. (Full screen viewing is recommended, as the video is small otherwise.)



The placement of this conveyor can be seen in the picture below; it should be noted that this picture is a rough initial positioning, and does not display the channel through which the ball will travel or the servo which will rotate the helix.

Estimated and unsecured location of conveyor


In order to be sure that the servos ordered were sufficient for the project's purpose, some calculations were carried out.


The first calculation determined if the servos would be able to raise the player lift beam. The specifications for the servo were given by the manufacturer that, stating that the device's torque was 3 kg*cm; the mass of the wooden lift beam was 0.4 kg, as calculated with the wood's density and dimensions (and inflated somewhat to ensure that the servo was more than sufficient). 


Since τ = F x r, r = τ/F, in which r gives the maximum possible radius of the pulley. Plugging in the values results in (3 kg*cm)/(0.4 kg) = 7.5 cm. As the servo radius pulley is much smaller than this, it should be capable of the task at hand.


The second calculation dealt with determining the length of tubing needed to build the conveyor ball lift. Given that the tubing (radius = 3/16 inches) will be wrapped around a 2-foot shaft (radius = 5/16 inches) at a rate of 1 coil/inch, the total radius (Rt)of the device is (5/16 + 3/16) inches = 1/2 inch. Since the number of coils = (2 ft)/(1 in) = 24 coils, the total needed tubing length = (2πRt)*(number of coils) = (2π)*(1/2 inch)*(24) = 75.4 inches, or 6.3 feet.


It was initially expected to need 25 feet of tubing; however, by doing these calculations, an appreciable sum was saved by reducing the order to 10 feet of tubing.

May 6, 2014

Week 5: Purchasing Mechanism Materials and Changing the Conveyor Belt

On Saturday, April 26, the team met to purchase materials for the mechanical and software aspects of the toy. Matthew ordered a Pi Cobbler Kit, which interfaces between a breadboard and the Raspberry Pi; a breadboard, to transmit signals from the Raspberry Pi to, ultimately, the servos and game functions; fishing line, to lift the figure movement shaft; steel balls of 0.5" diameter; brackets to stabilize the barrier between the main game environment and the ball conveyance shaft; three high-torque servos to lift the figure movement shaft and activate the conveyor belt; push buttons for player input; micro-servos to handle figure jumping and conveyance shaft opening; and jumper wires for breadboard circuitry. Most of these materials have since arrived.

It was also decided to scrap the idea of a physical conveyor belt, as shown in previous model renders, in favor of a variation of the Archimedes' Screw. This essentially is a double-helix of rubber tubing wrapped around a revolving tube made of PVC pipe. The ball enters the conveyance shaft, is trapped between two static wooden columns, and sits on the rubber tubing. As the PVC tube rotates, the rubber tubing appears to shift upwards because of its helical orientation; with the ball being trapped between the two wooden columns, it is forced to move upwards by the helical tubing. As the ball moves up the conveyance shaft, it spins against the PVC tube, and eventually reaches an opening that allows it to drop back into the game environment.

This design is much cleaner, simpler, and less expensive than the original conveyor belt design; instead of purchasing, in addition to a servo, an ANSI chain, gears, and wooden platforms, and being forced to combine all of these, all that is needed is a PVC pipe, rubber tubing, and a servo.