Bienvenido a Hardcore Modding

 Vivir el modding / Iniciarse en el modding 26 de abril de 2024 09:34   Modding  ·  Artículos  ·  Guías  ·  Guías de los usuarios  ·  Reviews  ·  Enviar Noticia ·  Top 10 ·  Temas

Minichat

El_Nene :Feliz año dos meses tarde!!! Aqui el tiempo pasa mas lento
xenon :Feliz año 2024. Me embargó la nostalgia al ver que aun existe el foro :)
Cyg :Feliz Navidad 2023
DjSalva :02/10/2023 Saludos chicos cuanto tiempo, El_ Nene cuanta razon :)
Jesmasco :2023
Steam :Saludos! Iniciar sesión despues de 13 años, que recuerdos!
El_Nene :y aún así algo te llama para volver a entrar :)
djmax :saludos años t años que no entraba a esta pagina
El_Nene :Acabo de empezar un nuevo proyecto, a ver si los demás os animais.
El_Nene :cuanto tiempo!!!
aulex51 :Buen año a todos!
unkdememoria :Hola Locos
Cyg :Saludos-28-oct-2022
Cyg :Saludos-28-oct-2022
Chinoka :Aloha. 14/Sept/2022
TELOR5 :No veo como enviar mensaje
TELOR5 :No veo como enviar mensaje
alvaro :Hola 2022!!
el_friky :Buenas Mundo!!! 31/12/21
Tpm :Buenas tardes.... 25/11/21 Saludos!!!
CR6302428 :un buen dia para el que lea esto :)
CR6302428 :un buen dia para el que lea esto :)
:)8):eek::(:@;):P9):O

 FAQFAQ   BuscarBuscar   Grupos de UsuariosGrupos de Usuarios   PerfilPerfil   Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   ConectarConectar 

Propeller clock 2: más grande, más fuerte
Ir a página   
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Electronica
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Teotekaplan
Moderador
Moderador



País:
Sexo:
Registrado: 31 marzo 2003
Mensajes: 4124
Ubicación: Madrid

MensajePublicado: Vie, 20 May 2005 6:40 pm    Asunto: Propeller clock 2: más grande, más fuerte Responder citando

Bueno visto el éxito del otro reloj (que se queda así, ya que es una beta del que propondré ahora) pues quiero iniciar con vosotros otro proyecto de un reloj giratorio pero con grandes novedades.

Será vertical, para colocarlo en la pared del salón de mi casa, y medirá unas 17 pulgadas de diámetro.

Me propongo que la parte interna sea analógica (de agujas, vamos) y en la externa disponer una columna de 8 leds SMD para poder mostrar textos.

Algo como esto:


Bien, Lo primero que quiero advertir para que no haya desilusiones, es que no sé a ciencia cierta hasta qué punto será posible hacer todo lo que pretendo con un simple pic 16F876A funcionando a 20 Mhz. Mi idea es ir planteando aquí el reloj desde cero y viendo si es factible montarlo.

Lo primero es el tamaño. He pensado en un brazo de 22 cm de longitud, que nos da una esfera de 44 cm de diámetro (17,3 pulgadas). Después viendo la imagen, he contado que tiene una resolución de 480 pixels (son 80 caracteres de 6 pixels cada uno).

Centrándonos en esos 480 pixels, vamos a ver si es factible conseguirlos mediante un pic.

Voy a suponer una velocidad de giro de 1500 RPM, que corresponde a 25 Hz, lo que nos evitaría el parpadeo. A esa frecuencia, el brazo tarda en dar una vuelta completa 40 mSeg.

En 40 mSeg hay que meter 480 pixels así que dividiendo nos da un tiempo por cada pixel de 83.3 uSeg. Si tenemos en cuenta que el pic a 20 Mhz ejecuta 5 instrucciones por uSeg, creo que hay margen más que de sobra para que le de tiempo a dibujarlos todos.

Para la parte analógica, 480 pixels también son un buen número, aunque no los usaremos todos. La esfera tiene 60 divisiones, lo que nos da 8 pixels cada división). Para darle un poco más de resolución al segundero, podemos hacer que lo dibuje entre medias, así que nos saldrían 4 pixels.

