실제 보드 없이도 Arduino를 프로그래밍 할 수 있습니까?


205

기본적인 Arduino 프로젝트 개발을 시작하고 싶지만 아직 Arduino 보드를 소유하고 있지 않습니다. 데스크탑 컴퓨터를 사용하여 코드를 작성하고 에뮬레이트 / 테스트 할 수있는 방법이 있습니까? 보드가 도착하면 프로젝트를 업로드하고 실행해야합니다.


1
나도 관심이 있습니다. Arduino IDE 와 잘 어울리는 것을 찾으 셨습니까? 즉, 모든 기능을 갖춘 보드 인 것처럼 IDE에서 감지합니다.
rraallvv

답변:


128

Arduino 시뮬레이터가 많이 있으며, 무료이며 일부 유료 제품도 있습니다.

  • CodeBlocks 아두 이노 개발 환경은 여전히 개발하지만, 기능에 따라, 무료 아두 이노 시뮬레이터가 포함되어 있습니다.
  • Simuino 는 Arduino Uno 및 Mega 핀을 시뮬레이트합니다. 예쁘고 사실적인 시뮬레이터는 아니지만 작동합니다.
  • Python 기반 Arduino Simulator 는 공식 IDE와 잘 어울리는 또 다른 옵션입니다.
  • Arduino 용 Virtronics Simulator 는 유망 해 보이지만 그 가격에 하나 이상의 실제 Arduino 클론을 구입할 수있을 때 왜 14.99 달러를 지불하는지 알 수 없습니다.

검색하면 많은 다른 Arduino 시뮬레이터가 있으며 새로운 시뮬레이터가 항상 크라우드 펀딩되어 발표되고 있습니다.


10
참고로, 이들은 에뮬레이터가 아니라 시뮬레이터입니다 . 가장 중요한 차이점은 AVR 가상 머신에서 코드를 실행하지 않지만 ( qemu 와 같은 ) Arduino 기능을 기본 코드에 바인딩한다는 것입니다. 따라서 기본적으로 기본 AVR 기능을 실행할 수 없으며 등록 / 타이머 동작이 실제 AVR 하드웨어와 동일하지 않습니다. 그 대답에 잘 설명 된 차이점을보십시오 . 그러나 이론적으로 qemu 로 Arduino Due 코드를 에뮬레이트하는 것이 가능합니다 .
zmo

5
"[1]이 (가) 해당 가격으로 하나 이상의 실제 Arduino 클론을 구입할 수있을 때 [1]가 $ 14.99를 지불하는 이유를 모르십니까?" 하드웨어에 시뮬레이터가 제공 할 수있는 기능이있는 내장 디버거가 없기 때문에 이유를 알 수 있습니다.
R. Martinho Fernandes

8
아두 이노 시뮬레이터 내 관심을 감정을 상하게하지만, 불행히도 소스 포지 사이트에 관련에 파일이없는 것으로 나타납니다. 내가 뭔가를 놓쳤습니까, 아니면 답을 쓴 후 더 이상 사용되지 않습니까?
Greenonline

위에서 언급했듯이 arduino 시뮬레이터 소스 포지 사이트에는 파일이 없습니다. 웹 사이트가 있거나 공식 IDE를 사용하여 Mac에서 잘 작동하는 다른 시뮬레이터가 있습니까?
gordanvij 2016 년

4
Simuino는 끔찍하고 비전문적이며 쓸모가 없습니다. 코딩 방법에 대한 실마리가 없습니다. Arduino Simulator에는 릴리스가 없습니다. CodeBlocks는 Windows 전용입니다. Arduino 용 시뮬레이터는 오픈 소스가 아닙니다.
dhchdhd

81

나는 이것을 위해 circuits.io 일명 TinkerCAD 를 사용하고 싶습니다 .

클라우드 기반이며 PCB 설계 및 협업을 포함한 멋진 기능이 있습니다.

Arduino 시뮬레이션 및 기능은 인상적이고 직관적입니다.


3
매우 훌륭하고 깨끗하며 기본 기능은 실제로 인상적이고 사용하기 쉽고 강력합니다. 그러나 많은 공통 부품 (LCD 및 온도 센서 포함)은 아직 지원되지 않습니다. 이 단계에서 매우 기본적인 디자인 외에는 아무 것도 테스트 할 수없는 것 같습니다. 시간이 지남에 따라 더 나아지기를 바랍니다.
Suma

