8. Open source hardware: from fibers to fabric#

This week I began searching the web for how can I built a knitting machine using yarn and many different threads, the something which I was interested in when I saw many colors of threads are combined to gather to be one thread and it’s ready to use.

Research#

Useful links

[Spin city shop](https://spincityshop.com) MACHINE designs Brain storming

I start collecting information what I need in designing the machine and how it can work, so YouTube videos make sense. After searching, I draw the mechanism of the machine, and where I need to put the motors. I draw the machine on Solidworks software, cut the design on laser cutter machine using acrylic material thickness 8 mm. I used to make customized thread collector using wooden rodesŲŒI Drill it from the middle using driller machine. I 3D print a piece that closed the top of the thread collector to lock it. Motors I need, the big one (DC Motor with Gearhead 12VDC 74mA) is holdiny the long rod and it gives force to move the threads. and the small one is holding the rode that pulls the new thread.

Step 1

Step 2

3D printed parts that connect motors and the shaft

IMG_2298 from Al-zahra'a alomari on Vimeo.

The result

- Adding more threads to get different patterns.

Video

362ef387-7a9b-427d-bb5b-b9b050bf2c13 from Al-zahra'a alomari on Vimeo.

Her you can download all the components I designed to make the thread combiner machine

Electronics

I used H bridge and arduino uno for programing, moreover I added two potentiometer to controlling speed for two motors

Code Example#

int motor1a=6;
int motor1b=5;
int enable1=11;

int motor2a=9;
int motor2b=10;
int enable2=8; 

int pot1=A4;
int pot2=A1;
int pot1val=0;
int pot2val=0;

void setup() {
Serial.begin(115200);
Serial.println("hello ");
pinMode(motor1a,OUTPUT);
pinMode(motor1b,OUTPUT);
pinMode(enable1,OUTPUT);

pinMode(motor2a,OUTPUT);
pinMode(motor2b,OUTPUT);
pinMode(enable2,OUTPUT);


}

void loop() 
{
 pot1val = analogRead(pot1);
 pot2val = analogRead(pot2);

  digitalWrite(enable2,HIGH);
 analogWrite(motor2b,map(pot2val,0,1023,0,255));
 digitalWrite(motor2a,LOW);

 digitalWrite(enable1,HIGH);
 analogWrite(motor1b,map(pot1val,0,1023,0,255));
 digitalWrite(motor1a,LOW);

 Serial.print(pot1val);
 Serial.print("   ");
 Serial.println(pot2val);

}
  /*
 digitalWrite(enable2,HIGH);
 analogWrite(motor2b,63);
 digitalWrite(motor2a,LOW);

 digitalWrite(enable1,HIGH);
 analogWrite(motor1b,30);
 digitalWrite(motor1a,LOW);
 */

 }