PDA

Ver la Versión Completa : Alternativa a Photoduino _ Ideas



Estorki
09/02/12, 19:44:14
Buenas,

Como buenos bricomaníacos muchos de vosotros ya conocereis la plataforma Photoduino.
Estoy empezando un proyecto similar, pero sin tener que pasar bajo la plataforma arduino, quiero realizar mi proyecto directamente sobre un PIC estandar microchip.

El proyecto Photoduino tiene como características las que se ven en la imagen:


http://www.photoduino.com/wp-content/uploads/2011/08/es-home-intro.jpg
http://www.canonistas.com/foros/bricolaje/163054-photoduino-plataforma-abierta-de-control-de-disparo.html



Todas estas características pretendo implantarlas en mi dispositivo, pero me gustaría preguntaros para completarlo.

De por sí es bastante completo, pero a veces hay cosas que nos gustaría tener.
¿Echais de menos alguna característica?
¿Aspectos a mejorar?



Muchas gracias, a ver si me proponeis buenas ideas :wink:

Carlos Grau
09/02/12, 20:33:10
Sólo por curiosidad...

Por qué quieres pasar de Arduino e iniciar el desarrollo desde cero? Arduino es modular y bastante flexible para ampliar, modificar, etc.

En otras palabras, no es esto reinventar la rueda?

Un saludo.

Estorki
09/02/12, 21:53:51
Se trata de un proyecto para desarrollo personal en programación de microcontroladores. No pretendo que nadie vaya a usar mi sistema, pero es un modo practico de aprender.
El porqué de pasar de Arduino es porque no quiero depender de una placa ya construida, el mismo motivo por el que tampoco utilizo las soluciones de Parallax por ejemplo.

Respecto a si es reinventar la rueda... si y no.
En parte es reinventarla porque existe el proyecto Photoduino y el código ya está escrito. Pero si no existiera el código habría que escribirlo igual igual. Por otro lado, no conozco en profundidad arduino, pero se basa en lenguaje C, por lo que probablemente pueda aprovechar grán cantidad de su código.

Me gusta más la forma de trabajar con los PIC de Microchip. Me dan toda la libertad que necesito y también es modular, y más flexible.
Solo tengo que elegir un micro con las necesidades concretas que necesito, ni más ni menos, luego programarlo (igual que haría con arduino) y montar el hardware periférico (igual que haría con arduino).


Ahora bien, puestos a hacer el código desde cero, me gustaría incorporar algun extra que se haya detectado que falta en el proyecto Photoduino. Si todo el mundo esta contento con sus funciones y a nadie se le ocurre nada más, pues le agragaré alguna entrada/salida extra y lo daré por optimo.



EDIT: Bueno, me estoy leyendo el hilo de Photoduino y parece que andan debatiendo para que utilizar las salidas que les quedan. Me parece que allí tengo las respuestas para tratar de implementar todo.

masainz
09/02/12, 22:39:15
Muy interesante tu idea. A mi también me gustan más los PIC y creo que tienes muchas posibilidades entre todos los micros que tienen para hacer elegir. Pretendes que sea también abierto? Como opción se me ocurre que la conexión entre el dispositivo y la cámara sea inalámbrica, aunque sea necesario un dispositivo adicional para la conexión a la cámara.

Estorki
09/02/12, 23:39:21
Si finalmente me pongo con ello y sale algo claro que lo compartiría si.

El tema de que la conexión sea inalambrica... no sé si te de todas las cámaras se puede sacar corriente. Lo que si tenía pensado realizar es acoplarle un receptor infrarojo al prototipo. De esta manera con un mando a distancia cualquiera se podría disparar e incluso configurar.

Shot
10/02/12, 00:33:10
yo tengo entre manos desde hace ya mucho un proyecto por mi cuenta que todavía no he terminado aunque está ya muy avanzado (me lo tomo con mucha calma y le meto mano cuando me da el punto), y le puse el receptor ese que comentas, concretamente un TSOP4838 que es muy sencillo de usar con un único pin, y que te manda al micro los códigos de cualquier mando a distancia.

También le he puesto termómetro, un dallas DS18S20 porque quería usarlo para astronomía para las tomas oscuras (darks).

Quiero poder usar con él un detector de movimiento por infrarrojos PIR y uno de ultrasonidos que tengo, aparte de las barreras y el sensor de choque. uso una entrada y dos modos pines que alterno con un interruptor en el chasis para según lo que conecte.

un controlador ULN2802A para un motor PaP unipolar.

dos salidas a la cámara, una con triacs porque la respuesta de disparo era instantanea, y otra con optoacopladores por si me conviene más aislar la cámara físicamente cuando lo use en modo B que no requiere tanta velocidad, sobre todo si uso el flash que me acojonan los 100V esos. Las dos van al mismo pin.

