TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: gera en 22 de Diciembre de 2008, 20:14:46

Título: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 22 de Diciembre de 2008, 20:14:46
Buenas amigos!!! Hace poco termine una matriz de LEDs 3x3x3, inspirado en la idea q surgio en este hilo: http://www.todopic.com.ar/foros/index.php?topic=19613.msg195832#msg195832
Bueno, la matriz ya esta funcionando con un programita muy basico q hice para probarla (en CCS para un pic16f84a). Para armarla segui esta guia: http://www.instructables.com/id/LED-Cube-4x4x4/
Les dejo una foto y el programa q tengo por ahora:
(http://img156.imageshack.us/img156/3636/pict0051ac0.th.jpg) (http://img156.imageshack.us/my.php?image=pict0051ac0.jpg)
Código: C#
  1. #include <16F84A.h>
  2. #fuses XT,NOWDT,NOPROTECT
  3. #use delay(clock=4000000)
  4.  
  5.  
  6. #byte port_a=0x05
  7. #byte port_b=0x06
  8. #use fast_io(a)
  9. #use fast_io(b)
  10.  
  11.  
  12. int8 matriz[3]={0x00,0xFF,0x00}; //matriz q vamos a dibujar en el cubo por cada capa
  13. int8 capa[3]={~0x01,~0x02,~0x04};//matriz para activar de a una capa por vez
  14. int sec=0;
  15. int ret=20;     //variables para generar el juego de luces en la interrupcion del timer
  16. //en la interrupcion cambiamos la matriz a mostrar
  17.  
  18. #int_timer0
  19. void isr()
  20. {
  21.    ret--;
  22.    if(ret==0)
  23.    {
  24.       if(sec==0)
  25.       {
  26.          matriz[0]=0xff;
  27.          matriz[1]=0x00;
  28.          matriz[2]=0xff;
  29.          sec=1;
  30.       }
  31.       else
  32.       {
  33.          matriz[0]=0x50;
  34.          matriz[1]=0x50;
  35.          matriz[2]=0x50;
  36.          sec=0;
  37.       }
  38.       ret=20;
  39.    }
  40.  
  41.  
  42.    SET_TIMER0(0);
  43. }
  44.  
  45. void mostrar() //funcion q imprime matriz en el cubo
  46.  
  47. {
  48.    int i;
  49.    for(i=0;i<=2;i++)
  50.    {
  51.       port_b=matriz[i];
  52.       port_a=capa[i];
  53.       delay_us(500);
  54.    }
  55. }
  56.  
  57.  
  58. void main()
  59. {
  60.    set_tris_b(0x00); // todo puerto B como salida
  61.    set_tris_a(0x00); // todo puerto A como salida
  62.    enable_interrupts(INT_RTCC);
  63.    setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256);
  64.    set_timer0(0);
  65.    enable_interrupts(GLOBAL);
  66.    
  67.    while(TRUE)
  68.    {
  69.       mostrar(); //el programa principal se queda mostrando la matriz para siempre
  70. //la misma solo se puede modificar desde la interrupcion
  71.    }
  72. }

Este programa es provisorio, hasta q haga uno mejor y defina bien como va a ser el funcionamiento de la matriz. Y justamente acudo a ustedes para q me den ideas y sugerencias. Por el momento tengo pensado hacer un programita q siga una secuencia pre-programada (en una matriz gigante?). Tambien hay ideas como ponerle un jueguito de una pelotita (con un acelerometro), o que sea audioritmica.
En fin, ideas no faltan, lo que falta es pensar bien como implementarlo. Estoy un poco perdido porq no se bien como controlar los 27 LEDs. Por el momento el puertoB maneja cada columna, y el puertoA los 3 pisos o capas, pero son 9 LEDs por capa, asiq hay uno q me queda sin control :S
Esto se arregla, pero quiero ver cual es la mejor forma para q despues no se me complique hacer las secuencias de luces y eso.
En fin, tengo tantas ideas y tantas dudas jeje... supongo q las vamos a ir discutiendo conforme se desarrolle el hilo.
Muchas gracias!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 24 de Diciembre de 2008, 20:21:44
Buenas amigos! yo de nuevo. Ya rendi la ultima materia del año y por fin estoy de vacaciones!!! Asi q vamos a ver si le dedico algo de tiempo a esto. Estuve pensando un poco y ya tengo una idea de como lo voy a encarar:
Voy usar algun pic q tenga minimo 3 puertos de E/S, como un 16f873 o algo asi. Para un cubo 3x3x3 esta demasiado sobrado, pero la idea es q se pueda expander hasta 4x4x4 o mas. Con dos de los puertos voy a controlar lo q serian los ejes 'x' e 'y', y con el otro puerto, el 'z'.
Voy a usar dos matrices de de dimension [n][n] (siendo n la cantidad de leds por dimension) para almacenar el dibujo q sera representado en los leds. Son dos porq una es auxiliar. Una dimension de la matriz sera el eje Y, y la otra el Z, y el eje X va a ser representado por el conjunto de bits q se almacena en cada posicion de la matriz.
Para multiplexar las capas, voy a utilizar la interrupcion de timer, eso me deja el programa principal libre para trabajar sobre la matriz, y asi hacer los efectos y animaciones.
Cuando tenga algo andando les muestro. En caso de tener exito vamos a ver si puedo hacer efectos audioritmicos :D
Saludos!!! y muchas felicidades!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: J1M en 26 de Diciembre de 2008, 14:20:56
Venga venga ahora uno con RGBs! jejeje enhorabuena por el cubo! :)
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 28 de Diciembre de 2008, 00:48:09
Muchas gracias amigo J1M!!! Les cuento q acabo de llegar de mis vacaciones por Las Leñas. Me lleve la compu para codear en mis horas libres y me dedique a escribir varias primitivas para el cubo, y uno q otro efecto usando dichas primitivas. Y funciona a la perfeccion! :D ya voy a subir algunos videos y el codigo.
Con respecto a hacerlo RGB, hay algunas cositas q me lo impiden por el momento. Lo primero es el dinero, los LEDs RGB salen muy caros aca y no se consiguen en cantidad, asiq voy a ver si consigo algo por ebay o mercado libre. Lo segundo es q no tengo experiencia con ellos, quisiera primero conseguir algunos TLC5940 para experimentar. La macana es q los de textas me rebotaron el pedido de las muestras :(
Cuando resuelva estos asuntos seguro me animo. Por lo pronto quiero perfeccionar este q tengo y en lo posible hacerlo de 4x4x4!
En breves vuelvo con algun video ;)
Saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: AKENAFAB en 28 de Diciembre de 2008, 00:59:43

Hola pana GERA!

