Secuencias de la creación de POV. (2 / 4 paso)

Paso 2: Una plantilla simple.

Nodebox es una gran herramienta para visualizar cosas. Vamos a empezar con un ejemplo sencillo que visualiza una elipse en la interfaz. Clave es que contamos con 56 LED. A continuación es la descripción de un ejemplo simple, pero podría ser más fácil descargar el baseReader.zip que se incluye y abrirlo con Nodebox permitiéndote verlo paso a paso...

la red de

Crear un nodo de red con el parámetro row en 56. Se trata de una línea vertical de la imagen. A continuación, establezca el parámetro de columnas a 25. Cambiar las dimensiones de la misma anchura 120 y altura 300. Resultará en una cuadrícula de puntos.

Esta rejilla de puntos se ordena en el eje Y. Tenemos que cambiar para que los 56 primeros puntos son la primera columna de la cuadrícula, el segundo conjunto de 56 puntos de la segunda columna de la cuadrícula y así sucesivamente.

Crear un nodo de tipo y conectarse grid1 del puerto de formas. Cambie el parámetro de orden para X.

la forma de

La siguiente cosa que necesitamos es una forma.
Crear un nodo de elipse y dejarlo en sus parámetros por defecto.

la superposición

La idea es que vamos a intentar averiguar qué puntos de la cuadrícula superponen la elipse. Los que tienen que almacenarse como 1, los que no tienen que almacenarse como 0. Esto no es una función de construir-en, pero NodeBox nos permite utilizar nuestro propio código así.

Abra un editor de texto y escriba

def cook (forma, puntos): si shape.contains (points.x, points.y): retorno 1 otro: Return 0

guárdelo como un archivo de python llamado check.py. Ahora que tenemos una función de convocatoria, se puede implementar en NodeBox. Primero tenemos que importar el archivo de python en el programa.

* Ir a archivo >> bibliotecas de código. Se abrirá una nueva ventana pequeña con en la parte superior derecha de la esquina un signo '+'.
* Presione '+' y seleccione el Python Python cierre opción. Vaya a check.py
* Si puede ver una referencia a él puede cerrar la ventana.

Ahora es importar el archivo de python y la función en se puede llamar para de un nodo.

Cada nodo requiere una función, usted puede averiguar que uno Seleccione un nodo y luego ir a la ficha de metadatos sobre la ventana de parámetros del puerto. Abrirá una nueva ventana con las especificaciones del nodo y sus puertos. Si vas a 'Opciones' puede averiguar lo que la función se refiere a. En el caso de un rectángulo que dirá: corevector/rect, lo que significa que llamará la función rect en el archivo corevector. Para llamar a la función de cocinero en checkImage.py que voy a tener que llamar a checkImage/cocinero.

Necesito un nodo donde puedo enviar una forma y una lista de puntos y que devuelve una lista (de 0 y 1). Podemos utilizar para comenzar con el nodo de filtro pues ya que importa una forma.

* Crear un nodo de filtro.
* Seleccione el nodo y vaya a la ficha de metadatos.
* Ir al nodo >> ajustes. Escriba a ' check/cook' en la opción de 'Función'.

Todavía necesitamos un nuevo puerto. Por el momento el nodo sólo puede recibir una forma.

* En la ventana de metadatos: haga clic en el botón '+' en la esquina inferior izquierda.
* Introduzca un nombre de puerto: lo llaman 'puntos'.
* Seleccione 'punto' en el menú tipo y pulse 'Aceptar'.

Ahora tenemos dos puertos de entrada, uno negro para nuestra forma (la elipse) y uno azul para nuestros puntos (para nuestra red de clasificados).

Conecte sort1 al puerto de puntos del nuevo nodo filtro y conecte ellipse1 al puerto de forma del nodo de filtro. Debe devolver una lista de 0 y 1 que podemos utilizar para crear un color.

visualizarlo

Crear un nodo de color rgb y cambiar el rango a 1. Conecte filter1 al puerto verde. Ahora podemos visualizar en NodeBox lo que será posteriormente en la interfaz.

* Crear un nodo rectangular de 5 por 5.
* Crear un nodo de traducir y conecte la rect a su parámetro de forma y sort1 a su parámetro de traducir.
* Crear un nodo colorise y conectar traducir a ella. Conectar el nodo de rob al parámetro llene esto colorise nodo y hacerla. La elipse debe aparecer. (véase la captura de pantalla en la parte superior este paso)

en hex.

Primer paso es crear pares de 8, entonces a escribir en valor hexadecimal y luego la salida a un archivo.

* Crear un nodo de la rebanada. Establezca el parámetro de cantidad a 8 y conecte filter1 al puerto de la lista. El índice de inicio nos permite leer 8 valores y queremos hacerlo sobre un paso de 8. Crear una subred para él y llamarlo eight_bit. Publicar el parámetro de índice de inicio por lo que es accesible desde la raíz.

