Bir Netduino veya Arduino almalı mıyım?


17

Bazı eğlenceli ev hobi projeleri için bir NetDuino satın almak için arıyorum.

Herhangi biriniz kullandınız ve deneyiminiz nasıldı?

Bunun yerine Arduino veya FreeDuino serisine mi bakmalıyım (veya tamamen farklı bir şey)?

C # bilgim nedeniyle NetDuino'ya sadık kalmaya karar verdim, ancak bu bir gereklilik değil.

Teşekkürler

PS. Bunun topluluk wikisine ait olup olmadığından emin değilim (rehberlik takdir edildi).


5
Tahta ile ne yapmak istiyorsun? Bu seçiminizi etkileyecektir.
Toby Jaffey

3
NetDuino'daki ARM7 mikro denetleyici ve Arduino'daki 8 bit AVR tamamen farklı bir sınıftadır. Bir sunucu veya bir netbook satın alıp almayacağınızı soruyorsunuz. Ancak, uygun olmayan bir VM çalıştırarak sunucunuzu yavaşlatıyorsunuz - performans benzer olacak ve aynı görev için her iki aracı da kullanacaksınız. Bu soyutlama katmanına gerçekten ihtiyacınız var mı?
Kevin Vermeer

@reemrevnivek - "Uygun değil" ah ... bu bir soyutlama katmanı, ama kesinlikle kötü bir şey değil (ve gerçekten de bir vm değil).
Connor Wolf

2
@Fake Name Netduino'nun (TinyCLR) bir JIT derleyicisi yok gibi görünüyor. Yani, olan bir VM / tercüman. tinyclr.com/faq/#13
Toby Jaffey

1
VM'ler Smalltalk, Java, Python, vb. "Çıplak metalden" farklı bir komut seti çalıştıran soyutlanmış bir makine anlamına gelir. Sadece sanallaştırılmış bir bilgisayar değil.
Joe Koberg

Yanıtlar:


16

C # seviyorum ve Netduino lehine çok güçlü bir faktör olarak Visual Studio ile C # geliştirmenin verimlilik faydaları bulmak. Ben Pooh-pooh Netduino olmaz çünkü burada diğer cevaplar belirttiği gibi "C # mikrodenetleyici / gömülü ortamlar için değil".

Çok eğlenceli projeler yapabilir ve Netduino'yu kullanarak Arduino ile yapabileceğiniz veya "çıplak metal" yapabileceğiniz ve AVR, PIC veya diğer mikrodenetleyicilerin doğrudan MCU yönetimini gerçekleştiren farklı fiziksel giriş ve çıkış cihazlarını bağlama hakkında çok şey öğrenebilirsiniz.

Bununla birlikte, aşağıdaki nedenlerden dolayı Arduino ile bağlı olduğumu söyledi:

  • Daha iyi topluluk desteği. Arduino'nun daha fazla örneği, örneği ve daha büyük bir topluluğu vardır.
  • Netduino'nun pahalı kit / prototipleme yaklaşımının ötesine geçecek bir hikayesi yok. Kodunuzu çalıştıran düzinelerce mikrodenetleyici gerektiren etkileşimli bir sanat sergisi mi uygulayacaksınız? Netduinos için her biri 35 ABD doları ödemeye hazır olun. Arduino ile Arduino üzerinde prototip üretebilir ve daha sonra her biri 10 $ 'ın altında bir AVR mikrodenetleyici ile çıplak kemikli sadece MCU çözümü üzerine uygulayabilirsiniz.

Bu yüzden, C becerileriniz tozlu veya mevcut değilse, C # ve Visual Studio'yu seviyorsunuz ve sadece maliyetin daha büyük bir sorun haline geldiği yere ölçeklendirilmesi gerekmeyen birkaç hobi projesinde uğraşmak istiyorsanız, Netduino'ya gidin.

C'de rahatsanız veya kod örnekleri ve topluluk yardımı ile içeri girmekte rahatsanız ve metale daha yakın olmak ve sonunda Netduino ve Arduino'nun "prototip" yaklaşımından uzaklaşmaya bakmak istiyorsanız, gidin Başlamak için Arduino.


1
Bu eski bir cevap biraz biliyorum ama Netduino tamamen açık kaynak olduğundan (donanım dahil) uC herkesten satın alabilirsiniz ve Netduino firmware flaş. Böylece Netduino platformunu bir üretim ürününde kullanabilirsiniz.
Unkwntech