A mi me gustan estos cubos xD estan muy padres , tengo muchas ganas de hacer alguno,pero no tengo nada de tiempo :mrgreen:

Ni he terminado otros proyectos por dar prioridad a otros de otros xD por otros!

PERO seguire tu trabajo , igual en el camino lo voy armando!

Buena suerte!

Saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Cryn en 28 de Diciembre de 2008, 01:11:18
En el youtube vi unos videos con matrices 3d, buenísimos efectos se ven con letras

que buena pinta tiene tu matriz gera, vamos!! te va quedar muy bien, si anímate por la de 4 x 4 estará brutal

buen trabajo hasta ahora gera :-/ :-/
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 28 de Diciembre de 2008, 02:59:29
Bueno, lo prometido es deuda y les traigo un video del cubito :lol:
Disculpen la voz de quemado, es q hoy estuve viajando todo el dia y me muero de sueño jaja.


Tambien les adjunto el codigo fuente. Esta compuesto por una libreria de primitivas, las cuales uso para hacer los efectos, q se encuentran en otra libreria. Los invito a usar este codigo y hacer sus propios efectos. Cualquier clase de sugerencia o critica es bienvenida :)
saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Nocturno en 28 de Diciembre de 2008, 04:13:23
Ha quedado muy chulo, Gera. Me imagino cuánto habrás disfrutado haciéndolo.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: AKENAFAB en 28 de Diciembre de 2008, 04:48:24

 :-/ :-/ :-/

Felicidades compa!

Te ha quedado muy , me gusto tanto xD que intente empezarlo

  PERO  xD

    No me alcanzan los leds xD

Esperemos la prox semana!


Muy bueno!

Ya imagino si realizas la de 43

 :-/ :-/
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 28 de Diciembre de 2008, 12:11:35
Ha quedado muy chulo, Gera. Me imagino cuánto habrás disfrutado haciéndolo.
Gracias Nocturno!!! La verdad q es entretenido sentarse a soldar, cablear y despues rabiar un poco con el codigo jaja. Ahora a experimentar un poco con las posibilidades. Mi viejo insiste con q le puedo pasar funciones matematicas (parametricas o en fc del tiempo) de alguna forma para q haga figuras, pero no se me ocurre como, ya voy a pensar en algo.


 :-/ :-/ :-/

Felicidades compa!

Te ha quedado muy , me gusto tanto xD que intente empezarlo

  PERO  xD

    No me alcanzan los leds xD

Esperemos la prox semana!


Muy bueno!

Ya imagino si realizas la de 43

 :-/ :-/

Muchas gracias AKENAFAB! Animate vos tambien, todo comienza con el primer agujerito en la tabla jaja. Y ya se viene el cubo 4x4x4, tengo q pasar por la electronica a comprar unos leds jeje.
Saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Cryn en 28 de Diciembre de 2008, 12:15:43
bonito gera, muy bonito

yo ya quiero ver el 4x4x4 :-/ :-/

funciones paramétricas? mm se puede? :shock: si se puede será una bomba

Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 28 de Diciembre de 2008, 12:18:30
Gracias Cryn!
Si, suena raro, pero recuerdo cuando era niño que programaba unos screensavers en basic, y era todo con funciones matematicas. Vamos a ver si encuentro aquellos programas a ver si se me ocurre algo jeje.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: PACMER en 02 de Enero de 2009, 01:18:08
 :D Que ondas amigo gera saludos deesde Oaxaca, Mexico;
Felicidades por esu cubil Felino   :mrgreen:

Sabes al igual que tu he estado intentando hace algunos proyectillos con leds, son variados y uno de ellos es el cubo, la verdad que ya comenze con uno, pero no se, siento que esta un poco chafaldrafa, y aparte de todo aprendi a programar en ensamblador, no en C, aunque tengo el CCS pero me cuesta trabajo aprenderme todo lo referente a los micros en C, la verdad da un poco de flojerilla, es como empezar de cero, sin embargo de acuerdo a mi experiencia en programacion de micros y demas tipos de programacion, creo que el lenguaje en c se presta mas para realizar matrices, vectores funciones, arreglos, etc, no se si estoy en lo correcto, sino corrijanme, como les decia mi cubito se me hace un poco chafaldrafa, y me da pena subir un videin, pero si alguno insiste en verlo lo subire, OK.

Estamos en contacto. Hechenle los Kilos
Si he podido ver mas lejos que otros es porque me he sostenido en los hombros de gigantes. Sir Isaac Newton.

Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Enero de 2009, 01:27:29
Buenas Pacmer!
Yo tambien tengo varios juguetes hechos con leds jeje, la verdad q llaman mucho la atencion. Te recomiendo q empieces con C o algun otro lenguaje de alto nivel, porq la verdad q algo muy simple se puede llegar a volver muy complejo. No creo q tengas drama para manejar el cubo con un pequeño codigo en asm, simplemente hay q multiplexar uno q otro byte. Pero cuando quieras hacer juegos de luces y cosas asi creo q se te va a complicar un poco.
No se q significa "chafaldrafa", pero nos gustaria ver q tal quedo tu cubo ;) Yo por el momento estoy perfeccionando un poco el q tengo y tratando de hacer mas generico el codigo. Esto es porq pienso hacer uno mas grande, de 4x4x4. Con suerte, si consigo buenas ofertas, algun dia me animare con uno de 8x8x8, o 3x3x3 pero RGB.
Saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: AKENAFAB en 02 de Enero de 2009, 04:54:46
Chafaldrafa xD de Chafa , de feito , de dudosa calidad  xD


Tambien el mio me quedo chafaldrafa  xD , lo arme en la madrugada xD .


Subelo pacmer , esto no es concurso de belleza  xD.

Tome una foto , pero los flashasos de los leds no dejan ver nada xD

Saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Enero de 2009, 13:39:20
Usaron algun metodo distinto q el de la tablita agujereada para armar el cubo? Porq a mi me dio muy buen resultado, quedan todos perfectamente alineados. Lo q si hay q doblar las patitas de los leds con mucha paciencia y cariño jaja. Lo q mas me costo fue soldar un piso arriba del otro. Al final lo resolvi armando un "dispositivo de sustento especializado", q era un par de cajitas con unos alambres xD jajaja
espero sus fotos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: NANO1985 en 02 de Enero de 2009, 19:01:30
quedó muy bueno!! estaría interesante que le incorpores el acelerómetro....
Saludos!  8)
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Enero de 2009, 19:21:39
quedó muy bueno!! estaría interesante que le incorpores el acelerómetro....
Saludos!  8)

