Archive for the 'Final Report' Category
3! – Prototype II Final Report: Mechanical Camera Control System for Wheelchair


This project is a mechanical control system for people who have trouble using their hands and use a wheelchair. People with disabilities, who are using wheelchairs, often have trouble using a camera to take pictures or videos. It is hard for them to hold the camera steady and take shots at the same time. A camera is a way they can capture  memories of their lives, and save them to share with others. This project will allow them to position and use a camera easily and effectively without any assistance. We used a turntable for the rotation of camera (panning), two servos for pitch movement and pan movement, one arduino uno board, one joystick, structures and supports from plexiglass. 

     In comparison to the first prototype, we used gears for 360 degree rotation of the platform instead of the limited rotational movement that a servo arm gave the first prototype. Our joystick control system was not able to hold a fixed position in pitch, which we fixed in prototype II by improving our arduino codes. The overall structure of this prototype is also smaller compared to the earlier one.


The mechanical design includes a base where camera can be mounted on a rotating platform. The control system is able to tilt and pan the camera. The top platform will spin a full 360 degrees, so that clients can take a picture of themselves, or show a picture to others once they take it. The whole base will also move up and down, raising the position of the camera. Clients will be able to control the position of the camera and once it is set, they can manually control the interface of the camera. This feature will aid them in taking shots in less time and will also solve the problem of lifting the weight of the camera and aiming it.

The initial ideas about our prototypy II design are given below:

  • Joystick which could be mounted on the wheelchair so we need a clip attached on the joystick.
  • Vertical stand for the camera which is mounted on the wheelchair. The vertical shaft of the MCCS can go up and down, and the fixed platform is connected to top of this vertical shaft.
  • The camera platform has a hinge allow pitch motion of the camera and is mounted on the rotating platform. There will be a fixed platform underneath the rotating platform.
  • Use three servos to control the position of the camera mounted as shown in the picture.
  • Joystick and servos will be connected to Arduino board so that they can communicate with each other.
  • Adruino, servos, circuit board and wires are will be inside the plexiglass box.
  • All platforms will be made from plexiglass.

we started by building the box that hold the servo and circuit board from plexiglass. Then, we designed and cut the rotating platform from plexiglass, using a 2-D computer controlled laser cutter. Then, we moved to the platform that holds the camera and built it as shown in the diagram below. after that we started working on the programing for the movement (rotation 360 degrees and pitch +/- 30 degrees). The last part was adjusting the length of the arm that controls the pitch movement. In every step of our design, we used hot glue, so that we could fix any mistakes that we made. After we made sure everything was working as we wanted, we started using cement glue for the plexi glass. The arduino code for our design is at the link: 3! Design I code. The schematic diagram, and pictures of our final design are below.



For the prototype II, we managed to rebuild our initial design and made it more durable and functional, using plexiglass. We managed to add 360 degrees movement  by using a gear train to rotate the platform. We have learned a lot in constructing this prototype, and now we have a vision for the way ahead and how we are going to tackle it. We believe that we spent too much time designing and cutting plexiglass, but eventually we got it done. Our plan for the next semester is to have a up and down movement and with wireless control system. If possible, we would like to add remote control for the camera shutter and other camera functions ( mode, flash, focus, zoom, etc. ). We will focus more on electronic section of the project to improvise the control system and make it easier and effective for the users to control the camera. We were unable to complete the up down movement of the design which has been challenging to us. We are ready to face the problems that we have encountered so far and complete the project that we have been working on.

Team 4- Prototype II Final Report:Easy Jar Opener/Closer


Our product the Easy Jar Opener/Closer is meant to assist people with limited hand mobility. It’s purpose to open and close jars with no more physical input from the user than simply a flip of a switch. We made a large amount of progress from the prototype I to prototype II. With prototype I all we had was a rotating base that rotated in a clockwise and counter clockwise motion. With Prototype II we attached a upper portion to the base that had two motors attached to it. This step motors had two rods attached to them and raised and lowered a platform that would apply a downward pressure to the jar. 


