Чи варто купувати Netduino або Arduino?


17

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

Хтось із вас ним користувався і яким був ваш досвід?

Чи варто дивитись на діапазон Arduino або FreeDuino (або щось зовсім інше)?

Я вирішив дотримуватися NetDuino завдяки моїм знанням C #, але це не є вимогою.

Спасибі

PS. Я не впевнений, належить це до вікі спільноти чи ні (вказівки оцінені).


5
Що ви хочете робити з дошкою? Це вплине на ваш вибір.
Toby Jaffey

3
Мікроконтролер ARM7 на NetDuino та 8-бітний AVR на Arduino відносяться до зовсім іншого класу. Це як би ви запитуєте, чи купувати сервер чи нетбук. Однак ви уповільнюєте роботу свого сервера, запускаючи невідповідний VM - продуктивність буде аналогічною, і ви використовуєте обидва інструменти для одного завдання. Вам справді потрібен цей шар абстракції?
Кевін Вермер

@reemrevnivek - "Недоречний" е-е ... це шар абстракції, але він, звичайно, не підходить (і, справді, не vm).
Коннор Вольф

2
@Fake Name Схоже, що netduino (TinyCLR) не має компілятора JIT. Таким чином, це віртуальна машина / перекладач. tinyclr.com/faq/#13
Тобі Джаффі

1
Віртуальні машини - це те, на чому запущені Smalltalk, Java, Python тощо. Це означає, що будь-яка абстрагована машина, що виконує набір інструкцій, відмінний від "голого металу". Не просто віртуалізований ПК.
Джо Коберг

Відповіді:


16

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

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

З урахуванням сказаного я дотримуюся Ардуїно з наступних причин:

  • Краща підтримка громади. У Ардуїно просто є більше зразків, прикладів та більшого співтовариства, на яке можна звернути увагу.
  • У Netduino немає історії про те, щоб вийти за рамки дорогого набору / підходу до складання прототипів. Збираєтесь реалізувати інтерактивну художню виставку, де потрібні десятки мікроконтролерів, які працюють з вашим кодом? Будьте готові викласти 35 доларів за кожен Netduinos. З Arduino ви можете прототипувати на Arduino, а потім реалізовувати рішення для MCU, що має голі кістки, з мікроконтролером AVR за ціною менше 10 доларів кожен.

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

Якщо вам зручно в C, або вам зручно входити в нього за допомогою зразків коду та спільноти, і хочете бути ближче до металу і подивитися на те, щоб врешті-решт відійти від "прототипу" підходу Netduino та Arduino, перейдіть Ардуїно, щоб почати.


1
Я знаю, що це дещо стара відповідь, але я хотів додати, що оскільки Netduino є повністю відкритим кодом (включаючи апаратне забезпечення), ви можете придбати UC у будь-кого і прошивати до нього прошивку Netduino. Таким чином, ви можете використовувати платформу Netduino у виробничому продукті.
Unkwntech

"Ваші знання на C # майже непридатні на вбудованій платформі, так що не надавайте занадто великої ваги цьому". - Що дурне сказати. Netduino вбудований, він скелі, і це C # ...
Jonesome Reinstate Monica

11

Ваші знання на C # майже непридатні на вбудованій платформі, так що не надавайте великої ваги цьому.

Я б поїхав з Ардуїно чи одним із клонів, не тому, що. Net - це чорт, а тому, що цим користуються всі інші, тож вам буде набагато простіший час отримати допомогу та зняти з коду людей.

Після того, як ви намокли ноги, обов'язково роздрібніться і спробуйте різні речі.


Ви обстоюєте мову підключення, який використовується на Arduino, або вимикаєте (і сприяєте ) коду С на avrfreaks ?
Кевін Вермер

1
@reemrevnivek Arduino просто C ++ з деякими бібліотеками. Я б не класифікував це як "мову" - це C ++ із доданим колонтитулом та колонтитулом
Toby Jaffey

Ой, проводка - це те, що я мав на увазі.
Кевін Вермер

Я вважаю це злегка дивним, я б майже сприйняв "Після того, як ви намокли ноги, будь-якими способами відгалужте", як пропозицію перейти з Netduino, щоб почати, тому що елемент програмування повинен бути набагато меншим питанням - дозволяючи одному розвивати необхідні "інші" навички.
Мерф