"C # bilginiz zaten gömülü bir platformda işe yaramaz, bu yüzden çok fazla ağırlık koymayın." - Ne kadar aptalca bir şey. Netduino gömülü, kayalar ve C # ...
Jonesome Reinstate Monica

11

C # bilginiz zaten gömülü bir platformda işe yaramaz, bu yüzden çok fazla ağırlık koymayın.

Bir Arduino veya klonlardan biri ile giderdim .Net şeytan olduğu için değil, herkesin kullandığı şey olduğu için, yardım almak ve insanların kodundan kurtulmak için çok daha kolay bir zamanınız olacak.

Ayaklarınızı ıslattıktan sonra, elbette dallayın ve farklı şeyler deneyin.


Eğer Arduino üzerinde kullanılan Kablolama dilini savunan veya kapalı mooching (ve katkı) C kodu Are avrfreaks ?
Kevin Vermeer

1
@reemrevnivek Arduino bazı kütüphaneleri olan C ++ 'dır. Ben bir "dil" olarak sınıf olmaz - üstbilgi ve altbilgi ekli C ++
Toby Jaffey

Hata! Kablolama demek istediğim şey.
Kevin Vermeer

Netduino ile başlamak için bir öneri olarak "Ayaklarınızı ıslattıktan sonra, her ne kadar dallanırsanız" neredeyse biraz alacağım, çünkü programlama elemanı çok daha az sorun olmalı - ihtiyaç duyulan "diğer" becerileri geliştirmek.
Murph

1
Kötü yorum, dren.dk yanlış. Ben ve diğerleri gün boyu netduino ve C # kullanıyoruz.
Jonesome

7

Şu anda bir Arduino, mbed ve son olarak geliştirme / hobi kullanımı için elimde bir Netduino var. Arduino ile çalışmayı hiç sevmedim, çünkü editör çok iyi olmadığından ve kesinlikle bir C # geliştiricisi olarak şımartıldım. Mbed'imi aldığımda, çok daha iyi gelişmeyi sevdim, ancak hata ayıklama hala acı verici çünkü neler olduğunu anlamak için basılı ifadeler kullanmanız gerekiyor.

Bir ürün geliştirirken veya sadece vidalanırken, ilk başta zamanınızın büyük bir kısmı hata ayıklamak için harcanır ... ve hata ayıklarken, kesme noktalarına sahip olmak istersiniz. Herhangi bir kesme noktası sunmayan gömülü donanıma geri dönmek için çok zor bir zamanım var.

Henüz JTAG ile deneyimim yok, ama şimdiye kadar gördüğüm her mikro (RabbitCore modüllerinin yanı sıra) kesme noktaları aracılığıyla hata ayıklamaya izin vermesini gerektiriyor. Bugün Netduino'yu bağladığımda ve VS2010'daki kodumda tek bir adım attığımda sürprizimi hayal et! Bundan çok memnun kaldım.

Şahsen, ayak izi boyutu hakkında endişe olmaz, .NET ve Microsoft vb kötülükler vs Ben sadece bu yüzden, hızlı ve verimli ayıklama edememek ilgilensin yalnızca işlerin alabilirsiniz .



@kurtnelle .NET MF kullanmamanızı savunuyormuşsunuz gibi geliyor mu?
Dave

@Dave, Evet öyleyim. Bu sadece eski c tabanlı 8 bit mikrodenetleyici thingy denedim ve çok fazla çaba için çok az yaptım çünkü.

@kurtnelle ama .NET MF ile aslında çok az çaba ile çok şey yapıyorum.
Dave

2
@Dave, daha önce dislektik tepki için üzgünüm; .NET MF'yi savunuyorum

5

Neredeyse 20 yıldır bir BasicStamp kullanıcısı ve sadece 2 hafta boyunca bir NetDuino kullanıcısı olarak (hiç Arduino kullanmadım), NetDuino'nun harika bir platform olduğunu söyleyebilirim. Zevk aldığım iki ana özellik: VisualStudio'da programlama kolaylığı (ve kesme noktaları!) Ve tahtadaki yüksek çözünürlüklü ADC temel nedenlerdir. SparkFun'dan denediğim birkaç Arduino kalkanı NetDuino ile mükemmel çalıştı.


4

Şahsen ben C # veya .NET hayranı değilim. Ben bir C ludditesiyim. Yani, benim tercih ettiğim donanım özelliklerine (flash, RAM, saat hızı, ADC sayısı, zamanlayıcı sayısı, vb.) Sahip olan platform seçimim geliyor.