Gracias nano!! El acelerometro lo tengo aca al lado mio, pero todavia le tengo q hacer la plaquita y soldarlo para empezarlo a usa y experimentar. Pero ya va a haber tiempo para incorporarlo :)
saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: AKENAFAB en 02 de Enero de 2009, 19:49:50
Pues para soldarlo use el metodo de mano alzada  xD

Lo más laborioso fue montar capa tras capa xD que joda

Quedo algo coja y chueca pero parece cubo  :D

Por cierto , use 1 color por cada capa(no me alcanzaban los leds del mismo color xD)

Use leds de alto brillo , ufff mira que si brillan  :mrgreen:

Puse resistencias de 220 , todo bien , cunado agregue la ultim acapa , un color como naranja, ese me apaga los demas leds , consume como demonio.Solo conectaba las resistencias a los anodos de los leds de ahi al pic, cada capa con los catodos unidos de ahi al uln2803.


Lo continuare  cuando tenga los transistores que si no me voy despidiendo de mi pexoxo pic. xD



Les agrego que se me ocurre no dejas los les a 90° , asi paraditos como soldados, sino darles un poco de angulo hacia afuera para que ilumine un perimetro mas grande , eso lo digo porque lo tengo en mi recamara y se me antoja que sea audioritmico xD.

PEro eso uhhh hasta que tenga tiempo.

SSaludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: J1M en 26 de Enero de 2009, 18:15:44
Me he encontrado con esto en youtube, es como poco... sorprendente! Qué envidia tan insana recorre ahora mismo mis venassss

http://www.t.markson.us/projects/eightCubed/eightCubed.htm



saludos! :)
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Azicuetano en 26 de Enero de 2009, 18:51:30
Contente Jaime!!! Contente!!

Muy bonito tu cubo gera, me ha gustado mucho  :mrgreen:


Un saludo desde Alicante.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 26 de Enero de 2009, 19:10:31
Muchas gracias Azicuetano!Lastima q mi cubo de 4³ se quedo estancado por problemas de tiempo y dinero :( espero poder continuar pronto.
Jaime, increible ese cubote!!! Asi de increible debe ser el presupuesto y la paciencia de los q lo hicieron jajaja.
Por cierto, haciendo "zapping" por youtube encontre uno realmente gigante, que estaba en la entrada de un casino, habra sido de 3 metros de altura y uno mas de profundidad. Se veia genial!! (si lo encuentro de nuevo lo cuelgo aca).
Saludos!
PD: sigo pensando como puedo hacer para generar animaciones con ecuaciones matematicas, como lo hacian los viejos screensavers.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 01 de Febrero de 2009, 18:10:22
Bueno aquí hay unas páginas interesantes sobre el control de cubos de led's:

http://www.sonsivri.com/forum/index.php?topic=6404.0
http://forums.bit-tech.net/showthread.php?t=76578

En algunas hay esquemas, placas y programas.

Haber si se puede llegar a esto:


Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 01 de Febrero de 2009, 18:28:10
Increible!!! Pensar q mi humilde cubito es una porcion minuscula de eso jaja. Me sorprenden las animaciones, seran secuencias pseudo-aleatorias?? Porque siguen cierto patron, pero por ahi veo destellos colgados...
Les cuento q tengo un par de novedades. Primero q ya tengo un acelerometro de 3 ejes funcionando :-/ asiq cuando tenga un ratito voy a ver si hago el jueguito de la bolita saltarina q hizo droky pero en 3D. Y lo segundo es q los de texas se dignaron a mandarme las muestras del TLC5940NT! Asiq si le dedico tiempo y le agarro la mano, espero tener algo RGB funcionando :wink:
Saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Nocturno en 01 de Febrero de 2009, 18:36:03
Increíble: ¿son 65536 leds rgb  :shock: ?
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 01 de Febrero de 2009, 19:59:10
Jejejeje Manolo, iva ha decir aquello de como se nota que eres andaluz. Bromas a  parte no son tantos leds aunque dan el pego. En realidad son 16*16*16 = 4096.

Para mas información:

http://www.seekway.com.cn/e/ledsys9.htm

Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Nocturno en 02 de Febrero de 2009, 03:14:32
Cierto, me equivoqué al multiplicar. Pero vamos, que es una pasada... 4096 leds rgb x 3 colores = 12288 señales  :shock: :shock: :shock:
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Febrero de 2009, 03:29:38
Eso mismo es lo q me sorprende!!! Ademas esas 12288 señales deben ser de 8 bits cada una mas o menos... increible!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 02 de Febrero de 2009, 10:31:39
Cierto, me equivoqué al multiplicar. Pero vamos, que es una pasada... 4096 leds rgb x 3 colores = 12288 señales  :shock: :shock: :shock:

Efectivamente es una pasada, el secreto está en la multiplexación, creo recordar que en uno de los enlaces se explica las configuraciones para controlar un número grande de led.

Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Febrero de 2009, 13:27:01
Pero son señales PWM, no se si es tan facil multiplexarlas ya q alterarias la señal, o me equivoco?  :?
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Nocturno en 02 de Febrero de 2009, 13:38:17
No tienen porqué ser PWM, sólo abriendo y cerrando las tres señales de cada led sin pwm se obtienen 7 colores y es probable que no esté usando más.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Cryn en 02 de Febrero de 2009, 14:45:13
hijole, que bien se ven esos efectos, muy buena matriz
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 02 de Febrero de 2009, 15:04:14
No tienen porqué ser PWM, sólo abriendo y cerrando las tres señales de cada led sin pwm se obtienen 7 colores y es probable que no esté usando más.

Tenes razon Nocturno, me parecio ver en el video q hacian juegos de intensidades, pero ahora q lo veo bien, es un efecto de acumulacion de luces. De todos modos, sigue siendo una cantidad enorme de señales a controlar. Me intriga mucho como sera el software q genera las animaciones :P
saludos!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: xocas en 02 de Febrero de 2009, 15:51:37
muchos artistas se han decidido por lo que llaman LED-ART en sus performances. aquí tres ejemplos, pero si buscáis por ese término en google aparecen la tira: http://www.uva.co.uk/  --  http://www.led-art.nl/  --  http://www.ledartist.com/

un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: PALMARETRO en 03 de Febrero de 2009, 15:12:53
!!wow!! ese cubo de 16*16*16 es impresionante  4096 leds... por ahora me dedicar a hacer el de 4*4*4....
espero que me quede tiempo..... otra a estudiar....
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 03 de Febrero de 2009, 17:58:01
Como muy bien ha señalado J1M en su post:

http://www.todopic.com.ar/foros/index.php?topic=24224.msg200224#msg200224

Aquí hay un proyecto completo de 8x8x8 RGB con esquemas y proceso de construcción, también tiene vídeos para ver los efectos obtenidos:

http://www.t.markson.us/projects/eightCubed/eightCubed.htm


Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 03 de Febrero de 2009, 18:24:47
http://www.todopic.com.ar/foros/index.php?topic=24224.msg200224#msg200224
deja vu? jaja :D
Muy bueno el sitio, les voy a escribir un mail a estos chicos a ver si me largan el codigo fuente jeje.
saludos!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: J1M en 03 de Febrero de 2009, 18:49:24
Jesús eres un copión, eso lo había puesto yo en el último post de este mismo hilo!! jajajaja
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 03 de Febrero de 2009, 20:18:52
Jesús eres un copión, eso lo había puesto yo en el último post de este mismo hilo!! jajajaja

Tienes toda la razón Jaime, voy a modificar el post para hacerte los honores.

Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: J1M en 03 de Febrero de 2009, 20:37:01
jajajajja los honores para el que lo ha hecho :P  yo solo quería decirte copión :)