Como veis números redondos. No es mal comienzo. 83 uSeg de media es tiempo de sobra para encender los led, calcular cuales son los siguientes encender y esperar a que acaben los 83 useg para repetir el ciclo.

Bien, primer punto terminado. Ahora me surge una duda... ¿y si la velocidad del motor no es estable? Ahí existe un problema, ya que si calculamos un tiempo preciso por cada pixel, si el motor gira a más velocidad, habrá completado un giro en menos de los 40 mSeg que necesitamos para dibujar la esfera completa. Si el motor va mas lento, habremos acabado de dibujar ántes que él.

Eso hay que arreglarlo... a ver qué se me ocurre... veamos... El PIC 16F876A tiene un timer1 de 16 bits (cuenta 65536 veces antes de volver a 0 y generar una interrupción). A ese timer se le puede asignar un comparador (CCP1) que nos avisa cuando el valor del timer1 coincide con el almacenado en el comparador.

El timer por defecto va a 1/4 la velocidad del pic,, osea 5 Mhz. Si le configuramos un divisor /8 -esto lo hace el pic- tenemos una frecuencia de 625 Khz que nos da una resolución de 1.6 uSeg.

Vamos, que cada 1.6 uSeg, el timer avanza 1, hasta llegar a 65536.

¿Y de qué nos sirve todo esto? Pongamos un supuesto práctico.

Esperamos que el motor pase por el índice de rotación -acordaros aquel optoacoplador que nos indica principio de un nuevo giro- y ponemos en marcha el timer1. Esperamos hasta el siguiente giro y en ese momento detenemos el timer, o anotamos su valor.

Pongamos que nos sale 26880 . Si lo multiplicamos por 1.6 tenemos 43008 uSeg que es el tiempo que tardó en dar la vuelta el brazo.

El número que nos ha dado (26880) lo dividimos entre 480 -nuestros pixels- nos da 56 . Eso quiere decir que por cada 56 ticks del timer, habremos avanzado un pixel.

Ese valor de tiempo por pixel lo metemos en el registro comparador.

Ahora ese comparador nos proporcionará una interrupción que va a ocurrir exactamente cada 56 ticks, 1 pixel. Si multiplicamos 56*1.6 tendremos un tiempo de pixel de unos 89 useg. Como veis, ajustado a la variación de velocidad.

La secuencia concreta para un giro sería entonces: Pasamos por el índice y ponemos el timer1 a 0. Dibujamos lo que haya que dibujar en la posición 0 (las 12:00) y esperamos que el comparador nos avise 56 ticks después. En ese momento entraremos en una rutina que nos ilumina los led necesarios y calcula cuáles deben iluminarse en el siguiente aviso. Cogemos el valor del comparador y le sumamos otros 56. Recordar que el timer1 y el comparador avanzan a la vez, con lo que cuando el comparador nos haya avisado en el tick56, el timer seguirá avanzando, por eso debemos cambiar el comparador a 56+56 y sucesivamente, para ir pillando al timer1.

Lo que se hace normalmente, según he visto, es calcular el tiempo por cada pixel al inicio del programa. Se espera unos segundos a que la velocidad del motor estabilice y se hace la primera medida. Después, una vez en el modo normal de funcionamiento, se añade un contador de vueltas -por ejemplo 100-, que llama a la rutina de calibración y calcula el nuevo valor del comparador, si ha habido diferencias de velocidad.

Repasemos conceptos a esta hora: 480 pixels de resolución, velocidad media 25 Hz (1500RPM) . Timer con una resolución de 1.6 uSeg y un comparador que nos avisa para dibujar cada pixel.

Espero que esta parte no haya quedado demasiado compleja... leerla un par de veces que creo que es entendible hehehe...

Ahora me viene una curiosidad, y es saber el tamaño que tendrán las letras (bueno... curiosidad no... no me apetece marcarme un reloj donde luego el texto se vea una mierda) XDD.

Recurriremos a las mates de ¿septimo? Sobre PI y las circunferencias.

