Tôi nên mua Netduino hay Arduino?


17

Tôi đang tìm mua NetDuino cho một số dự án sở thích gia đình thú vị.

Có ai trong số bạn đã sử dụng nó và kinh nghiệm của bạn như thế nào?

Thay vào đó tôi nên nhìn vào phạm vi Arduino hoặc FreeDuino (hoặc một cái gì đó hoàn toàn khác)?

Tôi đã quyết định gắn bó với NetDuino do kiến ​​thức C # của mình, nhưng đó không phải là một yêu cầu.

Cảm ơn

Tái bút Tôi không chắc chắn nếu điều này thuộc về wiki cộng đồng hay không (hướng dẫn đánh giá cao).


5
Bạn muốn làm gì với bảng? Điều đó sẽ ảnh hưởng đến sự lựa chọn của bạn.
Toby Jaffey

3
Bộ vi điều khiển ARM7 trên NetDuino và AVR 8 bit trên Arduino thuộc một lớp hoàn toàn khác. Giống như bạn đang hỏi nên mua máy chủ hay netbook. Tuy nhiên, bạn đang làm chậm máy chủ của mình bằng cách chạy VM không phù hợp - hiệu suất sẽ tương tự và bạn đang sử dụng cả hai công cụ cho cùng một tác vụ. Bạn có thực sự cần lớp trừu tượng đó không?
Kevin Vermeer

@reemrevnivek - "Không phù hợp" uh ... đó là một lớp trừu tượng, nhưng nó chắc chắn không phù hợp (và thực sự không phải là một vm).
Sói Connor

2
Tên @Fake Có vẻ như netduino (TinyCLR) không có trình biên dịch JIT. Vì vậy, nó một VM / thông dịch viên. tinyclr.com/faq/#13
Toby Jaffey

1
Máy ảo là những gì Smalltalk, Java, Python, v.v ... chạy trên. Nó có nghĩa là bất kỳ máy trừu tượng hóa, chạy một tập lệnh khác với "kim loại trần". Không chỉ là một PC ảo hóa.
Joe Koberg

Câu trả lời:


16

Tôi yêu C # và tìm thấy những lợi ích về năng suất khi phát triển C # với Visual Studio là một yếu tố rất có lợi cho Netduino. Tôi sẽ không pooh-pooh Netduino vì "C # không dành cho vi điều khiển / môi trường nhúng" như các câu trả lời khác ở đây chỉ ra.

Bạn có thể thực hiện các dự án thú vị và tìm hiểu nhiều về việc kết nối các thiết bị đầu vào và đầu ra vật lý khác nhau bằng Netduino giống như bạn có thể với Arduino hoặc "kim loại trần" và thực hiện quản lý MCU trực tiếp của AVR, PIC hoặc các bộ vi điều khiển khác.

Nói vậy, tôi gắn bó với Arduino vì những lý do sau:

  • Hỗ trợ cộng đồng tốt hơn. Arduino chỉ có nhiều mẫu, ví dụ và cộng đồng lớn hơn mà bạn có thể rút ra.
  • Netduino không có một câu chuyện để vượt ra ngoài cách tiếp cận bộ / tạo mẫu đắt tiền. Sẽ triển khai một triển lãm nghệ thuật tương tác đòi hỏi hàng tá vi điều khiển chạy mã của bạn? Hãy sẵn sàng bỏ ra 35 đô la cho mỗi Netduinos. Với Arduino, bạn có thể tạo nguyên mẫu trên Arduino và sau đó thực hiện trên một giải pháp MCU chỉ dành cho bộ vi điều khiển với giá dưới 10 đô la mỗi bộ.

Vì vậy, tôi sẽ nói rằng nếu các kỹ năng C của bạn là bụi bặm hoặc không tồn tại, bạn yêu thích C # và Visual Studio, và chỉ muốn nghiên cứu một vài dự án sở thích mà không cần phải mở rộng ra để chi phí trở thành vấn đề lớn hơn, hãy đi Netduino.