pd: Sigue pendiente organizar esa quedada ehh!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: jfh900 en 03 de Febrero de 2009, 20:43:55
pd: Sigue pendiente organizar esa quedada ehh!!!

Por supuesto. Haber cuantos PicManiacos quieren quedar por el centro de la peninsula.

Un saludo
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 03 de Febrero de 2009, 21:53:56
Amigos, ahi me respondieron los desarrolladores de ese cubo 8^3 rgb y me pasaron el codigo fuente :-/
Por lo q se ve a simple vista, la mayoria del codigo es comunicacion USB, y las secuencias las mandan desde una computadora. Pero es interesante ver como hicieron para manejar todos esos leds ;)
Adjunto el codigo q me pasaron, saludos!
PD: la mala noticia es q esta hecho en c18, con el cual no me llevo muy bien
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: PACMER en 04 de Febrero de 2009, 05:10:40
hola de nuevo a todos, hace rato que no volvia por este tema

amigo gera despues de leer tu codigo entendi a que te referias al decir:

Citar
No creo q tengas drama para manejar el cubo con un pequeño codigo en asm, simplemente hay q multiplexar uno q otro byte. Pero cuando quieras hacer juegos de luces y cosas asi creo q se te va a complicar un poco.

tenes razon  :-)

y pues el amigo KENAFAB respondio tu pregunta; que es chafaldrafa? :D

AKENAFAB que escondidito te lo tenias que eres de Mexico me da gusto saber que alguien de por aca tambien esta interesado en el cubito

yo lo he dejado por un raton por que estaba realizando otro proyecto, pero creo que lo voy a retomar es unos dias mas, ademas de que necesito
meterle mas a la programacion en C.

una idea que pues al checar la web del cubo 8x8x8 creo que no es tan mala, es la de los registros de desplazamiento de 8 bits
para reducir el numero de pines a utilizar.

les debo el video porque no he tenido tiempo de grabarlo pero pronto y preferiria hacer algo en C y entonces mostralo

espero que no dejen este proyecto que es interesante, y juntos lograr un buen proyecto que sea tan vistoso como el de la web que citaron

hasta pronto
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 04 de Febrero de 2009, 12:14:33
Hola Pacmer!
Cualquier cosa q no entiendas del codigo pregunta tranquilo. Y cualquier cambio o aporte q quieran hacer es bienvenido :)
Lo de los registros de desplazamiento esta bueno, pero hay q tener en cuenta q va a agregar un pequeño retraso y complicar un poquito el codigo, aunq a las frecuencias q trabaja un pic estamos sobrados.
Para un cubo 4x4x4 con cualquier pic q tenga 2 puertos de 8 bits y otro de 4 estamos (yo uso el 16f873). Con los dos puertos de 8 bits podemos manejar cada capa (16 bits), y con 4 bits mas de cualquier otro puerto, manejamos lo q seria el eje z (la multiplexion de las capas). Habria q ver como podemos implementar los registros de desplazamiento cuando incrementemos la cantidad de leds (o en caso de usar RGBs).
Ya tengo un programita para un cubo de 4³, el problema es q no tengo el hardware jajaja, sigo averiguando precios para comprar leds en cantidad. Cuando haya avanzado les informo por aca :wink:
saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: miguel001 en 18 de Abril de 2009, 17:21:25
Hola como estan TodoPic-Maniacos jo!
Tengo una duda bueno en realidad es un problema!
La vdd me gusto mucho el cubo de leds y me di ala tarea de hacer un cubo de 4x4x4 como dimenciones, he encontrado un codigo para controlar un matriz de 5x7 de leds modifique ese codigo para hacer que funcione el cubo, cabe mencionar que no soy muy bueno con esto de programar Pics  es mas soy malo para eso :S y pues el codigo esta en ensamblador y no se programar en C osea que no entiendo el codigo que no ha puesto "gera" :S

Ahora le platico como arme el cubo fisico:
Dividi el cubo en 4 capas cada capa tiene como comun el catodo de los leds y quedando como filas entonces tengo 4 filas para el cubo de 4x4x4.
Y los anodos de de cada capa estan contedos entre si con la capa posterior o anterior.

