Чи можу я програмувати для Arduino, не маючи реальної дошки?


205

Я хотів би розпочати розробку деяких основних проектів Arduino, але досі не маю дошки Arduino. Чи є спосіб я написати свій код та емулювати / перевірити його за допомогою настільного комп’ютера, тож після приходу моєї дошки я просто повинен завантажити та запустити на ньому свій проект?


1
Мене теж цікавить, чи знайшли ви одну, яка добре грає з ID Arduino ? тобто виявляється IDE так, ніби це плата, з усім її функціоналом.
rraallvv

Відповіді:


128

Там є цілий ряд симуляторів Arduino, багато безкоштовних, а також деякі платні продукти.

  • CodeBlocks середовище розробки Arduino включає в себе безкоштовний Arduino тренажер, все ще в стадії розробки , але функціональний.
  • Simuino імітує шпильки Arduino Uno та Mega - не дуже гарний реалістичний тренажер, але він працює.
  • Модуль Arduino Simulator на основі Python - це ще один варіант, який добре поєднується з офіційним IDE
  • Virtronics Simulator для Arduino виглядає багатообіцяючим, але я не розумію, чому я заплатив би за це 14,99 долара, коли за цю ціну я міг придбати один або кілька фактичних клонів Arduino.

Багато інших тренажерів Arduino є там, якщо ви шукаєте, а нові постійно анонсуються, навіть нагромаджуються.


10
Як зауважте, це не емулятори, а тренажери , найважливішою відмінністю є те, що він не запускає код на віртуальній машині AVR (наприклад, що робить qemu ), а пов'язує функції Arduino з нативним кодом. Таким чином, вони в основному не зможуть запускати рідні речі AVR, а поведінка реєстрації / таймера не буде такою ж, як у реального обладнання AVR. Дивіться різницю, добре пояснену в цій відповіді . Теоретично, можливо, емулювати код Arduino Due за допомогою qemu .
змо

5
Ви "не бачите, чому [один] заплатив би за це 14,99 доларів, коли [хтось] міг придбати один або кілька фактичних клонів Arduino за цю ціну"? Я можу вам сказати, чому: оскільки апаратне забезпечення не має вбудованого налагоджувача з функціями, які може надати тренажер.
Р. Мартіньо Фернандес

8
Arduino Simulator пробудила мій інтерес, але , до жаль , здається , не має ніяких файлів , пов'язані з цим на сайті SourceForge. Я чогось пропускаю, чи воно застаріло з моменту написання вашої відповіді?
Greenonline

Як зазначалося в коментарі вище, на сайті джерела симулятора ардуїно немає файлів. Є веб-сайт для нього чи є інший симулятор, який добре працює в Mac, з офіційним IDE?
gordanvij

4
Сімуїно жахливий, непрофесійний і марний. Вони не мають поняття, як кодувати. Arduino Simulator не має випусків. CodeBlocks - це лише Windows. Симулятор для Arduino не є відкритим кодом.
dhchdhd

81

Мені подобається використовувати Cirits.io aka TinkerCAD для цього.

Він заснований на хмарі і має деякі приємні функції, включаючи дизайн та співпрацю PCB.

IMO моделювання та можливості Arduino вражаючі та інтуїтивно зрозумілі.


3
Це дуже приємно і чисто, а базовий функціонал - це дійсно вражаючий, простий у використанні та потужний. Однак багато загальних деталей (включаючи РК та датчики температури) ще не підтримуються. Сумніваюсь, ви можете протестувати що-небудь, крім дуже базових конструкцій на цьому етапі. Я сподіваюся, що з часом це покращиться.
Сума

Я швидко спробував і знайшов це дуже вражаючим для безкоштовного продукту. Я не знаю його обмежень з точки зору імітаційного реалізму, але редактор дуже доброзичливий і просто поміщає провід у відповідний слот, автоматично створений код з правильним штифтом і мерехтливим циклом!
heltonbiker

навіть мій вибір був би 123d, але на цей сайт я скаржився лише тим, що вони не додають нових компонентів. Було б справді чудово, якби вони могли мати у своєму списку нові компоненти
KD.

2
Електронних лабораторії частина circuits.io сайту переїхала в tinkercad.com , де ви можете знайти його під ланцюгами .
SiggyF

1
Я відредагував його та оновив посилання.
sa_leinad

40