Nếu bạn cảm thấy thoải mái với C, hoặc thoải mái tham gia vào nó với sự trợ giúp của các mẫu mã và cộng đồng, và muốn gần gũi hơn với kim loại và xem xét cuối cùng thoát khỏi cách tiếp cận "nguyên mẫu" của Netduino và Arduino, hãy đi Arduino để bắt đầu.


1
Tôi biết đây là một câu trả lời cũ nhưng tôi muốn thêm rằng vì Netduino là nguồn mở hoàn toàn (bao gồm cả phần cứng), bạn có thể mua uC từ bất kỳ ai và flash firmware Netduino cho nó. Vì vậy, bạn có thể sử dụng nền tảng Netduino trong một sản phẩm sản xuất.
Unkwntech

"Kiến thức C # của bạn gần như vô dụng trên nền tảng nhúng, vì vậy đừng đặt nặng vấn đề đó." - Thật là một điều ngớ ngẩn để nói. Netduino được nhúng, nó hoạt động và đó là C # ...
Jonesome phục hồi lại

11

Kiến thức về C # của bạn gần như vô dụng trên nền tảng nhúng, vì vậy đừng đặt nặng vấn đề đó.

Tôi sẽ đi với một Arduino hoặc một trong những bản sao, không phải vì .Net là ma quỷ, mà bởi vì đó là những gì mọi người đang sử dụng, vì vậy bạn sẽ có được thời gian dễ dàng hơn để nhận được sự giúp đỡ và loại bỏ mã của mọi người.

Một khi bạn đã bị ướt chân, bằng mọi cách, hãy phân nhánh và thử những thứ khác nhau.


Bạn có ủng hộ ngôn ngữ Wires được sử dụng trên Arduino, hoặc loại bỏ (và đóng góp vào) mã C trên avrfreaks không?
Kevin Vermeer

1
@reemrevnivek Arduino chỉ là C ++ với một số thư viện. Tôi sẽ không phân loại nó thành một "ngôn ngữ" - đó là C ++ với tiêu đề và chân trang được đính kèm
Toby Jaffey

Rất tiếc, dây là ý tôi.
Kevin Vermeer

Tôi thấy điều này hơi kỳ lạ Tôi gần như sẽ lấy "Một khi bạn bị ướt chân, bằng mọi cách có thể phân nhánh" như một gợi ý để bắt đầu với Netduino để bắt đầu vì yếu tố lập trình sẽ ít xảy ra vấn đề hơn - cho phép một người làm phát triển các kỹ năng "khác" cần thiết.
Murph

1
Nhận xét xấu, dren.dk đơn giản là sai. Tôi và nhiều người khác sử dụng netduino và C # suốt cả ngày.
Jonesome phục hồi

7

Tôi hiện đang có một Arduino, mbed, và cuối cùng, một Netduino theo ý của tôi để sử dụng cho sở thích phát triển / sở thích. Tôi không bao giờ thích làm việc với Arduino, có lẽ vì trình soạn thảo không tốt lắm và tôi chắc chắn là một nhà phát triển C #. Khi tôi nhận được chiếc máy của mình, tôi thích sự phát triển trên đó, tốt hơn nhiều, nhưng việc gỡ lỗi vẫn còn đau đớn vì bạn phải sử dụng các câu lệnh in để tìm hiểu điều gì đang xảy ra.

Khi bạn đang phát triển một sản phẩm, hoặc chỉ loay hoay, phần lớn thời gian của bạn lúc đầu được dành cho việc gỡ lỗi ... và khi bạn đang gỡ lỗi, bạn muốn có các điểm dừng. Tôi có một thời gian rất khó khăn khi quay trở lại phần cứng nhúng mà không cung cấp bất kỳ loại điểm dừng nào.

