Haruskah saya membeli Netduino atau Arduino?

17

Saya ingin membeli NetDuino untuk beberapa proyek hobi rumah yang menyenangkan.

Apakah ada di antara Anda yang menggunakannya dan bagaimana pengalaman Anda?

Haruskah saya melihat rentang Arduino atau FreeDuino saja (atau sesuatu yang sama sekali berbeda)?

Saya memutuskan untuk tetap menggunakan NetDuino karena pengetahuan C # saya, tetapi itu bukan keharusan.

Terima kasih

PS. Saya tidak yakin apakah ini milik komunitas wiki atau tidak (panduan dihargai).

SetiSeeker
sumber
5
Apa yang ingin Anda lakukan dengan papan tulis? Itu akan memengaruhi pilihan Anda.
Toby Jaffey
3
Mikrokontroler ARM7 pada NetDuino dan AVR 8-bit pada Arduino berada dalam kelas yang sama sekali berbeda. Ini seperti Anda bertanya apakah akan membeli server atau netbook. Namun, Anda memperlambat server Anda dengan menjalankan VM yang tidak sesuai - kinerjanya akan sama, dan Anda menggunakan kedua alat untuk tugas yang sama. Apakah Anda benar-benar membutuhkan lapisan abstraksi itu?
Kevin Vermeer
@reemrevnivek - "Tidak cocok" eh ... itu adalah lapisan abstraksi, tapi itu tentu saja tidak cocok (dan bukan vm, sungguh, juga).
Connor Wolf
2
@Fake Name Sepertinya netduino (TinyCLR) tidak memiliki kompiler JIT. Jadi, ini adalah VM / juru bahasa. tinyclr.com/faq/#13
Toby Jaffey
1
VM adalah apa yang dijalankan oleh Smalltalk, Java, Python, dll. Ini berarti setiap mesin yang diabstraksikan, menjalankan set instruksi yang berbeda dari "bare metal". Bukan hanya PC tervirtualisasi.
Joe Koberg

Jawaban:

16

Saya suka C # dan menemukan manfaat produktivitas berkembang di C # dengan Visual Studio menjadi faktor yang sangat kuat dalam mendukung Netduino. Saya tidak akan Netohino pooh-pooh karena "C # bukan untuk mikrokontroler / lingkungan tertanam" seperti yang ditunjukkan oleh jawaban lain di sini.

Anda dapat membuat proyek yang sangat menyenangkan dan belajar banyak tentang menghubungkan berbagai input fisik dan perangkat output menggunakan Netduino seperti yang Anda bisa dengan Arduino atau menjadi "bare metal" dan melakukan manajemen MCU langsung dari AVR, PIC, atau mikrokontroler lainnya.

Dengan mengatakan bahwa saya tetap dengan Arduino karena alasan berikut:

  • Dukungan komunitas yang lebih baik. Arduino memiliki lebih banyak sampel, contoh, dan komunitas yang lebih besar yang dapat Anda gunakan.
  • Netduino tidak punya cerita untuk melampaui pendekatan kit / prototyping yang mahal. Akan mengimplementasikan pameran seni interaktif yang membutuhkan puluhan mikrokontroler yang menjalankan kode Anda? Bersiaplah untuk mengeluarkan $ 35 masing-masing untuk Netduino. Dengan Arduino, Anda dapat membuat prototipe pada Arduino dan kemudian menerapkan solusi MCU-only-telanjang dengan mikrokontroler AVR untuk masing-masing di bawah $ 10.

Jadi saya akan mengatakan jika keterampilan C Anda berdebu atau tidak ada, Anda menyukai C # dan Visual Studio, dan hanya ingin bermain-main pada beberapa proyek hobi yang tidak perlu mempertimbangkan skala di mana biaya menjadi masalah yang lebih besar, lanjut Netduino.

Jika Anda merasa nyaman dengan C, atau nyaman menggunakannya dengan bantuan sampel kode dan komunitas, dan ingin lebih dekat dengan logam dan melihat pada akhirnya menjauh dari pendekatan "prototipe" dari Netduino dan Arduino, buka Arduino untuk memulai.

Pat James
sumber
1
Saya tahu ini sedikit jawaban lama tetapi saya ingin menambahkan bahwa karena Netduino sepenuhnya open-source (termasuk perangkat kerasnya) Anda dapat membeli UC dari siapa pun dan mem-flash firmware Netduino ke sana. Jadi Anda bisa menggunakan platform Netduino dalam produk produksi.
Unkwntech
"Lagipula pengetahuan C # kamu hampir tidak berguna pada platform yang disematkan, jadi jangan terlalu membebani itu." - Sungguh hal yang konyol untuk dikatakan. Netduino tertanam, berbatu, dan itu adalah C # ...
Jonesome Reinstate Monica
11

