Prometheus

2013 - 2014

Outline


  • Goals
  • Team
  • Mechanical
  • Electronics
  • Software
  • Demo
  • Issues
 

Systems overview


  • The robot arm - "Prometheus"
  • Inherited the project from last year
  • All the codes as well as electrical schematics and STLs for the 3D printed parts are available in the Github repository

Mechanical Overview

Robotic Arm


Electrical overview

Full schematic diagram


Title


arduino pro mini


ARduino pro Mini

  • Breakout board of the Atmega 329
    • 5V 16MHz version
    • Atmega 329
    • 16MHz crystal oscillator
    • 3.3V voltage regulator
    • Reset push-button
    • Indicator LED

Arduino pro Mini pin FUNCTIONS

  • Arduino pro mini contains 13 digital pins and 4 analog pins
    • digital pins receive and transmit information in binary form
    • analog pins feed into 10-bit analog to digital converter, and read a voltage from 0V to 5V

Arduino mini pro communication

  • Two methods of communication
    • SPI bus
      • reserved for USB communication
    • I2C bus
      • requires one device to be set as the Master and subsequent devices to be set as slaves
      • occupied by the PWM generator

PWM generator

  • Adafruit breakout board - PCA9685PW
    • requires 5V power and ground and standard two wire I2C communication port
    • 16 individual outputs which are ordered into triplets: 2 control signal, 1 PWM signal
      • 2 control signal - directional/control outputs

VNH2sp30


MC33926


Motor drivers

  • VNH2SP30 - dual H-Bridge motor driver carrier
    • capable of supplying 30A of current to the motors
  • MC33926 - standard H-Bridge motor driver carrier
    • capable of supplying 3A (5A peak) of current to the motors

Encoders

  • The arm requires 5 encoders

Multiplexer


  • CD74HC4067 - 4 bit, 16 input multiplexer
    • Each input from 0 to 15 corresponds to a 4 bit binary address

Multiplexer truth table


 

Software overview


software map

prometheus-remote-control-diagram.png
  • The control software for Prometheus
    • 2 Microcontrollers
    • Arduino - low level controls for the arm
    • Raspberry Pi - higher level functions
    • Communicate over Serial

Arduino Software

Prometheus-Sistine-Chapel-Diagram.png

Arduino software

  • SistineChapel - Arduino Software
    • motorController - lowest level of code and directly controls the in/out pins 
    • multiplexer - next level of code to control the multiplexer on the circuit board
    • robotArm - contains the basic functions to control the movements of the arm
    • PMotorSpeed - contains proportional calculations for the PID controller
    • PIMotorSpeed - inherits PMotorSpeed class and contains integration calculations for the PID controller
    • commandProcessor - communicates between the Arduino and Raspberry Pi
    • debugger -  test and debugging purposes

Raspberry Pi Software Map

Screenshot from 2014-05-16 13:21:47.png

Raspberry Pi Software

  • Narthex - Raspberry software
  • Narthex - composed of two main parts
    • Server side
    • Client side

Narthex server side

  • Narthex server side uses Python
    • Utilizes the Twisted even driven networking engine
  • Narthex server sides forms a bridge to allow communication between the Arduino and the remote control interface
  • Communicates with the Arduino using Serial over USB
  • Server side has three main parts:
    • server.py
      • The main program which runs all the other portions of the code
    • PrometheusSerial.py
      • handles communication with the Arduino
    • PrometheusSocket.py
      • Handles communication with the remote control interface
  • Narthex is designed to handle multiple remote control interfaces at the same time

Narthex Client side

  • The client side served to the users' browsers when they point it the IP or the Raspberry Pi
    • 10.33.0.2
  • The webpage contains Javascript
    • Provides communication with the server side and the Arduinio
  • The interface makes use of serveral 3rd party javascript libraries
    • three.js
      • Provides the 3D rendering of the arm to give the user visual
    • knockout.js
      • Provides two-way synchronization between the Javascript data models and the user interface

Systems Challenges


  • Communication - even within smaller group difficulties were found communicating
  • Arranging time for meeting - due to individual schedules being different, to accommodate time to meet was difficult

Mechanical Design Challenges

