Netduino 또는 Arduino를 구매해야합니까?


17

나는 재미있는 가정 취미 프로젝트를 위해 NetDuino를 구입할 것을 찾고 있습니다.

당신은 그것을 사용하고 경험이 어땠습니까?

대신 Arduino 또는 FreeDuino 범위를보아야합니까 (또는 완전히 다른 것)?

내 C # 지식으로 인해 NetDuino를 고수하기로 결정했지만 필수 사항은 아닙니다.

감사

추신. 이것이 커뮤니티 위키에 속하는지 확실하지 않습니다 (지침에 감사드립니다).


5
보드로 무엇을하고 싶습니까? 그것은 당신의 선택에 영향을 줄 것입니다.
Toby Jaffey

3
NetDuino의 ARM7 마이크로 컨트롤러와 Arduino의 8 비트 AVR은 완전히 다른 클래스입니다. 서버를 구매할지 넷북을 구매할지 묻는 것과 같습니다. 그러나 적합하지 않은 VM을 실행하여 서버 속도를 늦추고 있습니다. 성능이 비슷하며 동일한 작업에 두 도구를 모두 사용하고 있습니다. 그 추상화 계층이 정말로 필요합니까?
Kevin Vermeer

@reemrevnivek- "Ill-suited"어 ... 추상화의 계층이지만 확실히 적합하지는 않습니다 (VM도 실제로는 아닙니다).
코너 울프

2
@Fake Name netduino (TinyCLR)에 JIT 컴파일러가없는 것 같습니다. 그래서, 그것은 이다 VM을 / 통역. tinyclr.com/faq/#13
Toby Jaffey

1
VM은 Smalltalk, Java, Python 등이 실행되는 것입니다. "베어 메탈"과 다른 명령어 세트를 실행하는 추상 머신을 의미합니다. 가상화 된 PC만이 아닙니다.
Joe Koberg

답변:


16

저는 C #을 좋아하고 C #에서 Visual Studio로 개발할 때 얻을 수있는 생산성 이점이 Netduino에 유리한 매우 강력한 요소라는 것을 알았습니다. "C #은 마이크로 컨트롤러 / 임베디드 환경 용이 아니기 때문에"Netduino를 사용하지 않을 것입니다. 여기에 다른 답변이 표시되어 있습니다.

Arduino를 사용하거나 "베어 메탈 (bare metal)"을 사용하고 AVR, PIC 또는 기타 마이크로 컨트롤러의 직접 MCU 관리를 수행하는 것처럼 Netduino를 사용하여 다양한 물리적 입력 및 출력 장치를 연결하는 방법에 대해 재미있는 프로젝트를 만들고 많은 것을 배울 수 있습니다.

그것으로 나는 다음과 같은 이유로 Arduino를 고수하고 있다고 말했다.

  • 더 나은 커뮤니티 지원. Arduino에는 더 많은 샘플, 예제 및 더 큰 커뮤니티가 있습니다.
  • Netduino는 값 비싼 키트 / 프로토 타이핑 접근법을 넘어 설 이야기가 없습니다. 코드를 실행하는 수십 개의 마이크로 컨트롤러가 필요한 대화식 미술 전시회를 진행하겠습니까? Netduino에 대해 각각 35 달러를 지불 할 준비를하십시오. Arduino를 사용하면 Arduino에서 프로토 타입을 제작 한 다음 AVR 마이크로 컨트롤러로 각각 10 달러 미만의 베어 본 MCU 전용 솔루션을 구현할 수 있습니다.

따라서 C 기술이 먼지가 많거나 존재하지 않는다면 C #과 Visual Studio를 좋아하고 비용이 더 큰 문제가되는 곳으로 확장 할 필요가없는 몇 가지 취미 프로젝트에 관심을 기울이고 싶다면 Netduino로 이동하십시오.

C에 익숙하거나 코드 샘플과 커뮤니티의 도움을 받아 편안하게 사용할 수 있고 금속에 더 가까이 다가 가서 Netduino와 Arduino의 "프로토 타입"접근 방식에서 벗어나고 싶다면 Arduino를 시작하십시오.


1
나는 이것이 오래된 대답이라는 것을 알고 있지만 Netduino는 완전히 오픈 소스 (하드웨어 포함)이기 때문에 누구든지 uC를 구입하여 Netduino 펌웨어를 플래시 할 수 있다고 덧붙이고 싶습니다. 따라서 프로덕션 제품에서 Netduino 플랫폼을 사용할 수 있습니다.
Unkwntech