Our team modified/retrofitted an already existing product. Black & Decker had a product that would remove a lid from a jar. However some of the residents at CPR expressed that also had difficulties placing the cap back on and tightening it. So we took the Black & Decker appliance and started making changes to it. In the end we had only used a few parts from the old appliance and the rest was new design. We used the upper motor housing and parts of the upper plastic case and the base of the Black & Decker model. We attached the parts to a wooden base and wired the motor to an external power supply. We also wired a three way switch into it so we could reverse the current and allow the motor to rotate both ways. We then built an upper housing and placed two step motors on top of a wooden from. We attached all-thread rods to the motors. These raised and lowered a small platform that is used to apply a downward force to the jars. We used an Arduino to control the step motors. Also below is a picture of our finished product. 


We were able to get the base rotating counter clockwise and clockwise. This is controlled with a three-way switch. We were also able to use an Arduino to control the platform that moves the up and down. The Arduino controls the step motors and tells them what to and how fast to spin. We did have some issues with the all-thread bending. After having the motors move the platform down into place on the lid of the jar and the base would start to rotate the rods and would not stay straight. This caused problems with trying to keep the downward force applied and when we tried to raise the platform back up it would not be lined up and would not raise up without some help. Our prototype is not fully functioning all the time. With the issues I described and we are also having some issues getting enough pressure to be applied from the top because the jars just keep spinning at the base and not working. We have will have lots of improvements to work on for next semester. 

Blue Team – Prototype II Final Report: Smart Cushion


The Smart Cushion was conceived specifically to reduce instances of pressure sores in wheelchair-bound individuals. Pressure sores are caused by a force (such as a person’s body weight) being applied consistently to an area of soft tissue, thereby obstructing blood flow and causing tissue failure. Because a great many wheelchair users have limited mobility, as well as limited sensation, it can be difficult for them to change position with sufficient frequency.

 To combat the difficulty many wheelchair users have in staving off pressure sores resulting from long periods of sustained sitting, the Smart Cushion will comprise air cell quadrants that will respond to variations in the user’s positioning by equalizing pressure across the contact area. Each cell will be equipped with a small pressure sensor, which in turn will be monitored by an Arduino microcontroller to ensure that each cell’s pressure stays in the target range. Small compressor motors will handle inflation duties.

 For the second prototype, we were able to (somewhat crudely) implement nearly our entire overarching design. In other words, there are few planned features for the Smart Cushion that this prototype does not implement in some fashion. Notably, we intend to later implement solenoid valves for each cell in order to deflate when necessary. However, unlike the first prototype, this iteration demonstrates in a truly meaningful way how the final product will operate.

 The most obvious difference, from a visual standpoint, between the first and second implementations of the Smart Cushion is the presence of an actual seat cushion, rather than a pair of inflatable camping pillows. Even more importantly, the second prototype actually inflates automatically, rather than manually. This is achieved by connecting each cell to a powered lumbar seat pump. As before, each cell gets a 14.5 psi pressure sensor for monitoring purposes. Once again, the heart of the system is the Arduino Uno, which polls the pressure sensors and sends instructions to the pumps, accordingly. Further refinement has been made with respect to the laptop display interface, as well. Rather than displaying numerical values for each pressure sensor, a colored grid displays pressure variation for each quadrant.

 Parts List

  1. Seat Cushion, ROHO Quadtro Select, used (1)
  2. Microcontroller, Arduino Uno (1)
  3. Power lumbar seat pump, Ford OEM (4)
  4. Pressure sensor, Freescale Semiconductor MPXV5100GC7U (4)
  5. MOSFET (8)
  6. Diode (8)
  7. Resistor, 10kΩ (8)
  8. ON/OFF switch (1)
  9. 12V power supply (1)
  10. Female wiring adapter for 12V power supply (1)
  11. Vinyl tubing, 3/16″ id, 5/16” od (8ft)
  12. All-purpose plastic cement
  13. Circuit board (2)
  14. Connecting wire (20ft)


