Официальный сайт компании Arduino по адресу arduino.cc
Симулятор Arduino
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 19/06/2012 - 11:40
Здравствуйте!
Пытаюсь разобраться с программированием Arduino, писать скетчи. Так сказать, делаю первые шаги. Подскажите, пожалуйста, существуют ли какие-то симуляторы работы Arduino? Т.е. чтобы без физической сборки можно было бы посмотреть на результат. Ведь существуют же такие программы для радиолюбителей, когда не нужно паять плату. Собрал в программе схему из компонентов и пожалуйста, можно посмотреть различные характеристики. Если что не так, подправить. А уж потом паять.
Заранее спасибо за помощь.
http://www.virtualbreadboard.net
Я "потыкался" в ней - не понравилось..."живое" ардуино не заменить + элементная база
Большое спасибо! Попробую!
Я "потыкался" в ней - не понравилось..."живое" ардуино не заменить + элементная база
Неужели купили? :) Или может намекнете где поискать версию с симуляцией можно? Что-то не получилось найти.
2Alexrusnet
Еще протеус умеет симулировать amtel. Но уровень "дружелюбности для новичка" у него конечно на порядок (или два) меньше. Хотя и, в итоге, умеет он - на порядок больше.
Я купил. Штука неплохая, есть отладка (пошаговое выполнение... но что-ито незаладилось :( Там IDE своя - на Java. А времени разбираться с импортом-экспортом пока не было.
Я купил. Штука неплохая, есть отладка (пошаговое выполнение... но что-ито незаладилось :( Там IDE своя - на Java. А времени разбираться с импортом-экспортом пока не было.
Ну собственно именно отладка и интересовала. Тоже подумываю купить. Деньги, вообщем-то, не заоблачные (а объем работы стоит что-бы его оплатить)), но "просто выкинуть" уже жалко. Можно какой-то шилд на них прикупить. Удручает что нету никакго триального периода. Что-бы понять нужно оно вообще или проще Serial.print-натыкать.
И библиотека элементов немного разачаровывает бедностью. Практически все элементы есть в живую. Можно и на реальной собрать, а вот "те которых нет, но хочется/нужно писать под них" как раз отсуствуют. Не знаете, где-то доп. либы компонентов бывают для этого VBB?
Напишите письмо разработчику VBB, поищите форум соответствующий. Но думаю, что сложно будет найти... Эта система нужна, когда элементная база простая, а алгоритм сложный - его и нужно дебажить. А со сложными элементами лучше сразу в Протеусе симулировать, благо, хексы получить можно, где-то было о том, как ардуино с протеусом подружить.
Да, спасибо. Если припрет - наверное так и сделаю. Наверное вы правы. С жалобами на отсутсвие триала это я промахнулся с адресатом ;)
А протеус - да. Когда-то ковырялся - даже исходник в него получалось подгрузить и по нему степать. Просто больно уж монстрячий :) и телодвижений много-долго что-бы какой-то вопросик выяснить.
А протеус - да. Когда-то ковырялся - даже исходник в него получалось подгрузить и по нему степать. Просто больно уж монстрячий :) и телодвижений много-долго что-бы какой-то вопросик выяснить.
Как говорил один уважаемый мной классик, это первую тысячу лет трудно, потом привыкаешь :) На самом деле, имея некорое количество заготовок в Протеусе, все получается достаточно быстро, долго, когда нужны новые, еще незнакомые элементы. А база не плоха.
Или может намекнете где поискать версию с симуляцией можно? Что-то не получилось найти.
если честно, то вроде у нас же на форуме тема была по этому вопросу, оттуда и брал ссылку, если не найдете, то попробу числа 22.06 дать ссылку...раньше не получается :(
если честно, то вроде у нас же на форуме тема была по этому вопросу, оттуда и брал ссылку, если не найдете, то попробу числа 22.06 дать ссылку...раньше не получается :(
Ага, где-то была... Я оттуда и взял ссылку, да только она теперь никуда не ведет, убрали разработчики ту демку с сайта. Потому и купил - уж очень хотелось живьем попробовать.
Попробовал. Программка очень недурна. Легка в освоении даже для новичка. Даже получилось кое-что в ней сделать.
Но вот кто может сказать, что не так в этом коде:
Пишет: "Неожиданный конец файла". И все на этом.
Подскажите, пожалуйста, в чем ошибка?
Заранее спасибо.
Пишет: "Неожиданный конец файла". И все на этом.
Подскажите, пожалуйста, в чем ошибка?
Заранее спасибо.
Неа! Так низя! Это же Ява! Вы бы хоть пример какой сначала попробовали! Надо примерно так:
Иначе говоря, пользуйтесь импортом. Он кривоват, но помогает.
Иначе говоря, пользуйтесь импортом.
Наверное я попрошу слишком много, но обясните поподробнее. Как пользоваться импортом?
Что-то все равно ругается на вот эту строку:
class sketch_jun20a extends Arduino{
Может быть здесь что-то надо изменить? может быть мне надо, например, вместо sketch_jun20a написать что-то свое?
Имя класса должно совпадать с именем проекта.
Импорт:
New->Import Arduino Sketch Wizard
Тут нужно указать скетч (расширение должно быть pda), ссылку на IDE Arduino и тип платы (если нету, то выбирайте максимально похожую)
Дальше он сам все сделает
Умц. Я правильно понял, что он, на самом деле не железо эмулируется и фактически выполняется-отлаживается java код? То есть именно C как C он не компилирует?
Именно так, он эмулирует... даже не знаю, что, перефирию, что ли... но на Яве. Скомпилировать то, что получилось, можно - там есть экспорт. Компилировать и шить потом нужно стандартной IDE, у меня не получилось напрямую, наверно, потому что у меня стоят 3 IDE, а он заточен конкретно под 0022. Но то, что он экспортирует, версия 0101 нормально открыла и залила в железку :)
Импорт:
New->Import Arduino Sketch Wizard
Тут нужно указать скетч (расширение должно быть pda), ссылку на IDE Arduino и тип платы (если нету, то выбирайте максимально похожую)
Дальше он сам все сделает
Видимо я Нуб, поэтому сделать так, как Вы описали у меня не вышло.
Но я нашел вот это: ajc.su/zhelezo/emulyaciya-arduino/
Вот так у меня получилось все чудесно. И код остался в Си, а не превратился в непонятный Ява-код, как Вы писали выше.
Но вот только видимо Virtual Breadboard подходит для очень примитивных проектов, потому как только я попытался испробовать код посерьезнее (нашел в книге) программа впала в ступор. Сообщений об ошибке нет, но и демонстрировать ничего не хочет. Просто тишина и все.
Именно так, он эмулирует... даже не знаю, что, перефирию, что ли... но на Яве. Скомпилировать то, что получилось, можно - там есть экспорт. Компилировать и шить потом нужно стандартной IDE, у меня не получилось напрямую, наверно, потому что у меня стоят 3 IDE, а он заточен конкретно под 0022. Но то, что он экспортирует, версия 0101 нормально открыла и залила в железку :)
Спасибо огромное. Вы съекономили мне $60. Как-то прошел мимо сознание этот нюанс про Java (непонятно, почему Java, если приложение на .net написанно). Похоже, все-таки, альтернативы протеусу не осталось. Все-таки возможность отлаживать оригинал кода (и настоящий бинарник) и отлаживать перевод на другой язык (пусть внешне и похожий), под другую платформу - совсем другая песня.
Очень прошу помощи у знатоков!
Думаю, что вопросами, которые стоят сейчас передо мной, задаются все новички. Какие программы использовать для начала работы? Очень хотелось бы сразу правильно соориентироваться. А не потратить кучу времени и нервов на освоение чего-то ненужного (или неудобного).
Из всего выше сказанного я понял, что одна из программ - это Протеус. Но также я понял, что здесь нужна связка как минимум из двух программ.
Сначала я обратил внимание на AVR Studio. Многие используют такую связку. Но когда попытался вникнуть в то, что такое побитовые сдвиги и побитовая инверсия и т.д. и т.п. мозг взорвался... Т.е. чтобы заставить светодиод просто помигать, нужно получить два высших образования.
Есть еще WinAVR. В этой программе можно писать программный код особо не заморачиваясь. Т.е. чтобы светодиод замигал достаточно этого:
А все остальное сделается автоматически при компиляции.
Ответ вроде бы очевиден, какую связку использовать. Но все же терзают смутные сомнения. Что же, те, кто использует AVR Studio глупее меня? И вообще, и в AVR Studio и в WinAVR используется один и тот же язык программирования - Си, но почему же такая разница в написании кода?
Помогите, пожалуйста, разобраться и сразу правильно соориентироваться.
Заранее спасибо!
Вы привели кусок кода для IDE Arduino, а не для WinAVR!
IDE Arduino - это надстройка над GCC, который и используется в WinAVR (штатно там вообще только ассемблер, gcc подключается) и в AVR-Studio. Есть еще CV (Code Vision AVR) - там есть куча визардов, существенно облегчающих настройку перефирии. Но если у Вас плата Ардуино и Вас так пугают битовые операции, то ничего кроме штатной IDE Arduino Вам не нужно. Если есть желание отлаживать устройство в Протеусе - есть где-то статья, как вытащить бинарник из IDE и вставить в Протеус. Но если у Вас чистая авр-ка и есть программатор для нее, то осваивайте AVR Studio - там отладка хорошая, есть плагин к Протеусу. Но нет визардов. Я обычно генерю всю настройку перефирии в CV, гружу ее в AVR Studio и пишу там "мясо".
Но если у Вас плата Ардуино...
Но если у Вас чистая авр-ка и есть программатор для нее...
В том то и дело, что у меня пока ничего нет, но очень хочется. Вопрос в том и заключается, что лучше выбрать, как не ошибиться и не потратить впустую время, деньги и нервы...
Но если у Вас чистая авр-ка и есть программатор для нее...
Я почему-то больше склоняюсь к этому варианту. Мне кажется, что при таком подходе можно получить полный контроль над своим детищем.
осваивайте AVR Studio...
Это синоним "осваивай программирование на чистом Си"?
А есть какой нибудь толковый "букварь" на эту тему?
>Т.е. чтобы заставить светодиод просто помигать, нужно получить два высших образования.
Вначале решите вы хотите быть "как взрослый микроконтрольщик" или вам нужно "просто получить результат".
Вообщем-то ArduinoIDE задумывалась именно для любителей. Что-бы помигать диодом можно было в течении 2-х минут (Запустить, File/examples/blink, upload). И для 90% "домашних кулибиных" этого хватает. Да и "серьезные" вещи тоже делаются.
Если хотите "до потрохов", "с основ" - наверное WinAVR. Тогда сможете "выжать все возможное из камня", но порог входа - увеличится. И это вам уже всякие easyelectronicst, "AVR 1,2,3" читать нужно будет.
Всякие Proteus и проч.... это не "маст хев". Без них тоже можно жить :) Мне, например, он нужен в ситуациях когда я пишу скетч "для кого-то" и реального железа, что-бы проверить, у меня просто нет. Если вы пишите "для себя", то железо, скорее всего у вас есть. А что-бы выловить баг в логике средней тяжести в 90% случаев Serail.println достаточно.
Так что из "нужно иметь" - достаточно ArduinoIDE, порог старта - минимальный. Но вообщем-то и особых ограничений что-бы "лезть в глубину" - тоже нет.
Только не ведитесь на рекламную чепуху что "с ардуино не нужно знать программирования" (и кто это придумал?). Высшего образование, конечно, не потребуется, но знать что такое if и чем локальная переменная отличается от глобальной - нужно.
Добавлю, чем мне понравилась Ардуинка.
Для меня нет ничего сложного в том, чтобы написать программу для камня. Я и на чистом асме могу (начинал я так - на аттини2313 :)). Часто бывает, что собранное устройство не используется, или не устраивает и вместо него собирается новое. Ну или внешние требования изменились ("... а не поставить ли мне сюда вместо моторчика серву?"), у нас же нет жесткого ТЗ. И переделывается плата... Здесь же я использую вариант MINI как модуль (воткнул-выткнул). Обленился, наверно. Ну и USB сразу пожалуста - не надо заморачиваться.
Ну и, в конце концов, когда функциональности IDE не хватает, начинаю подключать стандартные библиотеки и писать "на чистом" с, как на WinAVR. И ничего не мешает залить прогу из WinAVR в Arduino - там есть ICP-разъем для программатора.
Конечно, если речь идет о заказном или серийном устройсве, тогда нужно брать голый камень. А если нужно поэкспрериментировать, то есть, для себя, любимого, то нет ничего лучше Ардуины для "быстрого старта", как говорится.
Спасибо всем, кто откликнулся на мои вопросы.
Все что вы говорите - справедливо и верно. Тут уж не поспоришь. Arduino - конечно проще и без заморочек.
Но разве это главное? Если да, то можно пойти еще дальше по пути "без заморочек" и купить за копейки ЛЮБОЕ готовое китайское решение (они уже давным давно все придумали и сделали или сделают в самое ближайшее время, т.к. твердо держат свою руку на пульсе потребительского спроса).
Я ни в коем случае не хаю Arduino. Но ведь Вы же сами мне говорили, что Arduino только для прототипирования. Потом все на плату под пайку. А что же мешает сразу спрототипировать в Протеусе и на плату?
Подскажите хорошую книгу для "быстрого старта", чтобы научиться писать на Си, подключать библиотеки и т.д. Пожалуйста...
http://www.avr123.nm.ru/ - там очень доступный курс для начинающих и ссылки на другую литературу. Это если Вы имели в виду "чтобы научиться писать на с для контроллера" а не вообще "на с" :)
Ссылка, кстати, уже приводил LESHAK, но не явно. Но любой поисковик сразу бы ее нашел ;)
AlexFisher
Спасибо!
Обсолютно не работающее приложение.. Не тратьте свои деньги..
Я про VBB.
Это же как должно было накипеть чтобы отвечать на 3-х годичный пост :)