Arduino için gerçek bir tahta olmadan programlayabilir miyim?


205

Bazı temel Arduino projelerinin geliştirilmesine başlamak istiyorum ancak henüz bir Arduino kuruluna sahip değilim. Benim kodumu yazabilmemin ve bir masaüstü bilgisayarı kullanarak öykünebilmem / test edebilmemin bir yolu var, böylece tahta geldikten sonra projemi yüklemek ve çalıştırmak zorunda kalacağım?


1
Ben de ilgileniyorum, Arduino IDE ile iyi oynayan birini buldun mu? yani, IDE tarafından tüm işlevselliklerine sahip bir kurulmuş gibi algılanır.
rraallvv

Yanıtlar:


128

Orada bir sürü Arduino simülatörleri var, birçoğu bedava ve bazı ücretli ürünler de var.

  • Codeblocks Arduino geliştirme ortamı hala gelişme ama fonksiyonel altında, özgür bir Arduino simülatör içerir.
  • Simuino , Arduino Uno ve Mega pinlerini simüle ediyor - güzel görünümlü gerçekçi bir simülatör değil, ama işe yarıyor.
  • Python tabanlı Arduino Simülatörü , resmi IDE ile iyi oynayan bir başka seçenek.
  • Arduino için Virtronics Simulator umut verici görünüyor, ancak bu fiyat için bir veya daha fazla gerçek Arduino klonu alabildiğim zaman, neden 14.99 $ ödeyeceğimi anlamıyorum.

Arama yaparsanız diğer pek çok Arduino simülatörü de oradadır ve sürekli olarak yeni insanlara duyurulmaktadır.