1. The first step in constructing the second prototype of the Smart Cushion involves irreversibly altering the ROHO seat cushion. At the front of the ROHO, there is a four-inlet manifold. Each inlet is connected to one of the four quadrants of the cushion. The manifold has a sliding switch. When closed, each of the quadrants is isolated from the others. When open, air is allowed to flow between quadrants. For our application, we needed access to each individual chamber, so we removed the manifold. At first, we tried drilling out the rivets and carefully extricating the manifold from the seat cushion rubber. The glue on the manifold housing began tearing at the rubber, however, so we just cut the manifold off with a razor knife.

 2. Small, tube-like chambers are molded into the rubber of the cushion. These chambers meet at the front of the cushion where the manifold was removed. It is here that we connected the vinyl tubing to the cushion, using all-purpose plastic cement. The 5/16” outside diameter was small enough to fit snuggly in the pre-molded chambers of the ROHO, and a generous slathering of plastic cement ensured an air-tight seal.

 3. We chose to mount the cushion to the top of a 4” deep wooden box, with length and width dimensions closely matching those of the ROHO. Since the implementation of the Smart Cushion described here is independent of mounting choice, we will forego a detailed explanation of the box construction. Suffice it to say, it is a box with a hinged lid, inside of which the electrical components are secured.

 4. Two circuit boards were used for soldering components. Onto the first, we soldered the MOSFETS, diodes, and resistors. Onto the second, we soldered the pressure sensors. The choice to use two circuit boards was based on our particular display setup; one board would be perfectly fine. The motor driver board diagram can be found below. The sensor board was used as shown in the datasheet for the sensors, simply the Vin of the sensors connected to 5V, Gnd connected to the common ground of the system, and Vout connected to the appropriate analog in ports on the Arduino. As such there is no dedicated circuit diagram for this board.

 5. 1/16” holes were drilled into the vinyl tubing for insertion of the pressure sensor inlets. We chose to forego the use of plastic cement due to the fact that we will need to reuse the sensors in further iterations of the project. Because of the snug fit, however, there is little air loss at the sensor inlet insertion points.

 6. The four pumps should be wired to four MOSFETs on the board. Slide the ends of the tubing onto the pump outlets. The other four MOSFETs will be used in a later prototype for connecting solenoid valves.

 7. Our particular 12V power supply required a female adapter for wiring purposes. Other applications may differ. Wire the 12V supply to the ON/OFF switch. Then wire the switch to the board with all the MOSFETS. Make final connections between the two circuit boards and the Arduino Uno. 

 8. The latest code for the microcontroller at time of writing can be found in our dropbox folder under “Arduino_pump_control1/_2atAtime”. In this iteration only 2 pumps run at any given time (using a time sharing system) to fit the limitations of the current power supply. The latest iteration of the pressure display program can be found in “Processing_serial_pressure_graph”







As with Prototype I, things turned out well with our second prototype. We were somewhat less successful with time management, largely due to unforeseen parts/equipment issues. The first batch of pumps we ordered (some cheap little jobs used in blood pressure cuffs) did not have near the output we required. As a result, we had to scramble to find replacements, and not much work got done in the interim. This bump in the road forced us to make up a lot of work nearer the project deadline. Nevertheless, the whole team was committed to putting in the required hours, and it all got done as planned. 

In retrospect, there is one thing we could have done to alleviate some of the time crunch caused by the pump fiasco. We should have gone ahead and soldered all the sensors and MOSFETs to circuit boards while we were waiting on the second batch of pumps to be delivered. This ended up being a fairly time consuming endeavor at a late juncture in the project’s development. There was really no reason to wait; we knew how they were going to be wired. For whatever reason, this didn’t occur to us and we basically did next to nothing for that particular week. 

We were also a bit late to the party with respect to getting our solenoid valves ordered. We were so preoccupied with the pumps that we really didn’t even look into valve options until less than two weeks out from the deadline. As a result, we were unable to get them implemented, with a failed effort to get them operational the night before the presentation. 

