¿Netduino o Raspberry PI para mis requisitos?

1

No quiero iniciar una guerra religiosa y creo que ninguno de los dos puede ser mejor en todas las circunstancias . Por lo tanto, vamos a considerar mis circunstancias.

Mi problema es que soy un tipo de software sin conocimiento de hardware y Google no es mi amigo hoy, así que espero poder obtener algunos consejos aquí. Para no iniciar una guerra religiosa, confinémosla a una que sea más adecuada para mis necesidades personales, que es una pregunta que puede responderse (a diferencia de un general "¿cuál es mejor?" Que obviamente no puede responderse).

Ahora que vengo a intentarlo, es difícil formular los requisitos exactos ya que inicialmente quiero "jugar y ver qué puedo hacer", pero aquí hay toda la información que puedo dar para ayudarlo a ayudar. yo.

No quiero hacer el esfuerzo de aprender ambos sistemas ya que tengo poco tiempo libre. Por lo tanto, busco consejos que me ayuden a tomar una decisión y me apeguen a ella.

  • Tengo más de 30 años de experiencia en codificación, estoy contento con Windows (para Netduino's C # y .Net, aunque tampoco tengo mucha experiencia) y con Linux. No tengo miedo de nuevos conceptos nuevos (en s / w) o lenguajes de programación.
  • Pero no soy muy bueno con h / w, aunque puedo manejar comunicaciones de puerto serie y una tarjeta Atmel up sin O / s (programación activada por interrupción)
  • Estoy bien versado en telemetría y SCADA, y ahora me estoy interesando en "el Internet de las cosas", y apunto a implementar sensores / controladores para esos.
  • Después de algunos proyectos de hobby, podría intentar un proyecto comercial (así que, piense en la licencia)
  • Necesito algo que pueda ser reforzado a IP67, pero supongo que ambos pueden.
  • No estoy demasiado preocupado por el precio, probablemente más por la flexibilidad. Odiaría aumentar el conocimiento de un sistema después de 5 a 6 proyectos y luego descubrir que hay algo que no puede hacer, que el otro puede hacer.
  • Como no sé nada acerca de h / w, estoy preocupado por conectar periféricos. ¿Cada periférico tiene conexiones estándar, o varía? ¿Uno u otro sistema tiene más periféricos disponibles disponibles?
  • ¿Cuál puede admitir la mayoría de los periféricos simultáneamente (o eso no tiene sentido, con tarjetas separadas, USB, bus serie (MODbus), etc.?) Además, el soporte de CANbus sería bueno, pero no es un requisito difícil.
  • No necesito las capacidades de visualización de la Raspberry Pi, no adjuntaré un teclado. Controlar y controlar estrictamente y comunicarse con una PC remota.
  • ¿cuál tiene la base de soporte más ancha (especialmente en el lado s / w)?
  • Aunque estoy contento con Ethernet, no me gustaría descartar WiFi o incluso las comunicaciones de Zigbee.
  • El funcionamiento con batería / energía solar de muy larga vida puede ser interesante, pero no es un requisito.

Espero que puedan ver que esta es una pregunta que puede responderse e invitar a preguntas que me pidan que explique con más detalle lo que espero lograr.

    
pregunta Mawg

2 respuestas

1

Según algunos de sus comentarios (CAN bus, MODBus), tendría que decir que la mejor opción entre un rPi y un Netduino no sería ninguna.

Básicamente, ni la Raspberry Pi ni el Netduino (creo que utiliza un CLR. No creo que puedan hacer eso determinista) pueden ofrecer un tiempo determinista. Si va a hablar de protocolos interesantes, tiene que poder ofrecer un tiempo determinista para generar los tiempos de bits adecuados.

Su otra opción sería colgar un chip de interfaz especial de un puerto SPI (algo como MCP2515 para CAN, no sé si hay dispositivos similares para modbus), pero eso sería mucho trabajo, y a menos que ya tenga un conocimiento profundo de cómo funciona CAN / cualquier bus, probablemente sería más difícil de depurar.

Sin embargo, tal como está, el rPi ofrece Serial, SPI y GPIO (y no muchos de ellos). No estoy inmediatamente familiarizado con el Netduino, pero me imagino que es similar.
También vale la pena señalar que no hay ningún controlador GPIO de kernel para el rPi disponible, que yo sepa. Como tal, hablar con el GPIO requiere ejecutarse como root, y mezclar bits en una dirección de memoria absoluta específica (creo que puede hacer algunas cosas con /sys/class/gpio , pero no he experimentado con eso).

Realmente, lo que creo que debes hacer es comprar algunos dispositivos Atmel o PIC24 / dsPIC, y jugar con ellos. Casi todas las cosas de hardware de bajo nivel se realizan de manera bastante universal en la C simple, así que debes enfocarte en eso.

De manera realista, si bien todos los microprocesadores diferentes tienen sus peculiaridades, son más similares que diferentes, y las habilidades como saber leer y comprender las hojas de datos de MCU son muy generalizables.

Cosas como ejecutarse sobre Linux (rPi) o CLR (netduino) son solo capas de abstracción adicionales que hacen que sea más difícil entender realmente exactamente lo que está haciendo el hardware y poder saber precisamente lo que hace la MCU es a menudo esencial para comprender cómo funciona la MCU / qué está mal, así como para interactuar con otras piezas de hardware.

    
respondido por el Connor Wolf
5

Tu lista contiene muchas cláusulas de poder / poder, por lo que no creo que pueda llevarte al único tablero. Tal vez para un proyecto específico, pero no en general.

En sus zapatos me esforzaría por convertirme en un maestro en la configuración (incluida la configuración del kernel, el proceso de inicio, etc.) de Linux. Eso parece ser lo que vas a usar. En qué tablero se encuentra el segundo paso, probablemente se decidirá por cada proyecto y es probable que cambie a lo largo de los años.

Es un poco como preguntarle a un programador realmente experimentado qué cree que es el mejor lenguaje de programación. Los menos dioses vendrán con su elección de C, Python, Perl, C ++, PHP, Lua, C #, Haskell, Ada, Pascal y algunas otras docenas. El verdadero maestro dirá: "para este trabajo, dame cualquier lenguaje imperativo que compile a código nativo, porque debe ser realmente rápido. Para este otro trabajo, dame cualquier idioma con soporte de gráficos decente y administración de memoria en tiempo de ejecución, La velocidad no importa mucho, pero mi tiempo sí ". En otras palabras: el idioma no importa, en cierto nivel, algunos son solo unos pocos grupos y los idiomas de cada grupo son casi intercambiables.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas