TODOPIC

Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: bitpic en 02 de Noviembre de 2012, 09:36:15

Título: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 02 de Noviembre de 2012, 09:36:15
Buenas gente,

Recientemente he hecho una aplicación con Arduino para un amigo y me pareció fantástico lo fácil que es su funcionamiento, el bajo precio y la gran cantidad de librerías que existen. Así que propuse en mi empresa desarrollar una tarjeta electrónica basada en Arduino para abaratar costes en nuestras maquinas. Hasta ahora usamos PLCs y en algunos casos tarjetas electrónicas bastante caras y desarrolladas por externos con lo que estamos un poco limitados en cuanto a modificar firmware y hardware.

(http://t2.gstatic.com/images?q=tbn:ANd9GcTITOYSOOIURoDJNpi_hwhTUPYdz_Cp4_31NDrmGNuzsB1Uez16vg)

A mis superirores les parecio buena la idea y me propusieron hacer un prototipo para una de las maquinas y poder ver el resultado. De momento ya tengo un prototipo funcionando en una maquina y he reducido el coste del control que había hasta ahora más de la mitad y hemos mejorado en algunos aspectos que no vienen a cuento ahora como poder desarrollar todo nosotros con software y hardware libre. Ya me han pedido otras secciones de la empresa soluciones de este tipo para otras maquinas que desarrollan, pero me veo un poco encallado en el HMI ya que en ocasiones usamos Pantallas táctiles HMI de grandes pulgadas y con Arduino veo un poco difícil competir con esto.

Perdonad por el rollo. La cuestión es que estoy aprendiendo a programar aplicaciones en android con Java y el SDK de android y a demás me llego esta semana mi Raspberry PI  :-/. Se me han acumulado muchos juguetitos a la vez jejejej  :D

(http://t1.gstatic.com/images?q=tbn:ANd9GcS7BUsX_omrEcqkGkrk-t-MaDgeiOXA__o9cDi1cdjPM4jdyar0zA)

(http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/RaspberryPi.jpg/300px-RaspberryPi.jpg)  (http://t0.gstatic.com/images?q=tbn:ANd9GcTfhf1zVAADXac5K-TkqwBZBI6Bue1yEdfcVVnI9K-KoOzUJU8q)

Debido a la potencia de Raspberry y su bajo coste se me había ocurrido mejorar aún más el desarrollo que estoy haciendo para nuestras maquinas y usar la Raspberry para hacer el HMI y controlar un monitor táctil con aplicaciones creadas en Debian de Raspberry (Linux). Y a su vez la Raspberry conectarla a un Arduino que controle todos los actuadores y sensores. (No conecto los sensores y actuadores directamente a Raspberry por que me parece mejor independizar una cosa de otra, creo que Raspberry al usar un SO como Linux puede "descolgarse" en ocasiones de su función para atender otras funciones del SO y con esto crear anomalías en el programa, de hecho si buscáis por google hay una persona que habla en su blog de este problema y lo demuestra con un ejemplo con servos).

Resumiendo... La idea es usar el Raspberry Pi como HMI con un monitor plano tactil y el Arduino como "PLC" para controlar sensores y actuadores. Conectados entre ellos por ejemplo mediante USB o puerto serie para intercambiar datos.

A demás tengo la opción de crear aplicaciones Android. En principio había pensado crear una aplicación para móvil para controlar o recibir datos o alarmas de la maquina (de momento ya he conseguido hacer una conexión TCP mediante cliente servidor entre un móvil Android y el PC), pero también he pensado que igual seria posible usar un dispositivo tipo Tablet para hacer de HMI y no usar la Raspberry, ahora hay algunas Tablet de bajo coste que irían muy bien para esto, lo que pasa es que no me convence mucho eso de atornillar una Tablet al cuadro eléctrico de una maquina jejej...

Hecha la explicación de mi estado actual me gustaría saber vuestras opiniones y si habéis hecho algo parecido alguna vez, os pongo mis dudas actuales:

1.- ¿Que pensáis de usar Arduino para controlar una maquina en la industria? (no es una tarjeta arduino comprada, sino que a partir del diseño libre la modificaré y la adaptare a los requisitos de la maquina?

2.- ¿Que pensáis de usar Raspberry PI como HMI? ¿Alguien a usado esta tarjeta con un TFT Touch alguna vez?

3.- ¿Que opináis de usar una Tablet con Android como HMI en la industria?

4.- ¿Alguien sabe de alguna pantalla con Android que no sea Tablet o un PC embedded con Linux que me pueda servir? Algo low cost por supuesto...

5.- Algo muy importante ¿Que opináis de la fiabilidad y robustez de estos sistemas (Rapberry y Arduino)?

Bueno gente, espero que me deis vuestros puntos de vista que se que por aquí hay gente con experiencia. :)

PD: Cuando digo industria me refiero a laboratorios donde no hay excesivas perturbaciones eléctricas o electromagnéticas aunque también me interesan vuestras opiniones sobre la robustez en estos casos.

Un saludo a todos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 02 de Noviembre de 2012, 11:42:27
No tengo experiencia en ninguno de los dos sistemas y no puedo ayudarte, pero me suscribo al hilo porque ha cada vez mas comunidad de usuarios de ambos sistemas y me interesa estar al día. Muy interesante tu trabajo.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 02 de Noviembre de 2012, 11:53:27
Yo voy a usar ChipKit Max32 en un proyecto comercial y con ambiente bastante mas agresivo que el industrial.
Por supuesto cuando manejas salidas y entradas, debes tomar tus buenos recaudos para que tu sistema no falle.
Si miras las I/O de PLCs, veras que gastan mucho dinero para que los problemas de campo no lleguen a su CPU, que marca sea no importa al momento de tener problemas.
Luego si la programación esta mal hecha, eso deberás resolverlo tu mismo... :mrgreen:
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 02 de Noviembre de 2012, 14:52:42
Pues intentaré ir poniendo las evoluciones y decisiones que vaya tomando sobre el tema en este hilo.

Por el momento si alguien esta interesado en hacer programas para Android y tiene algo de conocimientos de Java os recomiendo esta web y el Libro que ha creado el autor http://www.sgoliver.net/blog/?page_id=2935 es muy bueno y en castellano.

Nocturno: Hace tiempo que ando por este foro, pero he tenido mis idas y venidas dependiendo de la ocupación que he tenido, ahora hacia mucho tiempo que no pasaba por aquí, pero estoy retomando mi vicio "la programación y los microcontroladores" ejejej 8). Me suena que tu hayas sido más de PICs, de hecho, si no me equivoco, creo que gracias a ti impresione al jurado de mi proyecto final de carrera, ya que conseguí hacer funcionar una pantalla del Nokia 6610 con la librería GLCD (no recuerdo ahora si es tuya esta librería, pero diría que si) y mi proyecto quedo de 10 jeejej. La cuestión es que yo vengo de los PICs también y me impresiono la facilidad y versatilidad del Arduino, ademas tiene muchos shields para conectar periféricos muy variados. Si no lo has usado ya, te recomiendo que te compres una tarjeta de Arduino para tu próximo proyecto y lo pruebes. Depende un poco también del proyecto que tengas entre manos claro...

MGLSOFT: Nunca había visto esto del ChipKit, pero veo que es muy parecido al Arduino, me parece interesante... ¿Se programa con el IDE de Arduino? ¿Es compatible 100%? ¿Comparando el Max32 con el Arduino Mega tiene mejoras? le echare un ojo a ver...

"REESCRIBO: MGLSOFT ten cuidado, he visto en otros foros que ChipKit no es compatible 100% con Arduino, hay gente que ha tenido problemas si lo programas con la IDE de Arduino. Supongo que si lo programas con otro lenguaje como C o ensamblador con el Mplab o otro IDE para PICs no habrán esos problemas."

En cuanto a lo de las entradas y salidas tienes toda la razón, hay que aislarlas correctamente del exterior para no tener sorpresas. Por suerte este primer proyecto no era muy sensible a esto, el HMI era solo una pantalla LCD 2x20, 6 botones, 6 leds y la parte de I/O era un sensor que daba una señal de 0-5V y unos motores que se controlaban con señales de 0-10V.

Para estas entradas y salidas analógicas use un simple circuito operacional para convertir la señal de salida PWM en una señal de 0-10V y una etapa seguidora con el mismo OPAM para la entrada de 0-5V.
Ah! y ahora que recuerdo tambien 3 reles para controlar una luminaria, un fluorescente UV y un relé para una salida Auxiliar.

En cuanto a la programación ya sea un PLC, un PC, un microcontrolador o un video, si no lo programas bien no hace lo que tiene que hacer. Ya sabéis que la primera vez a veces hay algún "bug" pero eso le pasa hasta a Microsoft... jejej

¿Sabéis algún libro donde explique la mejor manera de aislar estas entradas y salidas? supongo que lo típico: OPTOS, OPAMs, Bobinas y mucha experiencia y practica.

Bueno lo dicho, siempre que pueda intentaré ir actualizando el hilo y poner los logros que surjan.

Un saludo.  :-/
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 02 de Noviembre de 2012, 15:02:29
¡Síiii, es esta!

http://www.micropic.es/mpblog/2007/04/libreria-para-display-de-nokia-3310-con-c30-y-dspic/

Me alegro que te sirviera.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 02 de Noviembre de 2012, 15:10:43
ESA ES!!! ejjeejej veo que aun la conservas. Comencé con esa librería y acabe modificandola para una pantalla parecida pero en color. Que recuerdos.... gracias por compartir tus conocimientos.  :D

Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Geo en 03 de Noviembre de 2012, 03:35:48
Yo también he estado pensando en la posibilidad de recrear un proyecto en donde trabajo utilizando una tablet Android de bajo costo, aún no lo defino por completo pero me anoto para participar en la discusión :).

1. Estoy completamente de acuerdo en que se debe rediseñar la tarjeta Arduino para poder utilizarla en ambientes industriales, un buen punto de referencia puede ser las tarjetas Duino de Olimex (https://www.olimex.com/Products/Duino/), compatibles con Arduino o similares y diseñadas en su mayoría para ambientes industriales.

2.- ¿Que pensáis de usar Raspberry PI como HMI?
Me parece más que posible y una buena idea, pensando en que incluso puedes agregar alguna interfaz web (algo en lo que quiero trabajar también), aunque de nuevo, hay que considerar que así como Arduino, la RPi tampoco está diseñada para ambientes industriales, en todo caso échale un ojo también a las placas OlinuXino de Olimex (jeje, puede parecer, pero no trabajo para ellos :P. Los conozco desde hace algún tiempo, no he comprado sus tarjetas pero recientemente las estoy reconsiderando por algunas cosas que me estoy planteando).

Y no, no he usado la RPi con pantalla TFT Touch.

3.- ¿Que opináis de usar una Tablet con Android como HMI en la industria?
Por el precio pueden ser muy buena opción, pero seguimos con el tema de la robustez, aquí es donde no me podría fiar sin antes hacer pasar un equipo de estos por unos largos y cuidadosos periodos de prueba.

4.- ¿Alguien sabe de alguna pantalla con Android que no sea Tablet o un PC embedded con Linux que me pueda servir? Algo low cost por supuesto...
Freescale y otros fabricantes tienen kits para Android (y/o Linux), bien se puede investigar por ahí. Por otro lado, también se que hay trabajos para portar Android a la RPi y he visto en video versiones tempranas de ports para las OlinuXino.

5.- Algo muy importante ¿Que opináis de la fiabilidad y robustez de estos sistemas (Rapberry y Arduino)?
Ya he mencionado antes mi opinión en que ninguna de las dos fué diseñada para ambientes industriales (en cuanto a las tarjetas "oficiales"), lo único que podría agregar es que para el caso de Arduino, la facilidad de sus funciones también supone una menor velocidad en la lectura de sus entradas y cambio de sus salidas, pero no me parece algo crítico para el tipo de aplicación que planteas. Y estoy de acuerdo en separar las tareas de manejo de dispositivos de la R-Pi y delegársela a algo como Arduino.

Saludos y sigamos discutiendo :).
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 03 de Noviembre de 2012, 06:30:37
Por lo que veo estas Duino que comentas llevan un PIC32 vendría a ser algo como lo que comentaba MGLSOFT. Hay que ir con cuidado con estos clones porque he visto en algunos foros que nos son compatibles 100% con Arduino, al menos en cuanto a utilizar la IDE de Arduino. Si las programas con las herramientas para PIC no creo que haya problema. En principio yo me centrare de momento en Arduino por su simplicidad en cuanto a la IDE, pero me parece interesante para ver plataformas parecidas.

Me parecen muy interesantes las OLinuXina pero de momento me decanto por la Raspberry ya que hay más comunidad en la Web y con esto puedes conseguir más ayuda cuando surgen problemas.

Buscando ejemplos de la OLinuXina he encontrado este link http://hardkernel.com/renewal_2011/main.php (una pasada!!). Si estas mirando de hacer un proyecto con Android estas tarjetas te pueden interesar.

Lo unico que no veo claro de usar Android para hacer un HMI es que no quiero que arranque el escritorio y el usuario tenga que ejecutar la aplicación, quiero que arranque directamente la aplicación y que el usuario no pueda usar la pantalla para otras cosas que no sean para lo que esta diseñado. Seguro que existe una solucion a esto, ya buscare pro la web si me decanto por usar Android como HMI.

Tambien he visto las tarjetas GameDuino que se usan para hacer juegos con Arduino http://excamera.com/sphinx/gameduino/ . Quizá con este Shield se pueda hacer un HMI, tengo que analizarlo porque lo que quiero es integrarlo todo en una placa diseñada por mi y tengo que ver la complicación de este Shileld y si es libre también. Pero no pinta mal.

feature=relmfu

En cuanto a un Arduino industrial quizá no haya mucha cosa porque todo depende de como uses las I/O. Como en Arduino puedes usar cada pin de I/O de distintas formas (entrada digital, salida digital, entrada analógica, comunicaciones, PWM, etc...) no tiene sentido que diseñen una PCB aislada por que en ese momento solo podrías usar cada pin para lo que este diseñado. Para aislarlas se lo tiene que hacer cada uno dependiendo de su diseño y sus necesidades, pero bueno, no hay nada que unos Optos no puedan aislar ejejejej :P

Bueno sigo buscando, a ver que me convence mas para el HMI.

Mañana si tengo tiempo conectaré mi Raspberry a ver si consigo meterle el Linux, si lo hago ya pondré alguna foto.

Saludos!!  :-)
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 03 de Noviembre de 2012, 09:15:46
BUENO BUENO BUENOOOOO!!! Ya he instalado RaspBian (Linux) en mi RaspBerry!!  :-/ es muy facil y es un momento, en total no creo que haya llegado a 30min contando las descargas del SO.

