PROJECT DEVELOPMENT

PROJECT DEVELOPMENT

  • This week, here I am documenting my project progress and the way I have worked step by step for development of final project.
  • I am starting by answering few questions related to progress of project development.

What tasks have been completed, and what tasks remain?

  • I have completed designing of my final project board in week 11, and used it for input and output device as well.
  • Although I have made some modification and came up with v2.0 of Fila X board for final project use.
  • Designing and Fabrication of structural parts are yet to be done, and accordingly final integration will be done.

What has worked? what hasn't?

  • I have tested my board with cartridge heater, geared DC motor, and NTC thermistor, and it worked well to give expected result.
  • Melting plastic with cartridge heater is also tested, and it worked, but extrusion of plastic material with structural mechanism is yet to test.

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?

What questions need to be resolved?

  • I have tested electronics and mechanics individually and input and output devices worked quite well, yet integration with mechanics could be crucial part to work.

What will happen when?

I have scheduled my work as below :

  • Mechanics part design : 6th June
  • Fabrication of assembly parts: 7th & 8th June
  • Structure assembly test: 9th June
  • System Integration and functional test: 9th & 10th June

What have you learned?

  • Throughout the weekly work it helped to understand different design and fabrication requirements. The most important aspect I have learned is system integration, and requirement for it, from defining design parameters to selection of component or right fabrication techniques.

My final project development progression

  • As per above mentioned schedule I have started working, and below is how I have proceeded.

ELECTRONICS DESIGN AND PRODUCTION

  • For my Fila X board, here I came up with Fila X v2.0 board.
  • In this I have replaced small dc power jack with 2.1 mm barrel dc power jack. Main reason was that 1.5 mm small dc barrel jack created short circuit to vcc and ground of 12v power supply.
  • 1.5mm dc female jack
  • 2.1mm standard female jack
  • For milling this new design I have exported gray-scale png image file and converted it into three different file for trace, drill holes and cutting of board.
  • Fila X v2.0 board Trace file
  • Fila X v2.0 board Trace file
  • Fila X v2.0 board cut file
  • Milling of v2.0 board
  • Milling of v2.0 board
  • Soldered v2 board

PROGRAMMING OF BOARD

  • Here I have to program my board to run two output devices and one input device as such cartridge heater, dc motor and NTC thermistor
  • So, I started with basic program and checked working of all three input-output devices.

int m1 = 4;

int m2 = 3;

int h1 = 7;

int h2 = 6;

int h3 = 5;

#include <SoftwareSerial.h>

 

SoftwareSerial mySerial(10, 11); // RX, TX

#include "thermistor.h"

#include "HardwareSerial.h"

 

 

// Analog pin used to read the NTC

#define NTC_PIN               A0

 

// Thermistor object

THERMISTOR thermistor(NTC_PIN,        // Analog pin

                      10000,          // Nominal resistance at 25 ºC

                      3950,           // thermistor's beta coefficient

                      10000);         // Value of the series resistor

 

// Global temperature reading

uint16_t temp;

 

void setup()

{

  Serial.begin(9600);

  mySerial.begin(9600);

  for(int i=3;i<8;i++)

  {

    pinMode(i, OUTPUT);

  }

}

void loop()

{

  digitalWrite(4,HIGH);

  digitalWrite(3,LOW);

  digitalWrite(h1,HIGH);

  digitalWrite(h2,HIGH);

  digitalWrite(h3,HIGH);

 

  temp = thermistor.read();   // Read temperature

 

  Serial.print("Temp in 1/10 ºC : ");

  Serial.println(temp);

  mySerial.print("Temp in 1/10 ºC : ");

  mySerial.println(temp);

 

  //delay(5000);

}

  • Temperature value of cartridge heater on serial monitor
  • Motor, heater and thermistor are connected with v2 board.
  • Functionality of Input output devices with v2 board
  • Program for PID temperature control, so that heating element of my project will remains at the desired temperature.
  • For this I have got reference from Damon's random rambling blog

#include <PID_v1.h>

#include "thermistor.h"

#include "HardwareSerial.h"

 

// Analog output pin

#define outputPin 5

#define outputPin2 6

 

// Motor pin

#define m1 3

#define m2 4

 

// thermistor analog pin

//#define THERMISTORPIN A0

#define NTC_PIN               A0

THERMISTOR thermistor(NTC_PIN,        // Analog pin

                      10000,          // Nominal resistance at 25 ºC

                      3950,           // thermistor's beta coefficient

                      10000);         // Value of the series resistor

 

// Global temperature reading

uint16_t temp;

 

// how many samples to take and average

#define NUMSAMPLES 5

// how long between pid/sampling

#define SAMPLETIME 1000

//Define Variables we'll be connecting to

double Setpoint, currentTemp, Output;

//Specify the links and initial tuning parameters

PID myPID(&currentTemp, &Output, &Setpoint,15,.3,0, DIRECT);

 

void setup()