Quedamos en que el brazo tendría 220 mm de largo, con lo que el pixel más alejado estaría a esa distancia. La longitud de la circunferencia es 2*PI*radio = 1382,3 mm. Divididos entre 480 pixels no da 2,88 mm de ancho en el extremo superior. Por 6 tenemos 17,28 mm por cada carácter.

Yo usaré leds SMD espaciados 2 mm, como el texto lleva 8, tengo 16 mm de altura por cada carácter. El tamaño de la parte inferior es de 220-16=204 mm... longitud... 1281,8... entre 480...2.67 por pixel... 16mm por caracter.

Vamos que de alto 16 mm, y de ancho por arriba 17,3 y por debamo 16mm. Las letras salen cuadradas. Me gusta la idea... sobre todo porque si vamos a la foto del principio, comprobamos que las letras sí son más o menos cuadradas y sí de ese tamaño.

Hoy se ha avanzado bastante... continuará...
'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.'
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Jose_JN
modder
modder



País:
Sexo:
Registrado: 09 noviembre 2002
Mensajes: 1714
Ubicación: JAEN

MensajePublicado: Vie, 20 May 2005 7:40 pm    Asunto: Responder citando

Está wapo.... pero a mi personalmente me gusta mas el otro diseño (en perpendicular al plano de rotación) porque le dá un aire 3D al texto muy wapo... pero, bienvenido sea todo proyecto Guiño Guiño Guiño
A ver si acabo los examenes y me pongo con mis pinitos...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
DuDuDMaN
modder
modder



País:
Sexo:
Registrado: 11 agosto 2004
Mensajes: 361
Ubicación: En UNO de los 69.588.359.698 ordenadores del mundo. (Barcelona)

MensajePublicado: Vie, 20 May 2005 7:50 pm    Asunto: Responder citando

teo cada dia me sorprendes mas, pues adelante con el proyecto y espero que sea satisfactorio.

Espero ansioso todos los acontecimientos.

Saludos

DuDuDMaN
<img height=80 width=400 src="http://img436.imageshack.us/img436/1970/firma30bi.jpg">
Una mala refrigeración líquida es como un mal preservativo. Si se escapa una gotita, la has cagado Guiño Guiño
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Chardo
modder
modder



País:
Sexo:
Registrado: 08 abril 2004
Mensajes: 1112
Ubicación: Tudela(Navarra)

MensajePublicado: Vie, 20 May 2005 7:53 pm    Asunto: Responder citando

Pues un proyecto muy bueno, la verdad es que este y el otro son muy buenos.

Los dos son muy originales, lo único que no me termina de convencer es que no lo puedas poner al pc Triste

Por lo demás muy bien, la explicación se sigue sin problemas Bromista , muy buena

Una cosa, no se que motor utilizarás o si será uno de un ventilador(lo dudo, creo qeu será mucho peso y poco eje) pero quizás tenga el propio rotor monitor de rpm (no se expliacrlo, digo el cable amarillo de los ventiladores de pc)

Te ahorrarias el tener que controlar el tiempo total de giro.

Saludos

Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
toxicgrx
modder
modder



País:
Sexo:
Registrado: 16 noviembre 2003
Mensajes: 1152
Ubicación: (REUS) Tarragona /> Catalunya />

MensajePublicado: Vie, 20 May 2005 8:30 pm    Asunto: Responder citando

Bueno pues vamos pa lla . Cada vez flipo mas con tus ideas jeje, haber si te inventas la tele pero funcionando con un ventilador.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
RaDoN
Moderador
Moderador



País:
Sexo:
Registrado: 06 diciembre 2002
Mensajes: 1288
Ubicación: Sevilla

MensajePublicado: Sab, 21 May 2005 1:10 am    Asunto: Responder citando

Tunea el ventilador de tu cuarto !!! ahora en el veranito tiene que quedar wapo jajajaja ... ansioso por que le jinques el diente al proyecto Fresco
Volver arriba
Ver perfil de usuario Enviar mensaje privado
negrorider
modder
modder



País:
Sexo:
Registrado: 21 marzo 2005
Mensajes: 380

