top of page
Tzlil Elimelech
We designed the CNC engraving in Rhino in 3 steps.
We entered each step into the command in the Grasshopper and then transferred to the engraving.
Rhino
Step 2
Step 1


Step 3

Grasshopper

After the plate was ready, we wrote a command on the Arduino that would perform the lighting we wanted
Arduino
//Sensor Trig
const int trigpin1 =5;
const int trigpin2 =9;
const int trigpin3 =3;
const int trigpin4 =7;
//Sensor Echo
const int echopin1 =4;
const int echopin2 =8;
const int echopin3 =2;
const int echopin4 =6;
//Led Control
const int ledpin1=10;
const int ledpin2=11;
const int ledpin3=12;
const int ledpin4=13;
long duration1;
int distance1;
int safetyDistance1;
long duration2;
int distance2;
int safetyDistance2;
long duration3;
int distance3;
int safetyDistance3;
long duration4;
int distance4;
int safetyDistance4;
void setup() {
pinMode(trigpin1, OUTPUT);
pinMode(echopin1, INPUT);
pinMode(ledpin1, OUTPUT);
pinMode(trigpin2, OUTPUT);
pinMode(echopin2, INPUT);
pinMode(ledpin2, OUTPUT);
pinMode(trigpin3, OUTPUT);
pinMode(echopin3, INPUT);
pinMode(ledpin3, OUTPUT);
pinMode(trigpin4, OUTPUT);
pinMode(echopin4, INPUT);
pinMode(ledpin4, OUTPUT);
Serial.begin(9600);
}
void loop(){
//*****************************
// Serial.print("\ndistance1: ");
// Serial.print(distance1);
// Serial.print("\ndistance2: ");
// Serial.print(distance2);
// Serial.print("\ndistance3: ");
// Serial.print(distance3);
long duration, inches, cm;
Serial.println("START");
//sensor 3
digitalWrite(trigpin1, LOW);
delayMicroseconds(2);
digitalWrite(trigpin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin1, LOW);
duration1 = pulseIn(echopin1, HIGH);
distance1 = duration1*0.034/2;
Serial.print(distance1);
Serial.println();
//sensor 1
digitalWrite(trigpin2, LOW);
delayMicroseconds(2);
digitalWrite(trigpin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin2, LOW);
duration2 = pulseIn(echopin2, HIGH);
distance2 = duration2*0.034/2;
Serial.print(distance2);
Serial.println();
//sensor 4
digitalWrite(trigpin3, LOW);
delayMicroseconds(2);
digitalWrite(trigpin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin3, LOW);
duration3 = pulseIn(echopin3, HIGH);
distance3 = duration3*0.034/2;
Serial.print(distance3);
Serial.println();
//sensor 2
digitalWrite(trigpin4, LOW);
delayMicroseconds(2);
digitalWrite(trigpin4, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin4, LOW);
duration4 = pulseIn(echopin4, HIGH);
distance4 = duration4*0.034/2;
Serial.print(distance4);
Serial.println();
if(distance1>10){
digitalWrite(ledpin1, HIGH);
}
else{
digitalWrite(ledpin1, LOW);
}
if(distance2>10){
digitalWrite(ledpin2, HIGH);
}
else{
digitalWrite(ledpin2, LOW);
}
if(distance3>10){
digitalWrite(ledpin3, HIGH);
}
else{
digitalWrite(ledpin3, LOW);
}if(distance4>10){
digitalWrite(ledpin4, HIGH);
}
else{
digitalWrite(ledpin4, LOW);
}
// Serial.print("\duration4: ");
// Serial.print(duration4);
// Serial.print("\ndistance4: ");
// Serial.print(distance4);
delay(50);
//****************
// delay(1000);
// digitalWrite(ledpin1, HIGH);
// digitalWrite(ledpin2, HIGH);
// digitalWrite(ledpin3, HIGH);
// digitalWrite(ledpin4, HIGH);
// delay(1000);
// digitalWrite(ledpin1, LOW);
// digitalWrite(ledpin2, LOW);
// digitalWrite(ledpin3, LOW);
// digitalWrite(ledpin4, LOW);
// digitalWrite(trigpin1, LOW);
// digitalWrite(trigpin2, LOW);
// digitalWrite(trigpin3, LOW);
// digitalWrite(trigpin4, LOW);
// delayMicroseconds(2);
// digitalWrite(trigpin1, HIGH);
// digitalWrite(trigpin2, HIGH);
// digitalWrite(trigpin3, HIGH);
// digitalWrite(trigpin4, HIGH);
// delayMicroseconds(10);
// digitalWrite(trigpin1, LOW);
// digitalWrite(trigpin2, LOW);
// digitalWrite(trigpin3, LOW);
// digitalWrite(trigpin4, LOW);
// duration1 = pulseIn(echopin1, HIGH);
// distance1 = duration1*0.034/2;
// safetyDistance1 = distance1;
// duration2 = pulseIn(echopin2, HIGH);
// distance2 = duration2*0.034/2;
// safetyDistance2 = distance2;
// duration3 = pulseIn(echopin3, HIGH);
// distance3 = duration3*0.034/2;
// safetyDistance3 = distance3;
// duration4 = pulseIn(echopin4, HIGH);
// distance4 = duration4*0.034/2;
// safetyDistance4 = distance4;
// if (safetyDistance1<= 5){
// digitalWrite(ledpin1, LOW);
// Serial.print("distance1: ");
// Serial.print(distance1);
// }
// else{
// digitalWrite(ledpin1, HIGH);
// Serial.print("distance1: ");
// Serial.print(distance1);
// }
// Serial.print("distance1: ");
// Serial.print(distance1);
// if (safetyDistance2<= 5){
// digitalWrite(ledpin2, LOW);
// Serial.print("distance2: ");
// Serial.print(distance2);
// }
// else{
// digitalWrite(ledpin2, HIGH);
// Serial.print("distance2: ");
// Serial.print(distance2);
// }
// Serial.print("distance2: ");
// Serial.print(distance2);
// if (safetyDistance3<= 5){
// digitalWrite(ledpin3, LOW);
// Serial.print("distance3: ");
// Serial.print(distance3);
// }
// else{
// digitalWrite(ledpin3, HIGH);
// Serial.print("distance3: ");
// Serial.print(distance3);
// }
// Serial.print("distance3: ");
// Serial.print(distance3);
// if (safetyDistance4<= 5){
// digitalWrite(ledpin4, LOW);
// Serial.print("distance4: ");
// Serial.print(distance4);
// }
// else{
// digitalWrite(ledpin4, HIGH);
// Serial.print("distance4: ");
// Serial.print(distance4);
// }
// Serial.print("distance4: ");
// Serial.print(distance4);
}
Final result

bottom of page