Arduino и Proteus

vlakar
Offline
Зарегистрирован: 08.01.2013

Начинаю осваивать aduino nano но для начала думаю надо поиграться визуально 

поиск нормальных симуляляторов под линукс результатов не дал, поставил протеус под wine

работает вроде нормально, но есть для начала несколько вопросов

1. как залить скетч в схему сделанную в протеусе там тока код на асемблере вроде

или наверное как то преобразовать надо ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Была тема на форуме, поищите.

В общих чертах, ставите в настройках галачку "подробный вывод при компиляции" и смотрите, где лежит hex-файл, его берете и вставляете в протеус. Можно cof файл попробовать, чтобы он листинг подтянул, но, видимо, придется повозиться. Лучше поиграйтесь в AVR-studio

leshak
Offline
Зарегистрирован: 29.09.2011

Лучше просто в goolge искать. Были статьи где это расписывается.

В двух словах: вам нужно скомпилированные .hex загрузить указать в качестве проишивки камня. Найти его можно если в ArduinoIDE в Preferences включить "Show verboase output", тогда там будем видно как оно вызывает компилятор и avrdude. А в этих вызовах видно и путь к .hex файл скомпиленному.

Что-бы "степать именно по коду", то нужно будет еще указать и .elf файл (будет лежать в той же папке что и скомпиленный .hex).

Но там была еще какая-то мудотеть с папками. Типа этот .elf должен лежать в той же папке что и сырцы.... не помню точно. Вообщем что-то типа нужно сбросить в одну папку ваш скетч, .hex и .elf и тогда оно "подцепится" и протеусе будет виден исходник.

Вообщем "не помню детали", то выгугливается енто все.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

В ArduinoIDE-есть возможность указать путь, куда при компиляции будут складываться hex и т.п. файлы. В протеусе я указывал эту папку для входных файлов. После этого можно поиграться.

leshak
Offline
Зарегистрирован: 29.09.2011

kisoft пишет:
В ArduinoIDE-есть возможность указать путь, куда при компиляции будут складываться hex и т.п. файлы.

Хм. У можно чуть подробнее? В File/Preferences - не вижу такого. в preferences.txt - тоже.

Гугл - не получается спросить правильно. Все время говорит только как найти путь куда оно .hex забубенило, но нигде как ее заставить ложить по тому пути что я хочу.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Доберусь до дома поделюсь. ArduinoIDE 1.0.2-1.0.3. Другие версии не использовал

UPD: Инструкция для всех, кому это интересно:

Файл preferences.txt в home пользователя (у меня это C:\Users\user\Application Data\Arduino на Windows 7). Нужно раскомментарить следующий параметр:

 

# temporary build path, normally this goes into the default
# "temp" folder for that platform (as defined by java)
# but this can be used to set a specific file in case of problems
build.path=build

Указывает относительный путь (относительно каталога, где установлен ArduinoIDE).
У меня сейчас там лежат и hex & elf & eep файлы, а также куча объектников.

К сожалению это общий каталог для всего это сообщества файлов и проектов, но на безрыбье..

Да, еще нужно выйти из ArduinoIDE и войти снова.

 

vlakar
Offline
Зарегистрирован: 08.01.2013

Спасибо за помощь !!! 

AlexFisher

leshak

очень исчерпывающая информация,

AlexFisher : а AVR-studio для linux есть ?  чето по wine  не ставится

еще кто нибудь юзал Fritzing или там только разработка печатных плат ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Смотрите на сайте AVR

Не гонитесь за последней версией! Ставте 4-ю - ее вполне достаточно. Она должна по wine встать.

leshak
Offline
Зарегистрирован: 29.09.2011

 

AlexFisher пишет:

Не гонитесь за последней версией! Ставте 4-ю - ее вполне достаточно. Она должна по wine встать.

А у вас получалось в ней дебагать ардуиновский код? Как раз гуглил пару дней назад, но везде больше на "как компилить и заливать в ней в дуину", а это у меня уже решенный вопрос (использую обычную VS+Plugin). Если "там можно дебагать в симуляторе ардуиновский код", то можно и на AVR-Studio переползти ради этого.

И если знаете, то подскажите, а как-то из "рассыпухи" какой-то бюджетный JTAG отладчик придумать для дуины можно, что-бы в железе дебагать (смутно себе представляю что это такое), имеет смысл это "искать" или нагуглить не получается потому что ищу не существующие?