Pengetahuan C # Anda hampir tidak berguna pada platform tertanam, jadi jangan terlalu membebani itu.

Saya akan menggunakan Arduino atau salah satu klon, bukan karena. Net adalah iblis, tetapi karena itulah yang digunakan orang lain, jadi Anda akan memiliki waktu yang jauh lebih mudah untuk mendapatkan bantuan dan mencuri kode orang.

Begitu kaki Anda basah, tentu saja bercabang dan cobalah hal-hal yang berbeda.

dren.dk
sumber
Apakah Anda menganjurkan bahasa Wiring yang digunakan pada Arduino, atau membatalkan (dan berkontribusi pada) kode C pada avrfreaks ?
Kevin Vermeer
1
@reemrevnivek Arduino hanya C ++ dengan beberapa perpustakaan. Saya tidak akan
menggolongkannya
Ups, Wiring adalah apa yang saya maksud.
Kevin Vermeer
Saya menemukan ini sedikit aneh saya hampir akan mengambil "Setelah Anda mendapatkan kaki Anda basah, dengan segala cara bercabang" sebagai saran untuk pergi dengan Netduino untuk memulai karena elemen pemrograman harus jauh lebih sedikit dari masalah - memungkinkan satu untuk kembangkan keterampilan "lain" yang dibutuhkan.
Murph
1
Komentar buruk, dren.dk salah. Saya dan banyak orang lain menggunakan netduino dan C # sepanjang hari.
Jonesome Reinstate Monica
7

Saat ini saya memiliki Arduino, mbed, dan akhirnya, Netduino yang saya inginkan untuk pengembangan / penggunaan hobi. Saya tidak pernah suka bekerja dengan Arduino, mungkin karena editornya tidak terlalu bagus, dan saya pasti dimanjakan sebagai pengembang C #. Ketika saya menerima tempat tidur saya, saya suka pengembangan pada itu, jauh lebih baik, tetapi debugging masih menyakitkan karena Anda harus menggunakan pernyataan cetak untuk mencari tahu apa yang terjadi.

Ketika Anda mengembangkan suatu produk, atau hanya bermain-main, sebagian besar waktu Anda pada awalnya dihabiskan untuk debugging ... dan ketika Anda melakukan debugging, Anda ingin memiliki breakpoints. Saya memiliki waktu yang sangat sulit untuk kembali ke perangkat keras tertanam yang tidak menawarkan segala jenis breakpoint.

Saya belum memiliki pengalaman dengan JTAG, tetapi setiap mikro yang saya lihat sampai sekarang (selain modul RabbitCore) membutuhkannya untuk memungkinkan debugging melalui breakpoints. Bayangkan betapa terkejutnya saya ketika saya menghubungkan Netduino saya hari ini dan dapat melakukan satu langkah melalui kode saya di VS2010! Saya sangat senang dengan ini.

Secara pribadi, saya tidak akan khawatir tentang ukuran tapak, kejahatan .NET dan Microsoft, dll. Saya hanya akan peduli untuk dapat men-debug dengan cepat dan efisien, jadi saya bisa menyelesaikan pekerjaan .

Dave
sumber
Melakukan sesuatu adalah pelajaran yang paling baik dipelajari dengan cara yang sulit
@kurtnelle sepertinya Anda menganjurkan tidak menggunakan .NET MF?
Dave
@Dave, Ya saya. Ini hanya karena saya mencoba yang lama berbasis 8 bit mikrokontroler dan mendapat sangat sedikit dilakukan untuk banyak usaha.
@ Kurtnelle tetapi dengan .NET MF saya sebenarnya mendapatkan banyak hal dengan sedikit usaha.
Dave
2
@ Dave, maaf untuk respons dislektik sebelumnya; Saya menganjurkan untuk .NET MF
5

Sebagai pengguna BasicStamp selama hampir 20 tahun dan pengguna NetDuino hanya selama 2 minggu (saya belum pernah menggunakan Arduino), saya akan mengatakan bahwa NetDuino adalah platform yang hebat. Dua fitur utama yang saya nikmati: kemudahan pemrograman (dan breakpoint!) Di VisualStudio dan ADC resolusi tinggi di papan tulis adalah alasan utama. Beberapa perisai Arduino yang saya coba dari SparkFun telah bekerja dengan sempurna dengan NetDuino.

AlfredBr
sumber
4