MensajePublicado: Sab, 21 May 2005 1:20 am    Asunto: Responder citando

joder... cada dia con cosa buenas y originales... me gusta muxo tu/tus ideas
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
SnR_TFe
modder
modder



País:
Sexo:
Registrado: 07 abril 2004
Mensajes: 794
Ubicación: tenerife(santa cruz):D ya !!

MensajePublicado: Sab, 21 May 2005 2:15 am    Asunto: Responder citando

otra paranoya mas de programacion de PICs de Teo,pero cada loco con su tema,y este es uno de los del coleguita teo.suerte y a ver si me impresionas mas ke con la V1.0.(ke lo dudo)
salu2 modders Guiño
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Teotekaplan
Moderador
Moderador



País:
Sexo:
Registrado: 31 marzo 2003
Mensajes: 4124
Ubicación: Madrid

MensajePublicado: Sab, 21 May 2005 9:53 am    Asunto: Responder citando

Chardo escribió:
Los dos son muy originales, lo único que no me termina de convencer es que no lo puedas poner al pc Triste


Bueno... ciertamente dentro del PC no entra pero... ¿quien dice que no se puede utilizar el marco exterior para mostrar información sobre temperaturas, rpms... etc?

Hehehe son "ideas"...
'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.'
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Teotekaplan
Moderador
Moderador



País:
Sexo:
Registrado: 31 marzo 2003
Mensajes: 4124
Ubicación: Madrid

MensajePublicado: Sab, 21 May 2005 10:36 am    Asunto: ¿Cómo dibujar las agujas? Responder citando

Bueno, unos apuntes rápidos antes de comenzar el día. Necesitamos saber en qué momento hay que dibujar las agujas dependiendo de la hora que sea. ¿Cómo lo conseguimos?

Usaremos un contador asociado al comparador. Aquel que nos activaba una interrupción en las posiciones donde deben ir los pixels. Al inicio del giro nos encontraremos en el pixel 0. Cada interrupción irá incrementando un contador de pixels, de forma que lleguemos hasta el número 479.

Las 12 van en el pixel 0 , las 3 en el 119, las 6 en el 239 y así sucesivamente. Usando un poco de matemáticas...

Código:
pixel_segundos = segundos * 8 (hasta 59*8)
pixel_minutos = minutos * 8 (hasta 59*8)
pixel_horas = horas * 40 (hasta 11*40)


Esto nos da unas posiciones aproximadas pero no precisas. Por ejemplo a las horas y media, la aguja horaria no estará en medio de las 2 horas... repasando un poco podemos obtener..

Código:
pixel_horas = (horas*40) + (minuto/1.5) (cada hora son 40 pixels, 4 son 6 minutos, 2 son 3 y 1.5 pixels representan un minuto)
pixel_minutos = (minutos*8) + (segundos/7.5) (cada minuto 8 pixels, 4 en 30 seg, 2 en 15 y 1 en 7.5)
pixel_segundos = (segundos*8) + (decimas/1.25) (lo mismo que antes... 1 pixel cada 125 mseg)


Suponiendo que sean las 6:15:20.0, las fórmulas nos darían los siguientes resultados
Código:
 pixel_horas = 250
pixel_minutos = 122
pixel_segundos = 160


Comprobamos una vez más el límite... si la hora fueran las 11:59:59.9 tendríamos unos valores para hh,mm y ss de -respectivamente- 479, 479 y 479. Correcto.

Al inicio del giro, el contador de pixels se pone a cero, incrementándose cada 56 ticks (cada interrupción del comparador). Con sentencias parecidas a
Código:
 IF cuenta_pixels = pixel_hora THEN dibujahora();

tendríamos las agujas en su sitio.

Hay un tema, que trataremos en su momento con calma, que preocupa a más de uno. Y es si dará tiempo en unos 80 uSeg para hacer todos los cálculos y realizar las tareas correspondientes. Uno de los cálculos que más puede llevar tiempo es calcular precisamente las posiciones de las agujas, ya que la llevar decimales, se generan unas cuantas líneas de código para procesar.