leshak
Offline
Зарегистрирован: 29.09.2011

leshak пишет:

И если знаете, то подскажите, а как-то из "рассыпухи" какой-то бюджетный JTAG отладчик придумать для дуины можно, что-бы в железе дебагать (смутно себе представляю что это такое), имеет смысл это "искать" или нагуглить не получается потому что ищу не существующие?

Сам спросил, сам отвечу (всегда так ищешь - не находишь, спросил - попалось).

Похоже, теоретически, таки возможно самому дебагер нашаманить

http://amtek.wordpress.com/2011/07/20/make-your-own-avr-jtag-debugger/

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Тоже JTAG «ищу», вчера наткнулся на PinBoard, интересный аппарат, но 2600р многовато. Там не только JTAG, там много всего. В общем пока в поиске и есть желание сделать самому, платку только самому травить не хочется, а паять - паяльник жду, заказал китайский хакко 888, паяю мало, дорогое брать не хочется.

leshak
Offline
Зарегистрирован: 29.09.2011

kisoft пишет:
Тоже JTAG «ищу», вчера наткнулся на PinBoard, интересный аппарат, но 2600р многовато.

Ну, если вы занялись этой темой, то не наткнутся на PinBoard небыло шанса :)  Все-таки трудно оминуть, статьи Di Halt-а, если у вас изначально не радио-техническое образование (даже в этом случае - не уверен).

А аппарат, IMHO своих денег - стоит. Но это если есть планы "освоить все камни какие-только возможно" :) А это уже плохо своместимо с "самому травить не хочется" ;)

Вообщем если приму окончательное решение "идти в микроконтроллеры", то наверное буду брать этот аппарат. Просто что-бы съекономить время и "не колхозить". Но он явно, скорее не для "ученичества", а "проф.разработки, быстрого прототипирования и освоения новых железок". Может и ошибаюсь, но у меня такое впечатление сложилось.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Согласен, этот аппарат для заработка скорее, поскольку держит много камней, правда леонардовский 32u4 я не увидел, а хотелось бы.
Я инженер-системотехник по образованию, потому и железо и программы для меня - дом родной.
Мне тут про Due немного рассказали, релокация памяти, можно из флеша в озу и выполнять. Но это не для меня аппарат, у меня это только хобби, потому почти бессмысленно.
А еще ПЛИСы есть, DSP, но это уже совсем другая история. Хотя, кто знает, может когда и понадобится :) Знаю про них не понаслышке, ребята знакомые для нас делали на этом всем аппараты для самолетов ;)

leshak
Offline
Зарегистрирован: 29.09.2011

 

32u4 - да думаю можно его туда всобачить. В крайнем случае "очередной адаптер-переходник".

kisoft пишет:
Мне тут про Due немного рассказали, релокация памяти, можно из флеша в озу и выполнять.

Мало пока инфы по Due. IMHO пока не очень даже понятно "на кого он нацелен". На мигать диодов и кнопки - хватает 8-битных. Плюс этих камней в DIP-е нету, что сразу ощелкивает тех, кто потом собирается свою платку сделать, но пугается слова SMD.

Те кто могли-бы ее "мощу" заюзать (математику там серьезну, распознавания всякие) - так скроее предпочтут "голый C", вряд-ли на ардуину пойдут. Вообщем - не ясно пока, лично мне. Такое впечатление что сами разработчики Ардуины уже просто "выросли из этих штанишек" (или просто "нужен свежачок"), а вот аудитория "простеньких устройств на коленке" - не торопитца двинутся за ними (да вообще я плохо представляю как в ArduinoIDE что-то большое можно сопровождать).

kisoft пишет:
 А еще ПЛИСы есть, DSP, но это уже совсем другая история. Хотя, кто знает, может когда и понадобится :) Знаю про них не понаслышке, ребята знакомые для нас делали на этом всем аппараты для самолетов ;)

Да. Интересная штука. Только цены на них "кусючие" (которые серьезные). И вам, как "схемотехнику", возможно они даже будут ближе и интуитивней. На них хорошо идет то что "простое, но паралелится здорово".

А вообще, IMHO, с ними перекос. Их оседлали "профи", старой школы. Которые просто реализуют в них "схемы которые привыкли". И используют их "где надо и не надо". Зачастую сильно переусложняя решение. А в "контроллеры" идут програмисты скорее. И тоже "рождают монстров" извращаясь на микроконтроллере, там где на ПЛИС-е было-бы просто и изящно.

