¿Es.NET Micro Framework una buena forma de comenzar con la programación integrada?
microcontroller arduino (9)
¿Cómo se compara .NET Micro Framework con una placa de desarrollo con algo parecido a un Arduino o Nintendo DS para comenzar con la programación integrada?
.NET Micro Framework está dirigido a sistemas integrados que contienen un potente procesador (actualmente ARM7, ARM9 y Blackfin).
La placa Arduino se basa en un microcontrolador AVR de 8 bits para el cual .NET Micro Framework ni siquiera está disponible. Considere, por ejemplo, los requisitos de memoria del marco: se anuncia que consume tan poco como unos 300 kB de memoria. Arduino tiene un total de 16 kB de memoria de programa + 1 kB de RAM.
Nintendo DS, por otro lado, es al menos técnicamente capaz de ejecutar .NET Micro Framework.
Si está interesado en la programación integrada para hardware como Arduino, puedo asegurarle que no necesita (y generalmente no puede usar) ninguna biblioteca de alto nivel o un sistema operativo. De hecho, descubrirá que la programación de un microcontrolador pequeño será una alegría porque todo es muy simple y está bajo su total control.
Si está interesado en utilizar el .NET micro framework, eche un vistazo al tahoe II de devicesolutions.net
También realice el checkout a la inversa: Convertir el código de procesamiento para ejecutar en .NET micro framework http://blogs.oberon.ch/tamberg/2009-02-23/running-processing-code-on-the-dotnet-mf.html
Honestamente, si yo fuera tú (que no soy, dicho sea de paso), lo mantendría y evitaría la abstracción de alto nivel de la plataforma .NET para un sistema integrado. La forma en que aprendí fue a través de un curso universitario donde me presentaron conceptos de sistemas incorporados en un kit SunROM (similar a una placa Arduino, y que también contiene una MCU ATmega32) en lenguaje ensamblador AVR, y luego volvieron a enseñar los conceptos en C Teniendo la breve comprensión técnica de .NET que tengo, siento que hay demasiada abstracción arbitraria en la plataforma como para ser una opción muy sabia. (Por supuesto, parte de esto también es mi odio hacia .NET y Java en general, y especialmente cuando se usa en la programación de sistemas integrados, así que tome mi sesgada opinión con un grano de sal.)
El software incrustado debería (en mi opinión) ser capaz de aprovechar la plataforma en la que se ejecuta para funcionar de la manera más rápida y eficiente posible, en lugar de ser más abstracta para ejecutarse en tantas máquinas diferentes como sea posible. En lugar de simplificar el paquete de desarrollo de software, hacer que los programas sean más lentos o agregar complejidad innecesaria, creo que debe aprender los conceptos y la implementación desde cero, para que tenga un mejor conocimiento de lo que es un "System.Watchdog" realmente es antes de que comiences a usar mal uno.
Todas las otras respuestas son excelentes, pero me gustaría agregar que para un principiante, un marco como .NET Micro podría abstraer algunos conceptos muy importantes; puede quitarte demasiado de tu hardware. La alegría (y la verdadera destreza) de la programación integrada proviene de la explotación del hardware y la arquitectura de su microcontrolador. Si está utilizando un marco como una capa de abstracción sobre el hardware, entonces realmente no obtendrá los conceptos básicos que son importantes para la programación incrustada.
Digo, pruébelo primero usando C y ensamblaje, interactuando directamente con el hardware para que tenga una buena idea de lo que esos marcos están haciendo debajo. Cuando te sientas cómodo con eso, entonces puedes elegir moverte a un marco (pero en ese punto ... probablemente no: P)
Pero, una vez más, si su objetivo no es aprender sino simplemente lograr , un marco puede ayudarlo a hacerlo mucho más rápido, porque no necesitará comprender el funcionamiento interno. Pero, ¿dónde está la diversión en eso?
Esta respuesta es un poco fuera de tema, pero ....
Yo personalmente uso PIC de microchip.com . Son realmente económicos y tienen un montón de cosas integradas con toneladas de opciones / versiones. Aunque me encantaría usar .NET Micro, parece estar desarrollado para chips de gama superior que están diseñados para ejecutar sistemas operativos. Muchos proyectos integrados, especialmente en el campo de las comunicaciones, necesitan chips de mayor nivel ($ 100 + tarjetas en pequeñas cantidades), pero una gran cantidad de buenos proyectos integrados son pequeños y solo necesitan CPU de $ 2. .NET Micro no se dirige a esos.
Si le interesan los prototipos de muy bajo costo, vale la pena considerar la ''ruta Arduino'' pero no usar un Arduino.
Usar un stripboard o un diseño de tablero como un #Shrimp usando un ATmega328-PU con un gestor de arranque Arduino Uno puede darle casi la misma base de costos que un PIC , pero mantiene la compatibilidad con todos los proyectos preexistentes de Arduino Maker que están disponibles, como ... http://www.instructables.com/tag/type-id/category-technology/channel-arduino/
Basado en 100 unidades, puede obtener los componentes para un #Shrimp en una placa de prueba por tan solo £ 1.70 en stripboard o £ 2.30 en placa de prueba sin soldadura en términos de Reino Unido. Para volúmenes más pequeños, como 5 o 10, estás mirando más cerca de £ 2.90 y £ 3.50 respectivamente, pero todavía es barato. Un circuito #Shrimp puede formarse a partir de un diagrama de diseño en aproximadamente 10 minutos cuando comienza, y puede reducirlo a aproximadamente un minuto cuando se vuelve rápido.
Por supuesto, el costo no es el único factor a tener en cuenta.
Es posible que desee programar en un idioma particular. Para que su boceto se ejecute en Arduino, debe escribirse en C, aunque puede usar pyfirmata para controlar remotamente un Arduino compatible con Python , si no le importa que esté permanentemente conectado a un escritorio.
Usar un lenguaje de recolección de basura como C # y el soporte de herramientas de Visual Studio podría verse como un gran beneficio al usar .NET Micro Framework , especialmente para aquellos que ya se desarrollan en un entorno Microsoft. Igualmente, la simplicidad del Arduino IDE gratuito y de código abierto se presenta como un beneficio para los demás.
[Divulgación, soy colaborador del proyecto sin ánimo de lucro @ShrimpingIt.]
Netduino se ve muy bien. Y solo cuesta 30 USD. Y la versión Plus con Ethernet.