Acerca de...
El equipo
Encuestas
WinTablets

Encuesta

Si las WINTABLETs no pudiesen ejecutar aplicaciones de escritorio, ¿las seguirías usando?

Cargando ... Cargando ...

últimas entradas importantes

Categorías

Archivos

28
Mar 2015
AccesoriosAnálisisARMDesarrolloHardwarei+dLinuxMultiplataformaPost-HangoutR&Drfogdev

Post Hangout: Placas industriales

En el último Hangout, nuestro invitado enseñó una serie de placas electrónicas pero no nos contó nada sobre ello porque el tema se salía de lo que estábamos hablando. No obstante resulta interesante, y como yo también las he usado a nivel profesional (aparte de la petición de un colaborador), os voy a contar un poco de qué va la cosa.

No solo de PC (y MAC) vive el hombre, de hecho es muy posible que el PC y el MAC sean los dispositivos minoritarios dentro de la gama de sistemas basados en microprocesador. No nos confundamos, muchas de las cosas que utilizamos sin darnos cuenta también son variantes de PC. Un parking, un televisor, el router, posiblemente los semáforos inteligentes (si los hay) de tu ciudad, la caja registradora del supermercado, el video portero electrónico. No sé, el rango es infinito y más allá, y cada vez lo es más.

Hasta no hace mucho tiempo ese tipo de plaquerío estaba basado en sistemas muy sencillos, construidos con microprocesadores de 8 bits rodeados de la lógica de control necesaria y suficiente para realizar su tarea.

201312222305368236

Se hacía así porque era mucho más barato tener un ingeniero que te construyera eso a la vez que tu lo fabricabas para tus propios productos. Aparte de eso siempre han existido las placas industriales de PC, pero en otro rango de precios que sólo valía la pena utilizar en según qué tipos de proyectos.

Pero como decía mi abuela, los tiempos avanzan que es un sinvivir, y ahora muchos proyectos se pueden construir con ese tipo de placas PC que no son un PC pero casi. Porque han bajado los precios, porque antes diseñar y construir una de esas placas era una tarea titánica, y porque han salido tecnologías y microprocesadores mucho más baratos y fáciles de implementar porque es el procesador el que lo lleva casi todo dentro de él.

Me refiero a la unidad de control de memoria (por otro nombre northbridge), al controlador de disco (por otro nombre southbridge), e incluso el controlador de energía. Vamos, que el mundo microprocesador se ha unido al del microcontrolador y ahora casi no hay diferencia entre uno y otro. (Es un decir, todavía quedan microcontroladores puros).

Otro de los grandes avances ha sido la tecnología ARM, que para quien no lo sepa, y frente a la de los x86 de Intel, es una especificación, no un diseño de chip. Es decir, que ARM son unas reglas y unos protocolos que un microprocesador debe implementar. Lo que haya dentro no importa, lo que importa es lo que hay en las patas del chip y cómo se controla.

De hecho hay empresas (como Mediatek, que se nombró en el Hangout) que te venden el diseño, y tu lo grabas donde te salga.

Porque hay otro tipo de chips vírgenes llamados FPGA, NIOS, seguro que la tecnología ha evolucionado desde la última vez que miré y hay más tipos, que son unos chips vacíos de todo contenido. Son una especie de carcasa que contiene en su interior la base de cualquier sistema electrónico digital, que es un constructo que se llama puerta o lacth. Hay de varios tipos, pero a nosotros nos da igual.

Si cogemos ambas tecnologías, podemos grabar un diseño Mediatek en una NIOS y tendremos un chip ARM plenamente funcional. Si añadimos otra lógica de control, nos podemos encontrar con PC completos dentro de un solo chip que luego insertaremos en, por ejemplo, una memoria USB.

La tecnología actual está a ese nivel, por lo que construir una placa PC más o menos completo es una tarea trivial (trivial, evidentemente, para una empresa dedicada a ello). Por lo tanto, a nivel industrial, es bastante fácil encontrar casi cualquier placa base para casi cualquier propósito.

Dada la baratura relativa de todo eso, más el hecho de que es más fácil encontrar un ingeniero que sepa programar para Linux o Windows, muchos diseños industriales se están construyendo con esa tecnología.

