Fråga:
Kan jag programmera för Arduino utan att ha en riktig styrelse?
totymedli
2014-02-12 12:15:47 UTC
view on stackexchange narkive permalink

Jag skulle vilja starta utvecklingen av några grundläggande Arduino-projekt men jag äger inte ett Arduino-kort ännu. Finns det ett sätt att jag kan skriva min kod och emulera / testa den med en stationär dator så efter att mitt bräde anländer måste jag bara ladda upp och köra mitt projekt på det?

Jag är också intresserad, hittade du en som spelar bra med [Arduino IDE] (https://www.arduino.cc/en/Main/Software)? det vill säga detekteras av IDE som om det var ett kort, med all dess funktionalitet.
Fjorton svar:
#1
+132
Anindo Ghosh
2014-02-12 14:04:29 UTC
view on stackexchange narkive permalink

Det finns en hel massa Arduino-simulatorer där ute, många gratis och vissa betalda produkter också.

  • CodeBlocks Arduino-utvecklingsmiljön inkluderar en gratis Arduino simulator, fortfarande under utveckling men funktionell.
  • Simuino simulerar Arduino Uno- och Mega-stift - inte en snygg realistisk simulator, men den fungerar.
  • Den Python-baserade Arduino Simulator är ett annat alternativ, som spelar bra med den officiella IDE
  • Virtronics Simulator för Arduino ser lovande ut, men jag ser inte varför skulle jag betala 14,99 USD för det, när jag kunde köpa en eller flera faktiska Arduino-kloner för det priset

Många andra Arduino-simulatorer finns där om du söker och nya tillkännages. till och med crowdfunded hela tiden.

som en anteckning, de är inte * emulatorer * utan * simulatorer *, den viktigaste skillnaden är att den inte kör koden på en AVR-virtuell maskin (som vad * qemu * gör), utan binder Arduino-funktionerna till inbyggd kod. Så i princip kommer de inte att kunna köra inbyggda AVR-saker och register / timer-beteende kommer inte att vara detsamma som på riktig AVR-hårdvara. Se skillnaden väl förklarad i [det svaret] (http://programmers.stackexchange.com/a/134783/70303). Det är dock teoretiskt möjligt att emulera Arduino Due-kod med [qemu] (https://github.com/myokota/qemu-cortex-m3).
Du "förstår inte varför [en] skulle betala 14,99 USD för det, när [en] kunde köpa en eller flera faktiska Arduino-kloner för det priset"? Jag kan berätta varför: eftersom hårdvaran inte har en inbyggd felsökare med de funktioner som kan tillhandahållas av en simulator.
[Arduino Simulator] (http://sourceforge.net/projects/arduinosim/) väckte mitt intresse, men tyvärr verkar det inte ha några filer relaterade till det på sourceforge-webbplatsen. Saknar jag något, eller har det blivit föråldrat sedan du skrev ditt svar?
Som nämnts i ovanstående kommentar finns det inga filer på arduino-simulatorn. Finns det en webbplats för det eller finns det en annan simulator som fungerar bra i mac, med officiell IDE?
Simuino är hemskt, oprofessionellt och värdelöst. De har ingen aning om hur man kodar. Arduino Simulator har inga utgåvor. CodeBlocks är endast Windows. Simulator för Arduino är inte öppen källkod.
#2
+86
akellyirl
2014-02-12 19:47:35 UTC
view on stackexchange narkive permalink

Jag gillar att använda circuits.io aka TinkerCAD för detta.

Det är molnbaserat och har några fina funktioner inklusive PCB-design och samarbete.

IMO, Arduino-simuleringen och kapaciteten är imponerande och intuitiv.

Det är mycket trevligt och rent och grundläggande funktionalitet är riktigt imponerande, lätt att använda och kraftfull. Många vanliga delar (inklusive LCD- och temperatursensorer) stöds dock inte än. Jag tvivlar på att du kan testa allt annat än väldigt grundläggande mönster i detta skede. Jag hoppas att detta kommer att bli bättre med tiden.
Jag försökte det snabbt och tyckte att det _mycket_ imponerande för en gratis produkt. Jag känner inte till dess begränsningar när det gäller simuleringsrealism, men redaktören är väldigt vänlig och placerar bara en ledning i rätt plats automatiskt skapad kod med rätt stift och en blinkande slinga!
även mitt val skulle vara 123d men mitt enda klagomål om den här webbplatsen är att de inte lägger till nya komponenter. Det skulle vara riktigt bra om de kan ha några nya komponenter på sin lista
Den elektroniska laboratoriedelen av [circuits.io] (http://circuits.io) -sidan har flyttat till [tinkercad.com] (https://www.tinkercad.com), där du hittar den under ** kretsar * *.
Svaret är föråldrat
Jag har redigerat den och uppdaterat länkarna.
#3
+42
123D Circuits
2015-10-16 06:58:34 UTC
view on stackexchange narkive permalink

Det finns gott om alternativ i elektroniksimulatorns värld, men circuits.io aka TinkerCAD är förmodligen den mest mångsidiga där ute.

  • Du kan komponera din krets på ett virtuellt brädbräde som ser ut som riktigt.
  • Du kan faktiskt se en LED blinka eller trycka på en knapp under realtidsimulering istället för att kämpa med abstrakta vågformer. kombinera digitala enheter som en 555-timer eller skiftregister med (interaktiva) analoga komponenter som motstånd och lysdioder.
  • Du kan programmera en Arduino och simulera mikrokontrollen tillsammans med din analoga krets runt den.
  • Du kan felsöka en Arduino: när simulatorn når din brytpunkt är simuleringen pausad och du kan enkelt kontrollera varje variabel i din kod och varje spänning eller ström i din krets.
  • Du kan använda och observera olika kommunikationsprotokoll som UART, I2C och SPI.
  • Du kan pausa simuleringen mitt i en I2C-sekvens med pu ange en brytpunkt i förarkoden (t.ex. avbryta service rutin för I2C-händelser)
  • Det är GRATIS!

Example

Detta är en exempelkrets det har med en IR-fjärrkontroll och en LCD-skärm.

Ansvarsfriskrivning: Vi är tillverkarna av 123D-kretsar

Hur spelar det med [Arduino IDE] (https://www.arduino.cc/en/Main/Software)? skulle det vara tillgängligt för flash, felsökning, etc?
#4
+16
Nick Gammon
2015-07-02 12:57:38 UTC
view on stackexchange narkive permalink

Var medveten om att ingen simulator återger verkliga situationer. Det har varit massor av inlägg på Arduino-forumet om problem med kod eller elektronik, som visar sig vara något subtilt, till exempel:

  • Timing issues
  • Race conditions ( relaterade / beroende händelser som inte alltid sker i samma ordning)
  • Spänningsnivåer, t.ex. flytande ingångspinnar
  • Drivmotorer som tappar Arduino-spänningen tillräckligt för att den återställs
  • Att inte ha frikopplingskondensatorer
  • Ingångsstift är i "odefinierat" tillstånd (t.ex. . 2,5V på en stift där 2 eller mindre V är LÅG och 3V eller mer är HÖG)
  • Problem med avbrottshanterare, till exempel variabler som inte förklaras flyktiga
  • Spänningspikar på grund av saknar flyback-dioder på motorer
  • Processorn som återställs när fler än 10 lysdioder är tända eftersom strömavdraget överstiger den mängd som hårdvaran kan leverera
  • Avbryt hanterare som tar 10 µS för att bearbeta en avbryt när endast 9 µS är tillgängligt.

Simulatorer kan till sin natur inte reproducera allt detta. Även om de kunde, skulle du tänka att växla alternativet "sätt in slumpmässigt brus från motorer"?


När du vill göra dig redo för att kortet ska komma fram, ladda ner IDE och börja programmera. Du kan få bibliotek installerade, kodskrivna och utan syntaxfel, organisera det snyggt och vara i allmänhet redo för den stora dagen när hårdvaran är i dina händer.


Ha kul och njut av att experimentera med din Arduino!

Detta är en bra checklista för felsökning för när en krets inte uppför sig hamn visas "logiskt" korrekt.
#5
+13
niutech
2014-07-23 18:48:07 UTC
view on stackexchange narkive permalink

Du kan använda Yenka (gratis för hemmabruk) för att simulera Arduino, PIX, PIXACE och andra kort med digital, analog och seriell I / O. Det ger många komponenter och exempelprojekt.

Skärmdump:

Yenka Arduino simulation

Kan det programmeras, felsökas från [Arduino IDE] (https://www.arduino.cc/en/Main/Software)?
#6
+12
Ahmed Hamdy
2014-02-12 15:54:54 UTC
view on stackexchange narkive permalink

Ja, det kan du, försök att använda Proteus ISIS för att simulera din kod ...

För full emulering av Arduino finns det ett shareware-program som heter VBB ( Virtual BreadBoard), jag provade det också och det var trevligt.

Redigera: Du kan kolla min detaljerade handledning här om hur man simulerar på Proteus ISIS

#7
+10
Aaron Azhari
2016-01-20 20:05:59 UTC
view on stackexchange narkive permalink

Jag tror att den här webbplatsen har en lista över både emulatorer och simulatorer samt deras pris och tillgänglighet.

Uppdatering:

Eftersom vissa användare nämnde det är trasiga länkar på den webbplatsen, här är ett urval av emulatorer som jag hittade. Observera att vissa beskrivningar kan ha tagits från nämnda länk:

  • Emulino: Är en Linux-baserad programvara med öppen källkod i tidig utveckling som efterliknar Arduino-specifik MCU: er.

  • Emulare: är en hårdvaruemulator för allmänt ändamål. Det syftar till att tillhandahålla ett centralt gränssnitt för att bygga elektroniska simuleringar för inbyggd mjukvaruutveckling. För närvarande fokuserar emulare på ATMega-linjen av mikrokontroller (Arduino UNO har ATMega-processorn).

  • SimAVR: är en ny AVR-simulator för Linux, eller någon annan plattform som använder avr-gcc. Simulatorn laddar ELF-filer direkt, och det finns till och med ett sätt att specificera simuleringsparametrar direkt i den emulerade koden med hjälp av en .elf-sektion. Den stöder emulering av många ATMega-processorer och det nämns att det är enkelt att till och med lägga till nya.

  • Amtel Studio: Det verkar inte som nämna termen emulering, men det är en sofistikerad IDE att felsöka din kod för många plattformar speciellt Arduino. Atmel Studio 7 har sömlös ett klickimport av projekt som skapats i Arduino-utvecklingsmiljön. Din skiss, inklusive alla bibliotek som den hänvisar till, kommer att importeras till Studio 7 som ett C ++ - projekt. När du väl har importerat kan du utnyttja alla funktioner i Studio 7 för att finjustera och felsöka din design. Atmel Studio 7 stöder fullt ut den kraftfulla inbäddade felsökaren på Arduino Zero-kortet. För andra Arduino-kort finns skärmadaptrar som exponerar felsökningskontakter, eller byt till ett av de många tillgängliga Xplained-Mini / PRO-korten för att fullt ut utnyttja Atmel HW-ekosystemet. >

    Du kan fortfarande använda simulatorer som EasyEDA för att testa din kod och i de flesta fall kunna köra den på enheten. Men notera att med tanke på de elektroniska komponenternas beskaffenhet kan du behöva tillhandahålla externa motstånd, kondensatorer etc. för att få de förväntade resultaten.

Länken svarar bara inte bra här eftersom de kommer att vara värdelösa när den länkade webbplatsen går ner. Skriv en sammanfattning och se också till att ditt svar tillför värde och inte bara upprepar de vi redan har.
Jag håller med @totymedli - om den länken blir död blir svaret värdelöst. Sammanfatta åtminstone de nämnda emulatorerna och det aktuella priset. Du kan starta rader med en asterisk för att göra punktpunkter, om det hjälper.
#8
+8
James Caska
2015-04-03 01:41:16 UTC
view on stackexchange narkive permalink

Virtualbreadboard har en ny VBB4Arduino 'Two Arduino's' -utgåva som innehåller BÅDE en JVM Arduino-emulator OCH en AVR-instruktionsuppsättningssimulator med exempel som täcker nästan alla Arduino-distributionsexemplen och en massa kringutrustning - LCD-skärmar, WS2812 Neo LEDS, Motors, Servo's, Logic Analyzer och mer.

http://www.virtualbreadboard.com

Ansvarsfriskrivning: Jag är författare till Virtual Breadboard

#9
+6
Virtronics
2014-12-13 14:00:56 UTC
view on stackexchange narkive permalink

Testa Simulator för Arduino - det är bäst men då är vi partiska eftersom vi är en del av utvecklingsteamet. Inte alla vill betala $ 19,99 även om nästan 5 000 Arduino-användare har gjort de senaste åren. Det finns en gratis version av Simulator för Arduino som körs i 45 dagar eller 100 skissbelastningar och max 200 rader. Prova detta och köp sedan om du har råd och / eller om det verkar värt.

Om det är något som inte stämmer eller som kan förbättras, låt oss veta - alla andra gör och har, varför Simulator för Arduino har byggts 99% av användaridéer och felrapporter.

Det enda andra programmet vi har testat och kommer nära kvalitet är Proteus men det här är en full PCB-designstudio och ser ut att vara väldigt dyr - dvs. mycket mer än $ 20. Och vi planerar att ignorera en ny användarförfrågan om att höja priset till $ 200.

#10
+5
Jacques de Hooge
2015-11-01 20:23:53 UTC
view on stackexchange narkive permalink

Du kan t.ex. använd min simulator. Det är särskilt lämpligt för PLC-liknande applikationer, där multitasking uppnås genom cyklisk utvärdering av sammankopplade kretsliknande objekt: Timers, Markers, Latches, Oneshots and Registers.Du kan också använda den för att simulera ditt kontrollerade system, vilket framgår av exemplen i nedladdningen. Den har blygsamma visualiseringskapacitet, kan rita tidtabeller och låter dig komma åt och ändra c.q. tvinga alla variabler i realtid under en löpande simulering. Du kan också frysa tid. När du är nöjd med din kontrolls beteende genererar den C-koden som ska laddas upp till en faktisk Arduino.

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

#11
+4
goodarduinocode.com
2020-08-24 16:01:01 UTC
view on stackexchange narkive permalink

Vi arbetar med online Arduino-emulator med Arduino-motor baserad på AVR-simulator. Du kan kopiera och klistra in arduino-koden direkt och köra koden allt i webbläsaren. Detta behöver ingen behörighet eller inloggningsinformation. Det är gratis att använda.

Vad gör det speciellt? Man kan direkt lägga till de berömda biblioteken från GitHub och se prover direkt i webbläsaren. Detta är verkligen bra för att spara tid. Några exempel ges nedan

GitHub-biblioteket exempel:

https://github.com/lexus2k/ssd1306

Arduino lekplatsutgång kan ses här:

https://wokwi.com/arduino/libraries/ssd1306/draw_bitmap

Du hittar fler exempel på wokwi.com i länken nedan:

https://wokwi.com/arduino/libraries

Listan som stöds av element är härKnapparLEDsMotståndBuzzersOLED visar1602 teckenvisning och mer.

Redigera:

Stödjer nu även FastLEDs här:

FastLEDs simulerings sida

Här är listan över element som stöds:

Arduino-simulatorn är gratis att använda för Arduino-communityn. Vi lägger till fler element efter varandra. Det är gratis och vi inbjuder dig att prova det också.

Lämna en kommentar för att lägga till fler bibliotek eller funktioner också

enter image description here enter image description here

enter image description here

enter image description hereenter image description hereenter image description hereenter image description here

#12
+2
Ian
2019-01-03 19:16:06 UTC
view on stackexchange narkive permalink

ett sätt som jag kan skriva min kod och emulera / testa den med en stationär dator

Om du menar att kunna "enhetstest" med en stationär dator kan jag erbjuda ett bibliotek jag skrev som heter arduino_ci.

Det erbjuder inte emulering. Du skulle uttrycka dina tester i kod. Här är till exempel ett test från referensdokumentationen som validerar data skrivna till en port:

  unittest (pin_history) {GodmodeState * state = GODMODE () ; int myPin = 3; state->reset (); // pin kommer att starta LOW digitalWrite (myPin, HIGH); digitalWrite (myPin, LOW); digitalWrite (myPin, LOW); digitalWrite (myPin, HIGH); digitalWrite (myPin, HIGH); // pin-historik är kö i fallet om vi vill analysera den senare. // vi förväntar oss 6 värden i den kön. assertEqual (6, state->digitalPin [1] .storlek ()); bool förväntas [6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH}; bool faktisk [6]; // konvertera historikkön till en matris så att vi kan verifiera den. // vi förväntar oss att hitta 6 värden: de 5 vi ställer in plus den initiala LOW // och det är här / hur vi hävdar att int numMoved = state->digitalPin [myPin] .toArray (faktisk, 6); assertEqual (6, numMoved); // verifiera varje element för (int i = 0; i < 6; ++ i) {assertEqual (förväntat [i], faktisk [i]); }}  

I praktiken skulle du förmodligen inte ringa digitalWrite -funktionerna direkt - du skulle ringa en funktion i ditt bibliotek och sedan verifiera att " världsstat "(representeras här av GODMODE -konstruktionen) matchar vad du förväntade dig att ditt bibliotek skulle göra.

#13
+1
Dmitry Grigoryev
2020-08-26 17:53:38 UTC
view on stackexchange narkive permalink

Ett alternativ till simulatorer är tjänster som liknar online-kompilatorer som coliru, som tillåter användare att bygga och köra sin kod på ett fjärrsystem. Detta tillvägagångssätt har samma begränsningar som online-kompilatorer:

  • Hårdvarukonfigurationen och tillståndet kan inte ändras på distans, förutom för uttryckligen definierade gränssnitt.

  • Ändringarna i hårdvarustillståndet kan inte observeras, förutom för uttryckligen definierade gränssnitt.

De flesta online-kompilatorer ger vanligtvis användare åtkomst till kommandorad och process STOUT. På Arduino skulle tillhandahållande av fjärråtkomst till den seriella porten ge en liknande grad av kontroll: användare skulle kunna observera och kontrollera sin löpande skiss genom UART, men skulle inte kunna ansluta / ta bort ledningar, tryckknappar, agera på externa sensorer osv.

Överraskande nog kunde jag inte hitta några sådana onlinetjänster, så jag slutade skriva min egen - HW Farm. Om du har en webbserver och Arduinos kan du ansluta till den, du kan installera HW Farm på den och låta människor komma åt dessa Arduinos via ett webbgränssnitt. Jag värd även en sådan server själv, som har en enda Arduino Mega med en massa I2C-enheter anslutna till den. Du kan testa det, men förvänta dig inte att det är online och tillgängligt hela tiden.

#14
  0
I. Golsby
2016-06-27 03:07:52 UTC
view on stackexchange narkive permalink

Ja du kan, och ganska enkelt. Det finns en underbar online-simulering (helt gratis) som heter TinkerCAD. Den har en utmärkt brädbrädesimulering, med delar som transistorer, lysdioder, IC och Arduino. Du kan programmera Arduino och köra allt i en live-simulering som innehåller interaktiva ingångar (tryckknappar, DIP-omkopplare etc.).


[Edit: Följande text hänvisar till funktionalitet som har flyttats till Circuits.io, nämligen Eagle PCB]

Det är inte allt. Den innehåller också i en separat flikschema för din krets och en annan flik för PCB-design av din breadboard-krets! Eller så kan du bara skapa dina scheman från grunden och göra din PCB därifrån.

Du kan låta dina kretsdesigner göra och du kan köpa dem. Du kan göra allt detta i circuits.io, och du riskerar inte att förstöra din faktiska Arduino. Det har också varningsindikatorer i simuleringen (till exempel om du inte använde tillräckligt med motstånd på en LED eller en IC).



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...