Является ли.NET Micro Framework хорошим способом начать со встроенного программирования?
Как .NET Micro Framework с платой разработки сравнивается с чем-то вроде Arduino или Nintendo DS для запуска со встроенным программированием?
9 ответов
Честно говоря, если бы я был вами (а я, между прочим, не являюсь), я бы выложил это и избежал высокоуровневой абстракции платформы.NET для встроенной системы. Я изучал этот курс в колледже, где впервые познакомился с концепциями встраиваемых систем на наборе SunROM (аналогично плате Arduino, а также с микроконтроллером ATmega32) на языке ассемблера AVR, а затем переучил концепции на C Обладая кратким техническим пониманием.NET, которое я делаю, я чувствую, что в платформе слишком много произвольной абстракции, чтобы это был очень мудрый выбор. (Конечно, отчасти это тоже моя ненависть к.NET и Java в целом, особенно когда они используются в программировании для встраиваемых систем, поэтому примите мое предвзятое мнение с большой долей солидности.)
Внедренное программное обеспечение должно (на мой взгляд) иметь возможность использовать платформу, на которой оно работает, чтобы работать как можно быстрее и эффективнее, вместо того, чтобы быть более абстрактным для работы на как можно большем количестве различных машин. Я думаю, что вместо того, чтобы перерабатывать комплект разработки программного обеспечения, делать программы медленнее или добавлять ненужную сложность, вам следует изучить концепции и реализацию с нуля, чтобы вы лучше поняли, что такое "System.Watchdog". на самом деле, прежде чем вы начнете злоупотреблять одним.
Все остальные ответы превосходны, но я хотел бы добавить, что для новичка такая среда, как.NET Micro, может абстрагироваться от некоторых очень важных концепций; это может привести к тому, что вы будете слишком удалены от вашего оборудования. Радость (и настоящий навык) встроенного программирования заключается в использовании аппаратного обеспечения и архитектуры вашего микроконтроллера. Если вы используете фреймворк в качестве уровня абстракции поверх аппаратного обеспечения, вы не сможете получить базовые концепции, которые важны для встроенного программирования.
Я говорю, что сначала попробуйте использовать C и ассемблер, напрямую взаимодействуя с аппаратным обеспечением, чтобы вы могли лучше понять, что делают эти платформы под ним. Когда вы освоитесь с этим, вы можете перейти к структуре (но в этот момент... вероятно, нет:P)
Но с другой стороны, если ваша цель не в том, чтобы учиться, а в том, чтобы просто выполнить, тогда структура может помочь вам сделать это намного быстрее, потому что вам не нужно будет понимать внутреннюю работу. Но где в этом веселье?
Нетдуино выглядит очень круто. И это всего 30 грн. И версия Plus с Ethernet.
.NET Micro Framework предназначена для встраиваемых систем, которые содержат мощный процессор (в настоящее время ARM7, ARM9 и Blackfin).
Плата Arduino основана на 8-битном микроконтроллере AVR, для которого.NET Micro Framework даже недоступен. Рассмотрим, например, требования к памяти для платформы: объявляется, что она потребляет около 300 КБ памяти. Arduino имеет 16 КБ программной памяти + 1 КБ ОЗУ.
Nintendo DS, с другой стороны, по крайней мере технически способен работать с.NET Micro Framework.
Если вы заинтересованы во встроенном программировании для аппаратного обеспечения, такого как Arduino, я могу заверить вас, что вам не нужна (и обычно не может использоваться) никакая библиотека высокого уровня или операционная система. Фактически, вы обнаружите, что программирование для небольшого микроконтроллера будет радостью, потому что все очень просто и под вашим полным контролем.
Если вы заинтересованы в использовании.NET Micro Framework, взгляните на Tahoe II от http://devicesolutions.net/
Этот ответ немного не по теме, но....
Я лично использую PIC от http://microchip.com/. Они действительно недороги и имеют много встроенных вещей с кучей опций / версий. Хотя я бы хотел использовать.NET Micro, он, похоже, разработан для высокопроизводительных чипов, предназначенных для работы с ОС. Многие встраиваемые проекты, особенно в области коммуникаций, нуждаются в более дорогих чипах (100 долл. + Платы в небольших количествах), но многие хорошие встраиваемые проекты - это мелочи и требуют только 2 долл. ЦП. .NET Micro не предназначается для тех.
Если вы заинтересованы в создании прототипов с чрезвычайно низкой стоимостью, стоит рассмотреть "маршрут Arduino", но не использовать Arduino.
Использование макета или макета, такого как #Shrimp, с использованием ATmega328-PU с загрузчиком Arduino Uno может дать вам почти такую же базовую стоимость, что и PIC, но поддерживает совместимость со всеми существующими ранее проектами Arduino Maker, такими как... http://www.instructables.com/tag/type-id/category-technology/channel-arduino/
Исходя из 100 единиц, вы можете получить компоненты для работающей #Shrimp на макете всего за £1,70 на картоне или £2,30 на макете без припоя в Великобритании. Для небольших объемов, таких как 5 или 10, вы смотрите на 2,90 и 3,50 фунтов стерлингов соответственно, но это все еще дешево. Схема #Shrimp может быть составлена из схемы компоновки примерно за 10 минут, когда вы начнете, и вы можете сделать это примерно до минуты, когда вы быстро.
Конечно, стоимость не является единственным фактором, который необходимо учитывать.
Вы можете программировать на определенном языке. Чтобы ваш эскиз работал на Arduino, он должен быть написан на C, хотя вы можете использовать pyfirmata для удаленного управления Arduino-совместимым с Python, если вы не возражаете против его постоянного подключения к рабочему столу.
Использование языка сборки мусора, такого как C#, и инструментальная поддержка Visual Studio можно рассматривать как большое преимущество при использовании .NET Micro Framework, особенно для тех, кто уже разрабатывает в среде Microsoft. В равной степени простота бесплатной среды разработки Arduino с открытым исходным кодом представляется в качестве преимущества для других.
[Раскрытие информации, я сам являюсь сотрудником некоммерческого проекта @ShrimpingIt.]
Также ознакомьтесь с другим способом: конвертировать код обработки для запуска на.NET micro Framework http://blogs.oberon.ch/tamberg/2009-02-23/running-processing-code-on-the-dotnet-mf.html