Electrical DESIGN CHALLENGES

Title

  • Fundamental design of the circuitry is inherently flawed
    • Arduino appeared to never read the full range of the analog encoder
    • The incoming signal never reached 0V or 5V
    • The source of the problem is due to the type of ADC on the ATMEGA328 chip

Title

  • The I2C bus is a serial port which adds a delay between commands and motion
  • The multiplexer adds on through its propagation delay
  • The multiplexer adds unecessary resistance to the encoder voltage

Software DESIGN CHALLENGES

Arduino Challenges

  • The motorController class requires modification of the speed function
  • The robotArm class contains low level codes to directly communicate with in/out pins
  • PMotorSpeed, PIMotorSpeed classes both require tuning of proportional and integral terms for more accuracy
  • PIDMotorSpeed is not complete and also would require tuning
  • commandProcessor class does not have any problem on the software side; however, due to hardware limitations

Raspberry Pi Challenges

  • The client side of the Narthex code is not completely tested and has several issues
  • The remote control interface does not correctly read the joint limits
  • Features for multi-client syncing have been build into Narthex but are not finished
  • Remote control interface does not take collision detection into account
  • The remote control interface also does not read the setpoints from the Arduino when it is first started

Mechanical Future Plan


Future plans

  • Complete and design end effector
  • Remove slop from remaining joints
  • Redesign damaged parts


Electrical Future plans

Future plans

  • The electronics will switch from Arduino to the Beaglebone Black
    • multiplexer and PWM generator will be unnecessary
    • encoders will connect directly to the Beaglebone Black along with motor drivers
  • The arm will have an independent power supply
  • Pressure sensor will be added for grip measurement and control
  • Emergency stop

Software future plans

Potential solutions

  • The solution to control the speed of the motors is not yet figured out and will be one of the criteria for the future work
  • The direct communication between the in/out pins and the arduino is temporary and will be abstracted away
  • PID controller will require tuning and this can be done through series of testing and calculations
  • The issue found in communicating between arduino and raspberry pi will be addressed by change in hardware

Future Plans

  • Hardware change
    • In version 2, arduino and raspberry pi will be replaced by single board, Beaglebone Black
  • With the change in hardware, the software team can integrate ROS and their inverse kinematics libraries
  • The software team will rewrite the code in order to run Prometheus with this new Beaglebone Black
  • PID controller requires coding to accommodate the new board
  • Once the PID controller codes are written, the software team needs to tune the PID in order to minimize the errors

Demo

Question & Answer

credit

  • Capstone Advisor: Voden, Tom
  • Mechanical Mentor: Toorian, Armen
  • Electrical Mentor: Ohanian, Richard
  • Software Mentor: Isayan, Sevada


    • Mechanical :
      •  Zograbian, Roman
    • Electrical:
      •  Hovhannisyan, Ernest
 
    • Software:
      •  Kim, Sung Hoon
      • Litomisky, Marek

"G.O.D.D."

Presentation

2013 - 2014

Capstone 2013-2014 Team





PICTURE HERE DAWG

Outline


Decision
Organization
Requirements
Experience
Future Plans
Q&A
-----------------
Mechanical Overview
Electrical Overview
Software Overview
Q&A

3d Printer

Enterprise                                    Hobbyist
($30,000-$250,000+) Cheap ($700-$2,500)
Propietary Materials Universal Materials

decision


Arm project used 3D-printed parts
New Technology
Equal distribution of mechanical, electrical, and software

skyler

Organization

Functional Block Diagram

Team Structure

3 Sub-Teams:
  • Mechanical
  • Electrical
  • Software

SChedule


Team Meetings: Every other Friday @ Noon
  • Progress check
  • Systems coordination
Sub-Teams had additional individual meetings

Requirements

  • Size: 24 x 24 x 18 inches

  • Bed moving in Z-motion

  • Dual extruders; moving independently of one another

  • Strong frame

  • Quality motion mechanisms

  • Modular

mechanical Overview


Lionel, John Paul
-Major: Mechanical Engineering; CSU Northridge Transfer

Khatchatourians, Rene
-Major: Aerospace Engineering; CalPoly Pomona Transfer