* Crear un nodo de Conde, conecte filter1 a su puerto de la lista. Esto genera el número de valores en la lista.
Crear un nodo de gama y conectar la cuenta de que es el puerto final. Establezca el parámetro paso a 8. Esto devuelve una lista de 0, 8, 16, 24, 32,... Podemos utilizar estos valores como el índice de inicio de nuestro nodo de eightbit. Se conectan.

* Ir en la subred y crear 8 nodos del segmento. Cada uno de ellos tiene 1 como parámetro de cantidad. El primero tiene Inicio índice 0, el segundo un 1... Conecte todo al primer nodo de la rebanada (con la cantidad de 8).

* Crear nodos concatenar 3. Conecte todos los nodos del segmento (con cantidad 1) a ellos y ver resultados como 00000000, 00000000, 00000000, 00011111...

Abra un editor de texto y escriba

importación matemáticas
DEF tohex(n):
volver hex(int(n,2))

guardar como tohex.py

importar en NodeBox mediante la opción de bibliotecas de código.

Crear un nuevo nodo es un nodo base se amplíe para los nodos de medida. Ir a los metadatos y cambiar su función para 'tohex/tohex'. Crear un nuevo puerto, llamada bits y poner el tipo en cadena.
Conecte el nodo de 8 bits y dejarlo. El resultado debe ser hexagonales valores como 0 x 0, 0x3, 0xff...

Es importante saber cuántos paquetes de' ocho' así son crear un nuevo nodo de la cuenta. Conectar el nodo hexagonal a su parámetro de la lista.

para arduino

Ahora vamos a la salida a un archivo. Vamos a usar un formato csv.

Abra un editor de texto y escriba:

csv de importación
DEF writetocsv(hexes,name):
Lista =]
csvfile = archivo ('/ usuario/escritorio /'+ nombre + 'CSV', 'w') # esto debe referirse a una carpeta en su computadora
escritor = csv.writer (csvfile, delimiter = ",")
para hex en casillas:
list.append(hex) writer.writerow(list)
csvfile.Close()
volver casillas

guárdelo como toarduino.py. Volver a crear un nuevo nodo base, cambiar su función a 'toarduino/writetocsv' y crear dos nuevos parámetros. Ambos tienen un widget de cadena pero el primero tiene una lista como gama, mientras que el segundo tiene valor como gama. Maleficios de llamada primero y el segundo nombre. Vamos a enviar la salida del nodo hexagonal al puerto de casillas y escriba un nombre de archivo en el parámetro name.

código de Arduino

a continuación es el código de arduino comenzado desde el tutorial de Tom Igoe en el patio de Arduino. La función de palanca de cambios funciona a través de todos los bytes y tiene 3 argumentos. (matriz de secuencia, cantidad y tiempo retardado). óvalo del octeto [175] almacena la información de NodeBox.
El potPin refiere a un potenciómetro que permite para controlar el tiempo retardado en la interfaz.

--

//**************************************************************//
código de este ejemplo de playground de arduino:
Nombre: shiftOutCode, Hola mundo
Autor: Carlyn Maw, Tom Igoe, David A. Mellis
Fecha: 25 de octubre de 2006
Modificado: 23 de marzo de 2010
Versión: 2.0
Notas: El código para utilizar un registro de desplazamiento 74HC595 / /
: contar de 0 a 255
//****************************************************************

int latchPin = 8;
clockPin INT = 12;
int potPin = A0;
int dataPin = 11;

óvalo del octeto [175] = {0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0,
0 x 0 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0xff, 0 x 0 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x3, 0xff, 0xc0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x7,
0xFF, 0xe0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x7, 0xff, 0xe0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0xf, 0xff, 0xf0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0xf,
0xFF, 0xf0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f,
0xFF, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f,
0xFF, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0 0 x 0, 0 x 0, 0xf, 0xff, 0xf0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0xf,
0xFF, 0xf0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x7, 0xff, 0xe0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x7, 0xff, 0xe0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0x3,
0xFF, 0xc0, 0 x 0 0 x 0 0 x 0, 0 x 0, 0 x 0, 0xff, 0 x 0 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0,
0 x 0 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0};

void setup()
{
pinMode (dataPin, salida);
pinMode (latchPin, salida);
pinMode (clockPin, salida);
pinMode (potPin, entrada);
Serial.Begin(9600);
}

desplazador del vacío (byte sec1 [], float tiempo retardado, int len) {}
para (int x = 0; x < len; x ++)
{
digitalWrite (latchPin, bajo);            Inicio sturen via latchpin
Si (x %7 == 0) {}
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+1]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+2]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+3]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+4]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+5]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+6]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+7]);
}
digitalWrite (latchPin, HIGH);           parada versturen
Delay(timeDelay);
}
Delay(timeDelay*20);
}

void loop() {}
temp de flotador = analogRead(potPin);
tiempo retardado de flotador = asignan (temp, 0, 1023, 0, 25);

palanca de cambios (oval, tiempo retardado, 175);
}