"여러분의 C # 지식은 어쨌든 임베디드 플랫폼에서 쓸모가 없습니다. 너무 많은 비중을 두지 마십시오." -어리석은 말입니다. Netduino가 포함되어 있고, 흔들리고, C #입니다.
Jonesome Reinstate Monica

11

어쨌든 임베디드 플랫폼에서 C # 지식은 쓸모가 거의 없으므로 너무 많은 비중을 두지 마십시오.

나는 .Net이 악마이기 때문에가 아니라 다른 사람들이 사용하고 있기 때문에 Arduino 또는 복제품 중 하나를 사용합니다.

일단 발을 적신 후에는 반드시 가지를 펴고 다른 것을 시도하십시오.


Arduino에서 사용되는 배선 언어를 옹호하거나 avrfreaks에서 C 코드를 제거 하고 기여 합니까?
Kevin Vermeer

1
@reemrevnivek Arduino는 일부 라이브러리가있는 C ++입니다. 그것의 C ++ 헤더와 바닥 글에 첨부 - 나는 "언어"와 같은 클래스가 아닌 그것을 것
토비 Jaffey

으악, 배선은 내가 의미하는 바입니다.
Kevin Vermeer

나는 이것이 조금 이상하다고 생각한다. 프로그래밍 요소가 훨씬 덜 문제가되어야 하기 때문에 Netduino와 함께 가야 겠다는 제안으로 "발을 적시고 나면 반드시 가지를 뻗어 라"는 것을 거의 받아 들일 것이다. 필요한 "기타"기술을 개발하십시오.
Murph

1
나쁜 의견, dren.dk는 단순히 잘못되었습니다. 나와 다른 많은 사람들이 하루 종일 netduino와 C #을 사용합니다.
Jonesome Reinstate Monica 1

7

나는 현재 Arduino, mbed 및 마지막으로 Netduino를 개발 / 취미 사용을 위해 처분했습니다. Arduino와 함께 일하는 것을 좋아하지 않았을 것입니다. 아마도 편집기가 좋지 않기 때문에 C # 개발자로 분명히 손상되었습니다. mbed를 받았을 때 나는 훨씬 더 나은 개발을 좋아했지만 인쇄 명령문을 사용하여 진행 상황을 파악해야하기 때문에 디버깅은 여전히 ​​고통 스럽습니다.

제품을 개발하거나 주변을 조이는 경우 처음에는 대부분의 시간이 디버깅에 소비되며 디버깅 할 때는 중단 점이 필요합니다. 어떤 종류의 중단 점도 제공하지 않는 임베디드 하드웨어로 돌아가는 데 매우 어려운 시간이 있습니다.

아직 JTAG에 대한 경험이 없지만 지금까지 내가 본 모든 Micro (LayerCore 모듈 외에)는 중단 점을 통한 디버깅을 허용해야합니다. 오늘 Netduino를 연결하고 VS2010에서 코드를 단계별로 실행할 수 있었을 때 놀랍다 고 상상해보십시오! 나는 이것에 매우 만족했다.

개인적으로, 나는 발자국 크기, .NET 및 Microsoft의 악에 대해 걱정하지 않을 것입니다. 나는 빠르고 효율적으로 디버깅 할 수 있기를 원하므로 물건을 얻을 수 있습니다 .


일을 끝내는 것은 어려운 방법으로 가장 잘 배우는 교훈입니다

@kurtnelle .NET MF를 사용하지 않는 것을 옹호하는 것처럼 들립니까?
Dave

@ 데이브, 네 이것은 오래된 c 기반 8 비트 마이크로 컨트롤러를 시도했지만 많은 노력을 기울이지 않았기 때문입니다.

@kurtnelle이지만 .NET MF를 사용하면 실제로 약간의 노력으로 많은 일을하고 있습니다.
Dave

2
@Dave, 이전에 이질적인 반응에 대해 죄송합니다. .NET MF를 옹호합니다

5

거의 20 년 동안 BasicStamp 사용자이고 단 2 주 동안 만 NetDuino 사용자 (Arduino를 사용한 적이 없음)로서 NetDuino는 훌륭한 플랫폼이라고 말합니다. 내가 즐기는 두 가지 주요 기능 : VisualStudio의 프로그래밍 용이성 (및 중단 점!)과 보드의 고해상도 ADC가 주요 이유입니다. SparkFun에서 시도한 몇 가지 Arduino 쉴드는 NetDuino와 완벽하게 작동했습니다.


4

