10 votos

¿Arduino / proceso versus .NET Micro Framework? ¿Mejor lenguaje? ¿El mejor hardware?

He estado jugando con Arduino por un tiempo ahora, y estoy en el proceso de pasar de principiante a intermedio. Me gustaría algunas opiniones sobre el .NET Micro Framework, en términos de rendimiento y la disponibilidad de hardware.

Yo soy una .NET programador, pero me he encontrado de Procesamiento para Arduino a ser prácticamente cero fricción... que está tan cerca de C# que cualquier cosa que yo quiero hacer no requiere un viaje a la documentación.

De todos modos, ¿cuál es mejor?

17voto

Simon Gillbee Puntos 366

Si desea pasar de principiante a intermedio, el idioma que usted necesita para aprender es C. Incluso si usted pone las Ventanas toda la cerradura-en el debate a un lado, tienes que ser muy bueno en la programación en C antes de que usted puede hacer un trabajo de calidad en un microcontrolador en un lenguaje de alto nivel como .NET Micro o C++.

Los sistemas embebidos se compone de una pirámide de conocimiento, y que usted realmente necesita saber un poco de cada paso para ser un buen diseñador:
^El código de usuario
^^Los sistemas operativos
^^^El lenguaje C
^^^^El lenguaje ensamblador
^^^^^Arquitectura de microcontrolador
^^^^^^Diseño Digital
^^^^^^^Los semiconductores
^^^^^^^^Electrónica básica (ley de Ohm)

El Arduino framework proporciona un práctico gancho para los aficionados a la pirámide en algún lugar entre el lenguaje C y el sistema operativo.

Específico para su la .NET Micro Framework pregunta, el Sobre dice:

El típico .NET Micro Framework el dispositivo tiene una versión de 32 bits del procesador sin externo unidad de administración de memoria (MMU) y podría tener tan poco como de 64 kb de la memoria de acceso aleatorio (RAM).

Además, el folleto de la diferencia de Windows Mobile, Windows Embedded, CE 6.0, y el .NET Compact Framework, y la compara con Linux, en Tiempo Real, Java, y la costumbre de los sistemas operativos. Este es un gran salto desde el Arduino/marco del Procesamiento de datos.

Tu Arduino cuenta con una de 8 bits del procesador con 1k de RAM. Además de los 8-bits y 32 bits pérdida de potencia, también se ejecuta menos de la mitad tan rápido como la mayoría de los procesadores. Mientras no me disuade de mudarse a un procesador de 32 bits, lo recomiendo como un intermedio a avanzado de mover.

Es realmente fácil de utilizar una gran cantidad de tiempo y la memoria con un par de líneas en C# o C++, que son insignificantes en un procesador de doble núcleo funcionando a una pareja gigahercios con gigabytes de memoria RAM, pero que puede hacer una gran diferencia en un dispositivo embebido. Hasta que usted es bueno en lenguaje ensamblador y/o C, o un gurú en C# o C++, no se recomienda su uso para la programación embebida.

Así que, me gustaría empezar con la descarga de WinAVR, y el programa de un simple parpadeo del LED de rutina en C. Si C es totalmente confuso para usted, hacer un poco de código nativo ("Hola Mundo") en su PC y, a continuación, pasar a la microcontrolador, pero que no debería ser necesario. A continuación, mueva a la comunicación a través de la UART, comience a usar interrupciones, y rehacer algunos de sus proyectos Arduino en C. a Continuación, encontrar (o!) una nueva placa de desarrollo con un microcontrolador diferente, tal vez un PIC o un BRAZO, y algunas golosinas como una pantalla LCD, Ethernet, tarjeta SD, o lo que quieras, y tratar de aprender un nuevo sistema. Una vez allí, podrás conocer mejor a donde quieres ir.

Estaremos aquí para ayudarle a lo largo de la manera!

7voto

Yo no tengo experiencia con el ".NET Micro Framework", pero tengo una gran desconfianza de todo lo que involucra la ejecución de una máquina virtual en baja potencia plataformas embebidas. Me parece una pérdida para mí. Necesita más potencia de los procesadores, más memoria, más consumo de energía, para lograr el mismo efecto como la ejecución de una más dedicada plataforma que recopila abajo a código máquina nativo. Posiblemente la razón por la que mi 528MHz teléfono Android que ejecuta una máquina virtual (similar a la JVM) a menudo se siente más lento que el de mi anterior varios años 312MHz Palm Treo que ejecuta las aplicaciones compiladas para el código máquina nativo.

De un rápido vistazo, .NET MF requiere un procesador ARM, que es un paso por encima en el poder y la complejidad de los 8-bits chip ATMega utilizado en Arduino.

Mi sugerencia es que si Arduino hace lo que usted quiere, que con el palo. Si no, usted puede buscar a los más poderosos ATMega o ATXmega chips, y por encima de ese trabajo con el BRAZO directamente en C/C++, sin el extra .NET traducción de la capa en la parte superior de la misma.

4voto

goric Puntos 5230

Si desea mover intermedio, usted debe tratar de una plataforma fuera de Arduino medio ambiente. Hay un montón de ellos para elegir, usted puede permanecer en 8 bits, incluso con un Atmel MCU o mover a uno de otro proveedor. El uso de un IDE, escribir código en lenguaje C, para comprender cómo un MCU obras, escribir su propio código del gestor de arranque o el uso de un circuito programador y mantenerse en movimiento.

Pero si usted realmente quiere intentar escribir en C# para microcontroladores, intente esto: http://www.trygtech.com/products/sh7619_evb.php

Utiliza una mucho más grande MCU, lo típico .RED de la huella es de aproximadamente 512 KB de memoria flash de 256 kb de RAM.

0voto

Eyal Puntos 2552

Utilizamos .NET Micro Framework en las aplicaciones de producción (la precisión de los dispositivos de medición). Funciona bien.

Hoy en día los microprocesadores han alcanzado el estado de cuándo se puede utilizar la opción 'create-ver perfil-cambio-a ver...' paradigma. Memoria cantidades son muy grandes y barato, así que la mayoría de ustedes probablemente no de la pila de memoria.

Y como C# developer, usted sabe que los perfiles adecuados para llegar a una condición deseada, es una mejor forma de vivir de adivinar qué más y más complicado que debe hacer mientras se crea el código para hacer que el código (y tal vez no), un poco más rápido.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X