Algoritmo para nombre and POV led

#1
Hola compañeros este es uno de los muchos temas que escribiré para preguntar y debatir sobre los PIC's. Bueno, la cuestion es la siguiente: en josepino se encuentra un proyecto sobre un airdisplay (parecido al propeller clock que tanto me gusta y me gustara) y se muestra un algoritmo para personalizar el mensaje. Me gustaria que me explicaran cuales son los pasos que debo tomar para modificar el algoritmo con mi nombre (anthony) y en diversas ocaciones cambiarlos a otros.
Aqui se encuentra el link del algoritmo: http://www.josepino.com/pic_projects/air_display/airdisplay_code.html. Gracias por su atensión y tiempo y espero sugerencias, modificaciones, etc. Gracias
 
#2
Con lo sencillo que es decir "usar tablas"
¿Cual es el problema? es tan facil como... pos no, lo es más aun. dolo tienes que ir llamando ´a la letra que quieres invocar. en orden claro está.

con fijarte un poco, igual te das cuenta y todo.

PD joer como se notan los tripis
 
#3
Pues lo que pasa es que estoy superrrrr novato en esto de los PIC's y no se que tomar. Saludos.
PD: Me podrias mostrar como se haria con las 2 primeras letras?
 
#4
Algo asi?

Código:
 ;Microcontroller:  12f629 Speed: 4 Mhz Internal RC

delay 200 miliseconds
Set Comparator Mode 7

variable byte f = 00000000b   ; Output data
variable byte s                  ; Temporal variable
variable byte o                  ; message number.

procedure salida( s as byte ) is
gpio = s
delay 500 us
gpio = 00000000b
delay 200 us         
end procedure

procedure disp ( f as byte ) is
if f = "0" then f = "O" 
if f = "A" then
   salida(0011_0110)
   salida(0000_0101)
   salida(0000_0101)
   salida(0011_0110)
end if
if f = "B" then
   salida(0011_0111)
   salida(0010_0101)
   salida(0010_0101)
   salida(0001_0010)
end if
if f = "C" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0001)
   salida(0010_0001)
end if
if f = "D" then
   salida(0011_0111)
   salida(0010_0001)
   salida(0010_0001)
   salida(0001_0110)
end if
if f = "E" then
   salida(0011_0111)
   salida(0010_0101)
   salida(0010_0101)
   salida(0010_0001)
end if
if f = "F" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0000_0001)
end if
if f = "G" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0101)
   salida(0011_0101)
end if
if f = "H" then
   salida(0011_0111)
   salida(0000_0100)
   salida(0000_0100)
   salida(0011_0111)
end if
if f = "I" then
   salida(0010_0001)
   salida(0011_0111)
   salida(0010_0001)
end if
if f = "J" then
   salida(0001_0000)
   salida(0010_0000)
   salida(0010_0000)
   salida(0001_0111)
end if
if f = "K" then
   salida(0011_0111)
   salida(0000_0100)
   salida(0001_0010)
   salida(0010_0001)
end if
if f = "L" then
   salida(0011_0111)
   salida(0010_0000)
   salida(0010_0000)
   salida(0010_0000)
end if
if f = "M" then
   salida(0011_0111)
   salida(0000_0010)
   salida(0000_0100)
   salida(0000_0010)
   salida(0011_1111)
end if
if f = "N" then
   salida(0011_0111)
   salida(0000_0010)
   salida(0000_0100)
   salida(0001_0000)
   salida(0011_0111)
end if
if f = "O" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0001)
   salida(0001_0110)
end if
if f = "P" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0000_0010)
end if
if f = "Q" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0011_0001)
   salida(0011_0110)
end if
if f = "R" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0011_0010)
end if
if f = "S" then
   salida(0010_0010)
   salida(0010_0101)
   salida(0010_0101)
   salida(0001_0001)
end if
if f = "T" then
   salida(0000_0001)
   salida(0011_0111)
   salida(0000_0001)
end if
if f = "U" then
   salida(0001_0111)
   salida(0010_0000)
   salida(0010_0000)
   salida(0001_0111)
end if
if f = "V" then
   salida(0000_0111)
   salida(0001_0000)
   salida(0010_0000)
   salida(0001_0000)
   salida(0000_0111)
end if
if f = "W" then
   salida(0011_0111)
   salida(0001_0000)
   salida(0000_0100)
   salida(0001_0000)
   salida(0011_0111)
end if
if f = "X" then
   salida(0010_0001)
   salida(0001_0010)
   salida(0000_0100)
   salida(0001_0010)
   salida(0010_0001)
end if
if f = "Y" then
   salida(0000_0001)
   salida(0000_0010)
   salida(0011_0100)
   salida(0000_0010)
   salida(0000_0001)
end if
if f = "Z" then
   salida(0011_0001)
   salida(0010_0101)
   salida(0010_0101)
   salida(0010_0011)
end if
if f = "1" then
   salida(0010_0001)
   salida(0011_0111)
   salida(0010_0000)
end if
if f = "h" then         ; 'h' lowercase = Hearth character
   salida(0000_0010)
   salida(0000_0111)
   salida(0001_0111)
   salida(0011_0110)
   salida(0001_0111)
   salida(0000_0111)
   salida(0000_0010)
end if
if f = "!" then
   salida(0000_0000)
   salida(0010_0111)
   salida(0000_0000)
end if
if f = "'" then
   salida(0000_0011)
end if
if f = "." then
   salida(0010_0000)
end if
if f = "o" then        ; 'o' Lowecase
   salida(0001_0000)
   salida(0010_0100)
   salida(0010_0100)
   salida(0001_0000)
end if
if f = " " then        ; space character.
   delay 4 miliseconds
end if
delay 1 milisecond
end procedure

; main program
gpio = all output

if o = 0 then
; Display  "ANTHONY"
o = o + 1
anthony loop
disp("A")
disp("N")
disp("T")
disp("H")
disp("O")
disp("N")
disp("Y")
disp(" ")
disp("h")
end loop
end if
o = 0
salida(0000_0000)
sleep microcontroller   ; sleep command
nop   ; No operation
 
#5
Hay una opción, no te lo tomes a mal, que te permite simular los programas. Prueba a usarla a ver que ocurre.

Saludos

PD me encanta tu postura. eres un autodidacta que merece la pena apoyar.
 
#6
Muchas gracias, pues lo que se lo saque de leer ,comprender y preguntar demasssss. Bueno me podrias decir que programa? Estube conversando con algunos compañeros y me dijeron que necesito copilarlo o algo por el estilo y trabajar en conjunto con el MPlab
 
#7
mira anthony
en el mplab puedes crear tus programas y compilarlos y luego consiguete el proteus , una herramienta poderosisima para simulacion de microcontroladores y en ella lo simulas
 
#9
LA pregunta más lógica no sería ¿El programa original funciona?
Contesta eso primero. y luego continuamos.

Saludos

PD. Esa pregunta te va a costar unas birras.
 
#10
El nombre dijo:
PD. Esa pregunta te va a costar unas birras.
Ya las estoy enviando por fedex!
Pues la verdad que modifique el codigo en microbasic y lo copile. Falta que me llegue el PIC y lo armo de una.
PD: Todavia dejo una pregunta al aire ¿Como lo hago con mas resolusion empleando el archiconocido 16F84A?
 
#13
te adjunto un programita muy sencillo para sacar un código de una tabla.
Primero aprende a utilizar la tabla simulando con el Mplab.
Si comprendes como funciona podrás hacerte el que quieras facilmente. Tiene una pega si tasas con las tablas. ya te darás cuenta.

Saludos y paciencia
 

Adjuntos

#14
mmm la verdad tedria que ir intentando. Pero siempre me ha gustado tener una persona que me ayude personalmente o que acuda a un curso no se. Creo que se aprende mejor asi. Pero gracias por la ayuda. Seguire intentando. Cualquier cosa lo publico aki.
 
#15
hombre, viene a ser como nadar. tienes que empezar por el principio.
Bájate un tutorial y...
Tienes todo el permiso del mundo para bombardear mi correo cuanto quieras y respecto a lo que quieras. (no más que cervezas, pasta ni un ctmo).

A tu servicio
 
#16
No sé si entiendo la pregunta.

Los códigos que mandas a los leds los enciendes y apagan, formando el dibujo de las letras. Si inclinas tu cabeza sobre el hombro derecho y te fijas en los códigos, verás el "dibujo" que se manda para "dibujar" cada letra.

Con eso puede crear cualquier gráfico. Prueba a dibujar el texto que quieres en papel cuadriculado, y pasa luego la secuencia de casillas encendidas/apagadas al PIC.

Si no estoy respondiendo a la pregunta, disculpadme :)
 
#18
En breve voy a disponer de mi ordenata y así poder terminar una cosa que tengo pendiente en este gran foro. Si quieres podemos abrir un par de temas ya que nadie se decide:
En uno voy comentando el pic en ensamblador, desde cero.
En otro se van comentando problemas.
De esa forma se puede quedar un bonito tutorial
 
#19
Hola he visto el circuito del enlace que aparece en el primer post, me podriais explicar de como con ese circuito, tan solo 7 leds, se puede ver una palabra, perdonad la intrusion en el tema pero parece interesante.
Un saludo.
 
#20
patriceloco dijo:
Hola he visto el circuito del enlace que aparece en el primer post, me podriais explicar de como con ese circuito, tan solo 7 leds, se puede ver una palabra, perdonad la intrusion en el tema pero parece interesante.
Un saludo.
Letra A:

Código:
  **
 *  *
*    *
******
*    *
*    *
Letra K

Código:
*      *
*    *
*  *
**
*  *
*    *
*      *
Los 7 leds que giran son cuando están en la posición angular "1", se iluminan todos a la vez
un momento despues, que se han movido, se apagan todos menos el central. Un momento despues se apaga el central y se encienden los que tenía a cada lado. Un poco despues, se apagan esos dos y se encienden los dos que tienen a su lado, hacia el exterior... etc.
Acabas de dibujar una letra "k" en el aire
 

Temas similares