나는 그것을 빨리 시도하고 무료 제품에 대해 매우 인상적이라는 것을 알았습니다 . 시뮬레이션 리얼리즘 측면에서 그 한계를 모르지만 편집기는 매우 친숙하며 올바른 핀과 깜박이는 루프가있는 자동으로 생성 된 올바른 슬롯에 LED를 배치하면됩니다!
heltonbiker

내 선택조차도 123d이지만이 사이트에 대한 유일한 불만은 새로운 구성 요소를 추가하지 않는다는 것입니다. 그들의 목록에 몇 가지 새로운 구성 요소를 가질 수 있다면 정말 좋은 것
KD합니다.

2
circuits.io 사이트 의 전자 랩 부분이 tinkercad.com 으로 이동하여 회로에서 찾을 수 있습니다 .
SiggyF

1
나는 그것을 편집하고 링크를 업데이트했다.
sa_leinad

40

전자 시뮬레이터의 세계에는 수많은 옵션이 있지만 circuits.io 일명 TinkerCAD 는 아마도 가장 다재다능한 것입니다.

  • 실제처럼 보이는 가상 브레드 보드에서 회로를 구성 할 수 있습니다.
  • 실제로는 추상 파형으로 고생하지 않고 실시간 시뮬레이션 중에 LED가 깜박이거나 버튼을 누를 수 있습니다.
  • 555 타이머 또는 시프트 레지스터와 같은 디지털 장치를 저항 및 LED와 같은 (대화식) 아날로그 구성 요소와 결합 할 수 있습니다.
  • Arduino를 프로그래밍하고 주변의 아날로그 회로와 함께 마이크로 컨트롤러를 시뮬레이션 할 수 있습니다.
  • Arduino를 디버깅 할 수 있습니다. 시뮬레이터가 중단 점에 도달하면 시뮬레이션이 일시 중지되고 코드의 모든 변수와 회로의 모든 전압 또는 전류를 쉽게 확인할 수 있습니다.
  • UART, I2C 및 SPI와 같은 다른 통신 프로토콜을 사용하고 관찰 할 수 있습니다.
  • 드라이버 코드에 중단 점 (예 : I2C 이벤트에 대한 인터럽트 서비스 루틴)을 넣어 I2C 시퀀스 중간에 시뮬레이션을 일시 중지 할 수 있습니다.
  • 무료입니다!

예

이것은 IR 리모콘과 LCD 화면이있는 회로 예입니다.

면책 조항 : 우리는 123D Circuits의 제조업체입니다


1
Arduino IDE 와 어떻게 작동 합니까? 플래시, 디버그 등이 가능합니까?
rraallvv

14