Tôi chưa có kinh nghiệm với JTAG, nhưng mọi vi mô tôi đã thấy cho đến bây giờ (ngoài các mô-đun RabbitCore) yêu cầu nó phải cho phép gỡ lỗi thông qua các điểm dừng. Hãy tưởng tượng sự ngạc nhiên của tôi khi tôi kết nối Netduino của mình ngày hôm nay và có thể thực hiện từng bước thông qua mã của mình trong VS2010! Tôi đã vô cùng hài lòng bởi điều này.

Cá nhân, tôi sẽ không lo lắng về kích thước dấu chân, tệ nạn của .NET và Microsoft, v.v. Tôi chỉ quan tâm đến việc có thể gỡ lỗi nhanh chóng và hiệu quả, vì vậy tôi chỉ có thể hoàn thành công việc .



@kurtnelle có vẻ như bạn ủng hộ việc không sử dụng .NET MF?
Dave

@Dave, vâng tôi đây. Điều này chỉ bởi vì tôi đã thử điều khiển vi điều khiển 8 bit cũ dựa trên c và đã thực hiện rất ít cho rất nhiều nỗ lực.

@kurtnelle nhưng với .NET MF tôi thực sự đã làm được rất nhiều việc với rất ít nỗ lực.
Dave

2
@Dave, xin lỗi vì phản ứng khó chịu trước đây; Tôi ủng hộ .NET MF

5

Là người dùng BasicStamp trong gần 20 năm và người dùng NetDuino chỉ trong 2 tuần (tôi chưa bao giờ sử dụng Arduino), tôi nói rằng NetDuino là một nền tảng tuyệt vời. Hai tính năng chính mà tôi đang tận hưởng: dễ lập trình (và các điểm dừng!) Trong VisualStudio và ADC độ phân giải cao trên bảng là những lý do chính. Một vài lá chắn Arduino mà tôi đã thử từ SparkFun đã hoạt động hoàn hảo với NetDuino.


4

Cá nhân tôi không phải là fan hâm mộ của C # hay .NET. Tôi là một luddite C. Vì vậy, sự lựa chọn của tôi về nền tảng có các tính năng phần cứng tôi muốn (flash, RAM, tốc độ xung nhịp, số ADC, số bộ hẹn giờ, v.v.).

Điều đó nói rằng, tôi có thể tưởng tượng C # /. NET là hữu ích cho việc tạo mẫu nhanh:

  • Xử lý chuỗi có thể sẽ đơn giản hơn nhiều
  • RPC và tuần tự hóa đối tượng có lẽ là dễ dàng. Tôi nghi ngờ rằng bạn chỉ có thể đẩy các đối tượng C # qua một liên kết nối tiếp. RPC có khả năng "chỉ hoạt động"
  • Tính di động - .NET là một máy ảo, vì vậy mã phải chạy trên các bo mạch khác hoặc thậm chí trên PC
  • Thu gom rác làm cho nhiều thuật toán đơn giản hơn để thực hiện

Tất nhiên, tất cả điều này đều phải trả giá:

  • Dấu chân mã lớn hơn (đặc biệt là khi bạn tính đến các thư viện chuẩn)
  • Sử dụng RAM cao hơn (mọi thứ đều là đối tượng, mọi thứ đã được nhập chưa?)
  • Trình thu gom rác có khả năng can thiệp với hiệu suất thời gian thực
  • Nếu các tính năng phần cứng không được các thư viện .NET hỗ trợ, bạn không thể sử dụng tính năng này (trừ khi bạn tự thực hiện các tính năng đó, bạn sẽ cần C / C ++, xem bình luận)

Và, trên hết, bằng cách sử dụng các kỹ năng C # của bạn trên nền tảng nhúng, bạn không thực sự học được gì về các thiết bị nhúng.

Vâng, nó sẽ hoàn thành công việc - nhưng, niềm vui trong đó ở đâu?


