Styra en RepStrap bearbetning (15 / 25 steg)
Steg 15: Arbetar mot en 3D utskrift...
Koden är steg 14 behöver finjusteras lite för att stegmotorer. Huvudsakligen ändra som när bollar hastigheten är noll - motsvarande nummerlistan måste inaktiveras.
Här är koden bearbetning. Detta körs endast ett lager, många lager måste staplas att göra en 3D utskrift.
Bearbetning / / /
/**
* boll spår fram och tillbaka över fönstret i ett nät som kommer att vara användbart för plast utskrift
*/
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int ledPin = 13.
int XstepPin = 2;
int XdirPin = 3;
int XenablePin = 4;
int YstepPin = 7.
int YdirPin = 10;
int YenablePin = 8;
int storlek = 10; Formens bredd
float xpos, ypos; Startpositionen för formen
flyta xspeed = 3; Hastigheten på formen
flyta yspeed = 0; / / hastighet av formen
int directionX = 1; Vänster eller höger
int directionY = 1; Uppifrån och ned
void setup()
{
storlek (200, 200);
noStroke();
frameRate(30);
Smooth();
Ange startpositionen för formen
Xpos = 0;
ypos = 0;
Background(102);
installationsprogrammet för kommunikation med Arduino
Arduino = nya Arduino (denna, Arduino.list() [0], 57600); v1
arduino.pinMode (XstepPin, Arduino.OUTPUT);
arduino.pinMode (XdirPin, Arduino.OUTPUT);
arduino.pinMode (YstepPin, Arduino.OUTPUT);
arduino.pinMode (YdirPin, Arduino.OUTPUT);
arduino.pinMode (EstepPin, Arduino.OUTPUT);
arduino.pinMode (EdirPin, Arduino.OUTPUT);
arduino.pinMode (EenablePin, Arduino.OUTPUT);
}
void draw()
{
Background(102);
Uppdatera placeringen av formen
Xpos = xpos + (xspeed * directionX);
ypos = ypos + (yspeed * directionY);
ändra riktning när bollen träffar kanten - Rita en kvadrat
börjar på vänster och går mot höger
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 0) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 20) {
directionX = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 20) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 40) {
directionX = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 40) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 60) {
directionX = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 60) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 200 X kanten
om (xpos < 0 & & ypos == 80) {
directionX = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 80) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 100) {
directionX = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 100) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 120) {//down
directionX = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 120) {
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 140) {
directionX =-1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 140) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 160) {//down
directionX = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 160) {
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 200 X kanten
om (xpos > bredden-storleken & & ypos == 180) {
directionX =-1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > 0 & & ypos == 180) {
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 200 x kanten
om (xpos > 0 & & ypos == 200) {
directionX = 1;
yspeed = 0;
xspeed = 2;
}
BERÄTTA ARDUINO VILKEN VÄG ATT SKICKA MOTORS
om (directionX > = 0) {
arduino.digitalWrite (ledPin, Arduino.HIGH);
arduino.digitalWrite (XdirPin, Arduino.HIGH);
}
annat {
arduino.digitalWrite (ledPin, Arduino.LOW);
arduino.digitalWrite (XdirPin, Arduino.LOW);
}
om (directionY > = 0) {
arduino.digitalWrite (ledPin, Arduino.HIGH);
arduino.digitalWrite (YdirPin, Arduino.HIGH);
}
annat {
arduino.digitalWrite (ledPin, Arduino.LOW);
arduino.digitalWrite (YdirPin, Arduino.LOW);
}
om (xspeed == 0) {
arduino.digitalWrite (XenablePin, Arduino.HIGH);
}
annat {
arduino.digitalWrite (XenablePin, Arduino.LOW);
}
om (yspeed == 0) {
arduino.digitalWrite (YenablePin, Arduino.HIGH);
}
annat {
arduino.digitalWrite (YenablePin, Arduino.LOW);
}
Dra formen
ellips (xpos + storlek/2, ypos + storlek/2, storlek, storlek);
}