Должен ли я купить Netduino или Arduino?


17

Я смотрю на покупку NetDuino для некоторых забавных домашних проектов хобби.

Кто-нибудь из вас использовал это и как прошел ваш опыт?

Должен ли я взглянуть на диапазон Arduino или FreeDuino (или что-то совершенно другое)?

Я решил придерживаться NetDuino из-за моих знаний C #, но это не является обязательным требованием.

Благодарность

PS. Я не уверен, принадлежит ли это сообществу вики или нет (руководство приветствуется).


5
Что вы хотите сделать с доской? Это повлияет на ваш выбор.
Тоби Джаффей

3
Микроконтроллер ARM7 на NetDuino и 8-битный AVR на Arduino относятся к совершенно другому классу. Как будто вы спрашиваете, купить ли сервер или нетбук. Однако вы замедляете работу своего сервера, запуская неподходящую виртуальную машину - производительность будет одинаковой, и вы используете оба инструмента для одной и той же задачи. Вам действительно нужен этот слой абстракции?
Кевин Вермеер

@reemrevnivek - "плохо подходит" э-э ... это слой абстракции, но он определенно не подходит (и не виртуальный компьютер, на самом деле, либо).
Коннор Вольф

2
@ Фальшивое имя Похоже, что netduino (TinyCLR) не имеет JIT-компилятора. Таким образом, это виртуальная машина / переводчик. tinyclr.com/faq/#13
Тоби Джаффи

1
На виртуальных машинах работают Smalltalk, Java, Python и т. Д. Это означает любую абстрактную машину, выполняющую набор инструкций, отличный от «голого металла». Не только виртуальный ПК.
Джо Коберг

Ответы:


16

Я люблю C # и считаю, что преимущества производительности при разработке на C # с использованием Visual Studio являются очень сильным фактором в пользу Netduino. Я бы не стал придумывать Netduino, потому что «C # не для микроконтроллеров / встроенных сред», как показывают другие ответы.

Вы можете создавать замечательные забавные проекты и узнавать много нового о подключении различных физических входов и выходных устройств с помощью Netduino, точно так же, как вы можете использовать Arduino, или использовать «голое железо» и выполнять непосредственное управление микроконтроллерами AVR, PIC или других микроконтроллеров.

С учетом сказанного я придерживаюсь Arduino по следующим причинам:

  • Лучшая поддержка сообщества. У Arduino просто больше образцов, примеров и более обширного сообщества, на которое вы можете опираться.
  • У Netduino нет истории выхода за рамки дорогостоящего подхода к созданию прототипов. Собираетесь провести интерактивную художественную выставку, требующую, чтобы десятки микроконтроллеров выполняли ваш код? Будьте готовы выложить 35 долларов США за Netduinos. С Arduino вы можете создавать прототипы на Arduino, а затем внедрять на чистом микроконтроллере решение с микроконтроллером AVR менее чем за 10 долларов США каждый.

Так что я бы сказал, что если ваши навыки в C - пыльные или несуществующие, вам нравятся C # и Visual Studio, и вы просто хотите поработать над несколькими хобби-проектами, которые не требуют масштабирования, где стоимость становится более серьезной проблемой, иди в Netduino.

Если вы чувствуете себя комфортно в C, или вам удобно работать с ним с помощью примеров кода и сообщества, и вы хотите быть ближе к металлу и смотреть на то, как в конечном итоге отойти от «прототипного» подхода Netduino и Arduino, идите Arduino, чтобы начать.


1
Я знаю, что это немного старый ответ, но я хотел бы добавить, что, поскольку Netduino является полностью открытым исходным кодом (включая аппаратное обеспечение), вы можете купить uC у любого и прошить для него прошивку Netduino. Таким образом, вы можете использовать платформу Netduino в производственном продукте.
Unkwntech

«В любом случае, ваши знания C # практически бесполезны на встроенной платформе, поэтому не придавайте этому большого значения». - Что за глупость сказать. Netduino встроен, он качается, и это C # ...
Jonesome Reinstate Monica

11

В любом случае, ваши знания C # практически бесполезны на встроенной платформе, поэтому не придавайте этому большого значения.

Я бы пошел с Arduino или одним из клонов, не потому, что .Net - это дьявол, а потому, что это то, что используют все остальные, так что вам будет намного легче получать помощь и отрываться от кода людей.

Как только вы промокли ноги, обязательно разветвитесь и попробуйте разные вещи.


Вы поддерживаете язык Wiring, используемый в Arduino, или отключаете (и вносите свой вклад) код C в avrfreaks ?
Кевин Вермеер

1
@reemrevnivek Arduino - это просто C ++ с некоторыми библиотеками. Я бы не классифицировал это как «язык» - это C ++ с прикрепленными
верхним

Ой, проводка это то, что я имел в виду.
Кевин Вермеер