Ahora se llama IoT (el famoso internet de las cosas), pero qué queréis que os diga, yo llevo usando cosas de esas desde la época del 6502 y el 8031 (uno de los primeros microprocesadores de 8 bits baratos y uno de los primeros microcontroladores de uso general existentes en el mercado).

Lo dicho, es más fácil coger una placa de esas, ponerle un Linux y encontrar a un programador que nos construya un paquímetro sobre ello, que tener a un ingeniero de hardware y un programador embebido (como lo fui y soy yo) que se líe la manta a la cabeza y tenga que saber de ensamblador, C y cómo programar a bajo nivel uno de esos microprocesadores.

201407071058089142

Evidentemente no todo es miel sobre hojuelas. Utilizando algo así pagas por inestabilidades del sistema, carencias de tiempo real efectivo y lo chapucero que sea ese programador, porque no es lo mismo un programador normal que uno de sistemas y que entienda que cosas como que por ejemplo, un bucle for está casi prohibido en ese tipo de desarrollos).

Un la placa PC pura adolece de un problema bastante serio. ¿Cómo puñetas controlo un aparato para introducir monedas o el brazo que se levanta?

Buena pregunta.

Ese tipo de placas suele tener un módulo extra que se suele llamar GPIO y que es lo que realmente las diferencia de un PC normal y que a veces, pero solo a veces, hace que su precio sea muy superior al mismo modelo pero sin GPIO.

Ese módulo puede contener uno o varios (muchos) puertos serie, en general 8, 16, 32, 64 pines de entrada y otros tantos de salida, TTL, colector abierto, flotante por optoacoplador… La variedad y funcionalidad está garantizada.

Como son PC, esas placas vienen acompañadas de algún tipo de driver (que es lo difícil de hacer) que permita al programador acceso a todos esos extras, que a su vez irán conectados a los actuadores pertinentes, que pueden ser algo tan sencillo como un pulsador que lleve a masa la línea o algo tan complejo como brazo robótico para operar a corazón abierto.

Pues bien, lo que anoche nos enseñó Álvaro Marínez, alias @dDioxCorp, fue un par de placas de ese tipo. En concreto la ODROID-U3 y la ODROID-XU3.

La primera es un ARM Exynos 4412 (un Corext A9) de cuatro núcleos y 2 GB de RAM integrada, capaz de correr xUbuntu o Andriod 4.x y que tiene un módulo extra de GPIO compuesto del propio GPIO, UART (puerto serie pero TTL en lugar de 12VDC) e I2C (otro protocolo serie, pero este de 3 hilos con señales de tipo TTL).

La segunda es la hermana mayor de la anterior, con Exynos 5422 (un ARM Cortex A15 y otro A7 en un solo chip), módulo eMMC y una salida con PWM para ventilador (pero que podríamos usar para otras cosas). Lo que no lleva es módulo GPIO.

Aparte de todos los palabros ténicos vertidos en los párrafos de arriba, que solo sirven si sabes de qué va la cosa y para qué quieres la placa, estamos ante dos sendos ejemplos de placas base industriales para hacer con ellas lo que queramos.

Si entráis en cualquiera de los productos, veréis que más abajo hay una serie de extensiones, como un USB IO Board y un “Expansion Board”.

cpu

¿Sabéis dónde está el límite? En lo que seáis capaces de hacer con vuestras manos y con lo que está encima de los ojos. A nivel doméstico, esas placas se suelen utilizar para hacer Media Centers, NAS y cosas similares, pero si queréis robotizar vuestra casa, bueno, vosotros mismos.

Por RFOG | 4 Comentarios | Enlaza esta entrada

4 Comentarios

Quique
Enviado el 29/03/2015 a las 14:37 | Permalink

Excelente, excelente y más excelente.
Me ha encantado. Didáctico. Directo. Y resuelve una importante duda. Muy necesario.