Вот кстати некий аналог "Ардуины" от ПЛИСа http://marsohod.org/index.php/howtostart/plata с подъемной ценой для "пощупать/поигратся".

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Спасибо за ссылки, почитал на ночь глядя, для изучения самое оно. Это уж если руки дойдут. Сначала надо раскачаться парой-тройкой домашних проектов, а то затянулась моя эпопея с таймерами и ик датчиком, работает, но есть проблемы, если что создам тему с вопросами.

olegab
Offline
Зарегистрирован: 09.04.2013

отладка тормозит.

delay(1000)= 11c.

частота выставлена правильно. Один раз запустился нормально, но после того как указал прошивку с кодом ".elf" - опять тормозит. перезапуск не помогает.

Глюк или это нормальнодля протеуса?

olegab
Offline
Зарегистрирован: 09.04.2013

proteus 7.10. Поставил частоту 200 MHz, контролер стал эмулироваться практически в реальном времени

vlakar
Offline
Зарегистрирован: 08.01.2013

Установил для знакомства Proteus 8 Professional и был приятно удивлен там есть возможность загрузить готовые платы в наличии Аrduino 168, 328 и mega 2560 и еще куча других плат.

есть встроенный компилятор Arduino AVR

и отсюда вопрос, - он совместим с языком Arduino IDE ? если загружать готовые скетчи проблем не будет ?

может кто пользовал

Клапауций
Offline
Зарегистрирован: 10.02.2013

vlakar пишет:

может кто пользовал

можно самостоятельно попытаться блинк загрузить и проверить.

*кто пробовал самостоятельно что делать?

com
Offline
Зарегистрирован: 06.09.2013

все умеют самостоятельно спрашивать :)

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

В продолжение темы протеуса.

Набрел на одну интересную библу для 7-го протеуса: http://blogembarcado.blogspot.com.br/2013/06/simulino-v20-biblioteca-para-proteus.html

Прооверил только блинк - работает (остальное проеверять желания нет). Мало ли кому понадобится ;)

Immortal
Offline
Зарегистрирован: 28.12.2013

А какая версия Proteus стабильнее работает?

Я скачал одну из последних, так она глючит.

3 года назад я много работал в протеусе, так оно как то шустрее эмулировало. Похоже в новых версиях есть какая то защита от лекарства.

Coolerr
Offline
Зарегистрирован: 30.06.2014

8 версия самая нормальная, ардуинский код можно писать прям там.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

каким образом можно прямо прямо в протеусе писать  ардуинский код ?

Coolerr
Offline
Зарегистрирован: 30.06.2014

 

Компилить проект тоже можно

Как то так.

Coolerr
Offline
Зарегистрирован: 30.06.2014

По выделенной ссылке на домашней странице протеуса видео о том как работать с ардуиной

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо сделали)

Immortal
Offline
Зарегистрирован: 28.12.2013

А где брать стабильную версию 8.1?

На рутрекере 8.1 очень глючный

gudron
Offline
Зарегистрирован: 14.12.2014

АЦП не симулируется чтоли? Почемуто всегда max значения.

оказывается забыл запитать aref avcc

Coolerr
Offline
Зарегистрирован: 30.06.2014

Всем привет, вопрос не вопрос. Не работает остаток от деления, никто не пробовал? Главное компилится без проблем, а эффект 0. В железе все работает. А в протеусе нет. И ещё один баг не работает Serial.end();

serega374
Offline
Зарегистрирован: 10.08.2015
Здравствуйте,

Пишу следуший код код в Arduino IDE потом загружаю в протеус:

#include <Wire.h>        // Добавляем необходимые библиотеки
#include <LiquidCrystal.h>
#include <dht11.h>
dht11 DHT;               // Объявление переменной класса dht11
#define DHT11_PIN 13      // Датчик DHT11 подключен к цифровому пину номер 13
byte degree[8] =         // Битовая маска символа градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};   

// Подключаем LCD
LiquidCrystal lcd(12, 11, 10, 9, 8, 7 );

void setup()
{
 lcd.begin(16, 2);// задаем размерность дисплея
  lcd.createChar(1, degree);        // Создаем символ под номером 1
}