У світі електронних тренажерів існує велика кількість варіантів, але схеми.io aka TinkerCAD , мабуть, є найбільш універсальним.

  • Ви можете скласти схему на віртуальній дошці, яка виглядає як реальна.
  • Насправді ви можете спостерігати, як світлодіод блимає або натискає кнопку під час моделювання в режимі реального часу, а не бореться з абстрактними формами хвиль.
  • Ви можете комбінувати цифрові пристрої, такі як 555-таймер або регістри зсуву, з (інтерактивними) аналоговими компонентами, такими як резистори та світлодіоди.
  • Ви можете запрограмувати Arduino та змоделювати мікроконтролер разом із аналоговою ланкою навколо нього.
  • Ви можете налагодити Arduino: коли тренажер досягне вашої точки розриву, моделювання призупинено, і ви можете легко перевірити кожну змінну в коді та кожну напругу чи струм у ланцюзі.
  • Ви можете використовувати та спостерігати за різними протоколами зв'язку, такими як UART, I2C та SPI.
  • Ви можете призупинити моделювання в середині послідовності I2C, поставивши в драйвері точку розриву (наприклад, процедуру служби переривання для подій I2C)
  • Це безкоштовно!

Приклад

Це приклад схеми, яка має ІК-пульт та РК-екран.

Відмова від відповідальності: Ми є виробниками ланцюгів 123D


1
Як це грає з Arduino IDE ? Чи буде доступна для спалаху, налагодження тощо?
rraallvv

14