{

  Serial.begin(9600);

  analogReference(EXTERNAL);

  pinMode(outputPin, OUTPUT);

  pinMode(outputPin2, OUTPUT);

  pinMode(m1, OUTPUT);

  pinMode(m1, OUTPUT);

 

  //initialize PID setpoint *C

  Setpoint = 190;

  //turn the PID on

  myPID.SetMode(AUTOMATIC);

  myPID.SetSampleTime(SAMPLETIME);

  //pid Autotuner

}

void loop()

 

{

  digitalWrite(m1,HIGH);

  digitalWrite(m2,LOW);

 

  if (Serial.available() > 0)

  {

    // get incoming byte:

    Setpoint = Serial.parseFloat();

  }

  uint8_t i;

  double average = 0;

  // take N samples in a row, with a slight delay

  for (i = 0; i < NUMSAMPLES; i++)

  {

    temp = thermistor.read();

    average += temp;

    delay(10);

  }

  average /= NUMSAMPLES;

  currentTemp=resistanceToC(inputToResistance(average));

  myPID.Compute();

  analogWrite(outputPin, Output);

  analogWrite(outputPin2, Output);

 

  Serial.print("Set Point: ");

  Serial.print(Setpoint);

  Serial.println(" *C)");

  Serial.print("Temperature: ");

  Serial.print(currentTemp);

  Serial.println(" *C)");

  Serial.print("PID output ");

  Serial.println(Output);

  delay(SAMPLETIME);

}

double inputToResistance(double input) {

  // funtion to convert the input value to resistance

  // the value of the 'other' resistor

  double SERIESRESISTOR = 10000;

  input = 1023 / input - 1;

  return SERIESRESISTOR / input;

}

double resistanceToC(double resistance) {

  // funtion to convert resistance to c

  // temp/resistance for nominal

  double THERMISTORNOMINAL = 118000;

  double TEMPERATURENOMINAL = 25;

  // beta coefficent

  double BCOEFFICIENT = 3950;

  double steinhart;

  steinhart = resistance / THERMISTORNOMINAL;     // (R/Ro)

  steinhart = log(steinhart);                  // ln(R/Ro)

  steinhart /= BCOEFFICIENT;                   // 1/B * ln(R/Ro)

  steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)

  steinhart = 1.0 / steinhart;                 // Invert

  steinhart -= 273.15;   // convert to C

  return steinhart;

}

Structure parts CAD design and Fabrication

  • Now for the parts design I have to first design cylinder pipe clamps and dc motor holder.
  • For this I have designed 3d CAD model in Rhino.
  • Design iterations and different version

3D Printing of pipe clamp

  • 3D Printing of Clamps with ABS material
  • For 3d printing one must print clamp in flate direction, as below orientation, otherwise layer may come apart when clamping pipe.
  • 3D Printing with ABS material

Design & Fabrication of motor mount

  • Design of geared dc motor I have designed in Rhino and accordingly 3d print it with ABS material in Ultimaker.
  • Slicing file in Cura
  • 3D Printing with ABS material

Design of heater and nozzle element & Aluminum casting

  • Design of heater element and nozzle module I have designed it, and fabricated it with aluminum casting.
  • Here I have used 3D printed positive mold, sand castinf for negative mold, and aluminum liquid as casting material
  • Detailed documentation for this process has been done in Molding & Casting week page.
  • 3D Printing with PLA material
  • 3Sand Mould from 3d printed part
  • Aluminum casted part with runner
  • Final casted part

Laser cutting casing 2D CAD design

  • 2D CAD design of project
  • Laser cutting with MDF material

3D CAD design of complete final project

  • Here I have designed completed 3D CAD of my final project and from that I derived overall casing 2D drawing file, so that I can get exact idea about how my project is going to look like.
  • 3D CAD design of final project
  • Rendered model of my project

Assembly and Integration

  • Here first thing I have done is collect all the parts of my final project and start mechanical assembly
  • Assembly parts
  • Structure and system integration exploded view
  • Final Assembly

Material feeding test before final run

  • I have faced many failure before this test, previously material was colliding with pipe surface and it was not pushing forward.
  • This problem was because of geometry of Augur bit.
  • At the end correct type of Augur bit is which shown in assembly photo, and it worked!
  • In video it can be seen how smoothly material is being pushed forward without any resistance.

Fila X extrusion test

  •  Here I have used waste 3d printed PLA part plastic pallets as input material. For this I have shredded printed object and got fine plastic pallets.
  • For this I have set heater temperature as 210 degree Celsius and motor speed as 30 rpm.
  • In order to start extruding, heater takes around 4.5 minutes to reach required temperature.

Observation and future scope

  • After developing project and passing through complete process, following observations I have made for filament extruder.
  • For now flow rate was not consistent, may be due to slow extruder speed.
  • Also material thickness was sometime even but sometime it was very uneven, so that it can be resolved in future.
  • For power supply it is advisable to use external relay for one heater power.
  • Its also advisable to use winding mechanism to pull material in even manner.

Observation and future scope

  • All the original files including 2D and 3D CAD, board files, program files can be downloaded from here as package.

Go to Final Project page

Go to Weekly work page

2018 | Tanvir Khorajiya