(http://img7.imageshack.us/my.php?image=cubo1cara.jpg)
http://img7.imageshack.us/my.php?image=cubo1cara.jpg
en la imagen les muestro como es la conexion por si no quedo claro, pero nadamas es para una cara por lo tanto es la misma para las otras 3 caras restantes.

Ahora el probelma que tengo esque nada mas prende una capa de miltiplexeo y no funcionan las demas capas :S nose como solucionar este problema si me pueden ayudar se los agradeceria mucho les adjunto el codigo en Mplab

por cierto estoy usando el PIC16F877A

si no me doy entender diganme y tratare de ser los explicito posible gracias saludos!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 19 de Abril de 2009, 14:14:20
Hola miguel!!
Le pegue una mirada rapida a tu codigo y al hardware, y al parecer vas por buen camino. Solo te diria q coloques un transistor entre los catodos de los leds y la patita del puerto q los controla, porq podes llegar a quemar ese pin.
Con respecto al codigo, si es posible, comentalo un poco mas (sobretodo el significado de las variables) asi lo puedo analizar y ver donde esta el problema.
Te cuento un poco q hace mi codigo. Tengo una matriz (en asm podrias implementarlo con una tabla), que contiene los valores q se van a cargar en cada capa (en tu caso necesitarias dos bytes ya q usas dos puertos en cada capa). Entonces en la interrupcion del timer multiplexo. Tengo una variable CAPA q me dice que capa estoy mostrando actualmente (1, 2, 3 o 4), entonces en la interrupcion apago todo, y cargo en el puerto que controla la capa el valor 01H, y lo roto CAPAS-1 veces a la izquierda. Y procedo a cargar en los dos puertos los valores q corresponden del arreglo (o tabla). Al llegar a la ultima capa, hacemos CAPA=1. De este modo el timer va a quedar constantemente multiplexando las capas y cargando el valor q le corresponde a cada una.
Espero q se entienda la explicacion, saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: LalitoX en 13 de Mayo de 2009, 12:33:44
Soy un fanatico de implementar pics y electronica en juegos. Este topic me hizo pensar, armando un cubo de 3x3x3 led rgb se podria armar un cubo rubik...
Tendria que pensar la forma de girar las partes, pero me parece un proyecto mas que posible.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 13 de Mayo de 2009, 13:49:05
Por supuesto que se puede hacer!! Primero habria q hacer un cubo RGB y ver como manejar los 81 canales (27 leds x 3 colores). En mi cubo multiplexo por capa, o sea que tendriamos q controlar 9 leds x 3 colores = 27.
Supongo que con un par de registros de desplazamiento sobra.
saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: LalitoX en 13 de Mayo de 2009, 14:42:32
Igual ahora me doy cuenta que en un cubo rubik las bases son las caras, asi que tendrian que ser muchos mas led, 54 para ser exactos(6 lados x 9 divisiones), es un numero bastante importante... claro que se puede hacer pero por ahora lo voy a dejar en anotaciones para el futuro.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 13 de Mayo de 2009, 17:15:26
Es cierto, como no me di cuenta jaja. Son 6 caras y 9 cuadros por cara. La verdad que es mucho lio jeje.
Cualquier cosa q te mandes con el proyecto postealo por aca :wink:
saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Mobiuz en 17 de Mayo de 2009, 01:30:24
hola, soy nuevo en el foro y tambien en la electronica, ya e echo algunos circuitos,
me gustaria hacer este cubo,me gusto mucho y por lo que vi es facil. pero el problema es que no encuentro el esquema por ningun lado

aca esta la pagina oficial, tiene todo menos el esquema,
http://coilgunpower.com/picproj/333cube.php
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 17 de Mayo de 2009, 02:07:42
Hola Mobiuz!!
No es muy dificil pensar como conectar las piezas (lo dificil es ensamblarlas jeje). Supongamos q tenes LEDs tricolores de catodo comun. Entonces todos los catodos de una capa (piso) van a ir unidos, de tal modo que cuando pongamos a masa (un cero) esa capa vamos a poder encender esos leds dependiendo del estado de sus anodos.
Bien, ahora todos los anodos de una columna van a ir unidos. Los rojos con los rojos, los verdes con verdes y azules con azules. Eso te daria 27 canales por capa (3 colores x 9 leds). El resto es puro multiplexado, el cual se explica en paginas anteriores de este post, o si no usando el buscador del foro vas a encontrar muchos ejemplos.
suerte y saludos!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: chikinkira_fresita1 en 22 de Abril de 2010, 21:42:00
hola mucho gusto su pagina me parece super intersante ademas de que yo estoy estudiando pic apenas entre en esta materia.
y la verdad me agrado el 3x3x3 LED cube

y me gustaria tener mas informacion acerca de como se hace y como se conectan los leds, y si pudiera ayudarme a darme una idea de como programarlo

el programa que nosotros estamos empezando a usar es el mplap. y creo que esta algo complicado. yo le agradeceria que me ayudara  o brindara mas opciones y sujerancias para la elavoracion de este 3x3x3 LED cube  porfavor gracias por su atencion.
 :( y que pase un feliz dia :)
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: mtristan en 22 de Abril de 2010, 22:05:41
.


¿Qué tal? Yo hace unos días terminé de ensamblar mi cubo 4x4x4, para lo cual seguí las instrucciones de la (muy recomendable) página www.instructables.com (precisamente este artículo (http://www.instructables.com/id/LED-Cube-4x4x4/)). Ahí explica cómo construirlo y cómo multiplexar los 16 leds. El tema es que está solo en inglés y es un cubo monocromático. Acá (http://www.taringa.net/posts/ebooks-tutoriales/4691362/Cubo-De-Leds-RGB-4x4x4-Propio.html) hay un artículo de un muchacho que hizo el 4x4x4 RGB y está en español, aunque no muy bien explicado del todo...




Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: FAEC en 07 de Junio de 2010, 16:02:47
Ey!! gera que proyecto!!! en verdad esta muy muy bueno ... tanto asi que estoy intentando hacer uno XD pero tengo un problema y es que al montarlo no se me enciende nada .. crei que era problema del PIC pero ya lo revise y el PIC esta bn ... quiero que me funcione ya!! jejejee ... sera que tu me podrias ayudar con la simulacion? porfa te lo agradeceria!! cuidate .. y esta genial tu proyecto!! :)
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 07 de Junio de 2010, 19:57:17
Hola FAEC!
La matriz funciona bien? La has probado sin el pic? Tal vez confundiste anodos con catodos. Tambien puede que hayas confundido el tipo de transistor que controla cada piso. Revisa bien el circuito, lo mas probable es q hayas errado ahí.
saludos!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: FAEC en 07 de Junio de 2010, 22:50:55
Hola gera. Los transistores que estoy usando son 3904 y la matriz sin el PIC probandola solamente con bateria funciona muy bien ... acá te dejo la simulación que tengo en proteus, lo que tengo ahi en proteus fué lo que monté en la protoboard. Agradeceria tu ayuda gera :S ... muchas gracias!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: FAEC en 07 de Junio de 2010, 22:54:22
ejeje aca esta la simulacion !
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 07 de Junio de 2010, 23:21:06
Lo siento FAEC, pero no tengo proteus :S podrias hacer un screen del esquema y subirlo?? Tambien si es posible subi el codigo q estas usando.
saludos!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: FAEC en 07 de Junio de 2010, 23:37:31
Bueno gera acá te dejo la imagen de la simulación, el código que utilizo es el que tu pusiste en comentarios anteriores (me disculpas de antemano si te molesta que use tu mismo código), solo que con una diferencia, en tu código tu usabas en effect_rain 4 parámetros, y al compilarlo no compilaba, yo simplemente lo deje con los 3 y compila, pero el problema es que en la simulación empiezan a aparecer una serie de errores en la el tiempo real de simulación. Espero de verdad no te moleste gera, y sinceramente espero me ayudes :S
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: FAEC en 08 de Junio de 2010, 18:21:41
gera!! aca estoy probando el circuito .. pero solo me dura 22 segundos y luego se apaga no se porque!!  :shock:   será que me podrias ayudar con eso??
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 08 de Junio de 2010, 21:10:09
FAEC, no te puedo ayudar si no me mostras lo q estas haciendo. Por favor mostrame el circuito y el codigo q estas usando. Tal vez estas sobrecargando al pic, o hay algun bug en el codigo.
saludos!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: richardcen en 31 de Marzo de 2011, 09:01:31
hola chavos que tal como veran soy nuevo en esto delos pics pero me paresen mas que facinantes me tienta mucho realizar
el cubo de 4x4x4 pero uso el pic 16f84A alguien tendra la manera de ayudarme ???
con un tutorial o algo de antemano gracias !
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Nocturno en 16 de Octubre de 2011, 01:01:32
Este es la leche: 66 x 48 x 24 leds

No es una dirección de youtube válida
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: tapi8 en 16 de Octubre de 2011, 06:31:30
Esto ya sobrepasa lo tecnico y se convierte en arte. Que pasada.
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: gera en 16 de Octubre de 2011, 10:21:52
:shock: que laburo habra sido soldar todos esos leds!! Increible!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: MLO__ en 16 de Octubre de 2011, 10:49:38
 :shock: :shock: :shock:

espectacular ... una pasada!!!!
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: cptburgos en 10 de Noviembre de 2011, 14:46:51
Excelente ese cubo...  :mrgreen:
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: LuffyX en 30 de Noviembre de 2011, 03:19:15
Bueno, pues te salio muy bien tu cubo  :)

Lo he estado viendo y asi fue como me anime a hacer el mio :p , pero ahora el problema es que no se mucho de esto de la programacion, asi que trate de compilar tu codigo(el de draw.c effect.c y main.c) pero con mi pic18F4550, y lo trate de simular, pero nada mas no me funciono y por lo que estuve viendo(corrigeme si estoy mal), tu agarras de RB0-RB5 para 6 positivos de los leds, los otros 3 los agarras de RA0-RA2 y para manejar tus pisos (osea los negativos) agarras RC0-RC2.

Entonces, como todos esos pines los tiene mi pic, empece a hacer mi simulacion y cambie la libreria de tu pic por el mio(perdona si te molesta al robarte tu codigo para compilarlo), no me marco error en la compilacion(lo compile en Pic C Compiler, ya que no tenia el micro basic), me genero el .Hex y se lo cargue al proteus, pero no me funciona, espero que me puedas ayudar a hechar a andar mi cubo,alomejor es cosa facil mi error, pero para alguien que no sabe casi nada sobre pic pues puede resultar muy dificil. :(

Te dejo como lo conecte en el proteus:

http://www.megaupload.com/?d=KTVZOR8T

Perdon pero no se como poner el archivo para que lo descarguen, solo asi xDD

Saludos y espero que si me puedas ayudar  :-/
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: belgrano en 25 de Abril de 2012, 22:00:37
Buenas amigos!!! Hace poco termine una matriz de LEDs 3x3x3, inspirado en la idea q surgio en este hilo: http://www.todopic.com.ar/foros/index.php?topic=19613.msg195832#msg195832
Bueno, la matriz ya esta funcionando con un programita muy basico q hice para probarla (en CCS para un pic16f84a). Para armarla segui esta guia: http://www.instructables.com/id/LED-Cube-4x4x4/
Les dejo una foto y el programa q tengo por ahora:
(http://img156.imageshack.us/img156/3636/pict0051ac0.th.jpg) (http://img156.imageshack.us/my.php?image=pict0051ac0.jpg)
Código: C#
  1. #include <16F84A.h>
  2. #fuses XT,NOWDT,NOPROTECT
  3. #use delay(clock=4000000)
  4.  
  5.  
  6. #byte port_a=0x05
  7. #byte port_b=0x06
  8. #use fast_io(a)
  9. #use fast_io(b)
  10.  
  11.  
  12. int8 matriz[3]={0x00,0xFF,0x00}; //matriz q vamos a dibujar en el cubo por cada capa
  13. int8 capa[3]={~0x01,~0x02,~0x04};//matriz para activar de a una capa por vez
  14. int sec=0;
  15. int ret=20;     //variables para generar el juego de luces en la interrupcion del timer
  16. //en la interrupcion cambiamos la matriz a mostrar
  17.  
  18. #int_timer0
  19. void isr()
  20. {
  21.    ret--;
  22.    if(ret==0)
  23.    {
  24.       if(sec==0)
  25.       {
  26.          matriz[0]=0xff;
  27.          matriz[1]=0x00;
  28.          matriz[2]=0xff;
  29.          sec=1;
  30.       }
  31.       else
  32.       {
  33.          matriz[0]=0x50;
  34.          matriz[1]=0x50;
  35.          matriz[2]=0x50;
  36.          sec=0;
  37.       }
  38.       ret=20;
  39.    }
  40.  
  41.  
  42.    SET_TIMER0(0);
  43. }
  44.  
  45. void mostrar() //funcion q imprime matriz en el cubo
  46.  
  47. {
  48.    int i;
  49.    for(i=0;i<=2;i++)
  50.    {
  51.       port_b=matriz[i];
  52.       port_a=capa[i];
  53.       delay_us(500);
  54.    }
  55. }
  56.  
  57.  
  58. void main()
  59. {
  60.    set_tris_b(0x00); // todo puerto B como salida
  61.    set_tris_a(0x00); // todo puerto A como salida
  62.    enable_interrupts(INT_RTCC);
  63.    setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256);
  64.    set_timer0(0);
  65.    enable_interrupts(GLOBAL);
  66.    
  67.    while(TRUE)
  68.    {
  69.       mostrar(); //el programa principal se queda mostrando la matriz para siempre
  70. //la misma solo se puede modificar desde la interrupcion
  71.    }
  72. }

Este programa es provisorio, hasta q haga uno mejor y defina bien como va a ser el funcionamiento de la matriz. Y justamente acudo a ustedes para q me den ideas y sugerencias. Por el momento tengo pensado hacer un programita q siga una secuencia pre-programada (en una matriz gigante?). Tambien hay ideas como ponerle un jueguito de una pelotita (con un acelerometro), o que sea audioritmica.
En fin, ideas no faltan, lo que falta es pensar bien como implementarlo. Estoy un poco perdido porq no se bien como controlar los 27 LEDs. Por el momento el puertoB maneja cada columna, y el puertoA los 3 pisos o capas, pero son 9 LEDs por capa, asiq hay uno q me queda sin control :S
Esto se arregla, pero quiero ver cual es la mejor forma para q despues no se me complique hacer las secuencias de luces y eso.
En fin, tengo tantas ideas y tantas dudas jeje... supongo q las vamos a ir discutiendo conforme se desarrolle el hilo.
Muchas gracias!!!

:-/ :-/
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Zerep en 31 de Mayo de 2013, 15:37:25
Hola Gera
Como has estado espero que bien, olle una pregunta miraa desde hace tiempo eh estado viendo cubos de leds 3x3x3, construir y soldar es sencillo pero recomiendame un programa donde pueda estar aprendiendo algo sobre programacion, por que en realidad yo quiero hacer uno  y quisiera construir uno de 9x9x9

saludos
Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: Arsenic en 16 de Abril de 2015, 18:32:56
Hola, estoy armando uno con audiorítmicos que nos pasó un italiano a mi y a otro amigo. Pero aunque no tengo ningún inconveniente con la compilación, a la hora de importar el HEX generado en MPLAB me tira ese Warning en el programa Pickit2: "No configuration files". Si le declaro los fuses (__CONFIG ...) no compila. Les dejo el código para que lo revisen:
Código: [Seleccionar]
;directives

PROCESSOR       16F84A

    RADIX           HEX

;defs

PCL EQU 0x02
OPTREG EQU 0x01
TMR EQU 0x01
INTCON EQU 0x0B
TMR0 EQU 0x01
TRISB EQU 0x06
TRISA EQU 0x05
PORTA EQU 0x05
PORTB EQU 0x06
STATUS EQU 0x03
FSR EQU 0x04
INDF EQU 0x00
Z EQU 2 ; Z flags
GIE EQU 7 ; GIE bit
INTF EQU 1 ; INTF flag
LOWL EQU 0x20 ; bottom layer (8 bit pattern)
MIDL EQU 0x21 ; middle layer (8 bit pattern)
HIGL EQU 0x22 ; upper layer (8 bit pattern)
EXTL EQU 0x23 ; extra layer (9th led for each layer)
TIME EQU 0x24 ; current frame speed
TCONT EQU 0x25 ; frame speed counter
LSEL EQU 0x26 ; layer selector
BCONT EQU 0x27 ; brightness counter
BRIG EQU 0x28 ; brightness
CURL EQU 0x29 ; current layer



;program start

ORG     0x0000 ; start from address 0x0000

  goto Init

ORG 0x0004

Interrupt: ; interrupt service routine
bcf INTCON,INTF
bsf INTCON,GIE ; enabling the interrupt service
movf TMR,0 ; pick a pattern at random
andlw 0x07
addwf PCL,1 ; jump into jump table
goto Pattern_treble
goto Pattern_updown
goto Pattern_twobars
goto Pattern_buildframe
goto Pattern_rotplane
goto Pattern_rlplane
goto Pattern_snake
goto Pattern_fourface


Init: ; initialization
bsf STATUS,5 ; select RAM bank 1
movlw b'00000001'
movwf TRISB
movlw b'00000000'
movwf TRISA
bcf OPTREG,5 ; start the TMR module in counter mode
bcf STATUS,5 ; select RAM bank 0
movlw 0x00 ; all leds off
movwf PORTA
movwf PORTB
clrf LSEL ; no layer selected
call IdleCube



;******** ShowLayer **********************************
;
; Shows the layer encoded in W and EXTL for x msec.
; (BRIG/255)% of the time the layer is ON, the
; remaining (255-BRIG)/255)% of the time the layer
; is OFF. (this is a PWM controlled brightness)
;
;*****************************************************

ShowLayer:
; layer on for (255/BRIG)*x msec
; layer off for (255/(255-BRIG))*x msec
; where x depends on the osc used

; set the first seven leds (bit0 of PORTB is used to receive interrupts!)
movwf PORTB ; PORTB <- W

; set/clear the 8th led
btfsc CURL,0
bsf PORTA,2

; test the 9th bit of the current layer and set
; the 9th led accordingly (9th led = bit3 of PORTA)
movf EXTL,0
andwf LSEL,0 ; W <- EXTL & LSEL
btfss STATUS,Z ; is the 9th bit clear (9th led off)?
bsf PORTA,3 ; no, set the 9th bit

; set the 9th bit of the current layer and turn on
; the entire layer
movf LSEL,0
xorwf PORTA,1 ; PORTA <- W ^ LSEL

; wait (BRIG/255)%
movf BRIG,0
movwf BCONT
ShowLayer_loop_layeron:
decfsz BCONT
goto ShowLayer_loop_layeron

; turn off the entire layer
clrf PORTA

; wait ((255-BRIG)/255)%
movf BRIG,0
movwf BCONT
decf BCONT,1
ShowLayer_loop_layeroff:
incfsz BCONT
goto ShowLayer_loop_layeroff

return



;******** ShowCube ***********************************
;
; Shows the cube pattern for 0.01 * TIME sec using
; brightness level BRIG. The refresh rate is 100Hz.
;
;*****************************************************

ShowCube:

; setup counter
movf TIME,0
movwf TCONT ; TCONT <- TIME

ShowCube_loop:

; upper layer
movlw b'00010000'
movwf LSEL ; LSEL = b00010000;
movf HIGL,0
movwf CURL ; loads upper layer
call ShowLayer ; shows upper layer

; mid layer
movlw b'00000010'
movwf LSEL ; LSEL = b00000010;
movf MIDL,0
movwf CURL ; loads mid layer
call ShowLayer ; shows mid layer

; bottom layer
movlw b'00000001'
movwf LSEL ; LSEL = b00000001;
movf LOWL,0
movwf CURL ; loads bottom layer
call ShowLayer ; shows bottom layer

; repeat until TCONT>0
decfsz TCONT,1
goto ShowCube_loop

return



;******** IDLECUBE ***********************************
;
; The cube is glowing and ready to trigger...
;
;*****************************************************

IdleCube:

movlw b'11111111'
movwf LOWL
movlw b'11111111'
movwf MIDL
movlw b'11111111'
movwf HIGL
movlw b'00010011'
movwf EXTL

movlw 0x01
movwf BRIG ; smallest brightness
movlw 0x02
movwf TIME ; smallest pattern duration

bcf INTCON,INTF
bsf INTCON,4 ; enabling the interrupt from the RB0/INT pin
bsf INTCON,GIE ; enabling the interrupt service

IdleCube_fadein: ; fade in loop
call ShowCube
incfsz BRIG
goto IdleCube_fadein
IdleCube_fadeout: ; fade out loop
call ShowCube
decfsz BRIG
goto IdleCube_fadeout
incf BRIG,1
goto IdleCube_fadein



;******** PATTERN BUILDFRAME ************************
;
; Shows a self-building cube frame
;
;*****************************************************

Pattern_buildframe

movlw 0x00
movwf BRIG
movlw 0x40
movwf TIME

Pattern_buildframe_loop:

movlw b'00000000'
movwf HIGL
movlw b'10000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00010001'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'00010001'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00010001'
movwf HIGL
movlw b'00010001'
movwf MIDL
movlw b'00010001'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01110101'
movwf HIGL
movlw b'00010001'
movwf MIDL
movlw b'01110101'
movwf LOWL
movlw b'00010001'
movwf EXTL
call ShowCube
movlw b'01110101'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01110101'
movwf LOWL
movlw b'00010001'
movwf EXTL
call ShowCube
movlw b'01110101'
movwf HIGL
movlw b'01100100'
movwf MIDL
movlw b'01110101'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube
movlw b'01111111'
movwf HIGL
movlw b'01100100'
movwf MIDL
movlw b'01111111'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube
movlw b'01111111'
movwf HIGL
movlw b'01100100'
movwf MIDL
movlw b'01111111'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube
movlw b'01111111'
movwf HIGL
movlw b'01100100'
movwf MIDL
movlw b'01111111'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_buildframe_loop
goto IdleCube



;******** PATTERN TWO BARS ***************************
;
; Shows two spinning bars
;
;*****************************************************

Pattern_twobars

movlw 0x00
movwf BRIG
movlw 0x20
movwf TIME

Pattern_twobars_loop:

movlw b'01000000'
movwf HIGL
movwf MIDL
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube
movlw b'00001010'
movwf HIGL
movwf MIDL
movwf LOWL
clrf EXTL
call ShowCube
movlw b'00100100'
movwf HIGL
movwf MIDL
movwf LOWL
clrf EXTL
call ShowCube
movlw b'00010001'
movwf HIGL
movwf MIDL
movwf LOWL
clrf EXTL
call ShowCube

decfsz BRIG
goto Pattern_twobars_loop
goto IdleCube



;******** PATTERN UPDOWN *****************************
;
; Shows a layer moving up and down.
;
;*****************************************************

Pattern_updown:

movlw 0x00
movwf BRIG
movlw 0x50
movwf TIME
goto Pattern_treble_loop



;******** PATTERN TREBLE *****************************
;
; Shows a fast flickering cube
;
;*****************************************************

Pattern_treble:

movlw 0x00
movwf BRIG
movlw 0x10
movwf TIME

Pattern_treble_loop:

movlw b'11111111'
movwf HIGL
clrf MIDL
clrf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube

clrf HIGL
movlw b'11111111'
movwf MIDL
clrf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube

clrf HIGL
clrf MIDL
movlw b'11111111'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_treble_loop
goto IdleCube



;******** PATTERN SNAKE *****************************
;
; Shows a snake running across the cube
;
;*****************************************************

Pattern_snake

movlw 0x00
movwf BRIG
movlw 0x30
movwf TIME

Pattern_snake_loop:

movlw b'10100010'
movwf HIGL
clrf MIDL
clrf LOWL
clrf EXTL
call ShowCube
movlw b'00110010'
movwf HIGL
clrf MIDL
clrf LOWL
clrf EXTL
call ShowCube
movlw b'01110000'
movwf HIGL
clrf MIDL
clrf LOWL
clrf EXTL
call ShowCube
movlw b'01011000'
movwf HIGL
clrf MIDL
clrf LOWL
clrf EXTL
call ShowCube
movlw b'01001100'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00001101'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000101'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00000011'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00100000'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00100000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00110000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01110000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01011000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01001100'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00001101'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000001'
movwf MIDL
movlw b'00000101'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000001'
movwf MIDL
movlw b'00000001'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000011'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00100010'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00110010'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01110000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01011000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01001100'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000100'
movwf HIGL
movlw b'00001100'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000101'
movwf HIGL
movlw b'00000100'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000101'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00000011'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00100000'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00100000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00100000'
movwf MIDL
movlw b'00110000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01110000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'01010000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01000000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'01000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01010000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01110000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00110010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00000010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010010'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000001'
movwf LOWL
movlw b'00000011'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000101'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00001101'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'01001100'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'01001000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01000000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'01000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01001000'
movwf HIGL
movlw b'01000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'11001000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'10001010'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_snake_loop
goto IdleCube


;******** PATTERN FOURFACE ******}********************
;
; Shows four faces of the cube
;
;*****************************************************