Майте на увазі, що жоден тренажер не відтворює реальні ситуації. На форумі Arduino було багато дописів про проблеми з кодом або електронікою, які виявляються дещо тонкими, як-от:

  • Визначення термінів
  • Умови перегонів (пов'язані / залежні події не завжди відбуваються в одному порядку)
  • Рівні напруги, наприклад. плаваючі вхідні штифти
  • Приводні двигуни, які скидають напругу Arduino достатньо, щоб вона скидалася
  • Не маючи роз'єднаних конденсаторів
  • Вхідні штифти знаходяться у "невизначеному" стані (наприклад, 2,5 В на штифті, де 2 або менше V низьке, а 3 В або більше ВИСОК)
  • Проблеми з обробниками переривань, такими як змінні, не оголошені мінливими
  • Спід напруги через відсутність прокатних діодів на двигунах
  • Процесор, що скидає один раз більше 10 світлодіодів, увімкнено, оскільки поточний розряд перевищує суму, яку може забезпечити обладнання
  • Обробники переривань, які займають 10 мкЗ для обробки переривання, коли доступно лише 9 мкЗ.

За своєю природою тренажери не можуть відтворити все це. Навіть якби вони могли, ви думаєте переключити варіант "вставити випадковий шум від двигунів"?


Що стосується підготовки до дошки, завантажте IDE і починайте програмувати. Ви можете встановити бібліотеки, записати код і звільнитись від синтаксичних помилок, організувати їх акуратно та бути в основному готовими до великого дня, коли обладнання знаходиться у ваших руках.


Приємно і насолоджуйтесь експериментуючи зі своїм Arduino!


13

Ви можете використовувати Yenka (безкоштовно для домашнього використання) для імітації Arduino, PIX, PIXACE та інших плат з цифровим, аналоговим та послідовним введенням-виведенням. Він надає безліч компонентів та зразкових проектів.

Знімок екрана:

Моделювання Yenka Arduino


Чи можна це запрограмувати, налагодити з IDE Arduino ?
rraallvv

12

Так, ви можете спробувати використовувати Proteus ISIS для моделювання вашого коду ...

Для повної емуляції Arduino є програма з умовно- популярною програмою під назвою VBB (Virtual BreadBoard) , я також спробував її, і це було приємно.

Редагувати: Ви можете ознайомитись з моїм детальним підручником тут про те, як імітувати на Proteus ISIS


9

Я вважаю, що на цьому веб-сайті є список як емуляторів, так і тренажерів, а також їх ціни та доступності.

Оновлення:

Оскільки деякі користувачі згадали, що на цьому веб-сайті є непрацездатні посилання, ось я знайшов підбірку емуляторів. Зауважте, що деякі описи, можливо, були взяті зі згаданого посилання:

  • Emulino : це програмне забезпечення, що базується на Linux з відкритим кодом, на початку розробки, яке імітує специфічні для Arduino MCU.

  • Emulare : це апаратний емулятор загального призначення. Він спрямований на створення центрального інтерфейсу для створення електронних моделей для розробки вбудованого програмного забезпечення. В даний час emulare зосереджується на лінії мікроконтролерів ATMega (у Arduino UNO є процесор ATMega).

  • SimAVR : це новий симулятор AVR для Linux або будь-якої платформи, яка використовує avr-gcc. Симулятор завантажує файли ELF безпосередньо, і є навіть спосіб вказати параметри моделювання безпосередньо в емуляційному коді за допомогою розділу .elf. Він підтримує емуляцію багатьох процесорів ATMega і згадується, що навіть легко додавати нові.

  • Amtel Studio : Це, мабуть, не згадує термін емуляція, але це складний IDE для налагодження коду для багатьох платформ, зокрема Arduino. Atmel Studio 7 оснащений безперервним імпортом проектів, створених у середовищі розробки Arduino. Ваш ескіз, включаючи бібліотеки, на які він посилається, буде імпортований в Studio 7 як проект C ++. Після імпортування ви можете використовувати всі можливості Studio 7 для тонкої настройки та налагодження дизайну. Atmel Studio 7 повністю підтримує потужний вбудований налагоджувач на дошці Arduino Zero. Для інших плат Arduino доступні щитові адаптери, що розкривають з'єднувачі налагодження, або переключитися на одну з багатьох доступних плат Xplained-Mini / PRO, щоб повністю використовувати екосистему Atmel HW.

Ви все ще можете використовувати тренажери, такі як EasyEDA, для тестування свого коду і в більшості випадків мати можливість запустити його на пристрої. Але зауважте, що, враховуючи характер електронних компонентів, вам, можливо, доведеться надати зовнішні резистори, конденсатори тощо, щоб отримати очікувані результати.


Тут посилання на відповідь не є гарною справою, оскільки вони будуть марні, коли пов’язаний веб-сайт знизиться. Будь ласка, напишіть резюме, а також переконайтесь, що ваша відповідь додає значення, а не лише повторює ті, які ми вже маємо.
totymedli

Я погоджуюся з @totymedli - якщо це посилання перестане зникати, відповідь стає марною. Підкажіть, принаймні, згадані емулятори та поточну ціну. Ви можете починати лінії зірочкою, щоб робити точки від кулі, якщо це допомагає.
Нік Гаммон

7

Virtualbreadboard має нове видання VBB4Arduino 'Two Arduino', яке включає ВІД Емулятор JVM Arduino та симулятор набору інструкцій AVR із прикладами, які охоплюють майже всі приклади розповсюдження Arduino та купу периферійних апаратних засобів - LCD, WS2812 Neo LEDS, Motors, Servo's , Логічний аналізатор тощо.

http://www.virtualbreadboard.com

Відмова: Я є автором Virtual Breadboard


6

Спробуйте симулятор для Arduino - це найкраще, але тоді ми упереджено, оскільки ми є частиною команди розвитку. Не всі хочуть платити $ 19,99, хоча майже 5 тисяч користувачів Arduino за останні кілька років. Існує безкоштовна версія Simulator для Arduino, яка працює протягом 45 днів або 100 ескізних навантажень і 200 ліній максимум. Спробуйте це, а потім купуйте, якщо ви можете собі це дозволити та / або якщо вам здається, що це варто.

Якщо є щось не вірно або що можна було б покращити, повідомте про це - всі інші це роблять і мають, саме тому Simulator для Arduino був на 99% побудований на основі ідей користувачів та звітів про помилки.

Крім того, єдиною іншою програмою, яку ми спробували, яка наближається до якості, є Proteus, але це повна студія дизайну друкованих плат та виглядає дуже дорого - тобто набагато більше $ 20. І ми плануємо ігнорувати нещодавній запит користувача на підвищення ціни до 200 доларів.


5

Ви можете, наприклад, використовувати мій тренажер. Він особливо підходить для PLC-подібних додатків, де багатозадачність досягається циклічною оцінкою взаємопов'язаних об'єктів, схожих на ланцюги: таймери, маркери, засувки, знімки та регістри. Ви можете використовувати його для моделювання вашої керованої системи, як це стає зрозуміло з прикладів завантаження. Він має скромні можливості візуалізації, може складати графіки синхронізації та дозволяє отримувати доступ та змінювати cq примусово до всіх змінних у режимі реального часу під час запущеного моделювання. Також ви можете заморозити час. Коли ви задоволені поведінкою вашого контролю, він генерує код C для завантаження у фактичний Arduino.

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 . Він має відмінне моделювання макетних плат, з такими деталями, як транзистори, світлодіоди, ІС та Arduino. Ви можете запрограмувати Arduino і запустити все це в режимі живого моделювання, що включає інтерактивні входи (кнопкові кнопки, DIP-комутатори тощо).


[Редагувати: Наступний текст стосується функціональності, переміщеного до Circuits.io , а саме Eagle PCB ]

Це ще не все. Вона також включає в окрему схему вкладки схему для вашої схеми та іншу вкладку для дизайну друкованої плати схеми вашої дошки! Або ви можете просто зробити свої схеми з нуля і зробити свою PCB звідти.

Ви можете зробити свої схеми схем, і ви можете їх придбати. Ви можете все це зробити в circuits.io, і ви не ризикуєте зіпсувати свій фактичний Arduino. Він також має попереджувальні індикатори в моделюванні (наприклад, якщо ви не використовували достатній опір на світлодіоді чи ІМС).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.