La lastima es que he hecho las fotos con mi telefono Android y como estuve trasteando e instalando drivers y programas que he ido haciendo en Android ahora no se que pasa que windows no me reconoce el móvil como disco USB y no puedo sacar las fotos.

Arranca muy bien, te aparece el Escritorio con iconos del IDE de Python directamente, así que ahora toca aprender un poco de Python para hacer la interfaz grafica y comunicaciones con la Arduino.

¿Alguien a programado en Python? no parece muy complicado ¿alguien lo puede confirmar? ¿alguna guía de inicio para programar con ventanas?

Para los expertos del foro, no se si es correcto seguir en el foro de Arduino o crear uno nuevo de Raspberry... Va a ser una mezcla de los dos... ¿ quizá en proyectos?

En cuanto puedo pongo las fotos.

Saludos.  :lol:
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 03 de Noviembre de 2012, 11:17:29
Yo recién he aprendido Python en el curso de IA y es muy sencillito si vienes de C.
Hay muy buenos manuales en español. Si no encuentras ninguno dimelo y te busco el que usé yo.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 03 de Noviembre de 2012, 11:44:32
Ponlo por aquí !!
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 03 de Noviembre de 2012, 13:11:01
Este es:
https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf

(http://mundogeek.net/tutorial-python/tutorial-python.jpg)
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 03 de Noviembre de 2012, 13:46:26
Perfecto! es el mismo manual que tengo yo, aunque todavía no lo he empezado. A ver si comienzo a hacer algo. Lo que pasa es que en este manual no habla de como crear ventanas ¿Verdad?

¿Alguien tiene un manual de Python que explique como hacer programas con ventanas? Seguro que en Google hay mucho sobre el tema, pero si alguien nos puede recomendar uno no estaría mal.

¿ Recomendáis Python  para hacer programas en Linux o recomendáis algún otro? ¿Hay algo estilo Visual Basic para Linux y más en concreto para RaspBerry?

Saludos
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 03 de Noviembre de 2012, 13:49:12
Ah, no, sobre ventanas no tengo ni idea. Ya nos contarás tus avances.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 03 de Noviembre de 2012, 13:52:58
Si, en cuanto tenga tiempo me pongo a programar ventanas con Python, ya os contare. Creo que voy a dejar un poco aparcado ahora el tema Android jejeje (soy como los niños  :oops:)

Otra cosa! ¿No sabréis de algún monitor TFE touch a poder ser con conexión HDMI pequeñito para usar lo de pantalla (de unos 8 - 12")?

Con Raspberry puedes usar un monitor de PC o un Televisor con entrada HDMI pero son muy grandes para la aplicacion. Ahora para aprender esta muy bien, pero luego a la hora de meterlo en una maquina estaría bien usar algo un poco más pequeño y a poder ser que sea robusto y de montaje en panel si no es mucho pedir ejjeej (AH! y barato jaja).

¿Sabéis algo que me pueda servir?  :mrgreen:
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: RALF2 en 03 de Noviembre de 2012, 17:18:25
Que tal amigos!
interesante lo que colocas bitpic sobre lo del arduino y las aplicaciones que les estas dando en la empresa, eso mismo tenia pensado yo pero usando PIC en vez de arduino  :D
Ahora bien un sustituto para tu arduino, en version pic seria el amicus18 (http://blog.bricogeek.com/noticias/electronica/amicus-18-desarrollo-con-pic-al-estilo-arduino/)  :mrgreen:

Yo he trabajado alguito con el arduino, pero el CCs para pic no lo puedo dejar  :D  asi que uso el amicus18 algunas veces.
del resto de programas que estas utlizando y el raspberry aunque los he visto, no tengo idea, de como funcionan  :?.
Asi que intentare seguir tus avances  :mrgreen:
Manolo gracias por el pdf  ;-)

Saludos
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Geo en 03 de Noviembre de 2012, 17:29:46
Por lo que veo estas Duino que comentas llevan un PIC32 vendría a ser algo como lo que comentaba MGLSOFT. Hay que ir con cuidado con estos clones porque he visto en algunos foros que nos son compatibles 100% con Arduino, al menos en cuanto a utilizar la IDE de Arduino. Si las programas con las herramientas para PIC no creo que haya problema. En principio yo me centrare de momento en Arduino por su simplicidad en cuanto a la IDE, pero me parece interesante para ver plataformas parecidas.
Las basadas en PIC son pinguino y tienen su propio IDE. También tienen tarjetas basadas en AVR compatibles 100% con Arduino, lo diferente es el diseño del hardware.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 03 de Noviembre de 2012, 17:59:38
Ok, ahora lo voy cogiendo. Digamos que lo estandar es el conexionado de los pines para poder conectar los shield.

Entonces la pregunta que cabría hacer es que plataforma o que micro se le puede sacar más rendimiento. Yo para la aplicación que tengo entre manos con Arduino voy sobrado, pero supongo que en otras aplicaciones puede ser necesario un lenguaje de más bajo nivel. ¿algún ejemplo?

Yo con Arduino (llevo como mucho 2 meses usándolo) no he tenido ningún problema con mis aplicaciones. He usado un Arduino Leonardo para el control de un invernadero (con la pantalla del Nokia 6100, Nocturno esta es la que usé en mi proyecto de la uni pero con un PIC) y el control de la maquina que tengo ahora en pruebas en el trabajo con un Arduino Mega.

A mi lo que me gusta de Arduino es que tiene una comunidad muy grande y eso hace que hayan librerías de casi todo, aunque no puedo comparar con otras plataformas con PIC, como las que veo que muchos de este foro usan, porque nunca las he usado. Los que las usais ¿hay tanta información como con Arduino? Las Arduino las he visto hasta en revistas de ciencias jejeje

Bueno, mañana intentare hacer un "Hello Word" con Python en una ventana con mi RaspBerry a ver si me sale. Si lo consigo pondré fotos para que os hagáis una idea.
No se si es la excitación de mi nuevo juguete, pero os la recomiendo, ha sido más simple de lo que esperaba y no tengo muchos conocimientos de Linux todo sea dicho. Pero para darles a nuestros proyectos un interfaz gráfico creo que es muy recomendable. Ahora solo me falta encontrar una pantallita de entre 5 y 10 pulgadas táctil para rematar la faena del HMI.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 04 de Noviembre de 2012, 08:18:56
Iba a subir las fotos de mi Raspberry PI funcionando, pero algo pasa que no puedo subirlas, o igual es que no se hacerlo que también puede ser... ¿Alguien sabe como se pegan imagenes del disco duro en el mensaje?

Al final no he creado la ventana con el "Hola Mundo" en Python porque he visto que me queda mucho que aprender de Python y no quería copiar y pegar un ejemplo que no sea hecho por mi.

Aun sigo con la duda de que lenguaje usar, RaspBerry viene con Python, pero prefiero un IDE más orientado a objetos, como podría ser Visual Basic o Delphi. Algo que me permita crear una interfaz gráfica fácilmente. Voy a mirar en foros de Raspberry a ver que encuentro, pero si alguien tiene algún consejo es de agradecer.

Lo dicho, me queda mucho que aprender en lo relacionado a programación en Linux.  :?

Saludos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Suky en 04 de Noviembre de 2012, 09:21:14
Hola! Yo, en caso de usar otro equipo microcontrolado en un ambiente industrial que no sea un PLC, aparte de que el hardware sea adecuado implementaría un firmware que sea bastante robusto para evitar cuelgues en el control del proceso debido a cualquier problema del micro. Seguramente lo mejor es programar en base a tareas y un scheduler, y todas las herramientas por hardware del micro contra cuelgues (WDT y TRAPs)


Saludos!
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 04 de Noviembre de 2012, 10:19:01
Creo que has sacado un buen tema, hasta ahora el programa que tengo en pruebas no he contado con cuelgues del micro, por no poner no he puesto ni wdt. Tengo delito  :oops: por suerte o por casualidad no a hecho falta de momento, pero lo tendré muy en cuenta en la próxima revisión del programa. 

Alguien tiene experiencia en simular cuelgues o problemas para comprobar si funcionan las medidas que tome en el programa? Supongo que dependerá de cada aplicación y que le tendré que hechar imaginación verdad?

Saludos
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 07 de Noviembre de 2012, 17:52:53
Hola,

¿Que opináis de usar componentes 0601?

Se que para soldar en casa a mano es un coñazo, pero para fabricar PCB ¿hay algún problema?

Pensaba poner componentes de este tipo en la PCB para ahorrar espacio, placa y reducir coste (aunque no creo que haya mucha diferencia de precio entre usar un 0805 a un 0601).

¿Para el fabricante de PCB es mejor o peor?

En cuanto tenga la PCB acabada os pongo algunas imágenes de Eagle por aquí.

Saludos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: fidodido18 en 08 de Noviembre de 2012, 19:13:03
Hola.. interesante tu post.

Yo programo en PIC, Raspberry y algo de PLC. En el PC programo en Java, c# y python (principiante).

Te digo mis conclusiones:

1. Python es orientado a objeto y fácil (en comparación a C# y Java) de utilizar. Ademas esta muy documentado en la WEB.
2. Si quieres otra alternativa te recomiendo JAVA con eclipse o netbeans. Otra opción es programar en c# con su proyecto para linux: MONO. Te advierto que el rendimiento de tu programa sera muy inferior al compilado con python.
3. PIC para la industria lo he usado para cosas que no comprometan al sistema central. Ademas de entregar varias copias del hardware  ;-)
4. Raspberry para la industria, todo depende como protejas tus circuitos de ruidos externos, caídas de tensiones, etc etc. Pero para mi esto es para aplicaciones caseras(indoor). Recuerda que la gente que trabaja en la industria no es muy delicada que digamos. En la web he visto varios proyectos con pantallas TFT con touch screen conectadas por SPI al RASP.
5. Si vas hacer hacer algo te recomiendo que te enteres un poco de las normas de tu país, en cuanto a espacios confinados y altamente explosivos. También de normas de circuitos impresos etc etc...

Y quien dijo que diseñar hardware era fácil? el firmware de un pic es apenas para mi el 25% de un proyecto. Si quieres que tu producto sea de alta calidad son cantidades de normas por leer, según el sector de la industria que te encuentres desarrollando. El sector en la industria donde tengo experiencia es en Gas Natural y la Energía Industrial y con fronteras comerciales.

FUENTE: Mi experiencia.






Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 10 de Noviembre de 2012, 08:34:10
Gracias por tu aporte Fidodido18,

La tarjeta que estoy desarrollando para la primera maquina en que lo voy a probar no estará en ambientes muy desfavorables. Esta maquina estará en un laboratorio que puede ser de hospital o químico, o ambiente parecido. Suele estar en salas limpias y sin equipos que puedan tener componentes que puedan producir parásitos (motores de gran potencia, contactores, etc.).

La maquina en si tampoco lleva componentes muy conflictivos. Lleva dos luminarias, entre 3 y 6 ventiladores EC (EC significa que se controlan con una señal de 0-10V, por lo que la PCB tampoco tendrá que llevar ni triacs ni componentes complicados) un sensor de velocidad de aire, un display y una botonera con leds.

Vamos que lo único que hace esta tarjeta es controlar 3 relés, una señal de salida de 0-10V, una señal de entrada de 0-5V, un display y una botonera.

A medida que voy haciendo la tarjeta me voy dando cuenta que para la función que va a hacer podía haber usado un PIC, ya que he usado el micro del Arduino Mega que es un ATmega2560 (100 PINES) y con un PIC (o un ATmega más pequeño) podría haber ahorrado coste y espacio en la tarjeta.

La intención era poder usar la IDE libre de Arduino, pero bueno, para la siguiente que tenga que desarrollar valorare hacerlo con Arduino o no.

Ahora que esta de moda el Software libre ¿sabéis si hay alguna IDE tipo MPLAB o CCS C que puedas usar de forma gratuita?

Lo que me gusta de la IDE de Arduino es que no tienes que estar configurando la velocidad de reloj, los timers, etc.  aunque si no recuerdo mal con el CCS C o el PICBasic no se hacía tan engorroso estas configuraciones.

En cuanto a la RASPI a ver si saco tiempo para echarle un ojo al Python que ya tengo ganas. ;)

Saludos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: fidodido18 en 10 de Noviembre de 2012, 11:53:05
Hola Bitpic.

Trabajar en ambientes donde se involucra la salud de las personas me parece mas peligroso que trabajar con una industria controlada por un 16f84 :mrgreen:

Trata de tener todo retroalimentado en tus circuitos, es decir, si tienes una salida asegúrate de estar censando esa salida con un pin de entrada. Y en caso de estar fallando algo reportarlo inmediatamente en tu LCD gráfico. El hardware en lo posible siempre se debe estar indagando a si mismo y en caso de encontrar algo no deseado reportarlo para su posterior mantenimiento o revisión.

Te comento que MPLAB  ya tiene un IDE gratuito XC8, XC16 y XC32. Si, lo único malo que todo aun sigue siendo muy manual, pero después que tengas el modelo inicial y leas los ejemplos de MICROCHIP solo es copiar y pegar (aunque tienes que leer el datasheet del PIC muchas veces).

CCS es una buena opción, lo único malo es que es paga, pero creo que tu proyecto puede sacar la licencia. Es decir si tu producto vale U$100 y vas a vender 4 pues aumenta en U$50 y al final tendrás la licencia. Todos tus gastos se lo tienes que transferir al producto, incluso la luz que consume tu PC, el desgaste que tiene tu equipo, el agua que te tomas, las veces que vas al baño, la comida y hasta tu ganancia debes sumarle. Es algo mas administrativo pero debes tener en cuenta que las licencias es algo que no vas a pagar tu, es algo que cargas a tus productos "indirectamente".
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 10 de Noviembre de 2012, 12:42:10
Hola Fidodido,

Este proyecto no supone un peligro para nadie ya lo he tenido en cuenta  :) , es una maquina simple, tenemos otras maquinas que si pueden ser mas cruciales que llevan procesadores redundantes y hasta sensores redundantes, pero en este caso no hay nada que temer.

Este proyecto es algo casi personal, trabajo en una empresa en la que nuestras maquinas están basadas en Autómatas (PLC) y tarjetas diseñadas por empresas externas que valen casi como un PLC. Mis superiores andan buscando reducir costes en las maquinas que fabricamos en serie y yo les propuse utilizar hardware y software libre (como el caso de arduino) y de bajo coste. Entre las mejoras que les plantee es que podríamos modificar el programa de las tarjetas electrónicas nosotros mismos (como es el caso de los PLC que programamos en la empresa), ahora en el caso de las tarjetas electrónicas las modificaciones en el programa las tiene que hacer la empresa que diseña la tarjeta y eso supone un gran coste para nosotros.

Total que mi jefe me propuso que hiciese un prototipo para probarlo en esta maquina. Es una maquina simple que no requiere mucha seguridad, exceptuando lo que quiere todo el mundo, que sea robusta y de los menos problemas posibles. La cuestión es que me cogí una tarjeta Arduino Mega, hice una tarjeta con reles y toda la electrónica que necesitaba para el control de la maquina y ha funcionado bien como esperábamos.

- La tarjeta que controlaba esta maquina cuesta unos 150€ el control y unos 80€ el display.
- Con la que estoy diseñando el coste sera de unos 60€ el control y 14 el display.