From a conceptual standpoint, we believe we are on the right track in our efforts to tackle the pressure sore problem. We feel that it’s simply a matter of refining our implementation. For example, while this iteration uses four pumps, we expect that our next prototype will use one pump connected to a manifold. In general, we’re looking forward to making things more compact. As it stands now, the Smart Cushion is heavy, bulky, and unusable in any real-world capacity. Further refinement will make it more direct and concise.

We also have a great deal of work to do from a testing standpoint. While the logic of our code works, we still have no real idea as to an appropriate target pressure range. We’ve borrowed an old pressure map from Greg at CPRF, and plan to use it as a reference point in the future. We also plan to tidy up our own pressure mapping software.

BitShifters – Prototype II Final Report: Shelf Assist


The apartments at the Cerebral Palsy Research Foundation (CPRF) provide shelves and cabinets that are not easily accessible to many of the residents, who are confined to wheelchairs. A device is needed to lower the items in these cabinets and shelves to a reachable distance for wheelchair occupants. Manual pull-down shelves already exist on the market, however they are not sufficient. With these pull-down shelves, the residents would still have to reach and pull down the shelf from their cabinets. Since many of the residents have limited use of their hands, an automated pull-down shelf is needed.

Prototype II extends upon Prototype I, which consisted of a manual pull-down shelf without any modifications. For the second prototype, the shelf is motorized using a linear actuator. An Arduino Uno is used to allow the user to control the linear actuator via a dual rocker switch.

The modified shelf consists of the following parts:

  • A generic manual pull-down shelf
  • A 24v linear actuator
  • Nuts, bolts, washers
  • Aluminum supports
  • A fabricated metal plate
  • An arduino uno with motor shield
  • Dual rocker switch
  • A 12v, 3Amp power adapter


The manual pull-down shelf we chose to modify was purchased from Menards.

Each of the two sides of the shelf consisted of a gas-assist mechanism and two springs. On one side of the shelf (we’ll call it the “motor side”) both springs and the gas-assist mechanism were removed. On the other side (the “stability side”) we kept the gas-assist mechanism and the bottom spring in place, but the top spring was removed.

“Stability side” view of shelf

The linear actuator, which we got from Tom, only extends 4 inches. However, it needed to fully lower the shelf, and it had to be positioned away from the pivot point of the shelf. To achieve this, we fabricated a metal plate that would raise the actuator above the arm and the pivot point of the shelf.

“Motor side” view of shelf

When weight was added to the shelf, we noticed that the actuator was bending the bolt instead of raising the shelf. So, we cut an aluminum support out of scrap metal to go around the bolt.

Aluminum Support

We used an Arduino Uno with a motor shield and a dual rocker switch. When one on the two buttons on the switch is pressed, the Arduino supplies a positive voltage to extend the actuator and lower the shelf. When the other button is pressed, the Arduino supplies a negative voltage which retracts the actuator and raises the shelf. Power is supplied by a 12V, 3Amp power adaptor.


Arduino Code


The diagram above shows the basics of how the shelf operates, how it is controlled, and how it is powered.


Overall, we achieved our goal for Prototype II. We were able to attach the actuator to the shelf, and the fabricated metal plate allows it to fully lower and raise the shelf. Also, we managed to setup the Arduino so that we could control the actuator with a switch. However, there are places that could be modified next semester. For instance, when weight is added to the shelf, it dramatically reduces the speed at which the actuator can lift the shelf. We need to find a way to supply more power to the actuator without frying the Arduino. Also for next semester, we ought to consider the utility of the shelf. How beneficial would our current shelf be for wheelchair occupants, and how can we make it more beneficial?

A Team – Prototype II Final Report: Micro Cyber Watch Dog


The objective of this project is to create a wireless micro robot, that will have the ability to aid law enforcement, private organizations or other public safety organizations by giving them the ability to access unknown locations or enclosed areas where there are unkown dangers.  The micro robot will also give them the ability to access places not accessable by other means.  It will also have the ability to surveillance the area (record/transmit video), and provide, or produce audio.