Я нахожу это немного странным, я бы почти принял «Как только вы промокли ноги, во что бы то ни стало, разветвитесь» как предложение пойти с Netduino, чтобы начать, потому что элемент программирования должен быть намного меньше проблемы - позволить человеку развивать «другие» навыки, необходимые.
Мерф

1
Плохой комментарий, dren.dk просто неверен. Я и многие другие использую netduino и C # весь день.
Jonesome Восстановить Монику

7

В настоящее время у меня есть Arduino, mbed и, наконец, Netduino в моем распоряжении для разработчиков / любителей. Мне никогда не нравилось работать с Arduino, возможно, потому что редактор не очень хорош, и я определенно избалован разработчиком C #. Когда я получил свой mbed, мне понравилась разработка намного, намного лучше, но отладка все еще болезненна, потому что вы должны использовать операторы print, чтобы выяснить, что происходит.

Когда вы разрабатываете продукт или просто разбираетесь, поначалу подавляющее большинство времени уходит на отладку ... а когда вы отлаживаете, вы хотите иметь точки останова. Мне очень тяжело возвращаться к встроенному оборудованию, которое не предлагает никаких точек останова.

У меня пока нет опыта работы с JTAG, но каждый микро, который я видел до сих пор (кроме модулей RabbitCore), требует, чтобы он разрешал отладку через точки останова. Вообразите мое удивление, когда я подключил свой Netduino сегодня и смог пройти через мой код в VS2010! Я был очень доволен этим.

Лично я бы не беспокоился о размере занимаемой площади, пороках .NET и Microsoft и т. Д. И т. Д. Я бы только заботился о возможности отладки быстро и эффективно, поэтому я могу просто выполнить работу .



@ kurtnelle звучит так, будто вы выступаете за то, чтобы не использовать .NET MF?
Дейв

@ Дэйв, да. Это только потому, что я попробовал старый 8-битный микроконтроллер на основе c и очень мало сделал для больших усилий.

@kurtnelle, но с .NET MF я на самом деле многое делаю с минимальными усилиями.
Дейв

2
@ Дэйв, извините за дислектический ответ ранее; Я выступаю за .NET MF

5

Как пользователь BasicStamp в течение почти 20 лет и пользователь NetDuino всего 2 недели (я никогда не использовал Arduino), я бы сказал, что NetDuino - отличная платформа. Две основные особенности, которыми я наслаждаюсь: простота программирования (и точки останова!) В VisualStudio и АЦП с высоким разрешением на плате являются ключевыми причинами. Несколько щитов Arduino, которые я попробовал от SparkFun, отлично работали с NetDuino.


4

Лично я не фанат C # или .NET. Я луддит. Итак, мой выбор платформы зависит от того, какие аппаратные функции мне нужны (флэш-память, оперативная память, тактовая частота, количество АЦП, количество таймеров и т. Д.).

Тем не менее, я могу представить C # / .NET полезным для быстрого создания прототипов:

  • Обработка строк, вероятно, будет намного проще
  • RPC и сериализация объектов, вероятно, легко. Я подозреваю, что вы можете просто вставить объекты C # через последовательный канал. RPC скорее всего "просто работает"
  • Переносимость - .NET - это виртуальная машина, поэтому код должен выполняться на других платах или даже на ПК
  • Сборка мусора упрощает реализацию многих алгоритмов

Конечно, все это обходится ценой:

  • Размер кода больше (особенно если учитывать стандартные библиотеки)
  • Использование ОЗУ выше (все является объектом, все напечатано?)
  • Сборщик мусора, вероятно, вмешивается в производительность в реальном времени
  • Если аппаратная функция не поддерживается библиотеками .NET, вы не сможете ее использовать (если вы сами не реализуете функции, для которых вам потребуется C / C ++, см. Комментарии)

И, самое главное, используя свои навыки C # на встроенной платформе, вы ничего не узнаете о встроенных устройствах.

Да, это сделает работу - но где в этом веселье?


Интересно, как сложно с помощью новой функции исправлять библиотеки .NET, используемые в NetDuino. Похоже, что они используют C ++ для создания своего .NET SDK, далеко внизу в SecretLabs.NETMF.Hardware / Stubs - исходных файлах . Вздох.
Кевин Вермеер

@reemrevnivek Не мое представление о веселье. Если вы исправляете среду выполнения, вы также можете начать с C / C ++
Тоби Джаффи,

1
@ Joby - я такой же, как и вы, но я просто хотел отметить, что это возможно - вы сказали: «Если аппаратная функция не поддерживается библиотеками .NET, вы не можете ее использовать», что не совсем верно
Кевин Вермеер

1
Вы на самом деле видели какие-либо ориентиры? Мне трудно представить, что 16-МГц 8-битный процессор работает с той же скоростью, что и 60-МГц 32-битный микро. Тем более, что библиотеки Arduino тоже все замедляют - ни одна из них не оптимизирована для скорости. И у него есть объекты (если не так много, как в .NET). И сильно ли он отличается от Arduino? Если нет библиотеки Arduino, поддерживающей эту функцию ... вы должны реализовать ее самостоятельно (вызывая напрямую из аппаратных регистров и т. Д.)
davr 29.10.10