Le he puesto también control de retroiluminación del LCD por software mediante el envío de PWM a un transistor, aparte de para poder apagarlo o que tenga autoapagado automático hasta que se pulse un botón, también por si lo usaba de noche no deslumbrarme pero al tiempo que se vea lo suficiente, y por el día con luz de sol pues a tope.

Como veía que no tendría pines suficientes le puse un controlador expansor de líneas PCF8574P, que con 2 pines I2C te proporciona 8 entradas/salidas, o muchas más si se le pone más expansores al ser I2C. De esos ocho, cuatro son para el motor, 3 para botones, y 1 para un led de estado.

Me queda un pin y un poco de hueco en la placa con el que pensaba poner un reloj calendario que tengo por si era necesario programar el que se dispare a una hora determinada, un philips PCF8583, pero todavía ni lo he hecho funcionar en una placa de prototipos, no me he puesto con él.

y creo que nada más que no tenga ya el photoduino.

Estorki
10/02/12, 01:56:53
ow muy interesante Shot. Permiteme unas preguntas.

El termometro no se me había ocurrido, pero aun y todo no acabo de encontrarle la lógica a eso que comentas de la fotografía nocturna. ¿En qué situaciones podrías sacarle partido a un sensor de temperatura?

Respecto al retardo del optoacoplador. Corrígeme si me equivoco, pero acabo de ver un datasheet de uno al azar y marcaba que el retardo de activación era de 2,4microsegundos. No creo que sea un delay demasiado alto, o puede serlo para ciertas aplicaciones?

Para el uso del motor servomotor, has pensado ya en alguna utilidad o es simplemente un "por si acaso". La verdad que puede ser buena idea para hacer un tripode motorizado, pero en todo caso se debería permitir la configuración de velocidad.

El detector PIR es un puntazo xD

Respecto al detector por ultrasonidos, no sé como sera el que tienes, pero yo una vez monte un robot con uno y el alcance era de muy pocos centimetros. Si es similar para fotografía dudo que pueda usarse, mas que nada porque saldría en la foto.

El control de luminosidad para el LCD es algo que tenía en mente porque me gusta la fotografía nocturna y se lo que puede molestar una luz constante.

El modulo de expansión de conexiones digitales no lo conozco pero suena muy bien.

Lo del calendario, es un puntazo en toda regla, si tienes el módulo adelante. Pero en caso de no tenerlo me parece una buena idea lo de poder dispara a una hora determinada. La solución sencilla es marcarle al prototipo una simple cuenta atras ajustandolo a la hora deseada.

¿Cuantos botones de mando planeas poner?


Muchas gracias por tu aporte!

Shot
10/02/12, 03:02:54
El termometro no se me había ocurrido, pero aun y todo no acabo de encontrarle la lógica a eso que comentas de la fotografía nocturna. ¿En qué situaciones podrías sacarle partido a un sensor de temperatura?

pues que al hacer foto astronómica o de larga exposición, para reducir el ruido se usan los darks, que son tomas de la misma exposición y a la misma temperatura con la tapa puesta, y como sirven para otras ocasiones pues se pueden guardar, pero hay que apuntar también la temperatura a la que se tomaron, y por supuesto a la que se toman las fotos, por lo que en vez de llevar un termometro pues mejor incorporarlo.

Respecto al retardo del optoacoplador. Corrígeme si me equivoco, pero acabo de ver un datasheet de uno al azar y marcaba que el retardo de activación era de 2,4microsegundos. No creo que sea un delay demasiado alto, o puede serlo para ciertas aplicaciones?

pues es posible que sea una torpeza mía porque en los que probe (algunos no me funcionaban o no sabía hacerlo) me daba un retardo de 40ms. Es decir, debía excitarse durante ese tiempo para que saltara, pregunté en el hilo del photoduino por esta cuestión y no obtuve respuesta.

Para el uso del motor servomotor, has pensado ya en alguna utilidad o es simplemente un "por si acaso". La verdad que puede ser buena idea para hacer un tripode motorizado, pero en todo caso se debería permitir la configuración de velocidad.

las aplicaciones en principio pensaba hacerme una cuña ecuatorial motorizada para fotos de estrellas y eso, usando una rótula de un trípode micrométrico creo que se llama (que gira con un mandito que va a un tornillo sin fin), pero el primer intento fue un fracaso porque no era muy uniforme el seguimiento, así que ando buscando unos engranajes mejores. El otro uso sería para una plataforma para time-lapse, también podría haber otro uso que sería que la cámara girase a donde ha detectado algo, pero eso me parece ya muy avanzado.

El detector PIR es un puntazo xD

