Rochester Institute of Technology Senior Design Group 14045
Background: A motorized pediatric stander is a device similar to a wheelchair, meant to assist a disabled child to move around their environment in an upright position. The device should be able to provide safe, comfortable, and smooth transportation of the passenger, with the ability to be controlled by a third party. A previous prototype used buttons to control its movement, but the start/stop was found to be very jerky and the stander did not track straight. The remote control functionality was attempted, but was not fully implemented. Safety features were not fully developed.
Goal: Make interchangeable controls, tray system, wheel and battery box for a mobile pediatric stander. The accessories have to be capable with different models of the stander, and need to be self contained.
Components for Build:
- Tray System
- Wheel System
- Battery Box
- Controls System
- Bill of Materials
*Images courtesy of the Democrat and Chronicle
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Bill of Materials
See attached document below for the required build materials.
Step 2: Tray System: Main
The tray system was built out of the following parts:
The main goals for the tray system are to move left, right, forward and back. The support system consists of what is below and will be discussed in the next steps:
- Upper Hinge Arm
- Lower Hinge Arm
Step 3: Top Tray System Assembly
44in of 80/20 Inc. T slot Aluminum (1x1in)
Six->1/4-20 set screws (1/2in long)
Six-> 80/20 Inc. End Caps
Fourteen-> 80/20 Inc. 10 Series 3204 Standard Slide-in 1/4-20 T-Nut
Four 1/4-20 Thumb Screws (1in long)
Four-> Right Angle Brackets
-> socket head screws (1.5in long)
-> socket head screws (1in long)
One-> 3mm Allen wrench
One-> 3/16in Allen wrench
One-> 5/32in Allen Wrench
One-> Loctite 262 Thread locker (used on all screws except adjustable thumb screws)
One-> ¼-20 Tap
Step 4: Top Tray System
1. Cut the 80/20 T slot Aluminum stock into the following pieces:
Two-> 5 ½ in
One-> 3 3/8 in
Two-> 1 3/8 in
Two-> 8 in
Drilling and Tapping Locations:
2. Drill all the ends of the T-slotted material with a 13/64 inch drill bit and then tap them with a ¼-20 tap. This will allow for the ends to bolted together or have the ends capped. For the thumb screws a ¼ inch drill bit will need to be used to create a hole location that is a ½ inch away from the end.
3. Total of six locations will have to be drilled with a ¼ inch drill bit and finished with a 7/16 inch counterbore. Two total will be placed on either end of the 12 inch T-slot section a half inch from the end to center of the hole. Two other will be at the end of the two 5 ½ inch t-slot sections, a half inch from the end to center of the hole. Note these counterbored holes will need to be on the same side as the holes that were drilled for the thumb screws. Two will also be added to the 8 inch t-slot section ¾ inch from the end to center of the hole. See picture for assistance on the counterbore locations.
4. Attach the sections together as demonstrated in the drawing. *Loctite in each screw except thumb screws.*
Step 5: Tray System: Upper Holding Arm
Make the upper holding arm out of 1/8 inch aluminum. Cut the pieces to match the drawing above and round them to size, then weld them together.
1/4 inch holes should be drilled to match the locking hinge first on the upper holding arm then transferred over to the lower holding arm.
*Note: When attaching the holding arm to the locking hinge, use tape on the bolts to set them in location.
Step 6: Top Tray Platform, Tray Spacer and Protector Sheet
Make the top tray platform, tray spacer, and protector sheet out of 1/4 inch acrylic. Use a band saw and a mill to cut and shape all of the above acrylic pieces. Drill with a counter sunk 1/4 inch drill bit with the holes on the top tray platform and the protector sheet. Use a 1/4 inch drill bit to drill the tray spacer holes.
Step 7: Tray System: Lower Holding Arm
Make the lower holding arm of 1/8 inch aluminum. Cut the pieces to match the drawing above and round them to size, then weld them together.
Step 8: Tray System: Hinge
Use this hinge to enable the adjustable locking feature for this project. It can be found at the Adjustable Locking Technologies's Website.
Step 9: Parallax Wheel Adapter
There are two options for adapting the wheel adapters to fit the parallax wheel mount kits.
- Make and use the replacement wheel adapters
- Machine the stock wheel adapters to fit
The .zip file contains 3D CAD models of a replacement wheel adapter. These can be used to either 3D print the replacement wheel adapters or have them machined via CNC.
There are a few issues with this option:
- If these adapters are 3D printed out of ABS plastic, they may break if subjected to high force (e.g. if the stander is dropped)
- The 3D model is set up for the insertion of a metal hardpoint into the plastic for the 1/2-13 threads. If this was to be made via CNC, the model would have to be changed to reflect that.
- Due to budget restrictions, this part was never made for our project, so we cannot guarantee that this part will work, even if made properly with respect to the 3D model.
The round section of the stock adapter can be machined to fit the parallax wheel adapters. The part of the base of the adapter that faces the wheels from the motor kit needs to be shortened so that the total width is about 1.625" long. The front and back sections of it should be machined in equal portions so that its total length is about 2", or until you can reach the bolts in the adapter block with the wheel adapter mounted on it.
Step 10: Adaptive Block for Parallax System
An adapter is needed to connect the factory wheel mount to the parallax wheel mount. Schematics for the wheel mount system can be found below. The design was created by RITs MSD group 13045.
Step 11: Battery Box
The battery box was designed to fit the stander driver controls (two motor controllers, the Bluetooth piece, a Tiva board micro controller, a solderless breadboard, and all corresponding wiring) as well as house the battery. Make the box out of 1/4 inch aluminum for robustness and screw placement. The detailed panel designs can be found in the pdf file below. Weld the box together, except for the top piece and the side that holds the controllers and Tiva board. We recommend welding before drilling and threading the mounting holes as the aluminum will warp during welding. Widen/move holes as needed to accommodate the plugs post-weld. Machine/sand down the welds to create a smooth finish. Plastic spacers may need to be created when mounting the electronics within the box to overcome the weld joints. We used scrap acrylic for such spacers.
We recommend power sanding down the surfaces before priming and painting.
Step 12: Applying the E-glass Lining to the Battery Box
-Respirator (mostly for post-processing)
-Chopped Strand Mat (CSM) sheet
-Polyester Resin and MEKP catalyst
-Mixing stick and container (must be PP or PE)
-Acetone (not pictured)
-2 Pairs of Latex Gloves (cannot use Nitrile unless under the latex)
-Disposable Drop cloth (recommended but not required)
-Scale (measures to a tenth of a gram)
-Ruler or tape measure (not pictured)
-80 Grit Sand paper (the coarser the better)
CAUTION: This procedure requires the use of volatile chemicals and an irritant. Make sure to work in a well-ventilated area, wear safety glasses, safety gloves, and any other personal protective equipment you deem necessary. DO NOT WEAR CONTACT LENSES while working with volatile chemicals. Fiberglass can be a mild skin irritant. Long sleeves are recommended.
1. Measure, mark out, and cut the CSM pieces needed. There should be one piece for each surface receiving the insulation. Allot extra material for some overlap along the inside corners of the box as well as for material to stick up over the edges.
2. Sand the inner surfaces of the box that will receive the fiberglass. This step is to roughen the aluminum surface for better bondage with the resin.
3. Wash out the inside of the box (it’s aluminum and won’t rust) with soap and water. Dry completely (blast with compressed air if available).
4. Tape down drop cloth over your work surface (if using). While wearing latex gloves wipe down all surfaces with an acetone-soaked paper towel. Dispose of gloves used gloves.
5. Find the combined mass of all the fiberglass pieces. Put on a fresh pair of gloves and pour out 1.5-2 times that mass amount of resin (it’s better to have more than not enough so you don’t have to scramble to mix more while the first batch starts curing). Add 1-5% mass of catalyst to the resin. Mix. DO NOTbeat or whip the resin as air bubbles need to be avoided. Make sure to churn the bottom resin up to ensure complete mixing of the catalyst and resin.
6. Mix for about 5 minutes or until the mixture turns an amber color.
7. Place the pieces over the aluminum sides and wet out the fibers by dabbing resin with the paintbrush. Make sure to properly wet out the fibers – they will turn translucent. Again it is better to have applied extra resin. Immediately submerge paint brush is acetone once finished wetting out if you want to re-use the brush. Otherwise leave it in a well-ventilated area or fume hood for the polyester in it to fully cure (12 hours). DO NOT leave on a counter for it will cure to the counter. Rest it over the edge of the mixing cup.
8. Wait 30 min and then slice off the excess fiberglass that sticks up out of the box with the utility knife. It will be easiest during this stage of cure.
9. Allow the box to cure untouched for at least 12 hours. Leave the mixing cup and stick in a well-ventilated area or fume hood to finish curing. DO NOT leave the mixing stick on the counter for it will cure to it. Rest it over the edge of the mixing cup.
DO NOT POUR ANY UNCURED RESIN DOWN A SINK – once cured the resin is safe to dispose of in regular trash.
Post-processing: DO NOT DRY SAND OR FILE FIBERGLASS WITHOUT A RESPIRATOR, SAFETY GLASSES, GLOVES, AND A DUST COLLECTION SYSTEM. Fiberglass can permanently irritate and destroy lung tissue if inhaled (similar to asbestos). Wet sanding is the best way to eliminate fiberglass dust from getting into the air.
10. Once completely cured, Dremmel out any holes or surfaces that may have been covered accidentally with resin while taking all aforementioned safety precautions. Use clamps to hold the plastic to the metal when drilling holes to prevent separation.
11. Carefully sand down plastic, creating a level surface. Be careful not to sand the material off however.
12. After all post processing (external and internal) to the box is complete (including priming and painting) bake the box at 120⁰F for 30-60 minutes in an oven where food will not be prepared. Make sure to run a fan or vent hood while baking as the box will outgas styrene (not healthy) as it bakes. DO NOT raise the temperature above 120⁰F.
Step 13: Battery Box Shelf
- 1/8" Thick Sheet Aluminum
- 1/4" Thick Acrylic Sheet
- Four-> 1" Pipe Clamps
- Eight-> 1/4-20 Button Head Screws and Nuts
The shelf for the battery box is made out of 1/8" thick sheet aluminum.
- Use the attached drawing as a guide to cut out the basic shape out of sheet metal, and drill the holes. The holes are 0.257" in diameter (although a 1/4" drill would probably do just fine).
- You can either cut along the double line that is 5.45" from the bottom and weld the two pieces together, as shown in the photo, or you can bend the sheet metal 90° along that line (whichever is easiest).
- Attach the shelf to the stander using 1" pipe brackets as shown in the third photo. To make the clips fit, you may need to re-shape them using some pliers or vise-grips, as shown in the fourth photo.
- Tighten the shelf down using 1/4-20 screws and nuts, as shown.
Feel free to paint the components as you see fit. In our completed build, we painted them black.
Step 14: Electrical System
There are 3 main Parts to the Electrical system, the stander driver, stander controls, and the remote.
The Stander Driver
This is the part that remains on the stander at all times. After you build it you shouldn't have to mess with anything inside the battery box. This is the part that will do most of the heavy lifting as far as the control system is concerned. It asks the other 2 pieces for their input and will take those and a few other things into consideration, (potentiometer and bump sensor), and will translate all of that into a speed for the wheels. This also encompasses the motor drivers and any other electrical parts on the stander that aren't ever switched out.
The controls should be changeable as long as there is a UART connection up top that will respond when called with a named button response. Theoretically another protocol could be written so that a direction and speed could be sent from the controls to the stander driver, but for ease of use considerations for the patients with CP discrete button presses are preferred here.
This works almost exactly like the stander controls, minus the fact that its UART connection goes over a bluetooth bridge. The bluetooth has to be paired up in software.
Step 15: Stander Driver System
Crimp tool /wire stripper
Soldering Iron / Solder
-and your choice of whatever you use to solder with (flux, metal sponges, etc...)
One->Tiva C Launchpad
Four -> 1x10 female header pins (100mil spacing)
One -> 1x40 Male header pins (100mil spacing)
One -> LM7805
Two -> .1uF Capacitors
Two->HB25 Motor driver
Two-> Motor/Wheel assemblies
One-> SPST Switch
One -> USB cable with USB A male end (1.5'+)
One -> USB A female socket - or - cable with USB A female end (5"+)
Two -> 8" black wire at least 16 gauge
One -> 12" black wire at least 16 gauge
Two -> 8" red wire at least 16 gauge
Two -> 4" red wire at least 16 gauge
Six -> Large Ring connectors
Seven -> Small ring connectors
Two -> 4" 3 wire servo cables with male and female ends
Four -> 3 wire servo cables with 2 male ends (2x8", 2x18")
Four ->3 wire servo cables with 3 female ends (2x10", 2x12")
One -> Spool of thin flexible wire (I used 24 gauge solid copper)
The Easiest way to do this is to make all of the connections to the TIVA launchpad last. To do this we will make 2 long connectors that will connect the TIVA Launchpad to the breadboard. My connector had this pinout:
1 - 3.3V
2 - PB0 - Bluetooth UART receive
3 - PB1 - Bluetooth UART transmit
4 - PE4 - Stander controls UART receive
5 - PE5 - Stander controls UART transmit
6 - PB4 - Bumper
7 - VBus - Power supply
8 - GND - Ground
9 - PD0 - Right side (master) PWM
10 - PD1 - Left side (slave) PWM
11 - PE2 - Potentiometer
12 - PC5 - Left side (slave) phase A
13 - PC6 - Left side (slave) phase B
14 - PD6 - Right side (master) phase A
15 - PD7 - Right side (master) phase B
The number on the left is what row on the breadboard it fits into. Following the schematic above connect the breadboard together with plugging in the TIVA Launchpad.You will need to make or get a number of 3 wire servo cables. Any end that connects into the breadboard will need to end in a male connector.
- Crimp one end of each of the 3 (8", 8", & 12") black wires together in a large ring connector, this will hook onto the battery's ground terminal
- Connect the shortest black wire into the ground line of the breadboard
- Crimp small ring connectors onto the other ends of the 2 remaining black wires. Connect these to the (-) terminals on both of the HB-25 motor controllers
- Crimp a large ring connector onto the 8" red wire, this will connect to the battery's +12V terminal
- Crimp a small ring connector onto the other end of the short red wire, connect this to the SPST switch.
- Crimp one end of a 4" red wire and the 8" red wire together with a small ring connector. Connect that ring to the second terminal SPST switch.
- Crimp the other end of each wire to a small ring connector and connect to the (+) terminals on the HB-25.
- Crimp a small ring connector onto a 4" red wire connect this to second terminal of the SPST switch. (the same one you connected to the HB-25's
- Connect the other end of that 4" cable to the input pin (pin 1) of the LM7805
- Crimp the large hobby snap connectors to the motor leads. Red wire to red side of the connector. Do this for both motors
- Crimp the large hobby snap connectors to the one end of 8" and 18" red and black 12 gauge wires.
- Crimp large ring small ring connectors onto you red and black 8" and 18" 12 gauge wires. Connect the 8" wires to the HB-25 motor controller at the top of the box. Red to M1 and black to M2.
- Run the 18" red and black wires through the bottom space of the box, connect the ring connectors to the HB-25 at the bottom of the box (the one that comes out when you open the electronics section)
Connecting the Peripherals
- Connect the 2 10" double female ended servo cables to the left side encoders encoders, mark which one is phase A and which one is phase B. Red should be 3.3V, Black should be GND, and white should be A or B.
- Connect the 2 12" double female ended servo cables to the right side encoders, mark which one is phase A and which one is phase B. (same as step 3)
- Connect the double male ended cables with 1 end to the phase A or phase B female ends and the other into a convenient location on the breadboard. Use the short cables for the right side, and the long cables for the left side
- Connect the 4" cables to the HB-25 motor controllers and teh other end to a convenient place on the breadboard
The USB port
Since I don't have a standard pinout, I made my own up.
- Cut the long USB cable so that you have the USB A male connector with a long length of cable (1.5'-2') is more than enough.
- strip the cable and wires and separate them out. There should be 4 insulated wires, this is what we'll connect to the stander controls.
- if you have a USB cable with a USB A female end do the same with that to separate out the wires. Otherwise if you have a freestanding USB A female socket just use that.
- Plug the male end into the female socket.
- Use a multimeter to test what wires are connected together on both ends of the connected cables. Connect the female end into the breadboard so that the pins match up on both ends as shown in the schematic on the lefthand side.
Now that all of the peripherals have connections onto the breadboard, you will need to wire up the connections to the rows where the TIVA C connections will be. This is easier without the TIVA C connector plugged in.
The TIVA C Connection
- Get 15 short thin flexible wires, all the same length.
- solder one end of each cable onto the pin end of the female headers where every pin of interest is. (See above list)
- Solder the other ends of the short wires in order onto a male header.
Step 16: Stander Controls: Buttons
Small phillips screwdriver
A drill with drill bits.
One->TIVA C Launchpad
Five -> 3.5 mm jacks (2 contacts)
One -> USB cable with USB A male end (1.5'+)
One -> Spool of small connecting wire
All connection here are made soldered onto the pin end of a female header.
- Solder one connector of each 3.5mm jack together with one wire left out on an end. Connect this to the 3.3V pin of the TIVA C
- Solder a wire onto the other connection of the 3.5mm jack and connect it to PB3. repeat for PC4, PC5, PC6, & PC7
- Drill holes in the project box large enough for your 3.5mm jacks.
- Use glue or epoxy to secure the 3.5mm jacks to the project box.
- Separate out and strip the wires of the USB cable, you may have done this already in the previous step
- Drill a hole large enough to fit the USB cable through in the project box. Feed the cable through before you do the next steps.
- Connect the VBus wire from the USB cable to VBus
- Connect the GND wire from the USB cable to GND
- Connect the PE5 wire from the USB cable to PB0
- Connect the PE4 wire from the USB cable to PB1
Step 17: Stander Remote Control
One-> WT12 Bluetooth Module
One->9 volt battery
One-> 9 volt battery connector
Two -> .1uF Capacitors
Five->Tacticle Push Buttons
Three->Plastic Spacers machined form Acrylic block: one 1.25"x2.5"x0.375", one 2.75"x1"x0.25", one 0.75"x1"x0.25"
The four directional buttons are arranged in a diamond pattern with the buttons 1" apart
Drill the holes for these buttons, along with the holes for the switches in either the configuration shown above or in a configuration comfortable for you.
Inside the box, glue the 1.25"x2.5"x0.375" so that the Tiva board can rest on it, and glue the other two spacers into an L-shape to contain the battery as shown in the picture above.
Note: Unfortunately, due to time constraints we were unable to complete the remote for our project. That means that we do not have the code or wiring diagrams for you for this feature.
Step 18: Programming
- TI makes it relatively easy to program the TIVA Launchpad. You will need 2 things:
- 1) Code Composer Studio 5.5.0 (CCS) found here. You will need to make an account with them, which may be an issue if you are outside of the United States.
- 2) You will need TIVAWARE, the peripherals driver library and utilities. They can be found here. You are going to want the SW-EK-TM4C123GXL-126.96.36.19973.exe file, which is the correct version.
- Install CCS according to their instructions, and add tivaware to the Include path. See the tivaware workshop #2 for direction on that.
- Download the projects here, unzip them and import it into CCS. There is one for the remote, and one for the stander driver.
- Check settings
- Make sure that the tIvaware folder is included in the search path of the project
- Add the preinclude symbols
- Right click the project, click Properties
- Choose Build -> ARM Compiler -> Advanced Options -> Predefined Symbols
- Click Add... and enter "PART_TM4C123GH6PM", and "UART_BUFFERED"
- While you are loading the Stander driver project and have the electronics box connected you will need to test that the wheels are turning in the correct direction.
- Place a breakpoint in the code at line 272
- Highlight Position.Master left click and select Add Watch Expression, repeat with Position.Slave
- Run the code until it stops at the breakpoint
- Turn the left wheel forward by hand, then hit Run on the debug session.
- The Position.Slave should have increased from 1500.
- Turn the right wheel forward by hand., then hit run on the debug session.
- The Position.Master should have increased - OR - Position.Slave should have decreased
- If in step 6 or 8 the behavior did not match what was expected, you will need to change some code.
- If in step 6 the slave position decreased change line 104 between
- QEIConfigure(QEI1_BASE, QEI_CONFIG_CAPTURE_A_B|QEI_CONFIG_NO_RESET|QEI_CONFIG_QUADRATURE|QEI_CONFIG_SWAP, 3000);
- QEIConfigure(QEI1_BASE, QEI_CONFIG_CAPTURE_A_B|QEI_CONFIG_NO_RESET|QEI_CONFIG_QUADRATURE|QEI_CONFIG_NO_SWAP, 3000);
- QEIConfigure(QEI0_BASE, QEI_CONFIG_CAPTURE_A_B|QEI_CONFIG_NO_RESET|QEI_CONFIG_QUADRATURE|QEI_CONFIG_SWAP, 3000);
- QEIConfigure(QEI0_BASE, QEI_CONFIG_CAPTURE_A_B|QEI_CONFIG_NO_RESET|QEI_CONFIG_QUADRATURE|QEI_CONFIG_NO_SWAP, 3000);
You have now loaded all the code, Your hardware may require some debugging so be sure to debug thoroughly.
Step 19: Obstacle Avoidance With the Bump Sensor
The bump sensor is set up to stop if the command entered is forward once the trigger is activated. The user can back up to avoid the obstacle.
How to Build the Bump Sensor
- One Half of a 2 inch PVC pipe painted red
- Two 2.5 inch aluminum right angle brackets
- 1/8 inch thick aluminum bar that is 1 inch by 18.25 inch
- Two Bump Sensor switches