Actualmente se han puesto de moda la Raspery Pi y el Arduino. El primero, por lo veo en este artículo, bien puede ser entendido como una placa sin GPIO. ¿me equivoco?
El segundo, el Arduino, también parece cumplir con el requerimientos. Con la distinción de que el GPIO (¿sería así, o corresponde otra denominación?), en realidad es un sistema para tomar mediciones a partir de fuentes analógicas como medidores de temperatura, humedad, presión, etc.
Para confirmar ¿Son el Raspery Pi y el Arduino buenos ejemplos de este tipo de placas que han hablado?
¿Existe algo parecido al estas baratas placas pero que también incluyan un GPIO sencillo?

Por otro lado, ¿cabe esperar una única de estas placas para todas las necesidades de, digamos, una máquina compleja (pongamos por caso, nuestro propio robot o un vehículo de fabricación propia) que uno quiera fabricar? ¿o lo más probable es el uso de varios, cada uno especializado en una de los subsistemas que conforman la máquina compleja? me imagino que en realidad se pueden terminar requiriendo varios, digamos, Raspery Pi y Arduinos elevando el costo total significativamente.

    RFOG
    Enviado el 29/03/2015 a las 15:34 | Permalink

    Ambos dos no tienen GPIO y sí, son ejemplos de ese tipo de placa que ha llegado al gran público.

    Los sensores, si están integrados no son, técnicamente hablando, GPIO puesto que deben contar con su propia API y su driver respectivo.

    La idea del GPIO es más un concepto que algo físico y definible. Por ejemplo, en una placa industrial un puerto USB podría ser considerado GPIO, y al revés, un puerto RS-232 no. Todo depende del uso que se le de.

    Existen algunas placas de extensión a través de USB. Las enchufas a un ordenador normal y te dan E/S de diferentes tipos y se acceden mediante algún tipo de protocolo serie (a fin de cuentas un puerto USB es un puerto serie con esteroides, al menos hasta el USB 2.0).

    El GPIO es cualquier tipo de entrada o salida sin un propósito definido. Son pines (conectores) a los que les puedes dar cualquier uso dentro de los modos compatibles. Como ya te he dicho, desde colocar un pulsador hasta conectar un brazo de robot.

    RFOG
    Enviado el 29/03/2015 a las 15:37 | Permalink

    Respecto a lo último que comentas, depende del diseño. A veces se puede con una sola, a veces hacen falta más.

    Por ejemplo, los coches Mercedes llevan un montón de procesadores repartidos por todo el coche asignados a tareas específicas que se comunican entre ellos mediante un protocolo combinado de soft/hard llamado BUS CAN y que terminan en una unidad central que se encarga de, digamos, repartir las tareas o tener en cuenta todos los aspectos de la funcionalidad.

    Las combinaciones y formas pueden ser infinitas y dependerán del tipo de proyecto.

Enviado el 29/03/2015 a las 23:39 | Permalink

Bueno, para puntualizar yo os enseñe las RaspberryPI2, las Cubieboard2 y Cubieboard3 (http://cubieboard.org/) que son versiones un poco antiguas, si la comparamos con al RaspberryPI2, pero que están mucho mas diseñadas, a realizar proyectos profesionales y de producción industrial.
Sobre el puerto “GPIO” la RaspberryPI2, Cubieboard3 y anteriores, junto a Arduino si lo tienen, puede que no tengan el mismo tipo de uso, que con micro controladores de la vieja escuela.

Estas placas se popularizaron gracias al proyecto Arduino, que fue diseñado para educación, mas que otra cosa, al poco algunos locos consiguieron grandes avances, pero se encontraban enfrente de las limitaciones del microcrontrolador Atmega, con lo cual le metieron un ARM, el concepto de RaspberryPI es bueno, pero como intenta ser una versión chetada de Arduino, tiene muchas limitaciones y fallos de diseño, caídas del sistema, problemas de alimentación… Por ese motivo surgieran proyectos como las Cubieboard que aunque son mas potentes que sus contemporaneas Raspberrys, están mas pensadas para realizar trabajos de gran envergadura y son mucho mas estables y seguras, eso si duplica o triplica el precio de la RaspberryPI.

Deja un comentario  

Tu email nunca se publica o se comparte. Los campos obligatorios están marcados con *

*
*
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:
Puedes usar las siguientes etiquetas y atributos HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

contacto@wintablet.info tema WinTablet.info por Ángel García (Hal9000)