@davr Отредактированный ответ
Тоби Джаффей

3

Я обнаружил, что mbed - чудесная замена Arduino.

Библиотека программного обеспечения в большей степени ориентирована на C ++ и содержит весь синтаксический сахар перегрузки операторов присваивания. Кроме того, система настроена так, что пользователи могут публиковать и документировать библиотеки кодов, которые затем можно легко искать и импортировать в проекты.

Еще одна полезная функция - возможность обращаться с устройством как с USB-накопителем и просто помещать .binфайлы прямо на диск.

К сожалению, IDE сопоставима с той из Arduino. Кроме того, это онлайн . Это действительно хорошо (можно использовать на любом ПК, установка не требуется) и очень плохо (не может быть легко перепрограммировано без подключения к интернету).

Стоимость платы составляет $ 60, но у них есть схема спонсорства, где они будут пожертвовать доски для интересных проектов, если прогресс задокументирован и исходный код обнародован.


Мне нравится идея спонсорства - я должен разобраться в этом.
Дэйв

2

Я в первую очередь разработчик C #. Я купил Arduino вместо Netduino из-за доступности исходного кода. Нелегко интегрировать Netduino с электронными блоками Arduino, потому что вам придется переписывать некоторые образцы с нуля.


2

Когда вы читаете «C # не подходит для встраиваемых платформ», помните, что люди старше определенного возраста уже слышали, что хотя бы один раз говорили о «C», а затем еще раз о C ++ при жизни…

Конечно, это монументально «расточительно» из базовых возможностей процессора, но способность работать в режиме ожидания в 1000 раз быстрее, чем нужно, а не в 10 раз быстрее, чем нужно, никогда не делала никого богатым.


Холостые петли не актуальны. В некоторых микроконтроллерах используются циклы, такие как захват или генерация видеосигнала, создание собственного осциллографа, анализ входного сигнала БПФ в реальном времени и многие другие. Вы можете забыть C # для них. С другой стороны, если ваши требования больше направлены на то, чтобы «наподобие ПК, как программное обеспечение, просто в небольшом пакете», то C # и .NET MF вовсе не плохой выбор ...
Avra

2
... Для такого опыта я бы предпочел выбрать встроенную плату ARM на основе Linux, но это тема для другого обсуждения. Дело в том, что для тех, кто только входит в мир встраиваемых систем с фоном C #, .NET MF вовсе не плохой первый шаг.
Авр

1

Если вы хотите почувствовать голый металл и, например, иметь возможность генерировать или захватывать видеосигнал напрямую, именно здесь важен каждый цикл, и AVR / Arduino позволит вам это сделать. Если вы хотите более высокий уровень абстракции, более высокий уровень программирования и комфорт отладки, сборщик мусора и можете жить с тем фактом, что, как и в Windows, вы не управляете всем, тогда выберите NetDuino или FEZ Domino. Поскольку оба имеют ARM в своем сердце, могу поспорить, что при необходимости вы можете убить .NET MF на плате и прошить голый код ARM GCC прямо из какой-то Eclipse, такой как IDE, с помощью небольшого JTAG-отладчика. Расследуй немного. Проблема может заключаться в том, что если JTAG-заголовок отсутствует, вам потребуется выполнить некоторую пайку.


C и C ++ недостаточно хороши для видео. Для этого вам понадобится Verilog :)

Существует не менее 10 проектов, которые создают видео только с помощью программного обеспечения. Большинство из них черно-белые или серые, но есть даже цветные и игровые системы с видео, созданным программным обеспечением AVR. Проекты OSD также существуют. Есть также несколько примеров захвата видеокадров с низким разрешением с помощью AVR без FPGA. Просто погуглите ...
Авра

Когда я говорю видео, я имею в виду 24-битный цвет 1080p. Может ли встроенный C ++ сделать это?

0

После очень долгого перерыва в электронике и программировании, я вернулся к нему из-за проекта, который один из моих сыновей делает в университете. Я изучал электронику, когда трубки были нормой, и программировал с помощью тумблеров (установка адреса, установка данных, загрузка, сохранение в двоичном виде) и перфокарт. За прошедшие годы я выучил и использовал все усовершенствования в области электроники и языков программирования, что требовало много усилий и времени. Следовательно, я так благодарен за достижения в микроконтроллерах и за их невероятную дешевизну, включая платы разработки, такие как Arduino, Netduino и т. Д. Аргументы об Arduino против Netduino и т. Д. Напоминают мне о битвах Microsoft против Apple, таких как как командная строка против графического интерфейса. Неважно, какая платформа, язык программирования и т. Д. Используется, если это соответствует результату.


-1

Если .net MF предоставляет библиотеки, которые способны на то, что может делать чистый машинный / металлический код, ... тогда единственная абстракция (. Net MF) становится хорошей. Кроме того, чтобы занять больше места и запустить GC (что должно сделать его эффективным?)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.