Pattern_fourface

movlw 0x00
movwf BRIG
movlw 0x30
movwf TIME

Pattern_fourface_loop:

movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'11111111'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube
movlw b'01001100'
movwf HIGL
movlw b'01001100'
movwf MIDL
movlw b'01001100'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'11111111'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'00100010'
movwf MIDL
movlw b'00100010'
movwf LOWL
movlw b'00010011'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_fourface_loop
goto IdleCube

;******** PATTERN RLPLANE ***}************************
;
; Shows a raising-lowering horizontal plane
;
;*****************************************************

Pattern_rlplane

movlw 0x00
movwf BRIG
movlw 0x40
movwf TIME

Pattern_rlplane_loop:

movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'11111111'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'01001100'
movwf MIDL
movlw b'10110011'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube
movlw b'01001100'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'00100010'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube
movlw b'11011101'
movwf HIGL
movlw b'00100010'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'11111111'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'10110011'
movwf HIGL
movlw b'01001100'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'01001100'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00100010'
movwf MIDL
movlw b'11011101'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'00000000'
movwf HIGL
movlw b'00000000'
movwf MIDL
movlw b'11111111'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_rlplane_loop
goto IdleCube



;******** PATTERN ROTATEPLANE ************************
;
; Shows a rotating plane
;
;*****************************************************

Pattern_rotplane

movlw 0x00
movwf BRIG
movlw 0x30
movwf TIME

Pattern_rotplane_loop:

movlw b'00000000'
movwf HIGL
movlw b'11111111'
movwf MIDL
movlw b'00000000'
movwf LOWL
movlw b'00000010'
movwf EXTL
call ShowCube
movlw b'00100010'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'01001100'
movwf LOWL
movlw b'00010000'
movwf EXTL
call ShowCube
movlw b'10010001'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'10010001'
movwf LOWL
movlw b'00000000'
movwf EXTL
call ShowCube
movlw b'01001100'
movwf HIGL
movlw b'10010001'
movwf MIDL
movlw b'00100010'
movwf LOWL
movlw b'00000001'
movwf EXTL
call ShowCube

decfsz BRIG
goto Pattern_rotplane_loop
goto IdleCube

END

Título: Re: Cubo de LEDs (una matriz 3D)
Publicado por: KILLERJC en 16 de Abril de 2015, 23:24:07
Citar
. Si le declaro los fuses (__CONFIG ...) no compila

Exactamente cual es el error que te da ?

Obviamente ahi en el codigo no se encuentra los fuses, por lo que el Pickit2 te avisa.