실제 상황을 재현하는 시뮬레이터는 없습니다. Arduino 포럼에는 코드 또는 전자 제품 관련 문제에 대한 게시물이 많이 있습니다.이 게시물은 다음과 같이 미묘합니다.

  • 타이밍 문제
  • 경쟁 조건 (관련 ​​/ 종종 이벤트가 항상 같은 순서로 발생하지는 않음)
  • 전압 레벨 (예 : 플로팅 입력 핀
  • 재설정 할 수있을만큼 Arduino 전압을 떨어 뜨리는 구동 모터
  • 디커플링 커패시터가없는 경우
  • "정의되지 않은"상태에있는 입력 핀 (예 : 2 이하 V가 LOW이고 3V 이상이 HIGH 인 핀의 경우 2.5V)
  • 휘발성으로 선언되지 않은 변수와 같은 인터럽트 처리기 문제
  • 모터에 플라이 백 다이오드가 없어 전압 스파이크
  • 전류 소모가 하드웨어가 공급할 수있는 양을 초과하여 10 개 이상의 LED가 켜지면 프로세서 재설정
  • 9µS 만 사용 가능한 경우 인터럽트를 처리하기 위해 10µS를 사용하는 인터럽트 핸들러.

그 특성상 시뮬레이터는이 모든 것을 재현 할 수 없습니다. 가능하더라도 "모터에서 임의 노이즈 삽입"옵션을 토글한다고 생각하십니까?


보드가 도착할 준비를하려면 IDE를 다운로드하고 프로그래밍을 시작하십시오. 라이브러리를 설치하고, 코드를 작성하고 구문 오류를 없애고 깔끔하게 정리할 수 있으며 일반적으로 하드웨어가 준비되어있는 큰 하루를 준비 할 수 있습니다.


Arduino로 즐거운 시간을 보내십시오.


13

Yenka (가정용 무료)를 사용하여 Arduino, PIX, PIXACE 및 기타 보드를 디지털, 아날로그 및 직렬 I / O로 시뮬레이션 할 수 있습니다 . 많은 컴포넌트와 샘플 프로젝트를 제공합니다.

스크린 샷 :

옌카 아두 이노 시뮬레이션


Arduino IDE 에서 프로그래밍하고 디버깅 할 수 있습니까 ?
rraallvv

12

예, 코드 시뮬레이션을 위해 Proteus ISIS 를 사용해보십시오 ...

Arduino의 전체 에뮬레이션을 위해 VBB (Virtual BreadBoard) 라는 쉐어웨어 프로그램 이 있습니다.

편집 : Proteus ISIS에서 시뮬레이션하는 방법에 대한 자세한 자습서를 여기서 확인할 수 있습니다


9

웹 사이트 에는 가격과 가용성과 함께 에뮬레이터와 시뮬레이터 목록 이 있다고 생각합니다 .

최신 정보:

일부 사용자는 해당 웹 사이트에 깨진 링크가 있다고 언급 했으므로 여기에 내가 찾은 에뮬레이터가 있습니다. 언급 된 링크에서 일부 설명이 나올 수 있습니다.

  • Emulino : 초기 개발에서 Arduino 관련 MCU를 에뮬레이트하는 오픈 소스 Linux 기반 소프트웨어입니다.

  • Emulare : 범용 하드웨어 에뮬레이터입니다. 임베디드 소프트웨어 개발을위한 전자 시뮬레이션을 구축하기위한 중앙 인터페이스를 제공하는 것을 목표로합니다. 현재 emulare는 ATMega 마이크로 컨트롤러 제품군에 중점을두고 있습니다 (Arduino UNO에는 ATMega 프로세서가 있습니다).

  • SimAVR : Linux 또는 avr-gcc를 사용하는 모든 플랫폼을위한 새로운 AVR 시뮬레이터입니다. 시뮬레이터는 ELF 파일을 직접로드하며, .elf 섹션을 사용하여 에뮬레이트 된 코드에서 시뮬레이션 매개 변수를 직접 지정할 수도 있습니다. 많은 ATMega 프로세서의 에뮬레이션을 지원하며 새로운 프로세서를 추가하기도 쉽다고 언급되어 있습니다.

  • Amtel Studio : 이것은 에뮬레이션이라는 용어를 언급하지는 않지만 많은 플랫폼, 특히 Arduino 용 코드를 디버깅하는 정교한 IDE입니다. Atmel Studio 7은 Arduino 개발 환경에서 생성 된 프로젝트를 원 클릭으로 완벽하게 가져옵니다. 참조하는 라이브러리를 포함한 스케치를 C ++ 프로젝트로 Studio 7로 가져옵니다. 가져온 후에는 Studio 7의 모든 기능을 활용하여 디자인을 미세 조정하고 디버깅 할 수 있습니다. Atmel Studio 7은 Arduino Zero 보드에서 강력한 임베디드 디버거를 완벽하게 지원합니다. 다른 Arduino 보드의 경우 디버그 커넥터를 노출하는 쉴드 어댑터를 사용할 수 있거나 사용 가능한 많은 Xplained-Mini / PRO 보드 중 하나로 전환하여 Atmel HW 에코 시스템을 완전히 활용할 수 있습니다.

EasyEDA 와 같은 시뮬레이터를 사용 하여 코드를 테스트 할 수 있으며 대부분의 경우 장치에서 코드를 실행할 수 있습니다. 그러나 전자 부품의 특성상 예상되는 결과를 얻으려면 외부 저항, 커패시터 등을 제공해야 할 수도 있습니다.


링크는 링크 된 사이트가 다운 될 때 쓸모가 없기 때문에 여기서는 좋은 답변이 아닙니다. 요약을 작성하고 답변이 기존의 값을 반복하는 것이 아니라 가치를 더하는지 확인하십시오.
totymedli

나는 @totymedli에 동의합니다-그 링크가 죽으면 대답이 쓸모 없게됩니다. 적어도 언급 된 에뮬레이터와 현재 가격을 요약하십시오. 별표로 줄을 시작하면 도움이되는 경우 글 머리 기호를 만들 수 있습니다.
Nick Gammon

7

Virtualbreadboard에는 JVM Arduino 에뮬레이터와 거의 모든 Arduino 배포 예제 및 주변 장치 하드웨어-LCD, WS2812 Neo LEDS, Motors, Servo의 모든 주변 장치를 포함하는 예제가 포함 된 AVR 명령어 세트 시뮬레이터를 포함하는 새로운 VBB4Arduino 'Two Arduino 's 에디션이 있습니다. , 로직 분석기 등.

http://www.virtualbreadboard.com

면책 조항 : 나는 가상 브레드 보드의 저자입니다


6

Arduino 용 Simulator를 사용해보십시오 . 최고이지만 개발 팀의 일원이므로 편향되어 있습니다. 지난 5 년간 거의 5k 명의 Arduino 사용자가 있었지만 모든 사람이 19.99 달러를 지불하고 싶어하는 것은 아닙니다. 45 일 동안 또는 100 회의 스케치로드와 최대 200 라인으로 실행되는 Simulator for Arduino의 무료 버전이 있습니다. 이것을 시도하고 당신이 그것을 감당할 수 있는지 그리고 / 또는 가치가있는 것처럼 사면 구입하십시오.

옳지 않거나 개선 될 수있는 것이 있다면 알려주세요. 다른 모든 사람들이 가지고 있고 가지고 있기 때문에, Arduino 용 시뮬레이터는 사용자 아이디어와 버그 보고서로 99 % 구축되었습니다.

또한 우리가 시도한 유일한 프로그램은 품질이 비슷하지만 Proteus이지만 전체 PCB 디자인 스튜디오이며 매우 비쌉니다. 즉 $ 20 이상입니다. 그리고 최근 사용자의 요청을 무시하여 가격을 $ 200로 인상 할 계획입니다.


5

예를 들어 내 시뮬레이터를 사용할 수 있습니다. 타이머, 마커, 래치, 원샷 및 레지스터와 같이 상호 연결된 회로와 유사한 객체를 주기적으로 평가하여 멀티 태스킹을 수행하는 PLC와 같은 애플리케이션에 특히 적합합니다. 이를 사용하여 제어 시스템을 시뮬레이션 할 수 있으며 다운로드의 예에서 명확 해집니다. 시각화 기능이 적당하고 타이밍 차트를 그릴 수 있으며 시뮬레이션을 실행하는 동안 실시간으로 모든 변수에 cq force를 액세스하고 변경할 수 있습니다. 또한 시간을 얼릴 수 있습니다. 컨트롤의 동작에 만족하면 실제 Arduino에 업로드 할 C 코드가 생성됩니다.

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


1

데스크탑 컴퓨터를 사용하여 코드를 작성하고 에뮬레이션 / 테스트 할 수있는 방법

데스크톱 컴퓨터를 사용하여 "유닛 테스트"를 할 수 있다면 arduino_ci 라는 라이브러리를 제공 할 수 있습니다 .

에뮬레이션을 제공하지 않습니다. 테스트를 코드로 표현할 것입니다. 예를 들어, 다음은 포트에 기록 된 데이터의 유효성을 검사하는 참조 문서 에서 가져온 테스트입니다 .

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]);
  }
}