In prototype II we have so far, modify the micro robot from wired to wireless and the micro bot is able to transmit video to a computer. The microbot is wirelessly controlled via a computer using Xbees. The microbot transmits video to a computer via the 2.4ghz frequency.

Parts Used in prototype II (parts from prototype I not included, refer to previous final report):

qty item with link   comments
1 Arduino mini micro-controller    
2 Xbees Pro    
2 3.7V LiPo batteries    
 XX Bunch of Wires, glue, velcro, misc…    
 1 Switch    
 1 wireless camera w/sender    
 1  wireless camera receiver w/usb    
2  capacitors    for protection, optional
1 3.3V voltage regulator    
 1  5V voltage regulator    




Step 0: Get Camera W/Receiver

            a. camera with wireless receiver—>

Step 1: Remove unnecessary plug that includes voltage converter.

            a. use voltage converter of 3.3 V instead.

            b. use smaller generic plug, – +.

Wireless Implementation

Step 0: Get Xbees Pro/Xbees interface, many sources/retailer, suggestions below;

            a.Xbee pro s2b:

            b.Xbee to usb:

Step 1: Using Xbees

            a.configure one of the two xbees as receiver or sender.

            b. Easier to follow tutorial:

Step 2: Get/Program Arduino mini

            a.we got ours from TOM.

            b. code: arduino mini code in docx file.

Power Supply

Step 0: Get batteries, 2 batteries needed.



Step 0: refer to schematic diagram below.


Functional Diagram


Schematic Diagram 











Main Components Diagram 



We were able to make the micro bot wireless and it can also transmit video which were the goals of prototype II. Now, thinking about the future, surface mounting components, using an Atmel chip instead of the arduino mini and using less thick wires will make the microbot smaller. In the future, we are planning making the micro bot smaller and implementing some of the ideas Sergeant, Kyle Garwood told us that will be useful for law enforcement use. Here are the ideas:

                 1. It would be handy to fit on an officers tool belt.
                 2. It would be useful if it projectile capabilities (e.g. gas, explosives, ammunition)
                 3. SWAT and surveillance operations
                 4. Portable
                 5. Discrete
                 6. Cheap 

Eh Team – Prototype II Final Report: Universal Wheelchair System


When design groups of the past wanted to add new capabilites to the wheelchairs of the CPRF residents, how did they display the outputs of these added devices?  And what did they use to send commands to these devices?  Currently they have to create a way to show any output from their device to the user.  Also, they have to design a way to send input to their devices.  

The aim of our project is to bridge that gap, giving future design groups an app to interface with the Arduino UNO, and then to control whatever devices they may wish to add to the wheelchair.  We have designed an app that has tiles to display different outputs from or allow for the capability to send signals to the Arduino, as we showed in our first prototype.  For the second prototype, however, we went a step further.  Now we have a very basic app that can read and display the voltage at one of the pins of the Arduino.  It may not seem like much yet; however, it shows we have began to be able to communicate from the Android app to the Arduino.


We designed an app that will allow for communication between the Arduino UNO and the Android-based tablet.  We originally had written an app that had greater capabilities than the app we are going to be displaying at the engineering career fair; however, we could not get this app to work correctly with the Arduino.  So the app we are now running can only read voltage at one of the pins on the Arduino.  Moving forward with this project, we are going to continue to troubleshoot our original app to try determine a way to make it work with the Arduino.

The overall scope of our project has been to develop an open-source system that works with an Android-based tablet, which is used as both the display and the method for sending commands to the devices being added to the wheelchair.  The codes for the Android app can be found on GitHub at:  and we are currently using Firmata to help us code for the Andruino.  By using Firmata, we believe we will make it easier for future design groups to use our system.

Parts Used for Prototype II:

Coby 7″ Kyros Tablet (Running Android 4.0)

Arduino UNO (R2)

GMYLE Adjustable Swing Arm