개인적으로 저는 C # 또는 .NET의 팬이 아닙니다. 나는 C luddite입니다. 따라서 원하는 플랫폼 (플래시, RAM, 클럭 속도, ADC 수, 타이머 수 등)이있는 플랫폼을 선택했습니다.

즉, C # /. NET이 빠른 프로토 타이핑에 유용하다고 생각할 수 있습니다.

  • 문자열 처리가 훨씬 간단 할 것입니다
  • RPC와 객체 직렬화는 쉬울 것입니다. 직렬 링크를 통해 C # 객체를 푸시 할 수 있다고 생각합니다. RPC는 "그냥 작동합니다"
  • 이식성-.NET은 가상 머신이므로 다른 보드 또는 PC에서도 코드를 실행해야합니다.
  • 가비지 콜렉션은 많은 알고리즘을 구현하기 더 간단하게 만듭니다.

물론이 모든 비용은 다음과 같습니다.

  • 코드 풋 프린트가 더 큽니다 (특히 표준 라이브러리를 고려할 때)
  • RAM 사용량이 더 높습니다 (모든 것이 개체이므로 모든 것이 입력 되었습니까?)
  • 가비지 수집기가 실시간 성능에 영향을 줄 가능성이 있음
  • .NET 라이브러리에서 하드웨어 기능을 지원하지 않으면 C / C ++가 필요한 기능을 직접 구현하지 않으면 주석을 사용할 수 없습니다.

그리고 무엇보다도 임베디드 플랫폼에서 C # 기술을 사용하면 실제로 임베디드 장치에 대해 배우지 않습니다.

그렇습니다, 그것은 일을 끝내게 될 것입니다. 그러나 그 재미는 어디에 있습니까?


NetDuino에서 사용되는 .NET 라이브러리를 새로운 기능으로 패치하는 것이 얼마나 어려운지 궁금합니다. C ++을 사용하여 SecretLabs.NETMF.Hardware / Stubs- source 파일 에서 .NET SDK를 빌드하는 것처럼 보입니다 . 한숨.
Kevin Vermeer

@reemrevnivek 재미에 대한 내 생각이 아닙니다. 런타임을 패치하는 경우 C / C ++
Toby Jaffey

1
@Joby-나는 당신과 같은 C luddite이지만, 나는 그것이 가능하다는 것을 지적하고 싶었습니다-당신은 ".NET 라이브러리가 하드웨어 기능을 지원하지 않으면 그것을 사용할 수 없습니다"라고 말했습니다. 사실이 아닙니다.
Kevin Vermeer

1
실제로 벤치 마크를 보셨습니까? 16MHz 8 비트가 60MHz 32 비트 마이크로와 동일한 속도로 작동한다고 상상하기 어렵습니다. 특히 Arduino 라이브러리는 속도가 느리기 때문에 실제로 속도에 최적화 된 것은 없습니다. 그리고 .NET에서 사용되는 것만 큼 많지 않은 객체도 있습니다. 그리고 그것은 Arduino와 크게 다른가요? 기능을 지원하는 Arduino 라이브러리가없는 경우 직접 구현해야합니다 (하드웨어 레지스터 등을 직접 호출)
davr

@davr 수정 된 답변
Toby Jaffey

3

나는 mbed 가 Arduino의 놀라운 대용품 이라는 것을 알았 습니다.

소프트웨어 라이브러리는보다 C ++ 지향적이며 할당 연산자 오버로딩의 모든 구문 설탕으로 완성됩니다. 또한 사용자가 코드 라이브러리를 게시하고 문서화 할 수 있도록 시스템을 설정 한 후 쉽게 검색하여 프로젝트로 가져올 수 있습니다.

또 다른 좋은 기능은 장치를 USB 스틱으로 취급하고 .bin 파일을 드라이브에 똑바로 넣는 기능입니다.

불행히도 IDE는 arduino의 IDE와 비슷합니다. 또한 온라인입니다 입니다. 이것은 정말 좋으며 (모든 PC에서 사용할 수 있으며 설치가 필요하지 않음) 정말 나쁩니다 (인터넷 연결없이 쉽게 다시 프로그래밍 할 수 없음).

이사회 비용은 60 달러이지만 후원 제도가 있으며, 진행 상황이 문서화되고 소스 코드가 공개되는 경우 흥미로운 프로젝트에 보드를 기부합니다.


나는 후원 아이디어를 좋아한다-나는 그것을 조사해야 할 것이다.
Dave

2

