TODOPIC
Otros Microcontroladores / Dispositivos programables => ** PROYECTOS ** => Mensaje iniciado por: elgarbe en 13 de Septiembre de 2014, 20:41:23
-
Bueno, despues de ir eliminando dudas sobre el pasaje de imágenes de rectangular a coordenadas polares (http://www.todopic.com.ar/foros/index.php?topic=43367.0) y luego de resolver dudas para el almacenamiento externo de las imágenes y la velocidad de transferencia de datos (http://www.todopic.com.ar/foros/index.php?topic=43384.0) estamos en condiciones de ir publicado los avances del proyecto.
Resumiendo tenemos:
Motor: 1/8 HP 1300RPM (aproximadamente, lo tenemos que medir). Con este motor conseguimos 21fps. Estamos al límite inferior para que no haya parpadeo, pero no hemos conseguido otro motor. Igual tenemos que medirlo, quizá sea de 1450 y no me doy cuenta a simple vista.
Tira LED: 250mm de radio y unos 64LED para conseguir 128pixeles de resolucion. Son LED de 3mm de alta intencidad, de 20° de apertura (los mas cerrados que conseguimos para obtener puntos bien definidos) verdes. Será un POV monocromo, pero la idea es que tenga buena resolucion.
Imágenes: Con 64 LED si queremos dividir al círculo en 360 partes cada imagen pesaría 23040 bits. Si vamos por 256 divisiones pesarían 16384 bits. Creo que menos que eso no sirve por ser un POV largo. Con estos pesos queda excluida la memoria interna de cualquier micro si queremos generar 4 o 5 imágenes. Hay que tener en cuenta que ciertas cosas conviene tenerlas almacenadas y otras generarlas en runtime. Por ejemplo, el Reloj analógico es mucho más facil generarlo en runtime ya que es una imagen netamente Polar. En el caso de imágenes comunes, que a simple vista son cartesianas, conviene transformarlas en la PC y almacenarlas ya polarizadas.
Otra cuenta que podemos sacar para las imágenes es la siguiente. Una imagen cartesiana de 128x128px (que es lo que podemos mostrar con nuestra barra de 64 leds) pesaría 16384bits, pero en la circunsferencia del POV no podemos mostrar todos esos bits, ya que es el círculo inscripto en el cuadrado de 128x128. Si tomamos proporcionalidad de superficie, el círculo de 64bits de radio tiene una superficie de 12868 bits, por lo que ocupando esa cantida de bits deberiamos estar bien. En ese caso 12868/64 = 201. O sea 200 posiciones circulares.
uC: Tanto a los chicos como a mi nos entusiasmó la idea de poner un ARM. A ellos (que no conocen nada de arquitecturas) les interesó por usar la misma arquitectura de uC que tienen en sus celulares :o, a mi me interesó porque sería mi primer placa completa con uno de estos micros. Funciona a 72MHz, posee 2 SPI, no tiene DMA, tenemos 64Kbyte de FLASH, 8Kbyte de RAM, USB con toda la API incluida para CDC, HID y MSC. Tambien permite Device Firmware Upgrade.
Almacenamiento Externo: Usaremos una vieja y reciclada AM29F010-120 en formato DIP. Tenemos alguna en formato SMD, pero con el encapsulado DIP se nos facilita muchísimo el ruteo. Esta memoria es de 1Mbit con lo que podríamos almacenar 64 imágenes, más que suficiente para una pequeña animacion. Tomando 12868 podemos almacenar 80 imágenes completas.
Resumiendo los tiempos:
La barra de LEDs tiene una longitud de 250mm, los led son de 3mm (3.2mm), por lo que si suponemos un espaciado de 3.5mm entre ellos podríamos meter 71 LED. Tomemos como punto de partida 64LEDs. Con esa tira, al girar podremos hacer una imagen de 128x128 pixeles.
El perímetro del círculo descripto por el led mas alejado del centro es pi * 500 = 1570mm. Tomemos como partida de caso líite 360 posiciones en el círculo.
El motor gira a mas o menos 1300RPM o sea 21.66 rev por segundo. Por lo que una vuelta completa le tomará 46mseg. Si queremos poder distinguir 1°, el tiempo entre cada pixel será 46mseg * 1°/360° = 127useg. Para obtener una imagen estable lo ideal a mi modo de ver es que en la interrupcion se haga lo menos posible para asegurar que cada 127useg se actualicen los led. Esos 127useg dependeran de la velocidad real de motor en cada revolucion y hay que ir actualizando constantemente.
En lospróximos días iremos poniendo los avances en el diseño.
Saludos!
-
Te alegro un poquito si te digo que necesitás 255 iteraciones en lugar de 256? :D
Lo expliqué justo hace un rato acá:
http://www.todopic.com.ar/foros/index.php?topic=25995.msg359660#msg359660
Éxitos!
-
Si al final te decides por un LPC1347, este tiene 64 kBytes de memoria de programa.
Cada imagen grande ocupa 23040 bits = 2880 bytes, de manera que 5 imágenes (14 kbytes) se pueden meter sin problemas en la memoria de programa del microcontrolador.
Así te ahorras la memoria externa y simplificas todo el circuito.
Eso sí, a partir de 15 imágenes la memoria del micro se empieza a quedar corta.
Los leds de ángulo grande también pueden funcionar bien. Los televisores TFT tienen un ángulo de visión de 170º y los puntos no se mezclan entre sí a pesar de tener dot-pitch de décimas de milímetro.
Lo mejor en este caso quizá sea utilizar leds SMD para que la luz salga de un punto pequeño, aunque el ángulo de visión sea grande.
Un saludo.
-
Si al final te decides por un LPC1347, este tiene 64 kBytes de memoria de programa.
Cada imagen grande ocupa 23040 bits = 2880 bytes, de manera que 5 imágenes (14 kbytes) se pueden meter sin problemas en la memoria de programa del microcontrolador.
Así te ahorras la memoria externa y simplificas todo el circuito.
Eso sí, a partir de 15 imágenes la memoria del micro se empieza a quedar corta.
Si, si, es cierto, al esquemático y ruteo lo voy a hacer con la memoria externa, pero las pruebas las haremos sin memoria, usando la del micro, como propones. Despues, si hay tiempo (la exposicion es el 15 de noviembre) y la necesitamos le soldamos la meoria y listo. Cuanto mas simple de entrada mejor.
Los leds de ángulo grande también pueden funcionar bien. Los televisores TFT tienen un ángulo de visión de 170º y los puntos no se mezclan entre sí a pesar de tener dot-pitch de décimas de milímetro.
Lo mejor en este caso quizá sea utilizar leds SMD para que la luz salga de un punto pequeño, aunque el ángulo de visión sea grande.
Un saludo.
Tambien es cierto esto, aunque el año pasado hicimos el POV con led 3528 (lo más chico que consigo) y el resultado para mi no fue muy lindo. Tendría que conseguir un led SMD más chico y aca en argentina esta complicado para eso. Por eso nos fuimos a los viejos led de 3mm pero de alta luminocidad. Comprar por ebay o aliexpress acá esta demorando 2 o 3 meses y podemos hacer solo 2 compras anuales al exterior (y sería una pena gastarlas en un par de led's).
Si el año que viene encaramos el RGB entonces no habrá mas remedio que usar SMD y ver que puedo conseguir.
Saludos!
-
Un avance del Ruteo y forma de la PCB:
(https://farm6.staticflickr.com/5556/15239109251_d1eabac202_z.jpg) (https://flic.kr/p/pdCqfX)Captura de pantalla 2014-09-14 22.11.33 (https://flic.kr/p/pdCqfX) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
este es e esquemático con el que voy avanzando, solo la parte del uC.
(https://farm4.staticflickr.com/3846/15053016190_7a92fbccee_z.jpg) (https://flic.kr/p/oWbDgU)Captura de pantalla 2014-09-14 17.03.04 (https://flic.kr/p/oWbDgU) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
Saludos!
-
Lo veo bien al schem del LPC1347.
Saludos
-
Hola elgarbe, preocupante es el desbalanceo que poseerá esa placa, recomendaría el uso de componentes SMD por lo menos los que se montan sobre el brazo. Y también el uso de placas FR4 que tienen más resistencia a la tracción que las de pertinax.
Un saludo.
Atte. CARLOS.
Pda. Saludos Brunito, hace rato que no te veía!!!
-
Hola Carlitos!
Sí, ando medio desaparecido pero sigo... me alegra verte por acá!
Abrazo!!
-
En la parte circular de la PCB, quizás podrías dejar algunos taladros para meter tornillos con tuercas, que te permitan hacer de contrapeso buscando el equilibro total de la PCB, y evitando así vibraciones al girar.
-
En la parte circular de la PCB, quizás podrías dejar algunos taladros para meter tornillos con tuercas, que te permitan hacer de contrapeso buscando el equilibro total de la PCB, y evitando así vibraciones al girar.
Si, si, el del año pasado, para balancearlo, montamos la PCB sobre una placa de aluminio (en donde estaba sostenida la LIPO) y en esa placa de aluminio pusimos los agujeros con los tornillos y, como tu bien dices, fuimos agregando tuercas en uno u otro tornillo para conseguir que quede perfectamente horizontal cuando lo colgamos de un hilo.
Esa placa de aluminio, en el centro tiene un agujero y al eje del motor lo hicimos con el torno un buje con rosca en la punta para enroscarlo a la placa de aluminio. No sé si se entiende la idea. Despues a la tarde le saco una foto al sistema de montaje que hicimos.
Saludos!
-
Bueno, el ruteo esta casi listo, pero falta un detalle... la alimentacion!
Sacando cuentas, 64LED a 20mA son 1.28A para la parte de 5V. La parte de 3.3V solo ocupa al uC y la memoria.
La energía saldrá de una LIPO de 7.4V y 2200mAh. Un 7805 con disipador y refrigerado con el mismo giro podría funcionar, verdad? no tiene sentido caer en algun stepdown switching no?
Saludos!
-
¿Un 7805 para más de 1A?, quizás uno switching aproveche mejor la batería y garantice la potencia que vas a necesitar.
-
el TO-220 da 2W con disipador pequeño. Estimo que disipador + refrigeracion forzada podría dar los 3.5W...
Para switching tengo el lm2576. No introducen problemas de ruidos estos reguladores trabajando cerca del uC?
Saludos!
-
coincido con nocturno, un switching te aprovecharía mejor la batería, te aguantan 3A, y lo mejor es que no se calientan como un 7805, te ahorras el tema del disipador y el espacio
-
totalmente de acuerdo, me he expresado mal. En mi cabeza ronda la idea de que un regulador switching en una placa con micro es para dolores de cabeza. Quizá exajero un poco. Entonces la duda iba por plantear regulador tipo LDO (puedo poner 2 o 3 superficiales sin disipador distribuidos por el PCB) o directamente uno solo y que sea Switching.
Por ahí venía el tema, es cierto que un solo 7805 no es la solucion. pero como la capa Bottom es casi todo GND, quizá podía distribuir un par de LDO's en la placa.
Saludos!
-
Un switching con 2 mosfet (N y P) a frecuencia fija, que divida por dos la tensión. Se filtra con una bobina y un condensador y listo.
Los mosfet, que sean de baja tensión de puerta, se activan con cualquier PWM del micro. El tipo P se activa con un NPN:
http://static.rcgroups.net/forums/attachments/4/0/6/0/2/a1555259-161-TowerPro25aEscSchematic.png?d=1194113456
El resto hasta los 2.1 voltios de led rojo, se soluciona con resistencias.
A propósito, el que no aguanta esa corriente es el 74HC595. Sólo permite 70mA máximo en los pines de alimentación.
Saludos.
-
Un switching con 2 mosfet (N y P) a frecuencia fija, que divida por dos la tensión. Se filtra con una bobina y un condensador y listo.
Los mosfet, que sean de baja tensión de puerta, se activan con cualquier PWM del micro. El tipo P se activa con un NPN:
http://static.rcgroups.net/forums/attachments/4/0/6/0/2/a1555259-161-TowerPro25aEscSchematic.png?d=1194113456
El resto hasta los 2.1 voltios de led rojo, se soluciona con resistencias.
mmm lo veo medio rebuscado, no? con el LM2576 no iría mas fácil?
A propósito, el que no aguanta esa corriente es el 74HC595. Sólo permite 70mA máximo en los pines de alimentación.
Saludos.
Eso lo he charlado el año pasado en el foro de mario y la verdad que no está muy claro (http://www.servisystem.com.ar/foro/viewtopic.php?f=25&t=262). Depende la hoja de datos que mires dicen cosas diferentes. Yo tengo uno 74HC595 de ST funcionando a 15mA por salida y dejo todas las salidas en 1 sin problemas, no calienta y no se ha quemado ninguno.
No sé Bruno que ha trabajado mucho con ellos que experiencia tiene.
Saludos!
-
mmm lo veo medio rebuscado, no? con el LM2576 no iría mas fácil?
Si. Más sencillo.
La solución de la corriente del 74HC595 también me interesa. El datasheet lo tomé de Mouser:
Componente: http://www.mouser.es/ProductDetail/NXP-Semiconductors/74HC595D-Q100/?qs=sGAEpiMZZMstUSIbdhr%2f%252bXTWXbKR22Bb
Datasheet: http://www.mouser.com/ds/2/302/74HC_HCT595_Q100-269352.pdf
Saludos.
-
Estoy revisando todas las DS que tengo de 595's y en todas dice 70mA como máximo por Vcc o GND. Releyendo el post de ServiSistem el que soportaba mas corriente es este:
http://www.nxp.com/documents/data_sheet/HEF4794B.pdf
Espero por el comentario de Bruno a ver si él pudo probar algo más, pero a los 595 en formato DIP los tengo en el POV del año pasado a 14-15mA por salida y todas encendidas y no pasa nada. Despues le saco una foto y la subo. Tambien es cierto que si a los led de alta luminocidad les doy 10mA no sé si va a bajar mucho la luminocidad.
Saludos
-
Me pregunto a mi mismo porque no uso 4 de estos:
http://www.ti.com/product/tlc5925 ???????? :shock: :shock: :shock:
Sds.
-
Bueno, despues de pasar a los 5925 la cosa se simplifico mucho.
(https://farm6.staticflickr.com/5570/15250997636_027a917e26_z.jpg) (https://flic.kr/p/peFmg7)Captura de pantalla 2014-09-17 23.45.56 (https://flic.kr/p/peFmg7) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
Ahora solo resta la parte de alimentacion, estoy un poco trabado haciendo las librerías 3D de los capacitores, diodo e inductor que vamos a usar para el LM2576....
Saludos!
-
Si te sirven tengo
TLC5940 TLC5951 en encapsulado PowerPad en stock...
-
Si te sirven tengo TLC5940 TLC5951 en encapsulado PowerPad en stock...
joya, los tengo en cuenta. En este proyecto va sin PWM, el proximo veremos.
Saludos!
-
Bueno, fuente de alimentacion lista, ruteo listo, espero no olvidarme de nada.
Les dejo imágenes de los esquemáticos por si alguien los quiere revisar y el render final. Esta semana mando a hacer los fotolitos así empezamos con la placa.
(https://farm4.staticflickr.com/3887/15302033562_2c7a2743e5_z.jpg) (https://flic.kr/p/pjbVsS)Captura de pantalla 2014-09-20 20.18.41 (https://flic.kr/p/pjbVsS) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
(https://farm4.staticflickr.com/3849/15115810828_df8a3291f2_z.jpg) (https://flic.kr/p/p2JtW5)Captura de pantalla 2014-09-20 20.19.06 (https://flic.kr/p/p2JtW5) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
(https://farm6.staticflickr.com/5585/15115626869_3c35ee93fa_z.jpg) (https://flic.kr/p/p2Hxfn)Captura de pantalla 2014-09-20 20.19.23 (https://flic.kr/p/p2Hxfn) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
(https://farm4.staticflickr.com/3925/15302032292_4142969f6d_z.jpg) (https://flic.kr/p/pjbV5Y)Captura de pantalla 2014-09-20 20.19.45 (https://flic.kr/p/pjbV5Y) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
Si todo funciona bien, subiré el proyecto en Altium por si a alguien le interesa.
Saludos!
-
Muy interesante, me suscribo al hilo!! :mrgreen: :mrgreen:
-
¿Y no te interesaría añadirle un receptor de infrarrojos para poder interactuar con el reloj en marcha?, por ejemplo, podrías cambiar la hora con el mando de la tele.
-
Hola elgarbe, para mi desagrado veo muy pocos condensadores de .1uF en la fuente, y eso que esta es una gran productora de espúreos.
Un saludo.
Atte. CARLOS.
-
Yo pondría un zócalo para tarjetas micro SD de memoria, en vez de una eeprom SPI, tendrías la posibilidad de usar tarjetas de hasta 32GB en FAT32, muchísimo más espacio de almacenamiento que el que te ofrece esa eeprom SPI. La carga de archivos no requiere programar nada, basta con volcar los ficheros de tu PC a la tarjeta, como si se tratase de un disco duro, y lo mismo en lectura desde el microcontrolador, además reemplazar los archivos cuando haga falta es sencillo y rápido.
Supongo que ese conector USB que has puesto (que yo quitaría), es para cargar el firmware con un bootloader, si es asi desde la tarjeta micro SD puedes tener una doble función, actualización de firmware y lectura de ficheros de configuración y efectos.
Podrías poner un pequeño módulo bluetooth o WIFI, para controlar los efectos desde el móvil con un App en JAVA. Cualquiera de los dos módulos solo require un puerto serie UART en el micro. Son módulos muy baratos en los chinos.
-
¿Y no te interesaría añadirle un receptor de infrarrojos para poder interactuar con el reloj en marcha?, por ejemplo, podrías cambiar la hora con el mando de la tele.
En este proyecto, como es la primera vez que trabajo con ese micro y como nos quedan 7 semanas para la muestra no me quiero largar a agregarle complejidad. La macana es que se decidieron a mitad de año por este proyecto y hasta que les dí toda la teoría, las ideas de calculos y empezaron con la parte mecanica se nos fue el tiempo.
Habia visto este video
Y me gustó la idea del control con luz o con infrarrojo... voy a ver si dejo lugar para un receptor infrarrojo de control remoto que tengo por ahí y despues vemos si llegamos a usarlo.
Saludos y gracias por la idea!!!
-
Hola elgarbe, para mi desagrado veo muy pocos condensadores de .1uF en la fuente, y eso que esta es una gran productora de espúreos.
Un saludo.
Atte. CARLOS.
Puse 1 en cada integrado y 2 en cada pin de alimentacion del micro. Debo poner tambien a la salida de la sw? Viste que la sw alimenta los led y un ldo y es el ldo el que alimenta todos los componentes criticos... me vienen bien esos consejos porque conozco muy poco del tema.
Saludos!
-
Yo pondría un zócalo para tarjetas micro SD de memoria, en vez de una eeprom SPI, tendrías la posibilidad de usar tarjetas de hasta 32GB en FAT32, muchísimo más espacio de almacenamiento que el que te ofrece esa eeprom SPI. La carga de archivos no requiere programar nada, basta con volcar los ficheros de tu PC a la tarjeta, como si se tratase de un disco duro, y lo mismo en lectura desde el microcontrolador, además reemplazar los archivos cuando haga falta es sencillo y rápido.
Supongo que ese conector USB que has puesto (que yo quitaría), es para cargar el firmware con un bootloader, si es asi desde la tarjeta micro SD puedes tener una doble función, actualización de firmware y lectura de ficheros de configuración y efectos.
Podrías poner un pequeño módulo bluetooth o WIFI, para controlar los efectos desde el móvil con un App en JAVA. Cualquiera de los dos módulos solo require un puerto serie UART en el micro. Son módulos muy baratos en los chinos.
Ufff, que bueno sería poder poner todo eso!!!! Algunas cosas las pensé, pero como le decia a Manolo, las tuve que descartar por falta de tiempo y como en este proyecto los alumnos no me pueden ayudar much con la electronica y la programacion, no me da el tiempo para todas esas implementaciones. El 15 de noviembre es la expo de la escuela y junto a este tenemos otros 8 proyectos dando vuelta!!
Lo bueno es que al haber elegido un buen micro, el año que viene puedo poner un grupo de chicos desde el primer día a trabajar con esto para poder agregarle todas esas cosas. Incluso ya estoy estudiando esos led digitales, los hay en 3528? Porque 5050 son muy grandes me parece...
Saludos y gracias por las sugerencias!!!
-
Incluso ya estoy estudiando esos led digitales, los hay en 3528? Porque 5050 son muy grandes me parece...
Que yo sepa solo están en 5050, date cuenta de que en 3528 no hay espacio para meter dentro el chip controlador, por lo que no creo que se lleguen a hacer.
-
¿Y no te interesaría añadirle un receptor de infrarrojos para poder interactuar con el reloj en marcha?, por ejemplo, podrías cambiar la hora con el mando de la tele.
En este proyecto, como es la primera vez que trabajo con ese micro y como nos quedan 7 semanas para la muestra no me quiero largar a agregarle complejidad. La macana es que se decidieron a mitad de año por este proyecto y hasta que les dí toda la teoría, las ideas de calculos y empezaron con la parte mecanica se nos fue el tiempo.
Habia visto este video
Y me gustó la idea del control con luz o con infrarrojo... voy a ver si dejo lugar para un receptor infrarrojo de control remoto que tengo por ahí y despues vemos si llegamos a usarlo.
Saludos y gracias por la idea!!!
Estuve charlando con mi hijo y me recordó que teníamos unas viejas placas de VCR desarmadas y que tenia los receptores IR de control remoto. Especificamente este:
(https://farm4.staticflickr.com/3864/15122709759_aef9f1938e_z.jpg) (https://flic.kr/p/p3kQKa)IMG_20140921_115516444_HDR (https://flic.kr/p/p3kQKa) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
entonce le pregunté si sería fácil el circuito para hacerlo funcionar y él me dice que no necesita nada, se alimenta con 5V y a la salida tenemos la trama lista para entrar al uC. No puede ser tan simple, le dije.... Así que me conectó la fuente y el osciloscopio para que me convenza:
(https://farm4.staticflickr.com/3919/15306248261_44d5281a00_z.jpg) (https://flic.kr/p/pjywm6)IMG_20140921_115345090_HDR (https://flic.kr/p/pjywm6) by leonardogarberoglio (https://www.flickr.com/people/117247358@N03/), on Flickr
debo reconocer que tenía razón! si no fuese por mi hijo!!!
Sds.
-
;-)
-
Que bonico! Dí que sí, que aprenda electrónica desde pequeñito ((:-)).
-
El 15 de noviembre es la expo de la escuela y junto a este tenemos otros 8 proyectos dando vuelta!!
Parece que por el otro hemisferio tenéis calendarios distintos. Imagino que termináis curso en noviembre para comenzar las vacaciones de verano.
En España los niños acaban de terminar las vacaciones y comienzan el curso ahora en septiembre. Terminarán allá por junio, con el verano de aquí.
Saludos.
-
Les muestro una puntita del avance.
(https://farm4.staticflickr.com/3867/15169007917_ea61ff3353_z.jpg) (https://flic.kr/p/p7r8zg)
(https://farm4.staticflickr.com/3838/15168819009_787f78483d_z.jpg) (https://flic.kr/p/p7qaqe)
Estoy preparando un post sobre fabricacion de PCB y SMT semi profesional - semi casero... ahi veran más detalles!
Saludos!
-
unas más:
(https://farm4.staticflickr.com/3869/15359397385_59ecd947a7_z.jpg) (https://flic.kr/p/ppfVJi)
La parte mas complicada de la placa es pasar por entremedio de los pad del TLC, la clearance en ese punto es de 8mil. Las pistas de 10mils salen sin problemas con este método.
(https://farm4.staticflickr.com/3864/15359087622_238be64236_z.jpg) (https://flic.kr/p/ppekDy)
Saludos!
-
Hola elgarbe, que hermosa placa, quedate tranquilo que estaré esperando para ver ese curso de fabricación de placas "casero", que si quedan de esa calidad no tiene que envidiarle nada a un método profesional.
Desde ya muchas gracias, y estaremos atentos y a la espera.
Un saludo.
Atte. CARLOS.
-
Bueno, finalmente termine la placa. Lamentablemente, el armado no resulto como esperaba. Evidentemente no tengo la tecnología ni la experiencia para trabajar con micros tan chicos. Dejo algunas imágenes del proceso:
Despues de aplicar la máscara antisoldante photoimageable, centrado del fotolito con unos fiduciales dejados en el cobre:
(https://farm4.staticflickr.com/3913/15368751612_fe82408ab7_z.jpg) (https://flic.kr/p/pq5Sq5)
Ahi fue el primer error, de apurado, no espere a que la pintura esté bien seca cuando puse el fotolito y por lo tanto en una parte no se adhirio bien.
Placa terminada:
(https://farm3.staticflickr.com/2949/15365899331_1d0eb00f0c_z.jpg) (https://flic.kr/p/ppQfwP)
Preparando el stencil para poner la pasta:
(https://farm3.staticflickr.com/2950/15182500418_691d3e4614_z.jpg) (https://flic.kr/p/p8ChqA)
Aplicando pasta:
(https://farm3.staticflickr.com/2948/15182324489_cab2b83e64_z.jpg) (https://flic.kr/p/p8Bo8k)
Pasta aplicada:
(https://farm3.staticflickr.com/2947/15369083465_1b6499b2bc_z.jpg)
Poniendo los componentes a mano (programar la pick and place por una sola placa no vale la pena!)
[url=https://flic.kr/p/pq7vJV](https://farm4.staticflickr.com/3924/15369072285_234226b1ac_z.jpg) (https://flic.kr/p/pq7z4F)
Despues de soldar con el horno:
(https://farm4.staticflickr.com/3904/15182477888_cf2999350a_z.jpg) (https://flic.kr/p/p8CaJ9)
Ver el uC que tiene varios pines en corto. Aplique flux en gel y al querer sacar el excedente de estaño con la estacion de soldado, termine levantando las pistas.... :5]
Algunos otros errores que cometí de apurado fueron, antes de aplicar la pasta la pcb hay que pasarla por un líquido que activa el cobre y elimina cualquier rastro de oxido o suciedad. Me olvide de pasarla por ese líquido! El material usado no es FR4, es CEM, un material poco conocido, intermedio entre el FR2 y el FR4, pero al ser un material económico no soporta mucho manoseo con el soldador para quitar los cortos a las patas del uC, por eso se me levantaron las pistas.
Conclusion, mi primer intento de placa para un ARM fue fallida y como no tengo mucho tiempo para rehacer fotolitos, stencil, etc y como en argentina es imposible encargar prototipos a los chinos, entonces me decidí por hacer un diseño nuevo, usando el Stick de la LPCXpresso 1347. En ese stick ya tengo toda la parte del micro soldado y funcionando. Es cuestion de poner ese stick en una placa con el resto de las cosas y listo.
Sin embargo, como la placa tenia los TLC soldados y la fuente de alimentacion, le mande unos led's (otro gran problema, en la hoja de datos de los led decía que eran de 3.2mm en la parte de la base, por lo tanto los sepré 3.5mm, cuando los quise poner no entran, los medi y tienen 4.3 mm de diámetro en la base :5] :5]) y cablie al stick del LPC para comenzar a probar. Despues de un rato de leer el UM del micro y familiarizarme con los registros del SPI lo hice funcionar. Despues subo un videito....
O sea que ahora estoy por hacer la placa nueva con todos los arreglos y espero poder empezar las pruebas la semana que viene...
Saludos!
-
Qué mal Leo los problemas que has tenido!
Igualmente te recomiendo que al micro no lo sueldes por horno. Soldalo a mano con flux en gel y un soldador común. Yo he obtenido resultados espectaculares, tanto en FR2, como CEM y FR4. Si querés te muestro cómo queda solando a mano un LPC1343 sobre FR2, aunque destaco que el PCB no es casero. Se lo envié a fabricar a Lisandro (la empresa DaTech). Siempre podés consultarle a él, ya que también hace prototipos.
Update: Adjunto imágen de muestra (la PBC está sin limpiar, con los residuos de flux y soldadura).
Saludos!
-
Qué mal Leo los problemas que has tenido!
Igualmente te recomiendo que al micro no lo sueldes por horno. Soldalo a mano con flux en gel y un soldador común. Yo he obtenido resultados espectaculares, tanto en FR2, como CEM y FR4. Si querés te muestro cómo queda solando a mano un LPC1343 sobre FR2, aunque destaco que el PCB no es casero. Se lo envié a fabricar a Lisandro (la empresa DaTech). Siempre podés consultarle a él, ya que también hace prototipos.
Update: Adjunto imágen de muestra (la PBC está sin limpiar, con los residuos de flux y soldadura).
Saludos!
Si, he visto por todo el foro como lo sueldan a mano sin demasiado problema. Me consuela que es el primero que sueldo de este tipo asique cero experiencia... pero bue, ya voy a intentarlo en otra oportunidad.
Que terminacion le dio a esa placa? estañado?
Una vez mario me mostro como soldaba él los micros haciendo una gran bola de estaño y poniendo flux en el el micro... evidentemente me falta práctica!
Saludos!
-
Creo que el peor micro que soldé, que no entre en categoría de BGA, fué un LPC1768... Todo un parto.
Esta placa PCB no posee estañado. El estañado quedó por las soldaduras mías. Posee sólo la máscara antisoldante (roja en este caso). Y luego un producto orgánico para que no se oxide el cobre expuesto y facilite la soldadura.
Yo no uso precisamente el método de Mario, pero es una forma similar. Siempre con mucho flux (del líquido). He visto algún video de Mario en Youtube si mal no recuerdo con la famosa bolita de estaño. Seguro también resulta.
Cualquier duda o lo que necesites avisame! Si se te complica mandame la placa que la sueldo sin problemas.
Saludos y éxitos!!
-
elgarbe, qué faena tener que rehacer todo, pero no te desanimes. Creo que eso que estás pasando nos ha ocurrido a todos alguna vez.
-
elgarbe, qué faena tener que rehacer todo, pero no te desanimes. Creo que eso que estás pasando nos ha ocurrido a todos alguna vez.
Si, una pena! Lo que mas me molesta es no tener tiempo para volver a intentarlo para este proyecto. Pero bue, este finde comienzo con la PCB nueva, la cual no tiene exigencia en cuanto a armado, asi que supongo saldrá sin problemas.
Ya veré otro proyecto para usar ese micro y volver a probar la soldadura.
Saludos!
-
Bueno, ayer estuve con los alumnos del proyecto y estuvimos viendo el código que debería ejecutar el micro y se nos presentaron algunas dudas.
Primeros los datos:
El LPC1347 posee 2 timer/counter de 16bits y 2 de 32 bits. El micro puede correr (y va a correr) a 72MHz.
Necesitamos 2 timer funcionando constantemente. Uno para medir las RPM del motor y el otro que interrumpe cada vez que hemos avanzado el tiempo correspondiente a la resolucion elegida. Por ejemplo:
Si el motor es de 1500RPM, tenemos 40mseg de período de revolucion y con un timer debemos medir tiempos en ese entorno.
Si la resolucion elegida es de 1° entonces tendremos 40mseg/360° = 111useg para el segundo timer.
El Tick que obtenemos a 72MHz es de 0,0138888 useg. Con el timer de 16bits podemos contar hasta 910 useg, este timer es ideal para usarlo como interrupcion entre "radio y radio". Con el de 32 bits podemos contar hasta 59,65 segundos!!!! por lo que será ideal para contar RPM. Notar que en este micro, de 32bits, usar el timer de 32 bits no implica ningún esfuerzo, al micro le resulta igual usar el de 16 o el de 32 bits. Distinto pasa con un pic de 8 bits usando el timer de 16 bits ;-). Tambien hay que notar que cuando el motor esta acelerando, el período será bastante mayor a 40mseg y seguramente podremos ir mostrando igual algo.
Bien, la primer cuestion que surge es medir las RPM del motor usando una entrada CAPTURE del TIMER de 32 bits o directamente usar un pin configurado como interrupcion externa (en este micro, podemos elegir 8 cualesquiera pines y configurarlo como interrupcion externa, dandole la prioridad que queramos a cada uno). En el primer caso, no perdemos uno o mas ciclos almacenando el valor del timer al momento de la interrupcion. Usando int externa perdemos unos cuantos ciclos hasta que entra la interrupcion y llegamos a la instruccion que almacena el valor del timer... me parece que lo mejor es usar una entrada CAPTURE, que por hardware nos almacene el valor del timer en el registro CAPTURE asociado. verdad?
Luego estuvimos viendo la forma de corregir las variaciones de velocidad y ahí recrdé lo que habian hablado en el post sobre el GiroPlay y la técnica, creo que de Manolo, para corregir. Básicamente debemos tener un contador de pixel actual y un contador de pixel total en la vuelta anterior. Entonces en la Interrupcion Externa de sincronismo hacemos:
timer = 65535 - (TMR32bits / PIXELES) // Precargamos el TMR de 16 bits para que interrumpa en cada cambio de pixel
TMR16bits = timer
TMR32bits = 0
cnt_pixel = cnt_pixel_actual
cnt_pixel_actual = 0;
y en la interrupcion del timer de 16 bits haríamos
TMR16bits = timer
cnt_pixel_actual ++
Pulso_Latch_TLC();
Esto es lo que tenía del año pasado, pero al analizarlo, no le encontramos demasiado sentido al contador de pixel total y actual... no recuerdo que tipo de correccion se hacía con esos valores... esta es la segunda duda que nos surgio.
Bien, una vez resolvamos esas cuestiones ya estaremos en condiciones de avanzar con la programacion.
Aún falta decidir donde estará el llamado a la funcion que envía los 4 uint16_t a los TLC... Como el FIFO del SSP es de 8 frames, estimo que lo haremos de forma asincronica en el main, poniendo un dato detras del otro sin hacer demasiadas verificaciones.
Por ahora es lo que tenemos!
saludos!
-
Hola Leo,
lo de los tiempos máximos de los Timers 16 y 32; esos valores máximos que diste son con prescaler 1:1. El Timer16 puede contar hasta 2^16 veces más tiempo y el Timer32 hasta 2^32 veces más respectivamente según el valor que le asignes a su prescaler. Claro que a > valor de prescaler < exactitud en la cuenta de tiempo medido.
para corregir el tiempo de refresco de los píxeles, me parece que lo más fácil sería:
Poner a correr el Timer de 32 bits libremente, con prescaler 1:1 o bien el Timer16 con un prescaler 1:100 o simil, aunque perdiendo exactitud en la cuenta del tiempo.
Un sensor hall, barrera u otro que pueda enviarte un pulso por vuelta completa (puede haber más de un sensor por vuelta, a más sensores más rápida la adaptacion a los posibles cambios de RPMs).
Luego se procede a interrumpir al recibir el pulso del sensor de vuelta completa y a dividir el valor del Timer por la cantidad de refrescos por vuelta que quieras realizar en el giroplay, resetear el timer y tomar el tiempo obtenido como base de demora para los refrescos de los LEDs para la vuelta actual.
Si vas a un caso práctico, teniendo un motor de 1600RPM, un Timer32 @ 72Mhz con prescaler 1:1, y 200 refrescos por vuelta (cada 1.8 grados, como muchos de los motores PaP).
Una vez que ocurre la interr ext. Supongamos que el Timer32 posee el valor 2700000 (ideal a 1600RPM).
Procedemos a guardar el valor y a inmediatamente volver a 0 el Timer32 para que comience a contar la nueva vuelta.
Dividimos el valor guardado por 200. Al valor obtenido podemos cargarlo en un Timer16, que permita interr. cada dicho intervalo de tiempo y nos permita enviar los datos a los LEDs.
Al envío de los datos a los LEDs lo podés hacer tanto desde la interr. del Timer16, como desde el main. Cada uno con sus ventajas y desventajas.
Saludos.
-
Bueno, dejo actualizaciones del proyecto, parte hardware:
(https://farm3.staticflickr.com/2949/15507003595_164cc1272b_z.jpg) (https://flic.kr/p/pCirUX)
(https://farm6.staticflickr.com/5610/15503839491_ed9a8c8fa1_z.jpg) (https://flic.kr/p/pC2ekr)
(https://farm4.staticflickr.com/3937/15507003165_b5b4b766c3_z.jpg) (https://flic.kr/p/pCirMx)
Luego monte solo el micro, el cristal, y unos capacitores para conectarme con el IDE de programacion t verificar que esta vez si soldé bien el uC:
(https://farm4.staticflickr.com/3944/15320978088_365262639e_z.jpg) (https://flic.kr/p/pkS21C)
segui el consejo de Bruno y solde a mano, bastante flux, pre estañado, limpieza, nuevo flux, posicionado del uc y al tocarlo con el soldador se suelda solo!!!
finalmente el saludo al mundo:
Saludos!
-
Ahora si!
A esperar el espectáculo!
-
((:-)) ((:-)) ((:-))
-
No se ve para nada casero, parece un trabajo muy profesional!
Felicitaciones y éxitos con el proyecto! Espero ansioso los resultados ;)
-
Gracias!
La placa es semi casera, semi profesional. Tengo una mini fabrica de impresos (no para terceros, solo para nuestros productos), por lo que alguna máquina tengo... al proceso de fabricacion de esta placa, junto al stencil, etc lo documenté, por lo que despues voy a poner una pequeña guía de como hacer esos impresos... hay productos que son medio caros, pero bue, quizá a alguien le sirva!
Saludos!
-
Te quedan geniales las placas, muy profesionales !!
-
Bueno, el LPC ya habla el idioma de los TLC.... NXP y TI dos potencias!
Saludos!
-
Bueno, quería mostrarles algunos avances del proyecto.
En la semana los chicos estuvieron trabajando con el enganche de la placa al eje del motor. Tornearon una pieza que se fijará con un prisionero al eje del motor y en la punta tiene rosca de 1/2". Esa rosca servirá para fijar la placa de aluminio, con una tuerca. En la placa de aluminio va montada la batería de LiPo y la placa del POV. Dejo alguna imagen de las piezas:
(https://farm6.staticflickr.com/5615/15433913350_d5368fe2b6_z.jpg) (https://flic.kr/p/pvQQJj)
(https://farm6.staticflickr.com/5599/15595812696_2821084bcf_z.jpg) (https://flic.kr/p/pL9BLm)
(https://farm4.staticflickr.com/3935/15433914600_dd31af435e_z.jpg) (https://flic.kr/p/pvQR6S)
(https://farm4.staticflickr.com/3936/15619508825_9e0bdf8ef8_z.jpg) (https://flic.kr/p/pNf4Ni)
La parte mecánica esta casi lista.
Con otra parte del grupo estubimos identificando el protocolo del control remoto que usaremos para cambiar de efecto. Es de un televisor tonomac. Despues de mirar un poco en esta página: http://www.sbprojects.com/knowledge/ir/index.php
y de medir los tiempos de la señal que obteníamos con el osciloscopio:
(https://farm4.staticflickr.com/3946/14998780484_b9666c8673_z.jpg) (https://flic.kr/p/oRoETw)
(la cámaa del Moto E es una porquería!)
pudimos concluir que el protocolo es el NEC:
http://www.sbprojects.com/knowledge/ir/nec.php
Pudimos visualizar los bits de la direccion, los bits negados, comando y comando negado. Tambien el repeat al dejar una tecla presionada.
Entonces el trabajo ahora está en hacer una rutina para reconocer comandos del control remoto y en la semana, cuando ya este todo montado, con el motor y sensor de sincronismo/RPM empezar a programar los timer.
Voy a abrir otro post con la pate de decodificacion de la señal del control remoto.
Saludos!
-
Hola elgarbe, muy lindo va quedando el proyecto, e impaciente y a la espera del curcillo tuyo de como hacer placas PCB's semi-profesionales.
Un saludo.
Atte. CARLOS.