es este. SENSOR PIR PARA ROBOT (http://www.superrobotica.com/S320140.htm) tiene un alcance máximo de 5 metros y usa un único pin directamente.

Respecto al detector por ultrasonidos, no sé como sera el que tienes, pero yo una vez monte un robot con uno y el alcance era de muy pocos centimetros. Si es similar para fotografía dudo que pueda usarse, mas que nada porque saldría en la foto.

es este, SRF05 SENSOR DISTANCIAS ULTRASONIDOS SIMPLE (http://www.superrobotica.com/S320111.htm) , según pone es para 3 o 4 metros y se conecta también muy fácil a un único pin. Obviamente la entrada es la misma que la del PIR, simplemente cambio la manera de detectar y enchufo uno u otro. La pega es que al ser ultrasonidos es un poco más lento, pero bueno, como lo tengo pues no cuesta nada prepararlo para que se pueda enchufar.

El control de luminosidad para el LCD es algo que tenía en mente porque me gusta la fotografía nocturna y se lo que puede molestar una luz constante.

Pues sí, y además ahorra energía y calentones porque eso chupa mucho, a oscuras con que esté al 20% de luminosidad se ve de sobra.

El modulo de expansión de conexiones digitales no lo conozco pero suena muy bien.

pues incluso se puede controlar el LCD con uno de ellos, yo no puse otro por falta de sitio y porque me obligaba a reprogramarlo, pero me parece que se pueden poner hasta 8 expansores de esos conectados al bus.
Interfacing LCD using I2C port extender | Pavel Bansky (http://bansky.net/blog/2008/10/interfacing-lcd-using-i2c-port-extender/)

Lo del calendario, es un puntazo en toda regla, si tienes el módulo adelante. Pero en caso de no tenerlo me parece una buena idea lo de poder dispara a una hora determinada. La solución sencilla es marcarle al prototipo una simple cuenta atras ajustandolo a la hora deseada.

como ya lo tengo pues bueno, vale 3 eurillos así que si es por meter cosas... lo que pasa es que un poco más follón el montaje, además requiere una pila, lo bueno es que como ya tengo un bus I2C disponible, pues no necesito más pines.
clock/calendar with 240x8 ram - Diotronic (http://www.diotronic.com/activos/memorias/perifericos/clock-calendar-with-240x8-ram_r_59_7935.aspx)

¿Cuantos botones de mando planeas poner?

tres he puesto al final, que me parecen los adecuados, no hacen falta más, sobre todo teniendo un mando a distancia, porque los otros 5 del expansor los he dejado para el motor y un pequeño led rojo. Me parecía importante tener una luz que avise de lo que está pasando complementaria al zumbador, para modo silencioso, sin tener que mirar al LCD.

Estorki
10/02/12, 03:39:55
Bueno, gracias por el aporte.

Respecto al optoacoplador es posible que esté funcionando con muy baja intensidad. Me ha pareido ver en algún datasheet el tiempo de retardo aumenta a medida que la intesidad disminuye, pero no estoy seguro.

Chipoblete
10/02/12, 09:41:46
En este tipo de dispositivos, hay varias opciones que comienzan a proliferar mucho y que son realmente muy útiles. En el caso de Photoduino al usar Arduino, tiene la limitación propia de un número pequeño de puertos disponibles, por lo que una ampliación es muy complicada, si bien es posible ir a una tarjeta de mayor capacidad.

Si hay alguna utilidad que se pudiera incorporar yo diría que la gestión de uno/o varios motores sería estupenda. Esta gestión se puede usar tanto para motorizar railes para microfotografia como para timelapse, incluida la posibilidad de hacerlo en el segundo caso con 3 ejes de giro.
Otra posibilidad es tanto el volcado de información al ordenador como la posibilidad de utilizar un entorno gráfico desde el propio control del ordenador para gestionar el dispositivo, estre otras muchas cosas permitiría volcar toda la configuración usada con los dispositivos, cámara, flashes, motores, electroválvulas, etc. de tal forma que esa información pueda asociarse a una foto y a un escenario determinado.

Estorki
10/02/12, 13:01:46
Interesante Chipoblete lo de volcar la información al ordenador. Me lo anoto como tarea pendiente aunque reconozco que sobre la transmisiónn de datos mediante USB no tengo ni idea.

Para decidirme sobre los moteres tratare de meterme en algún foro especializado de astrofotografía para ver como motorizan sin cámaras/telescopios. A partir de ahí veré si puedo darle soporte.

Por cierto Shot, se me olbidó preguntarte, que PIC estás usando? Ahora que llevas el proyecto avanzado, hubieras elegido otro? Thanks.

Shot
10/02/12, 13:57:00
Lo empecé con un basicX-24 pero al final me pasé al arduino porque hay mucho código y más información para casi todos los dispositivos y además me gusta más el C, odio el Basic.

Estorki
10/02/12, 14:48:45
Gracias. De todas maneras con CCS C yo programo en C para PIC. Te lo comento por si algún día te sirve.
Yo también lo utilizo C porque es el lenguaje que mejor llevo, alto nivel y muy potente.

Estorki
18/02/12, 03:01:46
Despues de una semana estudiando los microcontroladores PIC, hoy empiezo a intentar traducir el código desde el proyecto de Photoduino.
Veo complicadete hacer la traducción porque hay mil detalles de configuración del micro como alguno de lenguaje de programación pero al menos voy a intentarlo. Me parece que sobre la marcha no me quedará otra que estudiar el lenguaje de Arduino xD
Si al final no lo consigo ya escribiré un código para mis usos más sencillo o quien sabe alomejor para este proyecto bien desarrollado me tiro a la piscina y me lo compro montado.

Ortricks
09/04/12, 19:24:51
Hola por aqui, no tengo mucho en el foro y me llama mucho esto de los microcontroladores, me parece interesante lo que propones Estoki, he encontrado una alternativa a Arduino, el proyecto se llama Pinguino ( HackingLab (http://www.hackinglab.org/) ), echo con un PIC 18F2550, han echo un nuevo modelo con PIC 18F4550 ( Pinguino tutorial (http://sites.google.com/site/pinguinotutorial/) ) el cual tiene mas puertos, por lo que se podria extender el repertorio, haber que te parece...

Estorki
09/04/12, 20:36:03
La verdad sea dicha, también soy un poco esceptico sobre la plataforma Pinguino. Como alguna vez he comentado, creo que es mejor dimensionar cada proyecto y no matar moscas a cañonazos, aunque reconozco que estas plataformas tienen sus ventajas.

Al final me puse a traducirlo para hacerlo correr sobre un PIC 18F452, a groso modo ya tengo el programa pasado a C. Quedaría depurarlo y eliminar los errores. Llego un momento que me encontre con un problema hice alguna pregunta en foros especializados pero entre una cosa y otra no volví a retomarlo. Si no recuerdo mal era algo relaccionado con las diferentes formas de trabajar que tienen algunos comandos en arduino y el compilador CCS PCWHD. Creo que estaba relacionada con la forma de la lectura de los bits de la memoria del pic y el envio de dicha información al display. Debería poder solucionarse con alguna función puente.

La verdad que hace un tiempo que no toco el tema y lo tengo un poco olvidado.

Daniellf1
09/04/12, 22:33:14
Esperemos el final del proiecto.

Shot
17/04/12, 00:08:43
otra cosa que te puede resultar interesante y que creo que yo voy a añadir es un encoder rotativo para la introducción de datos, porque realmente es una lata con los botoncillos, sobre todo si tienes que introducir una gran cantidad de números.

se requieren un par de pines libres para leer los dos interruptores que genera, comparando el estado de ambos en cada momento se puede saber los pasos que se giran en un sentido u otro.

http://www.neoteo.com/images/Cache/E593x590y590.jpg

ea4ats
24/04/12, 09:31:37
Buenos días Estorki, muy buena aportación el investigar alternativas a lo que hay, una de las cosas que yo integraría en los timeLapse es el control de disparos efectuados (sobre todo para los de larga duración) igualmente incorporaría una batería con su control de carga y la opción de alimentación externa para proyectos de larga duración (en el photoduino que yo he construido lo tengo implementado).
Saludos

Chipoblete
24/04/12, 17:18:16
Buenos días Estorki, muy buena aportación el investigar alternativas a lo que hay, una de las cosas que yo integraría en los timeLapse es el control de disparos efectuados (sobre todo para los de larga duración) igualmente incorporaría una batería con su control de carga y la opción de alimentación externa para proyectos de larga duración (en el photoduino que yo he construido lo tengo implementado).
Saludos


ea7ats, no sé si te he entendido bien ¿has incorporado un control de carga a Photoduino? Podrias indicar que sistema has seguido (software+hardware) es un tema que me interesa ya que yo lo utilizo y en mas de una ocasión me he quedado sin pilas. La última opción que incorporé fué alimentar la cámara y photoduino con una bateria pequeña (de las motos) mediante un circuito regulador, pero seria muy mejorable con un sistema que indicara la carga restante.
Gracias.

ea4ats
26/04/12, 18:08:59
Utilizo el circuito LT8l10, un diodo de protección de inversión de polaridad, un zener de 9,1 v y una resistencia de control de carga (10 -12 ohmios) para que no sobrepase los 30 mAh, el alimentador es uno corriente de 12v a 1A DC, la carga dura alrededor de 14 horas y utilizo un pequeño rele para conmutar la carga con la alimentación externa para garantizar el funcionamiento del circuito en todo momento, tambien le he puesto un medidor digital para controlar la tensión del circuito , ahora mismo no estoy en casa pero en cuanto llegue te envio el esquema y unas imagenes.