flotador asignado (float x, float in_min, in_max del flotador, flotador out_min, flotador out_max) {}
retorno (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

otra imagen

Ahora contamos con una plantilla básica que podemos utilizar para crear otras imágenes. Cambiando la elipse a otra forma crea una nueva matriz. Puede crear un solo carácter de un alfabeto. etc.

Artículos Relacionados

Completo laboratorio de circuitos y tarjetas POV

Completo laboratorio de circuitos y tarjetas POV

Introducción_______________________________________________________________________Aunque hay muchos Instructables en algún aspecto de cómo hacer placas de circuito, éste es diferente. Es un instructivo sobre cómo hacer las cosas que necesitas para h
POV de perritos

POV de perritos

Tomando en cuenta que este fenómeno visual permite una imagen permanezca en la retina una décima de segundo más después de verla, es posible que veamos una secuencia de imágenes independientes como ininterrumpidas, creando la ilusión de movimiento o
Creación de un monumento de Universidad y réplica bronces

Creación de un monumento de Universidad y réplica bronces

en 2008, mi padre y yo fuimos el encargado de crear un monumento 14' de alto una mascota Puma de Universidad Estatal de Washington. También hemos creado tres réplicas bronce tamaño menores del monumento a vender a alumnos y aficionados.En este instru
Procesar las imágenes 3D de tu PCB usando Eagle3D y POV-Ray

Procesar las imágenes 3D de tu PCB usando Eagle3D y POV-Ray

uso de Eagle3D y POV-Ray, puede hacer realista 3D renders de su PCB. Eagle3D es un script para EAGLE Layout Editor. Esto generará un archivo de traza de ray, que será enviado a POV-Ray, que a su vez finalmente saltará la imagen definitiva de su PCB.P
Cómo utilizar el taller de creación V1.0.0.75 para impresoras DLP

Cómo utilizar el taller de creación V1.0.0.75 para impresoras DLP

Entró en el concurso de impresión 3D! Échale un vistazo aquí:-------------------------------------------------------------------------------El propósito de este instructivo es explicar como utilizar el taller de creación. Taller de creación es un sof
Magic Wand de POV (otro juguete POV)

Magic Wand de POV (otro juguete POV)

¡Nuevo! (14/11/2014) Este juego ha sido actualizado a una placa de circuito fabricada profesionalmente y el precio se ha reducido a sólo $9 por kit. (Y para los educadores, un precio de descuento de solamente $8.00 por kit)Este juguete de la persiste
Creación de un emulador Android usando Qemu

Creación de un emulador Android usando Qemu

Como parte de una investigación académica que he hecho durante el verano pasado, he creado un emulador del sistema operativo android en un ordenador Linux con Qemu. Después de instalar el emulador Android, soy capaz de usar el sistema Android como si
Pantalla POV (persistencia de la visión) con IRled

Pantalla POV (persistencia de la visión) con IRled

Hoy voy a introducir pantalla POV (persistencia de la visión) con el tablero de WIZwiki-W7500ECO.¿Has escuchado acerca de POV antes?Puede consultar detalles de POV.(Ver paso 1)Es realmente curioso proyecto.Le permitirá saber cómo hacerlo. Solo Síguem
Creación de un centro de Streaming de medios de inicio con Ubuntu

Creación de un centro de Streaming de medios de inicio con Ubuntu

seamos realistas. Los discos son cosa del pasado, y discos duros externos son voluminosos e inconvenientes. Con esta guía te mostrará cómo crear un Home Media Center capaz de streaming de películas y música directamente a tu PC. Lo mejor es, esto es
Procedimiento para demostrar que converge una secuencia definida

Procedimiento para demostrar que converge una secuencia definida

este Instructable irá, paso a paso, el método general para demostrar que una secuencia converge a un límite vía usar la definición de convergencia.Rápida definición de términos utilizados en este Instructable:1) candidato: En pocos pasos veremos a un
(POV) Persistencia de la visión de mundo

(POV) Persistencia de la visión de mundo

! ¡ Actualización! He añadido un programa excel que hace mucho más fácil dibujar y programar nuevas imágenes!Una simple persistencia de globo visión. Reproducir VIDEOEste es un proyecto que he tenido en mente hace bastante tiempo y el concurso de "Ha
Persistencia de la visión (POV)-2 modos de juego -

Persistencia de la visión (POV)-2 modos de juego -

después de cansado de buscar tutorial POV que no claro y complicado, finalmente encontré el mejor. En este instructable yo se ser recreando una varita POV (persistencia de la visión) inspirado en el diseño original de amandaghassaei.  Primera vez que
Diseño de la lógica secuencial para un reloj Digital de aprendizaje

Diseño de la lógica secuencial para un reloj Digital de aprendizaje

Este instructable es para que dos propósitos 1) entender y aprender que los fundamentos de la lógica secuencial 2) utilizan ese conocimiento para crear un reloj digital.Relojes digitales han sido construidos por innumerables aficionados de electrónic
Secuencias de comandos de procesamiento con MIDI

Secuencias de comandos de procesamiento con MIDI

Procesamiento es quizás mejor conocido como un generador de gráficos y sonido, pero sus bocetos no sólo crear mensajes MIDI pero Escuchar para ellos también.Los mensajes MIDI pueden venir de no solo un teclado MIDI estándar, sino de otras aplicacione