Ademas de este ahorro cada vez que haya que hacer una modificación o un cliente nos pida algo especial, se lo podemos hacer en la empresa. Esto no podíamos hacerlo hasta ahora sin pagar a la empresa que diseña la parte electrónica.

En resumen, estamos experimentando con una maquina sencilla para ver si convenzo a los superiores, y si les gusta entonces si que entraremos en otras maquinas más complicadas.

Ahora en realidad no necesitaré la Raspberry. La Raspberry sería una propuesta para una maquina que necesitase un interfaz de usuario con gráficos y pantalla más grande y si es posible táctil. Igualmente no creo que la usase para el control de la maquina, más bien solo sería el interfaz y el control lo dejaría en manos de una tarjeta electrónica diseñada para ese propósito o un PLC. Digamos que la Rasp solo recogería datos y los mostraría en un monitor o enviaría datos a la tarjeta o PLC de control, pero siempre sin comprometer la función de la maquina.

Si consigo convencer a las altas esferas con este prototipo, comprar un IDE no creo que sea un problema, pero para ello antes tengo que justificar este gasto demostrando que podemos hacerlo y que será un mejora en cuanto a desarrollar nosotros mismos la electrónica y programarla.

Por cierto, gracias por hablarme del XC.. , hacía tiempo que no tocaba PICs y la ultima vez que los toque todas las herramientas eran de pago. Si lo llego a saber un mes antes ahora estaría diseñando con PIC ejejej :D les tengo cariño. Para el re-diseño de este proto o el próximo proyecto electrónico lo tendré en cuenta.