Bununla birlikte, C # /. NET'in hızlı prototipleme için yararlı olduğunu hayal edebiliyorum:

  • Dize kullanımı büyük olasılıkla daha basit olacaktır
  • RPC ve nesne serileştirmesi muhtemelen kolaydır. Ben sadece seri bir bağlantı üzerinden C # nesneleri itebilirsiniz şüpheli. RPC muhtemelen "sadece çalışır"
  • Taşınabilirlik - .NET sanal bir makinedir, bu nedenle kod diğer kartlarda ve hatta bilgisayarlarda çalışmalıdır
  • Çöp toplama birçok algoritmanın uygulanmasını kolaylaştırır

Tabii ki, bunların hepsi bir bedeli var:

  • Kod ayak izi daha büyük (özellikle standart kitaplıkları hesaba kattığınızda)
  • RAM kullanımı daha yüksektir (her şey bir nesnedir, her şey yazılır mı?)
  • Çöp toplayıcı muhtemelen gerçek zamanlı performansla karışır
  • Bir donanım özelliği .NET kitaplıkları tarafından desteklenmiyorsa, onu kullanamazsınız (C / C ++ 'a ihtiyacınız olacak özellikleri kendiniz uygulamadığınız sürece, yorumlara bakın)

Ve en önemlisi, C # becerilerinizi gömülü bir platformda kullanarak, gömülü aygıtlar hakkında gerçekten hiçbir şey öğrenmiyorsunuz.

Evet, işi halledecek - ama bunun içindeki eğlence nerede?


NetDuino'da kullanılan .NET kitaplıklarını yeni bir özellikle düzeltmenin ne kadar zor olduğunu merak ediyorum. .NET SDK'larını oluşturmak için C ++ kullanıyorlar, SecretLabs.NETMF.Hardware / Stubs - kaynak dosyalarına iniyorlar . İç çekmek.
Kevin Vermeer

@reemrevnivek Benim eğlenceli fikrim değil. Çalışma zamanını ekliyorsanız, C / C ++ ile başlayabilirsiniz
Toby Jaffey

1
@Joby - Senin gibi bir C luddite'ım, ama sadece bunun mümkün olduğunu belirtmek istedim - "Bir donanım özelliği .NET kütüphaneleri tarafından desteklenmiyorsa, kullanamazsınız" dediniz. tam olarak doğru değil.
Kevin Vermeer

1
Gerçekten herhangi bir kriter gördünüz mü? Bir 16MHz 8bit'in 60MHz 32bit mikro ile aynı hızda çalıştığını hayal etmek benim için zor. Özellikle Arduino kütüphaneleri işleri yavaşlattığından hiçbiri hız için optimize edilmemiştir. Ve nesneler de var (.NET'te kullanılanlar kadar değilse). Ve Arduino'dan çok farklı mı? Bir özelliği destekleyen bir Arduino kütüphanesi yoksa ... kendiniz uygulamanız gerekir (doğrudan donanım kayıtlarına vb.
Çağırır

@davr Düzenlendi cevap
Toby Jaffey

3

Mbed'i buldum Arduino için muhteşem bir yedek olmak.

Yazılım kütüphanesi daha fazla C ++ yönelimlidir, ödev operatörünün aşırı yüklenmesi sözdizimsel şekeri ile tamamlanmıştır. Buna ek olarak, kullanıcıların kod kitaplıklarını yayınlayabilmeleri ve belgeleyebilmeleri için bir sistem oluşturulur; bu sistem daha sonra kolayca aranabilir ve projelere aktarılabilir.

Bir başka iyi özellik de, cihazı bir USB çubuğu gibi ele alma ve .bindosyaları doğrudan sürücüye koyma yeteneğidir .

Ne yazık ki, IDE arduino ile karşılaştırılabilir. Ayrıca, çevrimiçi . Bu hem gerçekten çok iyi (herhangi bir bilgisayarda kullanılabilir, kurulum gerektirmez) hem de gerçekten kötüdür (internet bağlantısı olmadan kolayca yeniden programlanamaz).

Kurulun maliyeti 60 $ 'dır, ancak ilerleme belgelendiği ve kaynak kodun halka açık hale getirilmesi durumunda ilginç projelere kurul bağışlayacakları bir sponsorluk şeması vardır.


Sponsorluk fikrini seviyorum - buna bakmam gerekecek.
Dave

2

