Project Development

Table of Content

  1. Project Management
  2. Mechanical Assembly
  3. Electronisc Assembly
  4. Programming
  5. Downloads
  6. Conclusions

Assignment

Complete your final project, tracking your progress:
  • what tasks have been completed, and what tasks remain?
  • what has worked? what hasn't?
  • what questions need to be resolved?
  • what will happen when?
  • what have you learned?

1. Project Management


Spiral Development Plan for Project

  1. Make Motor Assembly

    Get BLDC motor, ESC working & make a 2:1 Gear Drive Mechanism.

      Estimated Skills Required:

    • Power Electronics (Output Week)
    • Knowledge on Gear Transmission Mechanisms
    • 3D printing

    Estimated Completion:

    Output Week

  2. Make Slip Ring

    Make a 3 Channel Slip Ring which can pass LED signals through a Moving Axis

      Estimated Skills Required:

    • Electronics & Design
    • Knowledge on Slip Ring Mechanisms
    • 3D printing

    Estimated Completion:

    Mechanical Design Week

  3. Make Project Compatible Electronics

    Make an Electronics Block Diagram counting all the required I/O ports, connectors and power distribution. Make an Arduino Compatible board that meets the requirements.

      Estimated Skills Required:

    • Electronics & Design
    • Input & Output Devices

    Estimated Completion:

    Output Devices Week

  4. Integrate Motor Assembly and Electronics

    Integrate Motor Assembly and control board. Interface BLDC motor, Rotary Encoders and LEDs. Test Individual components and check power consumption. Iterate on control Board if necessary.

      Estimated Skills Required:

    • Electronics & Design
    • Input & Output Devices
    • Embedded Programming

    Estimated Completion:

    Wildcard Week

  5. Integrate Motor Assembly and Slip Ring Assembly to create the Base Assembly

    Integrate Slip ring and the Motor Assembly. Test the Coupler mechanism, iterate on it if necessary. Pass Signals through the Slip Ring Assembly and get LEDs working through Rotating Axis.

      Estimated Skills Required:

    • Electronics & Design
    • Input & Output Devices
    • Embedded Programming

    Estimated Completion:

    Invention, Intellectual Property & Income Week

  6. Create Rotating Arm Assembly

    Create a Rigid and balanced Rotating arm assembly that wont fly off or break at 1000+ RPM. Integrate Addressable LEDs into it and integrate it with the Slip Ring Coupler.

      Estimated Skills Required:

    • CAD Design
    • Material Testing & Sourcing

    Estimated Completion:

    Wildcard Week

  7. Finalize Assembly and Start Programming

    Finalize the mechanical Assembly, test all components on the integrated platform. Iterate on any integration issues.

      Estimated Skills Required:

    • Product Design & Integration
    • Embedded Programming

    Estimated Completion:

    Invention, Intellectual Property & Income Week

Actual Project Timeline:

2. Mechanical Assembly:


The Mechanical Assembly Comprises mainly of three main parts

  1. The Base Assembly
  2. The Slip Ring
  3. The Top Assembly

The Entire Design was done in Fusion 360 with all the parts as seperate files. This made changing or editing parameters much easier. Three Assembly files were made to bring everything together. The Files can be found here on a360 for the Full Assembly.




The Base Assembly:



The Base Assembly houses the Motor, Gear drive system, Electronics and all integrated wirings of the project. The Base Assembly consists of the following parts;

  1. Top Cover

    The Top Cover mounts on top of the Side Ring with three 12mm M3 screws. It has 4 mounting screw holes to connect to the Slip ring. It also has Cooling grills for the Motor.

    Fabrication Process:

    Laser Cut

    Material:

    Acryllic 5mm

    Files:

    1. DXF file
    2. stl file

  2. Base

    The Base has mounting holes for the motor, gear assembly, wire management, electronics and to connect to the side ring.

    Fabrication Process:

    Laser Cut.

    Material:

    Acryllic 5mm

    Files:

    1. DXF file
    2. stl file

  3. Side Ring

    The Side Ring has cooling grills all around and three mounting backets for the top and base. It also has a hole for the power jack to the main control board.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  4. Outrunner5010 Gear 30 Teeth

    The 30 teeth gear which goes around the 5010 BLDC motor I am using.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file (v2) for 5010 motor
    2. stl file (v1) for 2212 motor

  5. Coupler Gear 15 Teeth

    The 15 teeth gear connects to the Rotating Arm Assembly Shaft through the slip ring.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  6. Encoder Gear 15 Teeth

    The 15 teeth gear which houses the magnetic encoder.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  7. Encoder Wheel

    The Encoder holding the neodinium magnet which connects to the encoder gear.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  8. Hall Effect Sensor Mount

    A 3D printed Mount to hold the hall effect sensor mount firmly in place.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  9. Bearing Caps

    3D printed bearing caps to mount the inner rings of the 608zz bearings firm to the base. There are 2 of these inside each of the 15 teeth gears.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

The Slip Ring



  1. Slip Ring Outer Cover

    The Slip ring outer cover holds the 2409 bearings, spacers and the copper brushes in place. It also has screw mounts for locking the bearings in place while providing electrical contact with the outer rings of the bearing.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  2. Slip Ring Spacers

    The Slip ring spacers help maintain insulation between each of the bearings while providing pressure to the copper brushes and the outer rings of the 2409 bearings.

    Fabrication Process:

    3D printed.

    Material:

    2mm Acryllic

    Files:

    1. stl file
    2. DXF file

  3. Copper Brushes

    The copper brushes are made of copper tape on 1mm acryllic. They were cut on the vinyl Cutter.

    Fabrication Process:

    Vinyl Cut.

    Material:

    Copper Tape & 1mm Acryllic

    Files:

    1. stl file
    2. DXF file