Secara pribadi, saya bukan penggemar C # atau .NET. Saya seorang Cuddle. Jadi, platform pilihan saya datang ke yang memiliki fitur perangkat keras yang saya inginkan (flash, RAM, kecepatan jam, jumlah ADC, jumlah timer, dll).

Yang mengatakan, saya bisa membayangkan C # /. NET berguna untuk pembuatan prototipe cepat:

  • Penanganan string kemungkinan akan jauh lebih sederhana
  • RPC dan serialisasi objek mungkin mudah. Saya menduga Anda hanya bisa mendorong objek C # melalui tautan serial. RPC sepertinya "hanya berfungsi"
  • Portabilitas - .NET adalah mesin virtual, jadi kode harus dijalankan di papan lain atau bahkan di PC
  • Pengumpulan sampah membuat banyak algoritma lebih mudah untuk diimplementasikan

Tentu saja, semua ini berbayar:

  • Jejak kode lebih besar (terutama ketika Anda memfaktorkan pustaka standar)
  • Penggunaan RAM lebih tinggi (semuanya objek, apakah semuanya diketik?)
  • Pengumpul sampah cenderung ikut campur dengan kinerja waktu nyata
  • Jika fitur perangkat keras tidak didukung oleh pustaka .NET, Anda tidak dapat menggunakannya (kecuali jika Anda sendiri yang mengimplementasikannya, yang memerlukan C / C ++, lihat komentar)

Dan, yang paling penting, dengan menggunakan keterampilan C # Anda pada platform tertanam Anda tidak benar-benar belajar apa pun tentang perangkat tertanam.

Ya, itu akan menyelesaikan pekerjaan - tapi, di mana kesenangannya?

Toby Jaffey
sumber
Saya bertanya-tanya seberapa sulit untuk menambal pustaka .NET yang digunakan di NetDuino dengan fitur baru. Sepertinya mereka menggunakan C ++ untuk membangun .NET SDK mereka, turun di SecretLabs.NETMF.Hardware / Rintisan bertopik - file sumber . Mendesah.
Kevin Vermeer
@reemrevnivek Bukan ide saya yang menyenangkan. Jika Anda menambal runtime, Anda mungkin juga memulai dengan C / C ++
Toby Jaffey
1
@Joby - Saya seorang Cuddle seperti Anda, tapi saya hanya ingin menunjukkan bahwa itu mungkin - Anda berkata "Jika fitur perangkat keras tidak didukung oleh perpustakaan .NET, Anda tidak dapat menggunakannya", yang itu tidak sepenuhnya benar.
Kevin Vermeer
1
Apakah Anda benar-benar melihat tolok ukur? Sulit bagi saya untuk membayangkan bahwa 16bit 8MHz menjalankan hal-hal pada kecepatan yang sama dengan mikro 60MHz 32bit. Terutama karena perpustakaan Arduino memperlambat segalanya juga - tidak ada yang benar-benar dioptimalkan untuk kecepatan. Dan itu punya objek juga (jika tidak sebanyak yang digunakan di .NET). Dan apakah itu jauh berbeda dengan Arduino? Jika tidak ada perpustakaan Arduino yang mendukung fitur ... Anda harus mengimplementasikannya sendiri (memanggil langsung ke register perangkat keras, dll.)
davr
@davr Jawaban yang diedit
Toby Jaffey
3

Saya menemukan tempat tidur menjadi pengganti yang luar biasa untuk Arduino.

Pustaka perangkat lunak lebih berorientasi C ++, lengkap dengan semua sintaksis kelebihan operator penugasan. Selain itu, sistem diatur sedemikian rupa sehingga pengguna dapat menerbitkan dan mendokumentasikan pustaka kode, yang kemudian dapat dengan mudah dicari dan diimpor ke proyek.

Fitur bagus lainnya adalah kemampuan untuk memperlakukan perangkat sebagai stik USB, dan hanya meletakkan .binfile langsung ke drive.

Sayangnya, IDE sebanding dengan Arduino. Juga, online . Ini sangat bagus (dapat digunakan di PC mana pun, tidak perlu instalasi), dan benar-benar buruk (tidak dapat diprogram ulang dengan mudah tanpa koneksi internet).

Biaya dewan adalah $ 60, tetapi mereka memiliki skema sponsor, di mana mereka akan menyumbangkan papan untuk proyek-proyek yang menarik asalkan kemajuan didokumentasikan dan kode sumber dipublikasikan.

Eric
sumber
Saya suka ide sponsor - saya harus melihat ke dalamnya.
Dave
2

Saya terutama pengembang C #. Saya membeli Arduino daripada Netduino karena ketersediaan kode sumber. Tidak mudah untuk mengintegrasikan Netduino dengan batu bata elektronik Arduino karena Anda harus menulis ulang beberapa sampel dari awal.