Pregunta del millón: Estas tarjetas que comentan algunos foreros parecidas al Arduino pero basadas en PICs ¿se puede programar con estos IDEs? supongo que si, pero como veo que estoy un poco desfasado prefiero que me lo confirméis. Si es así creo que me pasaré muy pronto a los PICs otra vez ejejej Arduino ya no será la única plataforma con IDEs y hardware fácil de adquirir.

Cada día aprendo algo nuevo...   :-/
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 10 de Noviembre de 2012, 13:06:39
Os adjunto el esquema para que me deis vuestras opiniones. Cuando tenga la PCB os la pongo también, por ahora tengo los componentes planteados y algunas pistas ruteadas, pero no esta acabada, esto de usar un micro de 100 pines y unas dimensiones reducidas hace que no se fácil.

Saludos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Noviembre de 2012, 16:27:00
Muy Buenas!!!  :-/

Al final he decido retomar los PIC, y la aplicación que os comentaba al final la he hecho con 18F4550.

Ya tengo el PCB listo para pedir los primeros protos de prueba, os adjunto una imagen del PCB.

He decidido usar la versión Free de MPlab XC8 a ver que tal me desenvuelvo, hice algunos programas sencillos con una tarjeta de desarrollo de Olimex que tenía por aquí no es excesivamente complicado de usar. Lo bueno de esto supongo que es que es una herramienta de Microchip, aunque al principio pensé usar CCS C que me parece más sencillo y practico.

En fin, voy a pedir el proto a ver que tal va ¿alguien tiene alguna buena referencia de fabricantes de PCB? quiero pedir pocas placas, de momento como mucho 2 o 3 para probar y corregir si hay algo mal por lo que necesitaría una empresa que haga protos en estas cantidades y de bajo costo, que no esta la economía para derrochar.

Saludos a todos.

Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: fidodido18 en 16 de Noviembre de 2012, 23:42:43
Muy Buenas!!!  :-/

Al final he decido retomar los PIC, y la aplicación que os comentaba al final la he hecho con 18F4550.

Ya tengo el PCB listo para pedir los primeros protos de prueba, os adjunto una imagen del PCB.

He decidido usar la versión Free de MPlab XC8 a ver que tal me desenvuelvo, hice algunos programas sencillos con una tarjeta de desarrollo de Olimex que tenía por aquí no es excesivamente complicado de usar. Lo bueno de esto supongo que es que es una herramienta de Microchip, aunque al principio pensé usar CCS C que me parece más sencillo y practico.

En fin, voy a pedir el proto a ver que tal va ¿alguien tiene alguna buena referencia de fabricantes de PCB? quiero pedir pocas placas, de momento como mucho 2 o 3 para probar y corregir si hay algo mal por lo que necesitaría una empresa que haga protos en estas cantidades y de bajo costo, que no esta la economía para derrochar.

Saludos a todos.


hola, de donde eres? para ver si te recomiendo un buen lugar para mandar hacer esos PCB.

