OpenSquare - escritura grande, con un coche RC (7 / 8 paso)

Paso 7: El código...

La idea básica de la OpenSquare es controlar el coche con el ordenador para una prueba de funcionamiento mientras que el código registra todos tus movimientos. La segunda pieza de código entonces "repite" las instrucciones que registran para que el coche sólo va alrededor y cae el polvo en su propia. Puedes dejar caer el coche en una plaza y ver traza en torno o podría dibujar un elemento simple y repetir muchas veces para crear un gran urbano copy paste.

Usé el procesamiento para comunicarse con Arduino el control remoto.

Para facilitar las cosas, he subido solo el bosquejo de StandardFirmata que se puede encontrar en archivo/ejemplo/una firmado en el software de Arduino.

Utiliza W, S, A y D teclas para controlar la dirección del coche. Tuve algunos problemas con mi canal 5 siendo alta todo el tiempo por lo que la manera de controlar el servo es pulsando la tecla C. Una pulsación breve abre la puerta y lo cierra una pulsación larga. Para salir de la aplicación, presione Alt.

Copiar el código anterior en dos diferentes dibujos y guardarlos como "Record" y "Reproducción" en la misma carpeta raíz.
Debe tener algo como esto en su computadora:
somewhere/OpenSquare/Record/Record.pde
somewhere/OpenSquare/Replay/Replay.pde

Aquí está el código para el proceso de la grabadora:

OpenSquare v1.2 - 02/02/14

Import processing.serial.*;
Import cc.arduino.*;
Serie myPort;
Arduino arduino;
PrintWriter outputFile;
Boolean keyup = false;
keyright boolean = false;
Boolean keyleft = false;
Boolean keydown = false;
Boolean endofrec = false;
servo boolean = false;

largo lastTime = 0;

Float x, y;

void setup() {}

outputFile = createWriter("positions.csv");

println(Arduino.List());
Arduino = nuevo Arduino (este, Arduino.list() [3], 57600);
arduino.pinMode (2, Arduino.OUTPUT);
arduino.pinMode (4, Arduino.OUTPUT);
arduino.pinMode (6, Arduino.OUTPUT);
arduino.pinMode (9, Arduino.OUTPUT);
arduino.pinMode (10, Arduino.OUTPUT);

Size(640,360);
x = ancho/2;
y = altura/2;
lastTime = millis();
}

void draw() {}
Background(51);
Fill(255);
Ellipse(x,y,16,16);
outputFile.print(millis() + ",");
println(Millis());

Si (keyup) {}
y--;
arduino.digitalWrite (4, Arduino.HIGH);
outputFile.print(1+",");
}
Else {}
outputFile.print(0+",");
arduino.digitalWrite (4, Arduino.LOW);
}

Si {} (keydown)
y ++;
arduino.digitalWrite (6, Arduino.HIGH);
outputFile.print(1+",");
}
Else {}
outputFile.print(0+",");
arduino.digitalWrite (6, Arduino.LOW);
}

Si (keyleft) {}
x--;
arduino.digitalWrite (9, Arduino.HIGH);
outputFile.print(1+",");
}
Else {}
outputFile.print(0+",");
arduino.digitalWrite (9, Arduino.LOW);
}

Si (keyright) {}
x ++;
arduino.digitalWrite (10, Arduino.HIGH);
outputFile.print(1+",");
}
Else {}
outputFile.print(0+",");
arduino.digitalWrite (10, Arduino.LOW);
}

Si {} (servo)
//y--;
arduino.digitalWrite (2, Arduino.HIGH);
outputFile.print(1+",");
}
Else {}
outputFile.print(0+",");
arduino.digitalWrite (2, Arduino.LOW);
}

outputFile.println();
println("bla");
mientras que (millis ()-lastTime < 20);
lastTime = millis();

Si (endofrec) {}
outputFile.flush(); Escribe los datos restantes en el archivo
outputFile.close(); Termina el archivo
Exit(); Se detiene el programa
}

}