실제로 digitalWrite함수를 직접 호출하지 않을 수도 있습니다. 라이브러리에서 함수를 호출 한 다음 "월드 상태"(여기서 GODMODE구문으로 표시)가 라이브러리에서 예상 한 것과 일치하는지 확인하십시오.


0

예, 가능하고 상당히 쉽습니다. TinkerCAD 라는 멋진 온라인 시뮬레이션 (완전히 무료)이 있습니다 . 트랜지스터, LED, IC 및 Arduino와 같은 부품으로 뛰어난 브레드 보드 시뮬레이션을 제공합니다. 대화식 입력 (푸시 버튼, DIP 스위치 등)이 포함 된 실시간 시뮬레이션에서 Arduino를 프로그래밍하고 실행할 수 있습니다.


[편집 : 다음 텍스트는 Circuits.io 로 이동 한 기능 , 즉 Eagle PCB 를 나타냅니다 ]

그게 다가 아닙니다. 또한 회로를위한 별도의 탭 회로도와 브레드 보드 회로의 PCB 설계를위한 다른 탭도 포함되어 있습니다! 또는 회로도를 처음부터 새로 만들어 PCB를 만들 수 있습니다.

회로 설계를하고 구입할 수 있습니다. circuits.io에서이 모든 작업을 수행 할 수 있으며 실제 Arduino를 망칠 위험이 없습니다. 또한 시뮬레이션에 경고 표시기가 있습니다 (예 : LED 또는 IC에 충분한 저항을 사용하지 않은 경우).

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