void loop()
{
  // Выводим показания влажности и температуры
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Humidity =    % ");     // Выводим текст
  lcd.setCursor(11, 0); 
  lcd.print(DHT.humidity, 1);
  lcd.setCursor(0, 1);              // Устанавливаем курсор в начало 2 строки
  lcd.print("Temp     =   \1C ");    // Выводим текст, \1 - значок градуса
  lcd.setCursor(11, 1);             
  lcd.print(DHT.temperature,1);  

  int chk;    
  ; // Мониторинг ошибок
  chk = DHT.read(DHT11_PIN);    // Чтение данных
  switch (chk){
  case DHTLIB_OK:  
    break;
  case DHTLIB_ERROR_CHECKSUM:  
    lcd.clear(); 
    lcd.print("Checksum error");  
    break;
  case DHTLIB_ERROR_TIMEOUT:
    lcd.clear(); 
    lcd.print("Time out error");
    break;
  default:
    lcd.clear(); 
    lcd.print("Unknown error");
    break;
  }
  delay(1000);                     
}

но дисплей показывает то статический текст: 

"Humidity = 0    % " 

"Temp = \1C "

или ошибку "Time out error"

я так понял это из-за ошибки симуляции Logic contention(s) detected on net #00013. Сюда как раз и подключен датчик DHT11. Но почему то идет не совпадение лог уровней. Где я ошибся? Я ведь прописал пин 13 входом. На железе все работает.

 

 

Coolerr
Offline
Зарегистрирован: 30.06.2014

А схема в протеусе есть? Есть ли в протеусе модель датчика DHT11 и как ты эмулируешь влажность?

serega374
Offline
Зарегистрирован: 10.08.2015

Вот ссылка на проект https://drive.google.com/file/d/0B0L9rN57Y9OIQVZrV1VmSEZsSmM/view?usp=sharing или картинка нужна

Скачал последнюю версию протеус там датчик был. В будущем (если получиться) это будет климат контроль и контроль светового режима в мини оранжерее для экзотических растений. Пока код написан (скопипастен) для вывода инфы с датчика на дисплей. Если интересно то вместо D13 и D14 будут освещение и увлажнитель. Два DC двигателя это приточка и вытяжка. Кнопки для задания режима и хождения по меню.

Но это походу не скоро я доберусь пока разберусь что да как. Именно поэтому хочу в протеусе вначале с эмулировать а потом уже собирать на железе

LittleBuster
Offline
Зарегистрирован: 08.01.2015

vlakar пишет:

Начинаю осваивать aduino nano но для начала думаю надо поиграться визуально 

поиск нормальных симуляляторов под линукс результатов не дал, поставил протеус под wine

работает вроде нормально, но есть для начала несколько вопросов

1. как залить скетч в схему сделанную в протеусе там тока код на асемблере вроде

или наверное как то преобразовать надо ?

В ArduinoIDE выбираем Файл->Настройки->Показывать подробный вывод при компиляции

смотрим куда он компилирует:

 /tmp/build7805835303816146717/

(цифры могут быть любые) переходим туда и ищем файл с расширением .hex его и загружаем в Proteus

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Вышел Proteus 8.3 с таблеткой . Работает нормально ,нареканий пока нет. В нем  есть и симуляция Ардуино.Скетчи можно править прям в Протеусе.  Примеров симуляции с платами Ардуино достаточно. Установил и на Windows 7x64, и на Windows 10 x64.

a5021
Offline
Зарегистрирован: 07.07.2013

Вот тут можно посмотреть видео, как оно работает. Фактически, для ардуины появилась полноценная отладка, что просто офигенно. Заодно появился удобный способ посмотреть, что там за код сварил компилятор.

vk007
Offline
Зарегистрирован: 16.06.2015

Хотел и себе попробовать эмуляцию в протеусе, но напоролся на ошибку:

mksketch -C pro328 -N atmega328p -F 8000000 ../main.ino

Can't change to Arduino core directory

make: *** [main.cpp] Error 1

 

Error code 2

 

Это происходит при попытке скомпилировать даже пустой скетч. Гугл ничего вразумительного не нашел. Настройки сделал как в видео. Ни у кого такого не было?

Coolerr
Offline
Зарегистрирован: 30.06.2014

А компилятор установлен?

vk007
Offline
Зарегистрирован: 16.06.2015

Пишет "Yes"

Detecting compiler Arduino AVR

Compiler detection summary

Found:

Arduino AVR: .../Proteus 8 Professional/Tools/ARDUINO