{} void keyPressed()
Si (clave == codificado) {}
Si (clave == 'w') keyup = true;
Si (clave == de ') keydown = true;
Si (clave == 'a') keyleft = true;
Si (clave == 'c') servo = true;
Si (clave == 'v') servo = false;
Si (clave == había ') {}
keyright = true;
endofrec = true;
}
Si (keyCode == ALT) endofrec = true;

}
//}

{} void keyReleased()
Si (clave == codificado) {}
Si (clave == 'w') keyup = false;
Si (clave == de ') keydown = false;
Si (clave == 'a') keyleft = false;
Si (clave == había ') keyright = false;
Si (clave == 'c') servo = false;
Si (clave == 'v') servo = false;

}
//}

Y ahora el código para la reproducción:

OpenSquare v1.2 - 02/02/14
Import processing.serial.*;
Import cc.arduino.*;
Serie myPort;
Arduino arduino;
Mesa;
temps de int;
int w;
int s;
int a;
int d;
int c;

void setup () {}
println(Arduino.List());
Arduino = nuevo Arduino (este, Arduino.list() [3], 57600);
arduino.pinMode (2, Arduino.OUTPUT);
arduino.pinMode (4, Arduino.OUTPUT);
arduino.pinMode (6, Arduino.OUTPUT);
arduino.pinMode (9, Arduino.OUTPUT);
arduino.pinMode (10, Arduino.OUTPUT);
tabla = loadTable(".. / Record/positions.csv ","header");
println(Table.getRowCount() + "total de filas en la tabla");

}

void draw() {}

para (int i = 0; i < table.getRowCount(); i ++) {}
TableRow fila = table.getRow(i);
Temps = row.getInt(0);
w = row.getInt(1);
s = row.getInt(2);
un = row.getInt(3);
d = row.getInt(4);
c = row.getInt(5);

Si (w == 1) {}
arduino.digitalWrite (4, Arduino.HIGH);
}
Else {}
arduino.digitalWrite (4, Arduino.LOW);
}
Si (s == 1) {}
arduino.digitalWrite (6, Arduino.HIGH);
}
Else {}
arduino.digitalWrite (6, Arduino.LOW);
}
Si (a == 1) {}
arduino.digitalWrite (9, Arduino.HIGH);
}
Else {}
arduino.digitalWrite (9, Arduino.LOW);
}
Si (d == 1) {}
arduino.digitalWrite (10, Arduino.HIGH);
}
Else {}
arduino.digitalWrite (10, Arduino.LOW);
}
Si (c == 1) {}
arduino.digitalWrite (2, Arduino.HIGH);
}
Else {}
arduino.digitalWrite (2, Arduino.LOW);
}
Delay(20);
}
arduino.digitalWrite (2, Arduino.LOW);
arduino.digitalWrite (4, Arduino.LOW);
arduino.digitalWrite (6, Arduino.LOW);
arduino.digitalWrite (9, Arduino.LOW);
arduino.digitalWrite (10, Arduino.LOW);

Exit();
}

Artículos Relacionados

Remotamente hacer estallar un globo con un coche de RC

Remotamente hacer estallar un globo con un coche de RC

¡ Hola chicos! Hoy voy a enseñar a todos a hacer estallar un globo desde varios pies lejos con un coche RC. Todo lo que necesita es algo fácil de encontrar materiales y un coche RC.Yo estoy entrando en este proyecto para el concurso de RC. Este es un
Banda de goma con motor coche cartón

Banda de goma con motor coche cartón

Si quieres hacer algo con esas molestas cajas de envío, trate de hacer un coche de juguete. Necesita bandas de goma, cartón, cinta, pegamento, tijeras y dos lápices.Paso 1:Comience con una caja, más pequeña, mejor.Paso 2:Cortar el cuadro por la mitad
Controlar un actuador lineal grande con Arduino

Controlar un actuador lineal grande con Arduino

Este Tutorial de actuador lineal de Arduino muestra cómo hacer control manual básico de un actuador lineal grande con dos botones y un Arduino. En el primer conjunto de código, el primer botón extiende el actuador y el segundo botón retrae el actuado
Hacer un cartel grande con gráficos vectoriales

Hacer un cartel grande con gráficos vectoriales