Tôi tự hỏi làm thế nào khó khăn để vá các thư viện .NET được sử dụng trên NetDuino với một tính năng mới. Có vẻ như họ đang sử dụng C ++ để xây dựng .NET SDK của họ, đi xuống trong các tệp nguồn SecretLabs.NETMF.Hardware / Stub - . Thở dài.
Kevin Vermeer

@reemrevnivek Không phải ý tưởng vui vẻ của tôi. Nếu bạn đang vá thời gian chạy, bạn cũng có thể bắt đầu với C / C ++
Toby Jaffey

1
@Joby - Tôi là một người yêu thích C giống mình, nhưng tôi chỉ muốn chỉ ra rằng điều đó là có thể - Bạn nói "Nếu một tính năng phần cứng không được các thư viện .NET hỗ trợ, bạn không thể sử dụng nó", mà không hoàn toàn đúng
Kevin Vermeer

1
Bạn đã thực sự nhìn thấy bất kỳ điểm chuẩn? Thật khó cho tôi để tưởng tượng rằng một 8bit 16 MHz chạy mọi thứ với tốc độ tương đương với một micro 32 bit 60 MHz. Đặc biệt là vì các thư viện Arduino cũng làm mọi thứ chậm lại - không ai trong số đó thực sự được tối ưu hóa cho tốc độ. Và nó cũng có các đối tượng (nếu không có nhiều như được sử dụng trong .NET). Và nó có khác nhiều so với Arduino không? Nếu không có thư viện Arduino hỗ trợ một tính năng ... bạn phải tự thực hiện nó (gọi trực tiếp đến các thanh ghi phần cứng, v.v.)
davr

@davr Câu trả lời được chỉnh sửa
Toby Jaffey

3

Tôi tìm thấy mbed là một thay thế tuyệt vời cho Arduino.

Thư viện phần mềm được định hướng C ++ nhiều hơn, hoàn chỉnh với tất cả các cú pháp cú pháp của quá tải toán tử gán. Ngoài ra, một hệ thống được thiết lập sao cho người dùng có thể xuất bản và tài liệu thư viện mã, sau đó có thể dễ dàng tìm kiếm và nhập vào các dự án.

Một tính năng tốt khác là khả năng coi thiết bị như một thanh USB và chỉ cần đặt các .bintệp thẳng vào ổ đĩa.

Thật không may, IDE có thể so sánh với arduino. Ngoài ra, nó trực tuyến . Điều này thực sự tốt (có thể được sử dụng trên bất kỳ PC nào, không cần cài đặt) và thực sự xấu (không thể dễ dàng lập trình lại mà không cần kết nối internet).

Chi phí của hội đồng quản trị là 60 đô la, nhưng họ có một chương trình tài trợ, nơi họ sẽ quyên góp cho các dự án thú vị với điều kiện tiến độ được ghi lại và mã nguồn được công khai.


Tôi thích ý tưởng tài trợ - tôi sẽ phải xem xét điều đó.
Dave

2

Tôi chủ yếu là nhà phát triển C #. Tôi đã mua một Arduino thay vì Netduino vì có sẵn mã nguồn. Sẽ không dễ để tích hợp Netduino với các viên gạch điện tử Arduino vì bạn sẽ phải viết lại một số mẫu từ đầu.


2

Khi đọc 'C # không phù hợp với các nền tảng nhúng', hãy nhớ rằng những người lớn hơn một độ tuổi nhất định đã từng nghe nói ít nhất một lần về 'C' và sau đó một lần nữa về C ++ trong thời gian sống của họ ...

Tất nhiên, nó thật lãng phí 'lãng phí' các khả năng cơ bản của bộ xử lý, nhưng khả năng chạy vòng lặp nhàn rỗi của bạn nhanh hơn 1000 lần so với bạn cần chứ không phải nhanh hơn 10 lần so với nhu cầu của bạn.