저는 주로 C # 개발자입니다. 소스 코드의 가용성으로 인해 Netduino 대신 Arduino를 구입했습니다. Netduino를 Arduino 전자 브릭과 통합하는 것은 쉽지 않습니다. 샘플을 처음부터 다시 작성해야하기 때문입니다.


2

'C #이 임베디드 플랫폼에 적합하지 않음'을 읽을 때 특정 연령보다 오래된 사람들은 이미 'C'에 대해 한 번 이상 평생 C ++에 대해 다시 한 번 들었다는 것을 이미 기억하고 있습니다.

물론 그것은 프로세서의 기본 기능을 기념비적으로 '낭비 적'이지만 유휴 루프를 10 배가 아닌 1000 배 빠르게 실행하는 능력은 결코 부자를 만들지 못했던 것보다 빠릅니다.


유휴 루프는 관련이 없습니다. 비디오 신호 캡처 또는 생성, 자체 오실로스코프 만들기, 입력 신호의 실시간 FFT 분석 및 기타 여러 가지와 같이주기가 중요한 곳에서 일부 MCU 사용이 있습니다. 이것에 대해서는 C #을 잊을 수 있습니다. 반면, 요구 사항이 "작은 패키지에있는 소프트웨어와 같은 PC"를 만드는 데 더
중점을 둔다면

2
... 이러한 경험을 위해 리눅스 기반 임베디드 ARM 보드를 선택하고 싶지만 다른 토론 주제입니다. 요점은 C # 배경으로 임베디드 세계에 들어가는 사람에게는 .NET MF가 전혀 나쁜 첫 단계가 아니라는 것입니다.
avra

1

베어 메탈을 느끼고 비디오 신호를 직접 생성하거나 캡처 할 수있게하려면 모든 사이클이 중요하며 AVR / Arduino에서이를 수행 할 수 있습니다. 더 높은 수준의 추상화, 더 높은 수준의 프로그래밍 및 디버깅 편의, 가비지 수집기를 원하고 Windows에서와 같이 모든 것을 제어하지 못한다는 사실에 부응하려면 NetDuino 또는 FEZ Domino를 선택하십시오. 둘 다 ARM이 난로에 있기 때문에 필요한 경우 작은 JTAG 디버거를 사용하여 보드에서 .NET MF를 죽이고 IDE와 같은 Eclipse에서 직접 베어 메탈 ARM GCC 코드를 플래시 할 수 있습니다. 조금 조사하십시오. 문제는 JTAG 헤더가없는 경우 납땜을 수행해야한다는 것입니다.


C와 C ++는 비디오에 충분하지 않습니다. Verilog가 필요합니다 :)

소프트웨어만으로 비디오를 제작하는 프로젝트가 10 개 이상 있습니다. 대부분 흑백 또는 회색이지만 AVR 소프트웨어로 생성 된 비디오 만있는 컬러 및 게임 시스템도 있습니다. OSD 프로젝트도 존재합니다. FPGA없이 AVR로 저해상도 비디오 프레임을 캡처하는 예는 거의 없습니다. 그냥 구글 주위에 ...
avra

비디오를 말할 때 1080p 24 비트 컬러를 의미합니다. 임베디드 C ++가 그렇게 할 수 있습니까?

0

전자 공학과 프로그래밍에서 아주 오랜 시간을 보낸 후, 아들 중 한 명이 대학에서하는 프로젝트로 인해 다시 돌아 왔습니다. 튜브가 표준이었고 토글 스위치 (주소 설정, 데이터 설정,로드, 저장, 이진) 및 펀치 카드로 프로그래밍 할 때 전자 장치를 배웠습니다. 수년에 걸쳐, 나는 많은 집중적 인 노력과 시간이 걸리는 각각의 전자 및 프로그래밍 언어 향상을 배우고 사용했습니다. 결과적으로, 마이크로 컨트롤러의 발전과 Arduino, Netduino 등과 같은 개발 보드를 포함하여 얼마나 저렴한 지에 대해 대단히 감사합니다. Arduino vs Netduino 등에 대한 논란은 Microsoft와 Apple의 전투에 대해 상기시킵니다. 명령 줄 대 GUI. 결과에 적합한 한 어떤 플랫폼, 프로그래밍 언어 등이 사용되는지는 중요하지 않습니다.


-1

.net MF가 순수한 기계 / 금속 코드로 할 수있는 라이브러리를 제공했다면, 유일한 추상화 (. Net MF)가 좋은 것입니다. 더 많은 공간을 차지하고 GC를 실행하는 것 외에도 (효율적으로 만들어야합니까 ??)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.