me encanta el Rasterbator, pero también me encanta la nitidez de los gráficos vectoriales a veces.  ¿Por qué no crear un cartel grande con Rasterbation-como formas y líneas exactas?  Es realmente muy fácil.Utilicé esta técnica para crear un poster gr
Collares grandes con múltiples abalorios de cristal colgando

Collares grandes con múltiples abalorios de cristal colgando

este tutorial tiene como objetivo demostrar una idea de arte de joyería con respecto a Cómo hacer collares grandes con múltiples flecos de abalorios de cristal.Materiales y herramientas:Grano de anillo negro grandecadena de hierro de 2mm plateadoazul
Esmagamus guía: viviendo con usted coche del circuito de refrigeración

Esmagamus guía: viviendo con usted coche del circuito de refrigeración

Esmagamus esta guía cubre pasos básicos que cualquier persona puede tomar para evitar cualquier problema con uno de los sistemas más importantes del automóvil: el circuito de refrigeración.Incluye:-Breve introducción al funcionamiento de un circuito
Fácil guía de principiantes para hacer un "BIODIESEL" con motor coche

Fácil guía de principiantes para hacer un "BIODIESEL" con motor coche

más personas no se dan cuenta de un motor diesel puede funcionar en el aceite de freidora usadoDe ninguna manera se trata de un método perfecto, o la mejor manera de hacerlo, sólo una manera fácil de aprender para que los principiantes en esto. Que e
Alambre duro un splitter/w USB dentro de su compartimento central con reposabrazos coches

Alambre duro un splitter/w USB dentro de su compartimento central con reposabrazos coches

este es mi primer Instructable siempre! No ser demasiado duro que si dejé algo, voy feliz a encarar!Durante unas semanas, he estado dibujando planes de hacerlo. Finalmente he salido adelante y hacerlo. Tomó un total de 3 horas, lo que componen como i
Problemas con el coche: Cómo saber cuando es grave

Problemas con el coche: Cómo saber cuando es grave

para muchos de nosotros, los coches son una parte vital de nuestras vidas. Nos llevan a trabajar, ayudar a recados, nos permiten visitar familia o amigos, tomarnos vacaciones y generalmente ayuda cubierta largas distancias con facilidad.Los propietar
Globo con motor coche juguete

Globo con motor coche juguete

en este instructable, te enseñaré cómo hacer un sencillo y emocionante globo auto con motor de juguete. Son diversión a competir o simplemente jugar con.Paso 1: materiales Para construir el coche, usted necesita una pistola de pegamento caliente, coc
Fijar un agujero demasiado grande con Sugru

Fijar un agujero demasiado grande con Sugru

Makerspace Milwaukee consiguió recientemente algunos paquetes de Sugru para jugar con.  Algunos de nuestros miembros hacen algunas cosas bastante interesantes.  Fui la ruta práctica.Recientemente hice un lanzacohetes que tenía una LED bastante grande
Morse código con un coche rc remoto y aquí, en un radio cb.

Morse código con un coche rc remoto y aquí, en un radio cb.

este instructable trata de simplemente hacer un transmisor de 27mhz de un coche rc de 27 mhz control remotoque puede hacer código morse y recibir los mensajes en una radio cb o tal vez la parte de am de tu radio pero no pude conseguirlo para trabajar
Hacer un cartel muy grande con el retrato de la silueta

Hacer un cartel muy grande con el retrato de la silueta

Los fabricantes de Maui es un Makerspace en Maui que todavía está en sus primeras etapas. Somos movió en nuestro propio espacio en febrero de este año y sigue creciendo nuestra membresía. Necesitábamos un gran cartel para que todos sepan donde estába
Encontrar soluciones meticuloso de todos los problemas relacionados con su coche por los manuales de descarga

Encontrar soluciones meticuloso de todos los problemas relacionados con su coche por los manuales de descarga

Tener un manual es importante no sólo conocer su vehículo, sino también para mantener y reparar. Mediante el uso de un manual de reparación, educará a sí mismo en términos de eliminar o cambiar un simple filtro, aceite y filtro. Cualquier accidente o