CCS es bastante facil de usar y aprender lo unico malo son los bugs... xc8 tienes que empezar a pedal, por la configuracion de los fuse,todo es manual...



Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 17 de Noviembre de 2012, 02:48:59
Si mide menos de 50x50mm te recomiendo iTead (http://iteadstudio.com/store/index.php?main_page=index&cPath=19_20)
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 17 de Noviembre de 2012, 05:43:58
Hola,

Soy de España, en concreto de Barcelona. Por aquí hay fabricantes de PCB pero bastante caros, Se que a través de internet se pueden conseguir fabricantes de bajo coste de otros países como el que comenta Nocturno.

Nocturno mi PCB es de 100x88 mm. He visto que en la pagina que me recomiendas también hacen de 100x100m. ¿Son rápidos entregando el pedido?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 17 de Noviembre de 2012, 07:08:44
Más o menos entre 3 y 4 semanas
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 17 de Noviembre de 2012, 11:16:26
Ufff!! con lo impaciente que soy yo...  :D

He estado mirando los de por aqui y sale unos 200€ de media 3 protos y entrega en 19h. Eso sí, si pides 100 te sale a 4€ cada uno... ejjeej
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: pajaro en 19 de Noviembre de 2012, 09:03:00
Hola
este hilo esta tremendo
me lo apunto, muy buneno.

un saludo
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 25 de Noviembre de 2012, 15:27:00
Buenas,

Os informo como va la cosa:

En el trabajo estoy liado con un proyecto y hasta principios del año que viene no avanzará rápido el tema de los protos, seguramente los pida a un proveedor que tenemos en china de tarjetas electrónicas.

Por otro lado como dige en anteriores post al final lo haré con un 18F4550 en lugar del Arduino y he estado estas semanas intentando hacer lo que había hecho en Arduino con el MPLAB X, pero no hay punto de comparación entre la facilidad de uso de Arduino y lo complicado que se me esta haciendo el MPLAB X.

A la conclusión que he llegado es que soy un novato y que el MPLAB X me lleva loco jajaja :D... No consigo mostrar un simple "HOLA MUNDO" en un display. Se me esta haciendo eterno.

Por otro lado veo que la librería de MPLAB para el LCD (xlcd.h) es muy complicada para algo tan simple. Necesita cargar 11 archivos para hacer funcionar el xlcd.h (aunque todavía no he conseguido que funcione).

En otros IDE como CCS C con una simple librería del LCD hay de sobra. La librería LCD de CCS C tiene muchas más funciones y más útiles que la de Microchip.

No entiendo nada la verdad... Tenía ilusión por usar las herramientas de Microchip, pero poco a poco me estoy convenciendo que lo mejor va a ser usar CCS C u otros. Aunque sigo encabezonado en hacerlo funcionar con MPLAB X (bueno con XC8)

Por si alguien me puede echar una mano os dejo el código que me esta llevando por el camino de la amargura. Este código lo único que debería hacer es mostrar  "Hola Mundo" en un display y luego conectar y desconectar un rele en un bucle infinito. Por cierto esta hecho para un PIC18F97J60 que es el que lleva la tarjeta de entrenamiento que estoy usando.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include "xlcd.h"

#define _XTAL_FREQ 25000000     //Frec. del osc. en Hz para calculo de delays

// PIC18F97J60 Configuration Bit Settings

// CONFIG1L
#pragma config DEBUG = OFF      // Background debugger disabled; RB6 and RB7 configured as general purpose I/O pins
#pragma config WDTEN = OFF      // Watchdog Timer Enable bit (WDT disabled (control is placed on SWDTEN bit))
#pragma config XINST = OFF      // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode enabled)
#pragma config STVR = OFF       // Stack Overflow/Underflow Reset Enable bit (Reset on stack overflow/underflow enabled)

// CONFIG1H
#pragma config CP0 = OFF        // Code Protection bit (Program memory is not code-protected)

// CONFIG2L
#pragma config IESO = ON        // Two-Speed Start-up (Internal/External Oscillator Switchover) Control bit (Two-Speed Start-up enabled)
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config FOSC2 = ON       // Default/Reset System Clock Select bit (Clock selected by FOSC1:FOSC0 as system clock is enabled when OSCCON<1:0> = 00)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor enabled)

// CONFIG2H
#pragma config WDTPS = 32768    // Watchdog Timer Postscaler Select bits (1:32768)

// CONFIG3L
#pragma config EASHFT = OFF     // External Address Bus Shift Enable bit (Address shifting enabled; address on external bus is offset to start at 000000h)
#pragma config MODE = MM        // External Memory Bus (Microcontroller mode, external bus disabled)
#pragma config BW = 8           // Data Bus Width Select bit (8-Bit Data Width mode)
#pragma config WAIT = OFF       // External Bus Wait Enable bit (Wait states for operations on external memory bus disabled)

// CONFIG3H
#pragma config CCP2MX = OFF      // ECCP2 MUX bit (ECCP2/P2A is multiplexed with RC1)
#pragma config ECCPMX = OFF      // ECCP MUX bit (ECCP1 outputs (P1B/P1C) are multiplexed with RE6 and RE5; ECCP3 outputs (P3B/P3C) are multiplexed with RE4 and RE3)
#pragma config ETHLED = OFF     // Ethernet LED Enable bit (RA0/RA1 are multiplexed with LEDA/LEDB when Ethernet module is enabled and function as I/O when Ethernet is disabled)

 
#define Rele PORTGbits.RG7
#define backlight PORTGbits.RG5

 void DelayFor18TCY(void);
 void DelayPORXLCD(void);
 void DelayXLCD(void);


// Temporizador ms
void delay_ms(int mseconds){
    int count = 0;
    for(count=0; count<mseconds; count++){
        __delay_ms(1);
    }
    return;
}

void main(void) {
   
    TRIS_DATA_PORT = 0;
    TRIS_RW = 0;
    TRIS_E = 0;
    TRIS_RS = 0;

    TRISG7 = 0;
    TRISG5 = 0;

    backlight = 1;
    OpenXLCD(EIGHT_BIT & LINES_5X7);
    BusyXLCD();
    WriteCmdXLCD(0x06);
    BusyXLCD();
    WriteCmdXLCD(0x0c);
    putrsXLCD("HOLA");

    while(1){
        Rele = 1;
        delay_ms(1000);
        Rele = 0;
        delay_ms(1000);
    }
}


La parte de activar y desactivar el rele funciona correctamente, pero cuando pongo la parte del LCD se queda encallado el programa en cualquiera de estas funciones del programa:

    OpenXLCD(EIGHT_BIT & LINES_5X7);
    BusyXLCD();
    WriteCmdXLCD(0x06);
    BusyXLCD();
    WriteCmdXLCD(0x0c);
    putrsXLCD("HOLA");

Si comento estas funciones el rele funciona correctamente, si dejo sin comentar cualquiera de ellas el código ya no llega hasta el bucle while y el rele no hace nada.

Una ayuda?? estoy a punto de la desesperación jejejejeej :D

Por otro lado, he estado buscando información sobre como hacer el HMI y he visto herramientas como Microchip Graphics Display Designer (GDD) de Microchip y el Visual TFT y Visual GLCD de MikroElektronika. ¿Alguien ha usado estas herramientas para crear los gráficos de los displays? ¿que tal van? ¿Hay algo parecido que genere código para CCS C?

¿Que opináis de las herramientas del MikroC de Mikroelektronika? la licencia vale la mitad que el CCS C, pero ¿funciona igual de bien?

Saludos!
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 25 de Noviembre de 2012, 16:26:28
Yo uso CCS, pero tambie use el compilador de MikroE.
En mi opinión es muy buen compilador, hay que acostumbrarse un poco a usarlo, y tiene al igual que CCS, muchas cosas bien resueltas, para acelerar tu desarrollo.
En algunas cosas, precisamente la parte visual de GLCD, esta mas avanzado que CCS (aunque este tiene librerias graficas) para la edición visual de tu HMI.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 02 de Diciembre de 2012, 07:15:53
Ok, ya van saliendo las cosas con Mplab X8. Si es que a veces soy un poco comodon, acostumbrado a que en los IDEs venga ya todo hecho cuando lo tengo que hacer me extreso jajaajaj

Ya me he hecho mi propia librería para el LCD y funciona bastante bien, falta pulir y añadir algunas funciones, pero lo basico ya funciona.

Ahora solo falta leer las entradas analogicas y usar el PWM y ya tendré lo basico para hacer funcionar la tarjetita....

A ver si esta semana acabo unas cosas y pido oferta de la fabricación de estas tarjetas en China.

Por cierto, ¿alguien a usado alguna vez los TFT de 4Dsystems? ¿que tal van?

TFT 4DSystem (http://www.4dsystems.com.au/prod.php?id=155)

Saludos.  :-/
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 13 de Diciembre de 2012, 18:22:52
Buenas a todos,

Ya tengo fechas, para febrero lanzamos protos, se que quedan dos meses pero ya pondré fotos de las placas cuando lleguen.

Por cierto, voy a traducir todo el programa que hice en Arduino a C para un PIC18F4550 que es el que voy a usar finalmente.

El programa de Arduino me ocupa 10K de programa según indica la IDE de Arduino cuando compilas y el 18F4550 cuenta con 16K de memoria de programa, así que no voy sobrado de memoria de programa que digamos.

Cuando lo traduzca al X18 de MPLAB X ¿que creéis que ocurrirá en cuanto a tamaño ocupara igual, ocupara más o ocupará menos que en Arduino? uso el MPLAB X free, por lo que el código no queda tan comprimido como en las versiones de pago.

Saludos.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 18 de Abril de 2013, 17:32:05
Buenas,

Lo prometido es deuda y más vale tarde que nunca. Os pongo las imágenes de los primeros protos.

(http://imageshack.us/a/img836/7689/imag0045gc.jpg)

(http://imageshack.us/a/img546/5302/imag0044os.jpg)

(http://imageshack.us/a/img20/158/imag0043ii.jpg)

(http://imageshack.us/a/img801/8466/imag0046sz.jpg)


El programa lo tengo medio acabado también, pude aprovechar bastante código que utilice para el Arduino, por supuesto tube que "traducirlo" al C del PIC.

Las pruebas las he hecho con el proteus pero en los próximos días comenzaré a probarlos en la placa. Eso si arranca bien claro jeejjeej esperemos que si.

Bueno gente, un saludo e intentaré seguir avanzando novedades.  ;-)
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 18 de Abril de 2013, 17:36:00
Se ve muy linda placa, felicitaciones !!
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 19 de Abril de 2013, 18:58:19
Como suele pasar en los prototipos a veces surge algún error. En mi caso a sido poner dos de los pines de alimentación del PIC invertidos, donde debería ir VSS he puesto VDD y a la inversa, con lo que la tensión de la fuente me cae a 1V y se me calienta el PIC.

No puedo cortar pistas y unirlas bien porque da la casualidad que pasan por debajo del encapsulado del PIC. Me va a tocar levantar esos dos pines y hace la conexión correcta con cables. Lo veo difícil pero habrá que intentarlo, espero no cruzar los demás pines con estaño...

¿Alguien lo ha hecho alguna vez? ¿Hay algún truco?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 20 de Abril de 2013, 01:41:27
Se puede hacer, pero ten cuidado al levantarlos de hacerlo sólo una vez. Si si los mueves mucho arriba y abajo acaban por romperse.
Aunque mucho me temo que ese PIC estará muerto. Son bastante resistentes, pero me he cargado varios en un abrir y cerrar de ojos por alimentarlos a la inversa.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 27 de Abril de 2013, 08:06:22
Efectivamente Nocturno, me he cargado el PIC. Hice la modificación bien (en realidad no lo hice yo, lo hizo un familiar que se dedica a eso y tiene las herramientas adecuadas) pero al volverlo a conectar sigue callendo la tensión y calentandose el PIC.

He cortado los pines de alimentación y entonces vuelve a tener alimentación correcta, así que por descarte va a ser el PIC.

Ya os informaré cuando funcione.

Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 06:05:02
Buenas,

Estoy probando ya la tarjeta y le he conectado un display LCD de 20x2 y me encuentro una problema.

Si hago:

printf("Hola mundo");

funciona correctamente, pero quiero imprimir mensajes a través de una tabla que contiene todos los mensajes en diferentes idiomas. Para ello hago esto:

Código: [Seleccionar]
// Imprime en el LCD el mansaje (a) en el idioma (b) correspondiente
void mostrar_mensaje(int a, int b){
    int j;
    for(j=0;j<21;j++){
        printf("%c",tabla_mensajes[a][b][j]); //mensaje, idioma, caracter
    }
}

y la tabla a la que accede es esta:

Código: [Seleccionar]
#define num_idiomas 4
#define mensajes 40
#define caracteres 22

#define INGLES      0
#define CASTELLANO  1
#define HOLANDES    2
#define ALEMAN      3
#define JAPONES     4


const char tabla_mensajes[mensajes][num_idiomas][caracteres] = {
//  INGLES                  CASTELLANO              HOLANDES                ALEMAN                  JAPONES
    "Texto1", "Texto1", "Texto1", "Texto1",                 //0
    "AEOLUS V1.0",          "AEOLUS V1.0",          "AEOLUS V1.0",          "AEOLUS V1.0",                          //1
    "FAN:",                 "VENTILADOR:",          "FAN:",                 "FAN:",                                 //2
    "VEL:",                 "VEL:",                 "VEL:",                 "VEL:",                                 //3
    "UV:",                  "UV:",                  "UV:",                  "UV:",                                  //4
    "FILTER:",              "FILTRO:",              "FILTER:",              "FILTER:",                              //5
    "Texto1",       "Texto1",       "Texto1",       "Texto1",                       //6
    "UV ON",                "UV ON",                "UV ON",                "UV ON",                                //7
    "TIME:",                "TIEMPO:",              "TIME:",                "TIME:",                                //8
    "UV TIME:",             "TIEMPO UV:",           "UV TIME:",             "UV TIME:",                             //9
    "HOURS UV:",            "HORAS UV:",            "HOURS UV:",            "HOURS UV:",                            //10
    "HOURS FILTER:",        "HORAS FILTRO:",        "HOURS FILTER:",        "HOURS FILTER:",                        //11
    "HOURS FAN:",           "HORAS VENTILADOR:",    "HOURS FAN:",           "HOURS FAN:",                           //12
    "LENGUAGE",             "IDIOMA",               "LENGUAGE",             "LENGUAGE",                             //13
    "ENGLISH",              "INGLES",               "ENGLISH",              "ENGLISH",                              //14
    "SPANISH",              "CASTELLANO",           "SPANISH",              "SPANISH",                              //15
    "DUTCH",                "HOLANDES",             "DUTCH",                "DUTCH",                                //16
    "GERMAN",               "ALEMAN",               "GERMAN",               "GERMAN",                               //17
    "JAPANESE",             "JAPONES",              "JAPANESE",             "JAPANESE",                             //18
    "FAN SPEED",            "VELOCIDAD VENTILADOR", "FAN SPEED",            "FAN SPEED",                            //19
    "LAMINAR VELOCITY",     "VELOCIDAD LAMINAR",    "LAMINAR VELOCITY",     "LAMINAR VELOCITY",                     //20
    "RESET FAN HOURS",      "RESET HORAS VENT.",    "RESET FAN HOURS",      "RESET FAN HOURS",                      //21
    "RESET UV HOURS",       "RESET HORAS UV",       "RESET UV HOURS",       "RESET UV HOURS",                       //22
    "RESET FILTER HOURS",   "RESET HORAS FILTRO",   "RESET FILTER HOURS",   "RESET FILTER HOURS",                   //23
    "NO",                   "NO",                   "NO",                   "NO",                                  //24
    "YES",                  "SI",                  "YES",                 "YES",                                   //25
    "NORMAL",               "NORMAL",               "NORMAL",               "NORMAL",                               //26
    "1/2",                  "1/2",                  "1/2",                  "1/2",                                  //27
    "UV OFF",               "UV OFF",               "UV OFF",               "UV OFF",                               //28
};

El caso es que este código con el Proteus me funciona correctamente, pero en el tarjeta en lugar de aparecerme estos mensajes me aparecen todos los caracteres como "||"

No entiendo que puede estar pasando, si con printf("Hola mundo"); funciona, creo que de esta manera debería funcionar también.

Alguna idea????????????  :? :? :?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 16 de Mayo de 2013, 06:25:01
¿Tienes algún warning al compilar?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 06:39:39
Pues tenía el siguiente Warning, porque tenía definido el PIC con #define __18F4550 porque alguna librería a veces me hace el tonto

main.c:8: warning: redefining preprocessor macro "__18F4550" ((null): 0)

He quitado el #define __18F4550 y ahora no hay ni errores ni Warning pero en lugar de mostrarme todo con caracteres "||" ahora lo hace con "¨" (dos puntos arriba)

Lo raro es que si hago

printf("%c",tabla_mensajes[1][1][1]); //mensaje, idioma, caracter

Si que me muestra el caracter 1 del idioma 1 y mensaje 1. Es como si la culpa la tubiese el bucle FOR, he metido un pequeño delay para ver si es que lo hacia muy rapido, pero no es ese el problema, continua mostrando los caracteres raros, pero más lento.

raro raro raro...
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 07:38:54
si en lugar de definir el array como "const char" lo declaro directamente como "char" me aparece el siguiente error:

Texto.h:22: error: could not find space (3520 bytes) for variable _tabla_mensajes


?¿  :shock: Supongo que según como lo definas lo pone en un sitio u otro de la memoria y por eso aparece este error ¿no?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 16 de Mayo de 2013, 08:20:50
Sí, claro, al ponerle CONST lo estás metiendo en la memoria de programa, mientras que si lo quitas lo metes en la RAM.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 10:41:54
Pues no se que esta pasando.  :(

por más vueltas que le doy no lo entiendo...

Algo estoy haciendo mal, lo raro es que con el Proteus me va bien, si pongo printf("Hola"); me va bien y si pongo printf("%c",tabla_mensajes[1][1][1]); tambien me muestra el caracter al que apunta....

El hardware descartado, tiene que ser algo de direccionamiento de la tabla o el bucle for... pero se me hace un poco raro.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 16 de Mayo de 2013, 10:55:16
Para depurar, prueba a mostrar otras direcciones, a ver si es que se está cargando mal la tabla en la memoria. Haz, por ejemplo, que tu bucle recorra el array en el primer o segundo índice.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 11:17:31
Al final sera una tonteria, pero me esta sacando de quicio....

Si pongo esto :


    LCD_goto(0, 0);
    mostrar_mensaje(0,0);

No funicona (salen los "||"), pero si en cambio cojo el codigo que hay dentro de mostrar_mensaje(); y lo sustituyo en el mismo sitio:

    LCD_goto(0, 0);
    int k=0;

    for(k=0;k<20;k++){
        printf("%c",tabla_mensajes[0][0][k]); //mensaje, idioma, caracter
    }

Si que funciona.

¿Puede ser la manera en que se llama a mostrar_mensaje() o como esta definida?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 16 de Mayo de 2013, 11:19:03
La verdad es que no le encuentro tampoco la lógica
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 11:32:35
Mira, otra prueba que he hecho:

Si pongo esto funciona:

    printf("%c",tabla_mensajes[0][0][0]);
    printf("%c",tabla_mensajes[0][0][1]);
    printf("%c",tabla_mensajes[0][0][2]);
    printf("%c",tabla_mensajes[0][0][3]);
    printf("%c",tabla_mensajes[0][0][4]);
    printf("%c",tabla_mensajes[0][0][5]);
    printf("%c",tabla_mensajes[0][0][6]);


En cambio, si lo sustituyo en el mismo sitio por lo mismo con un bucle FOR o un bucle WHILE no funciona (bueno salen las "||")

    int g;
    for(g=0;g>20;g++){
        printf("%c",tabla_mensajes[0][0][g]);
    }

 :shock:



Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 11:42:36
Si hago esto funciona:

Código: [Seleccionar]
// Imprime en el LCD el mansaje (a) en el idioma (b) correspondiente
void mostrar_mensaje(int a, int b){

    printf("%c",tabla_mensajes[a][b][0]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][1]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][2]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][3]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][4]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][5]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][6]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][7]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][8]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][9]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][10]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][11]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][12]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][13]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][14]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][15]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][16]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][17]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][18]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][19]); //mensaje, idioma, caracter

}