Vòng lặp nhàn rỗi không liên quan. Có một số MCU sử dụng trong đó chu kỳ quan trọng, như thu hoặc phát tín hiệu video, tạo dao động của riêng bạn, phân tích FFT thời gian thực của tín hiệu đầu vào và nhiều thứ khác. Bạn có thể quên C # cho những điều này. Mặt khác, nếu các yêu cầu của bạn liên quan nhiều hơn đến việc tạo ra "phần mềm giống như phần mềm chỉ trong một gói nhỏ", thì C # và .NET MF hoàn toàn không phải là một lựa chọn tồi ...
avra

2
... Để có trải nghiệm như vậy, tôi muốn chọn một số bảng ARM nhúng dựa trên linux, nhưng đó là một chủ đề cho một số cuộc thảo luận khác. Quan điểm là đối với một người chỉ bước vào thế giới nhúng với nền C #, .NET MF không phải là bước đầu tiên tồi.
avra

1

Nếu bạn muốn cảm nhận kim loại trần và ví dụ có thể tạo hoặc thu tín hiệu video trực tiếp, đó là nơi mọi chu kỳ quan trọng và AVR / Arduino sẽ cho phép bạn làm điều đó. Nếu bạn muốn mức độ trừu tượng cao hơn, lập trình mức độ cao hơn và gỡ lỗi thoải mái, trình thu gom rác và có thể sống với thực tế như trong Windows bạn không kiểm soát mọi thứ, thì hãy chọn NetDuino hoặc FEZ Domino. Vì cả hai đều có ARM trong lò sưởi của họ, tôi cá rằng nếu cần bạn có thể giết .NET MF trên bảng và flash mã ARM GCC kim loại trần trực tiếp từ một số Eclipse như IDE với sự trợ giúp của trình gỡ lỗi JTAG nhỏ. Điều tra một chút. Vấn đề có thể là nếu thiếu tiêu đề JTAG, bạn sẽ cần thực hiện một số thao tác hàn.


C và C ++ không đủ tốt cho video. Bạn sẽ cần Verilog cho điều đó :)

Có ít nhất 10 dự án tạo video chỉ bằng phần mềm. Hầu hết là B / W hoặc màu xám, nhưng thậm chí có những màu và hệ thống trò chơi chỉ với video được tạo bằng phần mềm AVR. Các dự án OSD cũng tồn tại. Cũng có một vài ví dụ về việc chụp các khung hình video độ phân giải thấp với AVR mà không cần có FPGA. Chỉ cần google khoảng ...
avra

Khi tôi nói video tôi có nghĩa là màu 1080p 24 bit. Có thể nhúng C ++ làm điều đó?

0

Sau một thời gian dài gián đoạn từ điện tử và lập trình, tôi đã quay lại với nó vì một dự án mà một trong những đứa con trai của tôi đang làm ở trường đại học. Tôi đã học được các thiết bị điện tử khi các ống là chuẩn mực và lập trình với các công tắc bật tắt (đặt địa chỉ, đặt dữ liệu, tải, lưu trữ, ở dạng nhị phân) và thẻ đục lỗ. Trong những năm qua, tôi đã học và sử dụng từng tiến bộ ngôn ngữ điện tử và lập trình, điều này đòi hỏi rất nhiều nỗ lực và thời gian tập trung. Do đó, tôi rất biết ơn những tiến bộ của vi điều khiển và chúng rẻ đến mức nào, bao gồm các bảng phát triển như Arduino, Netduino, v.v. Những tranh luận về Arduino vs Netduino, v.v. như dòng lệnh so với GUI. Không quan trọng nền tảng, ngôn ngữ lập trình, v.v., được sử dụng miễn là phù hợp với kết quả.


-1

Nếu .net MF cung cấp cho các thư viện có khả năng mã máy / kim loại thuần túy có thể làm được, thì ... sự trừu tượng duy nhất (. Net MF) trở thành một thứ tốt. Ngoài việc lấy thêm dấu chân và chạy một GC (sẽ làm cho nó hiệu quả ??)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.