Jader Dias
sumber
2

Saat membaca 'C # tidak cocok untuk platform yang disematkan', ingat bahwa orang yang lebih tua dari usia tertentu sudah pernah mendengar yang mengatakan setidaknya sekali tentang 'C' dan sekali lagi tentang C ++ dalam masa hidup mereka ...

Tentu saja itu monumental 'pemborosan' dari kemampuan yang mendasari prosesor, tetapi kemampuan untuk menjalankan loop idle Anda 1000x lebih cepat dari yang Anda butuhkan daripada 10x lebih cepat dari yang Anda butuhkan tidak pernah membuat orang kaya.

pengguna1844
sumber
Loop menganggur tidak relevan. Ada beberapa penggunaan MCU di mana siklus penting, seperti menangkap atau membuat sinyal video, membuat osiloskop Anda sendiri, analisis FFT real time dari sinyal input, dan banyak lainnya. Anda bisa melupakan C # untuk ini. Di sisi lain, jika persyaratan Anda lebih ke arah pembuatan "pc like software hanya dalam satu paket kecil", maka C # dan .NET MF bukanlah pilihan yang buruk sama sekali ...
avra
2
... Untuk pengalaman seperti itu saya lebih suka memilih papan ARM tertanam berbasis linux, tapi itu adalah topik untuk beberapa diskusi lainnya. Poinnya adalah bahwa untuk seseorang yang baru saja memasuki dunia tertanam dengan latar belakang C #, .NET MF bukanlah langkah pertama yang buruk sama sekali.
avra
1

Jika Anda ingin merasakan bare metal dan misalnya dapat menghasilkan atau menangkap sinyal video secara langsung, di situlah setiap siklus penting dan AVR / Arduino akan membiarkan Anda melakukannya. Jika Anda menginginkan tingkat abstraksi yang lebih tinggi, pemrograman tingkat tinggi, dan kenyamanan debugging, pengumpul sampah dan dapat hidup dengan fakta bahwa seperti pada Windows Anda tidak mengontrol semuanya, maka pilih NetDuino atau FEZ Domino. Karena keduanya memiliki ARM dalam perapian, saya bertaruh bahwa jika diperlukan Anda dapat membunuh .NET MF di papan tulis dan mem-flash kode ARM GCC logam langsung dari beberapa Eclipse seperti IDE dengan bantuan debugger JTAG kecil. Selidiki sedikit. Masalahnya mungkin bahwa jika tajuk JTAG tidak ada, Anda harus melakukan penyolderan.

avra
sumber
C dan C ++ tidak cukup baik untuk video. Anda akan memerlukan Verilog untuk itu :)
Setidaknya ada 10 proyek yang membuat video hanya dengan perangkat lunak. Sebagian besar B / W atau abu-abu, tetapi bahkan ada yang berwarna dan sistem permainan dengan hanya video yang dihasilkan perangkat lunak AVR. Proyek OSD juga ada. Ada juga beberapa contoh pengambilan frame video beresolusi rendah dengan AVR tanpa FPGA. Hanya google sekitar ...
avra
Ketika saya mengatakan video maksud saya warna 1080p 24bit. Bisakah embedded C ++ melakukan itu?
0

Setelah lama absen dari elektronik dan pemrograman, saya kembali ke sana karena proyek yang dilakukan salah seorang putra saya di universitas. Saya belajar elektronik ketika tabung adalah norma dan pemrograman dengan sakelar sakelar (setel alamat, setel data, muat, simpan, dalam biner) dan kartu punch. Selama bertahun-tahun, saya telah belajar dan menggunakan setiap kemajuan bahasa pemrograman dan elektronik yang membutuhkan banyak upaya dan waktu yang terkonsentrasi. Akibatnya, saya sangat berterima kasih atas kemajuan dalam mikrokontroler dan betapa murahnya mereka, termasuk papan pengembangan seperti Arduino, Netduino, dll. Argumen tentang Arduino vs Netduino, dll., Mengingatkan saya pada pertempuran Microsoft vs Apple seperti sebagai baris perintah vs GUI. Tidak masalah platform mana, bahasa pemrograman, dll., Asalkan sesuai dengan hasilnya.

user3175
sumber
-1

Jika .net MF memberikan pustaka yang mampu melakukan apa yang dapat dilakukan oleh kode mesin / logam murni, ... maka satu-satunya abstraksi (.Net MF) yang bagus. Selain mengambil lebih banyak jejak dan menjalankan GC (yang seharusnya membuatnya efisien ??)

Vijay
sumber