Pero es muy cutreeee....

al final voy a pensar que es el compilador....
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Nocturno en 16 de Mayo de 2013, 11:45:10
Puestos a probar cosas, métele un delay dentro del for.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: reiniertl en 16 de Mayo de 2013, 11:59:42
Prueba a poner el arreglo al inicio de una página de memoria de programas, no dejes que el compilador la ponga donde le da la gana. Además prueba a deshabilitar las optimizaciones del compilador, esa suele ser una buena causa de problemas cuando utilizas arreglos multidimensionales.

En el manual del compilador vas a encontrar la directiva para definir la irección donde quieres que te pongan una variable, ahora no tengo esos docs y por eso no la pongo directo. El datasheet te dice donde comienza cada página.

Un saludo
Reinier
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 16 de Mayo de 2013, 12:02:21
Puestos a probar cosas, métele un delay dentro del for.
Lo he probado también, pero el único efecto que he conseguido es que muestre los "||" más lento.

Prueba a poner el arreglo al inicio de una página de memoria de programas, no dejes que el compilador la ponga donde le da la gana. Además prueba a deshabilitar las optimizaciones del compilador, esa suele ser una buena causa de problemas cuando utilizas arreglos multidimensionales.

En el manual del compilador vas a encontrar la directiva para definir la irección donde quieres que te pongan una variable, ahora no tengo esos docs y por eso no la pongo directo. El datasheet te dice donde comienza cada página.