The greatest issue we faced in creating the prototype was getting the app to correctly communicate with the microcontroller.  We wrote the app to specifically work with the R2 version of the Arduino UNO; however, we were never able to get our original code to work correctly.  We will continue to edit the code for our final project until it works correctly.


Deliberate Gecko – Prototype II Final Report: RPTC


Deliberate Gecko has the mission of eliminating back strain, eye fatigue and wheelchair inaccessibility from a specific job at BTCO, which is near the Cerebral Palsy Research Foundation. The strain and fatigue as well as inaccessibility comes from the current methods used in the operation. The job is to record precision measurements of a printed sheet that is on top of a large calibrated plot table. This requires the measurement taker to bend over the table with a microscope for each point that needs to be measured.

Team 1, Deliberate Gecko, has developed their second prototype of Project RPTC (to be given a cool name later) to completely mechanize the current job. The prototype was built with goal of getting closer to the finished product of a completely robotic plot table camera system. This would achieve getting rid of the back strain and eye fatigue, as well as enable wheelchair users to have equal employment. Positive benefits would also include making the methods of measurement a great deal more efficient, trading manpower for electric power.

Prototype II has built on the existing Prototype I. Prototype II’s box can move itself in either direction for both the X and Y axes. The current control system includes a thumb stick that is connected to an Arduino Uno. The box will eventually hold a microscope and or camera. It currently has a motor for Y-axis travel. It sits on square aluminum tubing that has rollers on the end. Those rollers are mounted on 3/4″ rigid conduit, which is what the frame is made from. All of the movement is done by stepper motors, pulleys and steel cable.

All parts are powered from a variable DC power supply. The control system is currently running entirely wired, with the possibility of wireless in future prototypes.

Team 1 has used the following parts in this Prototype:

  • 3/4″ rigid conduit
  • Type LB rigid conduit body
  • Rigid conduit compression connector
  • Aluminum box
  • Square aluminum tubing
  • Angled aluminum
  • Stepper motors
  • Steel cable
  • Small Pulleys
  • Large pulleys
  • Caster wheels
  • Nuts, bolts, washers, bushings, hot glue, wires, transisters, diodes, breadboards, acrylic
  • Arduino Uno
  • 2-axis thumbstick


We took Prototype I  and bolted things on.

Stuck another motor as well as some large pulleys on for X-axis travel. Connected by steel cable, same as Y-axis travel.

 That is on the end of the Y-axis rail.

 We also made a box for the control system, using a laser on acrylic glass.

It uses an Arduino Uno with a 2-axis thumbstick. To drive the Y-axis stepper motor, we have the arduino output to a column of 5 field effect transistors that supply the motor with power in a correct sequence. To drive the X-axis motor, the EasyDriver Stepper Motor Driver is used.



After we figured out the correct sequence of the stepper motors, we had them controlled from an Arduino UNO.

One motor uses field effect transistors and the Arduino outputs, while the other uses an EasyDriver module.

The thumb stick inputs 2 different directions via varying resistances into the Arduino. 



More money for custom parts such as belts and motors! (Not needed for prototypes, but for end product it would be)

Also, using 80/20 extruded aluminum for the frame should be considered. A large drawback is that it is much, much heavier. The rigid conduit is currently functional and fairly inexpensive.

Using The Yard to purchase supplies and parts for our project was very helpful. We should have gone there first instead of making initial purchases at Lowes and Home Depot.

Using custom motors without documentation added a fair amount of extra work time into our project. For the 5-phase variable reluctance stepper motor, we had to manually determine the sequence of the phases, as displayed here. We should have gotten better motors that are easier to use.

With both prototypes, we built a full scale working model. This was a mistake, as it would have been much simpler and cost effective to build a small scale model. Using the full size, the motors that we acquired are not powerful enough to run in an ideal setup. They just are not fast or strong enough to move the entire length of the frame. Currently, the prototype moves, but it is not fast enough to be viable.

Do not disconnect or connect motor from EasyDriver while power is on. We may have burned through an EasyDriver module or two.