Esto no lo veo realmente un gran problema, ya que la hora sólo cambia una vez por segundo, con lo que calcular la posición constantemente, una vez por cada giro, es una tontería.

Vamos, que realmente la posición de las agujas hay que calcularla únicamente cada vez que el reloj avanza un segundo (o una décima, por culpa del segundero) y no en cada giro del brazo.

Eso ahorra muchiiiiiisimo tiempo. Y es tiempo que tenemos, por ejemplo, para dedicarlo al texto del borde.
'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.'
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
juantxorena
modder
modder



País:
Sexo:
Registrado: 02 septiembre 2002
Mensajes: 1396
Ubicación: La Comarca

MensajePublicado: Sab, 21 May 2005 12:37 pm    Asunto: Responder citando

Supongo que lo habrás pensado, pero se me ha ocurrido que el texto del borde podrían ser los números de las horas (de 1 a 12). No?
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
AlkuN
modder
modder



País:
Sexo:
Registrado: 20 octubre 2004
Mensajes: 635
Ubicación: Valencia

MensajePublicado: Sab, 21 May 2005 12:38 pm    Asunto: Responder citando

Joer que bueno...

Creo que eso lo he visto en una rueda de bicicleta con un contador de rpm para que se lea siempre independientemente de la velocidad (hasta un mínimo supongo).

A lo mejor me animo y hago uno pa mi Muy feliz
Con semejante brazo tendrás que compensarlo muy bien.

Venga suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Teotekaplan
Moderador
Moderador



País:
Sexo:
Registrado: 31 marzo 2003
Mensajes: 4124
Ubicación: Madrid

MensajePublicado: Sab, 21 May 2005 1:20 pm    Asunto: Responder citando

Si, creo que se llaman POV Toys (Persistence Of Vision Toys)... los vi hace tiempo... hace tiempo que me reclaman uno igual mis sobrimos pa sus bicis... algún día se lo haré...
'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.'
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Teotekaplan
Moderador
Moderador



País:
Sexo:
Registrado: 31 marzo 2003
Mensajes: 4124
Ubicación: Madrid

MensajePublicado: Dom, 22 May 2005 10:22 pm    Asunto: El brazo Responder citando

Esta es la imagen del diseño que he hecho para el brazo.


Tiene una lontigud de 220 mm. Se compone de 32 leds rojos (24 para la hora + 8 para los minutos), 8 led smd ámbar para el texto y contorno, un led bicolor para marcar horas y minutos y uno de 5 mm para el contorno (en mi caso es un led RGB que cambia de color solo).

Y con el brazo ideado y dos horas de photoshop, he hecho esto



para hacerme una idea de cómo quedarán las cosas con el reloj en marcha.
'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.'
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
russh3r
modder
modder



País:
Sexo:
Registrado: 03 noviembre 2004
Mensajes: 152
Ubicación: Reus

MensajePublicado: Dom, 22 May 2005 10:57 pm    Asunto: Responder citando

teotekaplan, no crees que tendras que usar un motor un poco "grande" para que se vea continuidad, sin parpadeos, piensa que este ya es bastante mas grande que el otro, no es por desanimar, pero que tipo de motor le vas a poner? salu2
y venga sigue Alimentando nuestras pobres cabezas BromistaBromistaBromista salu2 y hasta luego Muy feliz
DFI Lanparty SLI-D // AMD X2 4400 (Toledo) // 2Gb DDR Kingston // XFX 7900GT XT // SATA2 320Gb Maxtor // Hyper HPU 580W Semi-Modular.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión -> Electronica Todas las horas son GMT + 2 Horas
Ir a página   
Página 1 de 6

 
Cambiar a:  

Powered by phpBB.


Este sitio no se hace responsable de ningún daño que cause en su ordenador con la información que en el se expone.Todos los productos y marcas están registrados por sus respectivos propietarios. Prohibida la reproducción total o parcial de los textos e imagenes de esta web sin el consentimiento expreso de su autor.
Hardcore-Modding.com 2001-2019 Los comentarios son propiedad de sus autores (ya sean anonimos o registrados).
Portal basado en NukeET, RSS
Página Generada en: 1,014 segundos

π