1
Поганий коментар, dren.dk просто неправильний. Я та багато інших вживаю netduino та C # протягом усього дня.
Jonesome Reinstate Monica,

7

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

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

Я ще не маю досвіду роботи з JTAG, але кожен мікрофон, який я бачив до цього часу (крім модулів RabbitCore), вимагає його, щоб дозволити налагодження через точки прориву. Уявіть моє здивування, коли я підключив свій Netduino сьогодні і зміг зробити один крок через свій код у VS2010! Я був надзвичайно задоволений цим.

Особисто я б не турбувався про розмір площі, злість .NET і Microsoft тощо. Мені було б байдуже лише можливість швидко і ефективно налагоджувати помилки, тому я можу просто зробити завдання .



@kurtnelle це здається, що ви виступаєте за те, щоб не використовувати .NET MF?
Дейв

@Dave, так, я. Це лише тому, що я спробував старий 8-бітовий мікроконтролер, що було дуже до речі, і я дуже мало зробив для великих зусиль.

@kurtnelle, але з .NET MF я насправді дуже багато роблю з дуже невеликими зусиллями.
Дейв

2
@Dave, вибачте за раніше ділектичну відповідь; Я виступаю за .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 ++
Toby Jaffey

1
@Joby - Я люддит C, як ти сам, але я просто хотів зазначити, що це можливо - Ви сказали: "Якщо апаратну функцію не підтримують бібліотеки .NET, ви не можете її використовувати", яка не зовсім правда.
Кевін Вермер

1
Ви насправді бачили якісь орієнтири? Мені важко уявити, що 16 МГц 8 біт працює з такою ж швидкістю, як і 60 МГц 32 біт мікро. Тим більше, що бібліотеки Arduino також сповільнюють роботу - ні одна з них не оптимізована для швидкості. І у нього також є об’єкти (якщо не стільки, скільки їх використовується в .NET). І чи сильно він відрізняється від Ардуїно? Якщо немає бібліотеки Arduino, яка підтримує функцію ... вам доведеться її реалізувати самостійно (виклик безпосередньо до апаратних реєстрів тощо)
дав

@davr Відредаговано відповідь
Toby Jaffey

3

Я знайшов mbed як чудовий замінник Arduino.

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

Ще одна хороша особливість - це можливість поводитись із пристроєм як USB-накопичувачем та просто поставити його .bin файли прямо на накопичувач.

На жаль, IDE можна порівняти з ардуїно. Також це онлайн . Це і дуже добре (може використовуватися на будь-якому ПК, не потрібно встановлення), і дуже погано (неможливо легко перепрограмувати без підключення до Інтернету).

Вартість ради становить 60 доларів, але у них є схема спонсорства, де вони будуть здавати ради на цікаві проекти за умови документального прогресу та оприлюднення вихідного коду.


Мені подобається спонсорська ідея - мені доведеться розібратися в цьому.
Дейв

2

Я в першу чергу розробник C #. Я купив Arduino замість Netduino через наявність вихідного коду. Інтегрувати Netduino з електронними цеглинами Arduino було б непросто, тому що вам доведеться переписати деякі зразки з нуля.


2

Читаючи "C # не підходить для вбудованих платформ", пам’ятайте, що люди старші певного віку вже чули, що хоча б раз говорили про "C", а потім знову про C ++ у своєму житті ...

Звичайно, це монументально "даремно" основні можливості процесора, але можливість запустити цикл холостого ходу в 1000 разів швидше, ніж вам потрібно, а не в 10 разів швидше, ніж вам ніколи не робило когось багатим.


Нерегулярні петлі не актуальні. Існує декілька застосувань MCU, де цикли мають значення, наприклад, захоплення або генерація відеосигналу, виготовлення власного осцилографа, аналіз FFT вхідного сигналу в реальному часі та багато інших. Ви можете забути 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. Проекти з ОЗД також існують. Також є мало прикладів зйомки кадрів відео з низькою роздільною здатністю з AVR без FPGA. Просто гугл навколо ...
авра

Коли я кажу відео, я маю на увазі 1080p 24-бітний колір. Чи може це зробити вбудований 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.