Stap 15: Werken aan een 3D print...
De code is stap 14 moet worden getweaked een beetje om de stappenmotoren. De belangrijkste veranderen dat wanneer de snelheid van de ballen is nul - de overeenkomstige stepper moet worden uitgeschakeld.
Hier is de code van de verwerking. Dit kan alleen worden uitgevoerd één laag, veel lagen moeten worden gestapeld om een 3D print.
Verwerking / / /
/**
* bal sporen heen en weer in het venster in een maaswijdte die nuttig voor kunststof afdrukken zijn zal
*/
importeren van processing.serial.*;
importeren van 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 size = 10; Breedte van de vorm
float xpos, ypos; Beginopstelling van vorm
zweven xspeed = 3; Snelheid van de vorm
zweven yspeed = 0; / / snelheid van de vorm
int directionX = 1; Links of rechts
int directionY = 1; Van boven naar beneden
VOID Setup
{
grootte (200, 200);
noStroke();
frameRate(30);
Smooth();
De beginpositie van de vorm instellen
xpos = 0;
yPos = 0;
Background(102);
Setup communicatie met Arduino
Arduino = nieuwe Arduino (dit, 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);
Update de positie van de vorm
xpos = xpos + (xspeed * directionX);
yPos = ypos + (yspeed * directionY);
de richting wijzigen wanneer de bal de rand raakt-tot een vierkant tekent.
begint bij links en beweegt naar rechts
10 stappen omlaag
Als (xpos > breedte-grootte & & ypos == 0) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting totdat het raakt de 0 X-rand
Als (xpos > breedte-grootte & & ypos == 20) {}
directionX = -1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos < 0 & & ypos == 20) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting tot het hiths de 200 X rand
Als (xpos < 0 & & ypos == 40) {}
directionX = 1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos > breedte-grootte & & ypos == 40) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting totdat het raakt de 0 X-rand
Als (xpos > breedte-grootte & & ypos == 60) {}
directionX = -1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos < 0 & & ypos == 60) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting totdat het raakt de rand X 200
Als (xpos < 0 & & ypos == 80) {}
directionX = 1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos > breedte-grootte & & ypos == 80) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting totdat het raakt de 0 X-rand
Als (xpos > breedte-grootte & & ypos == 100) {}
directionX = -1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos < 0 & & ypos == 100) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting tot het hiths de 200 X rand
Als (xpos < 0 & & ypos == 120) {//down
directionX = 1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos > breedte-grootte & & ypos == 120) {}
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde richting totdat het raakt de 0 X-rand
Als (xpos > breedte-grootte & & ypos == 140) {}
directionX =-1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos < 0 & & ypos == 140) {//down
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde X richting tot het hiths de 200 X rand
Als (xpos < 0 & & ypos == 160) {//down
directionX = 1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos > breedte-grootte & & ypos == 160) {}
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde richting totdat het raakt de rand X 200
Als (xpos > breedte-grootte & & ypos == 180) {}
directionX =-1;
yspeed = 0;
xspeed = 2;
}
10 stappen omlaag
Als (xpos > 0 & & ypos == 180) {}
directionY = 1;
yspeed = 2;
xspeed = 0;
}
omgekeerde richting totdat het raakt de rand 200 x
Als (xpos > 0 & & ypos == 200) {}
directionX = 1;
yspeed = 0;
xspeed = 2;
}
ARDUINO VERTELLEN WELKE WEG TE VERZENDEN MOTORS
Als (directionX > = 0) {}
arduino.digitalWrite (ledPin, Arduino.HIGH);
arduino.digitalWrite (XdirPin, Arduino.HIGH);
}
else {}
arduino.digitalWrite (ledPin, Arduino.LOW);
arduino.digitalWrite (XdirPin, Arduino.LOW);
}
Als (directionY > = 0) {}
arduino.digitalWrite (ledPin, Arduino.HIGH);
arduino.digitalWrite (YdirPin, Arduino.HIGH);
}
else {}
arduino.digitalWrite (ledPin, Arduino.LOW);
arduino.digitalWrite (YdirPin, Arduino.LOW);
}
Als (xspeed == 0) {}
arduino.digitalWrite (XenablePin, Arduino.HIGH);
}
else {}
arduino.digitalWrite (XenablePin, Arduino.LOW);
}
Als (yspeed == 0) {}
arduino.digitalWrite (YenablePin, Arduino.HIGH);
}
else {}
arduino.digitalWrite (YenablePin, Arduino.LOW);
}
Teken de vorm
ellips (xpos + grootte/2, ypos + grootte/2, maat, maat);
}