Talverdian, Tamara
-Team Lead
-Major: Mechanical Engineering; CalPoly Pomona Transfer

Preparation


purchasing












Challenges: 

Design

manufacturing

Technical


  • Structure
  • Z-Motion
  • Heat Bed
  • Y-Motion
  • X-Motion
  • Extruders
  •  

    Structure

    • Based on 80/20 beams

      • Single Beam

        • 1"x1"x18"

        • 1"x1"x22"

      • Double beam 

        • 2"x1"x24"

      • Corner Connectors.

    Structure

    Z-Motion

    • Integrated into the structure.

    • Custom 3D printed linear guide.
    • Driven by lead screw/worm gear-nut system.
    • Driven  by 4 motors/2 motor drivers.


    Custom Linear Guides









                           McMaster's                                        Custom Design

    Z-Motion

    Z-motion

    Lead Screw/nut system

    • 1/4"-20 Lead screw
    • Coupled to motor using plastic hose.
    • Nut: Printed and tapped.

    heat bed

    Components:
    • Heat sensor
    • Glass w/ clamps
    • Heat bed
    • Aluminum plate
    • TEC
    • Heat sink
    • Fan
    Motion:
    • Z-axis

    y-motion

    • Initial design: Belt drive system.
    • Changed to same drive system as Z-axis.
    • Zero-Backlash nut.

    x-motion

    Moves with Y-axis
    Driven by rack and pinion system
    Two individual motors for each extruder


    extruders

    Components:
    • Extruder carriage
    • Lock Mechanism
    • Brass barrel
    • Resistor Block
    • Nozzle (.2, .3, and .4mm)
    Motion:
    • X-axis
    • Feeds filament

    testing

    future work

    More efficient sliding mount design
    Complete bill of materials for future purchasing/building

    Electrical Overview


    the team


    Hovhannisyan, Ernest
    -Team Lead
    -Major: Electrical Engineering;  CalState LA Transfer

    Kim, Sung Hoon
    -Major: Computer Science/Engineering; 2nd Year GCC

    Safarian, Vivian
    -Major: Electrical Engineering; USC transfer

      Preparation

      -Research
      -Gen6 Board
      -Gen7 Schematic

      PROduction methods

      • Initially we directly soldered onto prototype boards
        • boards did not work -->
          •  switched to using solderless breadboards for layout and testing
              • minimized errors and number of boards/parts wasted

      • Used perforated prototype board for final motor driver board & heater and temperature board

      • Future goal: plan and design a PCB
        • neater, physically more appealing, space reduction 

      production methods





      solderless breadboard 
      prototype board

      purchasing

      -Compiling BOM's 

      Bill of materials

      • Selecting components that meet specifications 

      • Defining quantities 

      • Learning the importance of submitting in a timely matter 

      Design

      -Old vs New Schematic Diagrams
      -Block Diagram

      Design

      • Learned to define specifications that will work with existing circuitry 
       

      Original schematic


      New schematic

      Block Diagram

      Implementation

      -Microcontroller
      -Motor Drivers
      -Heaters & Fans

            



      atmega 2560

      • Power
        • Can be powered via the USB connection or with an external power supply - we are connecting to a computer via  USB  to power 
        • Board has two voltage regulators: 5V & 3.3V
        • The power pins:
          • 5V. Outputs a regulated 5V from the regulator on board.  Our board  will be supplied with power from the USB connector (5V).
          • 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
          • GND. Ground pins.

      ARDUINO mega 2560

      • microcontroller board based on the ATmega2560 
      • It has 54 digital input/output pins & 16 analog inputs
      • 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. 

      • The Mega2560 differs from  does not use the FTDI USB-to-serial driver chip. 
        • Instead features the ATmega16U2 (ATmega8U2 in the revision 1 and revision 2 boards) programmed as a USB-to-serial converter.

      Atmea 2560

      • Input/Output
        • Each of the 54 digital pins on the Mega can be used as an input or output, using pinMode()digitalWrite(), and digitalRead() functions
        • They operate at 5 volts
        • Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor
        • The Mega2560 has 16 analog inputs

      ENDSTOPS

      • Mechanical endstop
        • using 4
          • 2 for x-axis, 1 for y-axis, 1 for z-axis
      • Purpose: 
        • for software:  by pressing the endstop, designates the origin of the coordinate system
          • necessary because with the origin, cannot know/control where the motors are/go
      • Connected directly to Arduino
        • one line to 5V, other to digital pins on the Arduino 







      L297 & L298

      • L297 Stepper motor controller IC generates four phase drive signals for two phase bipolar and four phase unipolar step motors
      • Can be driven in half step, normal and wave drive modes
      • Requires only clock, direction and mode input signals
      • Can be used with monolithic bridge drives such as L298
      • L298 is an integrated monolithic circuit
      • It is high voltage, high current dual full-bridge driver
      • Designed to accept standard TTL logic levels
      • Two enable inputs are provided to enable or disable the device independently of the input signals

      allegro Stepper Motor Driver

      • A-4988 board
      • each driver has step and direction pins which will communicate with the Atmega 2560
      • Total of 6 motor drivers:
        • 2 x-axis
          • 2 independent motor drivers to control  2 separate motions
        • 2 extruders
          • to print different materials    
        • 1 y-axis
          • will drive 2 motors in parallel
        • 2 z-axis
          • will drive 2 motors in parallel per motor driver
          • one signal is shared between the two motor drivers

      Our Motor Driver board


      temperature

      • Heater Bed
      • Peltier Plate (TEC)
        • Will cool heat bed, takes 3 amps

      • Heater and Thermistor Board
        • Function: heat up the extruders, TEC place, & control the fan
        • 2nd Function: measure temperatures of 2 extruders and electronics area for safety 
        • Independent board to heat up as well as measure the temp. of the bed

      heater bed

      • Etched PCB Resistive heater


      • Designed for 12 V nominal power


      • Calculated current of approximately 45 A

      Peltier plate

      • things and stuff

      HEater block

      • Resistive heater
      • Standard Glow Plug
      • 3 A max 

      Temperature sensor

      • 10k Ohm Thermistor
      • NTC Type
      • max temperature

      analog filter


      H&T Board


      prototyping 

      -Equipment
      -Testing
      -Documentation

      Equipment

      • Digital Multimeter
      • Oscilloscope
      • Function Generator
      • Soldering Station/Desoldering Station
      • Power Supply
      • Hot Air Station



                                                                                      








        TESTING

        • Testing was done in modules
            • allows us to focus on one individual component at a time and identify errors more easily than if tested as a unit

        • Approach:

        1. Tested each component by itself to make sure it's working  properly
        2. Tested as an individual circuit
        3. Tested as a system
            • mechanical, electrical, software all in one

        DOcumentation

        • Documented after every milestone





        • Recorded progress in Electronics Guide
          • most relevant/useful documentation transferred to Google Doc



        • Used Google Doc 
            • easy access and editing
            • team was already acquainted with it

         

        challenges

        • Heater bed requires a separate board due to high amperage 
        • 5 identical motor drivers are no longer working with the board
        • Ground is not properly made
        -->
      • Digital and analog ground needs to be connected with an RF choke on mount
      • Casing for electronics
      • Make a separate heater bed board
      • Add surge protector in place of fuses
      • Software Overview

        Block Diagram

        Design Goals

        Design Challenges

        Arduino Software

        Challenges with Arduino

        Potential Solutions

        Results

        Future Directions

        Integration and Test

        Results

        Specifications

        experience

        question & answer

        Mentors


        Capstone Advisor: Voden, Tom

        Electrical Mentor: Ohanian, Richard

        Mechanical Mentor: Toorian, Armen 

        Software Mentor: Isayan, Sevada

        members

        Mechanical Team:
        Atkinson, John Paul
        Khajatourians, Rene
        Talverdian, Tamara 
        Electrical Team:
        Hovhannisyan, Ernest
        Kim, Sung Hoon
        Safarian, Vivian
        Software Team:
        Kim, Sung Hoon
        Litomisky, Marek
        Systems:
        Saleebyan, Skyler

        Copy of Marek was here

        By sungkim7790

        Copy of Marek was here

        • 2,844