The Top Assembly



  1. The Slip Ring Coupler

    The Slip ring coupler joins all the three parts of the assembly as it goes through the slip ring and couples with the coupler gear on the base assembly. It has built in channels for wires for the LEDs.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  2. LED Arm Lower End Lock

    The Lower end lock ensures equal spacing between the two sides of the LED arm while making the whole structure rigid.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file


  3. Upper End Lock

    The Upper end Lock acts as a cap for the rotating PVC pipe in the middle. It has a hole through it which allows the signal wires to pass through to the SS pipe that goes through it.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  4. Top Corner Mount

    The top Corner Mount attaches the LED arms with the SS pipe and locks onto it using 12mm M3 Screws & Nuts. There are two of these on each side.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  5. Bottom Corner Mount

    The Bottom Corner Mounts locks onto the Locking Arms using 30mm M3 Screws. It provides stability to the LED arms and reduces Flex. There are two of these on each side.

    Fabrication Process:

    3D printed.

    Material:

    PLA

    Files:

    1. stl file

  6. LED Arms

    The LED arms are made of 2mm Acryllic. The house the WS2812b leds and are held in place by the top corner mount and the bottom corner mount. There are two of these on each side.

    Fabrication Process:

    Laser Cut

    Material:

    2mm Acryllic

    Files:

    1. stl file
    2. DXF file

  7. Locking Arms

    The Locking arms are made 2mm Acryllic, they provice structural support and avoid flexing of the LED arms. There are a total of 4 of these, 2 on each side.

    Fabrication Process:

    Laser CUt

    Material:

    2mm Acryllic

    Files:

    1. stl file
    2. DXF file

3. Electronics Assembly


There are a total of three PCBs;

  • The Control Board
  • The Motor controller
  • The Hall Effect Sensor board

The Control Board:

The Controlboard for PixelFace were made during my Output Week.

PxFDuino v1.0
Schematic
Board Layout

Later I modified the board file according to my base assembly and designed v2 which integrates into my Fusion360 Design.

PxFDuino v2.0
Schematic
Board Layout

The Eagle project folder containing both versions can be downloaded here.


The Motor Controller:

The Motor Controller was a patchwork made during the last leg of the project. After I finished integrating everything and started programming, I realized that generating a PWM to control the ESC on my main loop was causing my LEDs to behave erratically. It is because the WS2812b are very picky about timing, and when the LED data is being sent out, it blocks the code. Add that with my interrupt routine for the Encoders, and we had some really weird LED behaviour. I made this board in an effort to take the motor control part into the ATTINY44, where a digital signal would just turn the motor on and off. I used the unused i2c pins on the control board to connect it to the control board.

PxFDuino v2.0
Schematic
Board Layout

The Eagle Project folder for this board can be found here.

The Hall Effect Sensor board

Just a breakout board for the 44e Hall Effect Sensor. A 10k pullup resistor is present between the output and the 5v.

PxFDuino v2.0
Schematic
Board Layout

The Eagle Project folder for this board can be found here.

4. Programming


The code for PixelFace was made to be as less non blocking as possible. Since all the components in this project are time critical, the delay function was used as less as possible. The interrupt routine for it was written in avr C to make it much faster than the built in arduino interrupt handler. Compiler optimization was done on gcc O2 to reduce run time.

Code to display a PokerFace:


Code to Display the Bangladeshi Flag:

Code for ATtiny44 Motor Subsystem:

5. Downloadable Files


All the Project Files as an archive (.zip)


6. Conclusions:


What Tasks Have been completed, and what tasks remain?

All tasks related to the project has been completed.

What has worked? What hasn't?

Everything has worked as planned except the material selection for the rotating arm assembly. It wasn't perfectly stable. 1100RPM was too much for acryllic. It worked but the acryllic bent quite alot. This high speed photo explains it well.

I believe changing the material from acrylic to something more rigid should fix it.

What Questions need to be resolved?

Will changing the material on the rotating arm fix the trailing issue?


I believe yes. Everything else has been optimized and iterated on many times to be as perfect as possible.

What will happen when?

I live in Bangladesh and we don't have full fledged fab labs here yet. I will work on improving my work as soon as I can work something out with the local resources that are available here.

For now, I would like to publish this as an instructables on a fitting contest.

What Have I learnt?

I can't even begin to make that list. Throughout this project I learn't so much!

  • I learnt how to make Engineering models in CAD softwares. Fusion 360 in particular.
  • I learnt how to 3D print and do print tolerance related corrections to get perfect dimensions inspite of material warping/shrinking issues.
  • I learnt how Gear transmissions work, how to produce them easily and customize them.
  • I learnt how to make custom sized PCB to fit a CAD design
  • I learnt how to handle interrupt routines in AVR C, how to optimize code and how to utilize timers.
  • I learnt how to make flexible electronics using the Vinyl Cutter.
  • I learnt how to use multiple microcontrollers as subsystems to reduce load on eachother.
  • I learnt how to make slip rings!
  • I learnt how time critical it is to communicate with WS2812b LEDs and what their limitations are.
  • I learnt to avoid writing blocking code (like delay)