Может ему чего-то не хватает? У меня в папке ...\tools\arduino три файла: libclang.dll, QtCore4.dll и mksketch.exe.

mksketch.exe путь к папке с ардуино видит (mksketch.exe -I)

Пробовал перекинуть эти три файла в папку с ардуиной и в настройках протеуса вручную прописал новый путь к компилятору - не помогло.

a5021
Offline
Зарегистрирован: 07.07.2013

Arduino IDE должна быть более-менее свежей. Еще вот тут почитайте.

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

vk007
Offline
Зарегистрирован: 16.06.2015

Эту страницу я в гугле сразу нашел. Там все решилось установкой более свежей версии Arduino IDE. У меня 1.6.5 - куда уж свежее. Осталось только переустановить все наново.

vk007
Offline
Зарегистрирован: 16.06.2015

Вобщем, так и сделал.

Удалил протеус и поставил чуть свежее версию. Не помогло.

Снес ардуино. В настройках компилятора протеуса сделал "check" для Arduino AVR и там снова появилась кнопка "download", что я и сделал - устанавливал ардуино уже из протеуса.

И чудо свершилось!

Вместо установившейся версии 1.0.5 залил поверх уже нужную мне.

Возможно есть путь и попроще (ага, типа порыться в реестре), но заработало и то хорошо.

Immortal
Offline
Зарегистрирован: 28.12.2013

Тоже столкнулся с Can't change to Arduino core directory

Помог совет vk007 установить ардуино уже из протеуса.

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Появился Proteus 8.4 Опробывал . Ардуино ИДЕ переустановил с Протеуса .По сравнению с 8.3 симуляция работает в разы быстрее .

cofessor
Offline
Зарегистрирован: 17.11.2015

Мне ARES соединяет на плате все выводы микросхемы, выходящие на шину. То есть считает все линии за одну.

a5021
Offline
Зарегистрирован: 07.07.2013

What's new in Proteus PCB Design 8.5 SP0 Build 22067

August 1st, 2016

  • Gerber X2:
  • Proteus now supports the latest Gerber X2 format along with RS274X
  • Curved Routing:
  • now supported for both Follow Me and Manual routing. This also in cludes improved (i.e. smoother) hug ging of curved tracks within zones.
  • High DPI Support:
  • support is much improved by the introduction of new high quality icons, better fonts, and a number of other issues with high DPI displays have also been fixed.
  • Support for WINDOWS 10 - to go with the high DPI setting support.
  • True Type Font - supported in the 3D Viewer.
  • STEP/IGES Support:
  • Support for MCAD data exchange via STEP and IGES file formats
  • Both import of component STEP/ IGES files and export of the resulting STEP Assembly is supported requires L2 or higher)
  • Includes a large number of supplied STEP files in the libraries
  • Multiple Track Editing:
  • Now includes the ability to edit the width of multiple tracks
  • Now includes the ability to edit the layer of multiple tracks
  • Manually control track necking via the SHIFT button during routing
  • Keepouts:
  • Addition of single layer options for keepout objects
  • New style configuration via standard dialogue UI
 
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

чуть не пометил как спам

liftoman
liftoman аватар
Offline
Зарегистрирован: 15.03.2017

Уважаемые знатоки протеуса, подскажите плиз - Переустановил винду, 7, (с х32 на х64) установил протеус (7.6 старый добрый, в боях проверенный, на ста компах стоявший, с 2011 года) Не могу добавить ни один компонент на рабочее поле - ни МК, ни землю, ни осцил. Компонет вроде выбирается, тащится мышью но не закрепляется. Может кто сталкивался? Пробовал переустанавливать его несколько раз - не помогает. В гугле тоже не гуглится.... Заранее спасибо!

UPD: Стоял неправильный часовой пояс XD Поставил нормальный  - всё заработало. Бред.

b707
Онлайн
Зарегистрирован: 26.05.2017

если в гугле ничего нет - значит проблема не типовая, а лично ваша. У меня в Вин7 х64 никаких проблем нет

vlakar
Offline
Зарегистрирован: 08.01.2013

У меня на Вин10 х64 стоят  8.6 и 7.8 оба работают без нареканий, тут чето личное :-)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Уважаемые знатоки! Возможно ли в протеусе эмулировать работу двух ардуин, в одной отладочный код, в другой прошивка эмулирующая реальное устройство, соединятся будут через софтовый сериал, если да, как Хексы в них загружать?