Styra en RepStrap bearbetning (24 / 25 steg)
Steg 24: kontinuerlig mesh roterande 90deg varje lager
Detta visar en punkt kontinuerligt spårning nätmönster över ett X, Y planet.
Maskan är rotatated 90deg efter varje lager spåras.
Detta kan användas till utgång X, Y vägbeskrivning till stegmotorer.
Z-axeln kontroll kan läggas till detta.
Bearbetning / / /
/**
* Punkt rör sig fram och tillbaka över skärmen - omfattar rörlighet i X- och Y-riktning
Upprepas om och om igen, rotera 90deg varje gång ett lager är klar
tar några udda steg i början
använder olika variabler för att indikera att detta är pågående
(och eftersom jag glömde vad variabler som jag använde)
*/
int res = 50; utskriftsupplösning
int en = 10;
int b = 10;
int dir_a = 1;
int dir_b = 1;
int step_a = 1;
int step_b = 0;
int old_step_a = 1;
int old_step_b = 0;
int old_dir_a = 1;
int old_dir_b = 0;
int dir_switch = 0;
int old_dir_switch = 0;
int old_a = 0;
int old_b = 0;
int next_b = res;
int next_a = res;
void setup()
{
storlek (200, 200);
stroke(255);
Background(50);
}
void draw()
{
Background(50);
om ((en < 10 || en > höjd - 10) & & old_step_b == 0) {
dir_a = -1 * dir_a;
next_b = b + res;
dir_switch = 1;
}
om ((old_dir_switch! = dir_switch) & & b < next_b) {
step_a = 0;
step_b = 1;
dir_switch = 0;
}
om (b > next_b) {
step_a = 1;
step_b = 0;
next_b = b + res;
dir_switch = 0;
}
om ((b < 10 || b > bredd - 10) & & old_step_a == 0) {
dir_b = -1 * dir_b;
next_a = en + res;
dir_switch = 1;
}
om ((old_dir_switch! = dir_switch) & & en < next_a) {
step_b = 0;
step_a = 1;
dir_switch = 0;
}
om (en > next_a) {
step_b = 1;
step_a = 0;
next_a = en + res;
dir_switch = 0;
}
beräkna position
en = en + dir_a * step_a;
b = b + dir_b * step_b;
Visa punkt
Point(b, a); Syntax punkt (x1, y1)
lagra vissa värden som gamla för jämförelse
old_a = a;
old_b = b;
old_step_a = step_a;
old_step_b = step_b;
old_dir_a = dir_a;
old_dir_b = dir_b;
old_dir_switch = old_dir_switch + dir_switch;
Print(b);
Print(',');
println(a);
}