Ben öncelikle bir C # geliştiricisiyim. Kaynak kodun kullanılabilirliği nedeniyle Netduino yerine Arduino aldım. Netduino'yu Arduino elektronik tuğlalarıyla entegre etmek kolay olmayacaktır çünkü bazı örnekleri sıfırdan yeniden yazmanız gerekecek.


2

'C # gömülü platformlar için uygun değildir' okunurken, belirli bir yaştan büyük insanların, yaşamlarında en az bir kez 'C' ve sonra tekrar C ++ hakkında söylediklerini duyduklarını unutmayın ...

Elbette, işlemcinin temel yeteneklerini anıtsal olarak 'israf ediyor', ancak boşta kalma döngünüzü ihtiyacınız olandan 1000 kat daha hızlı bir şekilde ihtiyacınız olandan daha hızlı çalıştırma yeteneği, hiç kimseyi zenginleştirmedi.


Boştaki döngüler ilgili değildir. Video sinyal yakalama veya oluşturma, kendi osiloskopunuzu yapma, giriş sinyalinin gerçek zamanlı FFT analizi ve diğerleri gibi döngülerin önemli olduğu bazı MCU kullanımları vardır. Bunlar için C # unu unutabilirsiniz. Öte yandan, gereksinimleriniz "sadece küçük bir pakette yazılım gibi pc" yapmaya doğru ise, o zaman C # ve .NET MF hiç kötü bir seçim değildir ...
avra

2
... Böyle bir deneyim için bazı linux tabanlı gömülü ARM panolarını tercih ederim, ama bu başka bir tartışma için bir konu. Burada nokta sadece bir C # arka plan ile gömülü dünyaya giren biri için, .NET MF hiç de kötü bir ilk adım değildir.
avra

1

Çıplak metali hissetmek ve örneğin doğrudan video sinyali üretebilmek veya yakalayabilmek istiyorsanız, her döngü önemlidir ve AVR / Arduino bunu yapmanıza izin verecektir. Daha yüksek düzeyde soyutlama, daha yüksek düzeyde programlama ve hata ayıklama konforu, çöp toplayıcı istiyorsanız ve Windows'da olduğu gibi her şeyi kontrol etmediğiniz gerçeğiyle yaşayabilirseniz, NetDuino veya FEZ Domino'yu seçin. Her ikisi de ocaklarında ARM bulunduğundan, gerekirse .NET MF'yi tahtada öldürebileceğinize ve çıplak metal ARM GCC kodunu doğrudan küçük bir JTAG hata ayıklayıcı yardımıyla IDE gibi bazı Eclipse'den flaş edebileceğinize bahse girerim. Biraz araştır. Sorun, JTAG başlığı eksikse, biraz lehimleme yapmanız gerekebileceği olabilir.


C ve C ++ video için yeterince iyi değil. Bunun için Verilog'a ihtiyacınız olacak :)

Sadece yazılımla video oluşturan en az 10 proje vardır. Çoğu siyah beyaz veya gri, ancak sadece AVR yazılımı tarafından üretilen videoya sahip renkli olanlar ve oyun sistemleri bile var. OSD projeleri de var. FPGA'sız AVR ile düşük çözünürlüklü video karelerini yakalamanın birkaç örneği de vardır. Sadece google etrafında ...
avra

Video derken 1080p 24bit renk demek istedim. Gömülü C ++ bunu yapabilir mi?

0

Elektronik ve programcılıktan çok uzun bir aradan sonra, oğullarımdan birinin üniversitede yaptığı bir proje yüzünden işe geri döndüm. Tüpler norm olduğunda ve geçiş anahtarları (set adresi, set verileri, yük, depo, ikili olarak) ve delikli kartlarla programlama yaparken elektronik öğrendim. Yıllar boyunca, yoğun çaba ve zaman harcayan her elektronik ve programlama dili gelişimini öğrendim ve kullandım. Sonuç olarak, mikrodenetleyicilerdeki gelişmeler ve Arduino, Netduino, vb. Gibi geliştirme panoları da dahil olmak üzere inanılmaz derecede ucuz oldukları için çok minnettarım. komut satırı vs GUI. Sonuca uygun olduğu sürece hangi platformun, programlama dilinin vb. Kullanıldığı önemli değildir.


-1

Net MF, saf makine / metal kodunun yapabilecekleri kütüphaneler verdiyse, ... o zaman tek soyutlama (. Net MF) iyi olur. Daha fazla yer kaplamak ve bir GC çalıştırmak dışında (verimli hale getirmeli mi ??)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.