10
Bir not olarak, bunlar emülatör değil simülatördür , en önemli fark, kodu bir AVR sanal makinesinde çalıştırmamasıdır ( qemu'nun yaptığı gibi ), ancak Arduino işlevlerini yerel koda bağlar. Dolayısıyla, temelde yerel AVR öğelerini çalıştıramazlar ve kayıt / zamanlayıcı davranışı gerçek AVR donanımındakilerle aynı olmaz. Bu cevapta iyi açıklanmış olan farkı görün . Yine de, Arduino Due kodunu qemu ile taklit etmek teorik olarak mümkündür .
zmo

5
"[Bir] o fiyat için bir veya daha fazla gerçek Arduino klonu alabildiğinde, neden [bir] bunun için 14.99 $ ödeyeceğini anlamıyorsunuz"? Nedenini size söyleyebilirim: çünkü donanımda bir simülatör tarafından sağlanabilecek özelliklere sahip yerleşik bir hata ayıklayıcı yok.
R. Martinho Fernandes,

8
Arduino Simülatörü benim ilgi kırılmak ama maalesef sourceforge sitesinde bununla ilgili hiçbir dosya var gibi görünüyor. Bir şeyleri özlüyor muyum, yoksa cevabını yazdığından beri bu itirazda kaldı mı?
Greenonline

Yukarıdaki açıklamada belirtildiği gibi, arduino simülatörü kaynak forge sitesinde hiçbir dosya yok. Bunun için bir web sitesi var mı veya resmi IDE ile mac'te iyi çalışan başka bir simülatör var mı?
gordanvij

4
Simuino korkunç, profesyonelce ve işe yaramaz. Nasıl kodlayacakları konusunda hiçbir ipucu yok. Arduino Simulator, henüz yayınlanmamış. CodeBlocks yalnızca Windows. Arduino için Simülatör açık kaynak değildir.
dhchdhd

81

Bunun için circuits.io aka TinkerCAD kullanmayı seviyorum .

Bulut tabanlı ve PCB tasarımı ve işbirliği gibi bazı güzel özelliklere sahip.

IMO Arduino simülasyonu ve yeteneği etkileyici ve sezgiseldir.


3
Çok güzel ve temiz ve temel işlevsellik gerçekten etkileyici, kullanımı kolay ve güçlü. Bununla birlikte, birçok ortak parça (LCD ve sıcaklık sensörleri dahil) henüz desteklenmemektedir. Bu aşamada temel tasarımlardan başka her şeyi test edebileceğinizden şüpheliyim. Umarım bu zamanla iyileşir.
Suma

Hızlı bir deneme yaptım ve ücretsiz bir ürün için çok etkileyici buldum . Simülasyon gerçekçiliği açısından sınırlarını bilmiyorum, ama editör çok cana yakın ve sadece doğru pin ve yanıp sönen bir döngü ile otomatik olarak oluşturulan koda uygun yuvaya bir led yerleştirmek!
heltonbiker

benim seçimim bile 123d olurdu, ancak bu site hakkında tek şikayetim yeni bileşenler eklememeleri. Onların listesinde bazı yeni bileşenler olabilir Bu gerçekten harika olur
KD.

2
Elektronik laboratuarları parçası circuits.io siteye taşındığını tinkercad.com sen altında bulabilirsiniz, devrelerin .
SiggyF

1
Düzenledim ve bağlantıları güncelledim.
sa_leinad

40

Elektronik simülatörleri dünyasında birçok seçenek var, ancak circuits.io aka TinkerCAD muhtemelen en çok yönlü olanı.

  • Devrenizi gerçek gibi görünen sanal bir breadboard üzerinde oluşturabilirsiniz.
  • Soyut dalga formlarıyla uğraşmak yerine gerçek zamanlı simülasyon sırasında bir LED'in yanıp sönmesini izleyebilir veya bir düğmeye basabilirsiniz.
  • 555 zamanlayıcı veya vardiya kayıtları gibi dijital cihazları, dirençler ve LED'ler gibi (etkileşimli) analog bileşenlerle birleştirebilirsiniz.
  • Arduino'yu programlayabilir ve mikrodenetleyiciyi etrafındaki analog devre ile birlikte taklit edebilirsiniz.
  • Bir Arduino'da hata ayıklayabilirsiniz: simülatör kırılma noktasına ulaştığında, simülasyon duraklatılır ve kodunuzdaki her değişkeni ve devrenizdeki her voltaj veya akımı kolayca kontrol edebilirsiniz.
  • UART, I2C ve SPI gibi farklı iletişim protokollerini kullanabilir ve gözlemleyebilirsiniz.
  • Simülasyonu bir I2C dizisinin ortasında sürücü koduna bir kesme noktası koyarak duraklatabilirsiniz (örn. I2C olayları için kesme servis rutini)
  • Bedava!

Örnek

Bu, IR Uzaktan Kumandası ve LCD Ekranı olan bir örnek devredir.

Uyarı: Biz 123D Devrelerinin üreticisiyiz


1
Arduino IDE ile nasıl oynuyor ? flaş, hata ayıklama, vb mümkün olurdu?
rraallvv

14

Hiçbir simülatörün gerçek yaşam durumlarını üretmeyeceğini unutmayın. Arduino forumunda, aşağıdakiler gibi ince bir şey olduğu ortaya çıkan kod ya da elektronik sorunlarıyla ilgili çok sayıda yazı var:

  • Zamanlama sorunları
  • Yarış koşulları (ilgili / bağımlı olaylar her zaman aynı sırada gerçekleşmez)
  • Gerilim seviyeleri, örn. kayan giriş pimleri
  • Arduino voltajını sıfırlayacak kadar düşüren tahrik motorları
  • Dekuplaj kapasitörlerine sahip değil
  • Giriş pinleri "tanımsız" durumda (ör. 2 veya daha az V'nin DÜŞÜK ve 3V veya daha fazla YÜKSEK olduğu bir pin üzerinde 2.5V)
  • Geçici işleyicilerin geçici olarak bildirilmeyen değişkenler gibi sorunları
  • Motorlarda geri tepme diyotları olmaması nedeniyle voltaj yükselmesi
  • Geçerli çizim donanımın sağlayabileceği miktarı aştığı için işlemci 10'dan fazla LED'i yeniden başlatıyor.
  • Yalnızca 9 µS mevcut olduğunda bir kesintiyi işlemek için 10 µS alan kesme işleyicileri.

Doğaları gereği simülatörler bunların hepsini çoğaltamazlar. Olsalar bile, "motorlardan rastgele sesler çıkar" seçeneğini değiştirmeyi düşünür müsünüz?


Tahtanın gelmesi için hazırlık olarak, IDE'yi indirin ve programlamaya başlayın. Kütüphaneleri kurabilir, kod yazabilir ve sözdizimi hatasız olabilir, düzenli bir şekilde düzenleyebilir ve donanım sizin elinizde olduğunda genellikle büyük güne hazır olabilirsiniz.


Eğlenin ve Arduino'nuzu denemenin tadını çıkarın!


13

Sen kullanabilirsiniz yenka dijital, analog ve seri I / O ile Arduino, PIX, PIXACE ve diğer kurulları simüle etmek (ev kullanımı için ücretsiz). Çok sayıda bileşen ve örnek proje sunar.

Ekran görüntüsü:

Yenka Arduino simülasyonu


Arduino IDE'den hata ayıklanabilir, programlanabilir mi?
rraallvv


9

Bu web sitesinin hem emülatörlerin hem de simülatörlerin fiyatlarının ve uygunluk durumlarının bir listesine sahip olduğuna inanıyorum .

Güncelleme:

Bazı kullanıcılar söz konusu web sitesinde kopuk bağlantılar bulunduğundan, işte bulduğum öykünücüler. Belirtilen bağlantıdan bazı açıklamaların alınabileceğini unutmayın:

  • Emulino : Arduino'ya özgü MCU'ları taklit eden, erken gelişimde açık kaynaklı bir linux tabanlı yazılımdır.

  • Emulare : Genel amaçlı bir donanım emülatörüdür. Gömülü yazılım geliştirme için elektronik simülasyonlar oluşturmak için merkezi bir arayüz sağlamayı amaçlamaktadır. Şu anda emulare, mikrodenetleyicilerin ATMega hattına odaklanmaktadır (Arduino UNO, ATMega işlemciye sahiptir).

  • SimAVR : Linux için avr-gcc kullanan herhangi bir platform için yeni bir AVR simülatörüdür. Simülatör, ELF dosyalarını doğrudan yükler ve bir .elf bölümü kullanarak doğrudan benzetimi yapılan kodda simülasyon parametrelerini belirtmenin bir yolu bile vardır. Birçok ATMega işlemcisinin emülasyonunu destekliyor ve yenilerini bile eklemenin kolay olduğu belirtiliyor.

  • Amtel Studio : Bu öykünme teriminden bahsedilmiyor gibi görünüyor, ancak kodunuzu Arduino gibi pek çok platform için hata ayıklamak karmaşık bir IDE. Atmel Studio 7, Arduino geliştirme ortamında yaratılan projelerin kesintisiz tek tıkla içe aktarılmasını sağlar. Çiziminiz, referans aldığı tüm kütüphaneler dahil, Studio 7'ye C ++ projesi olarak alınacaktır. İçe aktarıldıktan sonra, tasarımınıza ince ayar yapmak ve hata ayıklamak için Studio 7'nin tüm özelliklerinden yararlanabilirsiniz. Atmel Studio 7, Arduino Zero panosundaki güçlü gömülü hata ayıklayıcısını tamamen destekler. Diğer Arduino kartlarında, hata ayıklama konektörlerini açığa çıkaran kalkan adaptörleri mevcuttur veya Atmel HW eko sisteminden tam anlamıyla yararlanmak için mevcut Xplained-Mini / PRO kartlarından birine geçin.

Kodunuzu test etmek için EasyEDA gibi simülatörleri kullanabilirsiniz ve çoğu durumda cihaz üzerinde çalıştırabilirsiniz. Ancak, elektronik bileşenlerin niteliği göz önüne alındığında, beklenen sonuçları elde etmek için harici dirençler, kapasitörler vb. Sağlamanız gerekebileceğini unutmayın.


Link sadece iyi bir şey değil cevaplar burada çünkü bağlantılı site aşağı gittiğinde yararsız olacaktır. Lütfen bir özet yazın ve cevabınızın değer kattığından ve sadece sahip olduğumuz yanıtları tekrarlamadığından emin olun.
totymedli

@Totymedli'ye katılıyorum - bu bağlantı kesilirse cevap işe yaramaz hale gelir. Lütfen en azından belirtilen emülatörleri ve mevcut fiyatı özetleyin. Eğer yardımcı olursa, mermi noktaları oluşturmak için çizgileri yıldız işaretiyle başlatabilirsiniz.
Nick Gammon

7

Virtualbreadboard, Neredeyse tüm Arduino dağıtım örneklerini ve bir dizi çevresel donanımı kapsayan örnekleri içeren bir JOTM Arduino ve bir AVR Komut Seti simülatörü içeren yeni bir VBB4Arduino 'Two Arduino's' sürümüne sahiptir - LCD'ler, WS2812 Neo LEDS, Motorlar, Servo. , Mantık Analizörü ve daha fazlası.

http://www.virtualbreadboard.com

Feragatname: Sanal Breadboard'un yazarıyım


6

Arduino için Simülatör'ü deneyin - en iyisidir, ancak geliştirme ekibinin bir parçası olduğumuz için önyargılıyız. Son birkaç yılda neredeyse 5 bin Arduino kullanıcısı olmasına rağmen, herkes 19.99 $ ödemek istemiyor. Arduino için 45 gün veya 100 eskiz yük ve maksimum 200 hat için çalışan ücretsiz bir Simülatör sürümü var. Bunu dene ve sonra bunu karşılayabilirsen ve / veya buna değer gözüküyorsa satın al.

Doğru olmayan veya iyileştirilebilecek bir şey varsa, bize bildirin - herkesin yaptığı ve sahip olduğu, bu yüzden Arduino için Simülatör% 99 kullanıcı fikirleri ve hata raporları tarafından oluşturuldu.

Ayrıca, kaliteye yaklaştığımız tek program Proteus, ancak bu tam bir PCB tasarım stüdyosu ve çok pahalı görünüyor - yani 20 dolardan fazla. Son kullanıcı fiyatını 200 $ 'a yükseltmek için yapılan istekleri görmezden gelmeyi planlıyoruz.


5

Örneğin simülatörümü kullanabilirsin. Bu, özellikle birbirine bağlı devre benzeri nesnelerin döngüsel olarak değerlendirilmesiyle çoklu görev yapmanın sağlandığı PLC benzeri uygulamalar için uygundur: Zamanlayıcılar, İşaretleyiciler, Mandallar, Oneshots ve Kayıtlar. İndirilen örneklerden anlaşılacağı gibi, kontrollü sisteminizi de simüle etmek için kullanabilirsiniz. Mütevazı görselleştirme kapasitelerine sahip, zaman çizelgesi çizelgeleri çizebiliyor ve çalışan bir simülasyon sırasında tüm değişkenlere gerçek zamanlı olarak cq kuvvetine erişmenize ve bunları değiştirmenize izin veriyor. Ayrıca zamanı dondurabilirsiniz. Kontrolünüzün davranışından memnun olduğunuzda, gerçek bir Arduino'ya yüklenecek C kodunu oluşturur.

https://pypi.python.org/pypi/SimPyLC


1

bir masaüstü bilgisayar kullanarak kodumu yazabiliyor ve öyleyebiliyor / test edebiliyorum

Bir masaüstü bilgisayarı kullanarak "ünite testi" yapabilmek istiyorsan, arduino_ci adlı bir kütüphane sunabilirim .

Öykünme teklif etmiyor. Testlerinizi kodda ifade edersiniz. Örneğin, burada bir bağlantı noktasına yazılan verileri doğrulayan referans belgelerinden alınan bir test :

unittest(pin_history)
{
  GodmodeState* state = GODMODE();
  int myPin = 3;
  state->reset();            // pin will start LOW
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, HIGH);

  // pin history is queued in case we want to analyze it later.
  // we expect 6 values in that queue.
  assertEqual(6, state->digitalPin[1].size());
  bool expected[6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH};
  bool actual[6];

  // convert history queue into an array so we can verify it.
  // we expect to find 6 values: the 5 we set, plus the initial LOW
  // and this is where/how we assert that
  int numMoved = state->digitalPin[myPin].toArray(actual, 6);
  assertEqual(6, numMoved);

  // verify each element
  for (int i = 0; i < 6; ++i) {
    assertEqual(expected[i], actual[i]);
  }
}

Uygulamada, muhtemelen digitalWriteişlevleri doğrudan çağırmazsınız - kütüphanenizdeki bir işlevi çağırırsınız, ardından “dünya devletinin” (burada GODMODEyapı tarafından temsil edilir ) kitaplığınızın yapmasını beklediğinizle eşleştiğini doğrularsınız .


0

Evet yapabilirsin ve oldukça kolay. TinkerCAD adında harika bir çevrimiçi simülasyon (tamamen ücretsiz) var . Transistör, LED, IC ve Arduino gibi parçalarla mükemmel bir breadboard simülasyonuna sahiptir. Arduino'yu programlayabilir ve hepsini etkileşimli girişleri (butonlar, DIP anahtarları vb.) İçeren canlı bir simülasyonda çalıştırabilirsiniz.


[Düzenle: Aşağıdaki metin, Circuits.io'ya , yani Eagle PCB'ye taşınan işlevselliği ifade eder ]

Hepsi bu değil. Ayrıca devre için ayrı bir sekme şeması ve breadboard devrenizin PCB tasarımı için başka bir sekme içerir! Veya şemalarınızı sıfırdan yapabilir ve PCB'nizi oradan yapabilirsiniz.

Devre tasarımlarınızı yaptırabilir ve satın alabilirsiniz. Bunların hepsini circuits.io'da yapabilirsiniz ve gerçek Arduino'nuzu bozma riskiniz yoktur. Ayrıca simülasyonda uyarı göstergeleri vardır (örneğin, bir LED'de veya bir IC'de yeterli direnç kullanmadıysanız).

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.