Un saludo
Reinier

Voy a probar esto que dices Reinier...
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 17 de Mayo de 2013, 14:16:48
Sigo igual, no hay manera.

¿Puede deberse a que es un array de 3 dimensiones? ¿hay algún problema por hacer este tipo de array?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 17 de Mayo de 2013, 14:40:26
La tabla de constantes es un string, no un char.
Usado de esa forma, deberá mostrar los caracteres nulos que dejas en la tabla, que al espaciarla toda tienes caracteres alli.
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 17 de Mayo de 2013, 14:44:58
Tienes razón MGLSOFT! mientras tu contestabas yo estaba contestando lo siguiente  :D :

--------------------------------------------------------------------------------------------------------
He encontrado algo.

He hecho un array de una dimensión más pequeño

const char mensajes_ingles[] = {"01234567890123456789"};

y seguía teniendo el mismo problema, pero sorpresa... he quitado el "const", digamos que lo he metido en la RAM y ahora si que funciona.

¿Esta mal definido el Array poniendo "const"? ¿Como habría que definirlo para que funcione correctamente?
-------------------------------------------------------------------------------------------------------------------------------------------------

¿Como debería definir el Array para que funcione correctamente?

Gracias
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 17 de Mayo de 2013, 15:44:01
Estoy intentando declarar el array así (es un ejemplo para no poner toda la tabla):

const rom unsigned char micadena[]="hola mundo";

pero me da este error:

Texto.h:21: warning: missing basic type; int assumed
Texto.h:21: error: ";" expected
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: MGLSOFT en 17 de Mayo de 2013, 22:27:59
Te faltan los corchetes...
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 18 de Mayo de 2013, 04:26:50
Te faltan los corchetes...

No, con los corchetes ocurre lo mismo. Creo que XC8 no permite usar "rom".

Estoy pensando que quizá el problema pueda ser que al hacer el "const char mensajes_ingles[] = {"01234567890123456789"};" te lo asigne en un banco de memoria de programa  y al intentar ir a esa posición desde otro banco de memoria de programa es cuando hay el problema.

Ya no se me ocurre nada más, ¿puede ser que tenga que hacerlo con punteros?
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: Suky en 18 de Mayo de 2013, 10:55:34
Yo me perdí, el titulo dice Arduino + Raspberry + Android OPINION y vi un 18F4550 por ahí   :z)

Si probas así:

Código: C
  1. void mostrar_mensaje(int a, int b){
  2.      printf("%s",&tabla_mensajes[a][b]); //mensaje, idioma
  3. }


Saludos!
Título: Re: Arduino + Raspberry + Android OPINION
Publicado por: bitpic en 19 de Mayo de 2013, 03:55:40
Tienes razón Suky el tema ya se ha ido un poco por las ramas... He abierto otro hilo para este problema en la parte de PICs

Todo en microcontroladores PIC (http://www.todopic.com.ar/foros/index.php?board=1.0)

En cuanto a la solución que propones tampoco me funciona de esta manera. Pero en este caso en lugar de caracteres null no aparece nada.