-
- Пишите на cpp без скетчей. ucMike(114 знак., 18.10.2018 22:31)
- Можно писАть на чем угодно, хоть на ассемблере. Стандартный HEX-файл или даже просто бинарный файл в Ардуину загружается любым ардуиновым загрузчиком, мне удобнее КодеВизион. т.к. он же используется для AVRISP mkII программатора, у него удобный vpv.vpv(37 знак., 22.10.2018 11:44)
- А обработчики прерываний как? - Ксения(18.10.2018 22:38)
- Дуринское IDE само компилировать не умеет и для компиляции запускает WinAVR GCC из папки Arduino\hardware\tools\avr. Таким образом вам полностью доступны все возможности GCC компилятора. (Правда весьма старой версии.) Boвa(411 знак., 20.10.2018 10:43 - 10:54)
- Про компиляцию я уже давно поняла, но не знала, что загрузку Arduino IDE делает не сама, а вызывает для этой цели AVRdude. Ксения(675 знак., 20.10.2018 11:17)
- ISR(INT1_vect){...}; ucMike(131 знак., 18.10.2018 22:55)
- Дуринское IDE само компилировать не умеет и для компиляции запускает WinAVR GCC из папки Arduino\hardware\tools\avr. Таким образом вам полностью доступны все возможности GCC компилятора. (Правда весьма старой версии.) Boвa(411 знак., 20.10.2018 10:43 - 10:54)
- Абисьняю на пальцах: 1. Ардуиновский загрузчик использует протокол STK500. 2. Эта софтина выше обертка для Avrdude, которая настраивает этот Avrdude для загрузчика ардуины (протокол, скорость порта в зависимости от модели ардуины) ну и дергает Гудвин(365 знак., 18.10.2018 21:41)
- помнится ещё AVR Command Line Tools Vit(76 знак., 18.10.2018 22:12, ссылка)
- ссылки на атмел давно подохли, потому предложу стороннее (мапед не мой) - Vit(18.10.2018 22:25, ссылка)
- Кстати, я ковырял лазерный маркиратор года 2 назад. Сначала подергал шаговики на платке ардуины в скетчах (настроить скорости и пр.) - удобно. Потом накропал на GCC нужное. И на свое платке с кварцем 11.059. Ардуиновский загрузчик меня вполне Гудвин(164 знак., 18.10.2018 21:56, ссылка)
- помнится ещё AVR Command Line Tools Vit(76 знак., 18.10.2018 22:12, ссылка)
- Просто, загрузчик Ардуино прикидывается программатором для AvrDude по STK500.) - v05(18.10.2018 21:38)
- Спасибо. Хоть что-то прояснилось. Хотя далеко не всё... - Ксения(18.10.2018 21:38)
- Что смущает? - v05(18.10.2018 21:45)
- Смущает меня то, что программа STK500.exe тоже писана для программаторов, как и AVRDUDE. Но если загрузчик Arduino и в самом деле эмулирует программатор, то должен существовать набор параметров, когда STK500.exe может это сделать. - Ксения(18.10.2018 21:54)
- Похоже, они что-то там не допилили или, наоборот, выпилили. Я не нашел упоминаний об использовании STK500.exe для программирования Arduino. Может оно и к лучшему, если Вы ИАР собираетесь использовать, места на жестком диске больше останется :) - Экспериментатор(18.10.2018 22:21, )
- Так и проблема в том, что IAR'овскую прошивку я запихать в эту Ардуину не могу. Сам IAR этого делать не умеет, а Arduino IDE умеет, но не хочет. - Ксения(18.10.2018 22:41)
- Попробуйте КодеВизион, версия 3.12 прекрасно грузит всё, что угодно, во все Ардуины, через USB кабель. - vpv.vpv(22.10.2018 11:49)
- Возможно у вас более старый загрузчик на базе AVR109. Есть простой вариант: Ардуино IDE шьет посредством avrdude. Попробуйте загрузить что-нить в вашу плату из Arduino IDE. В случае успеха, скопируете командную строку, сделайте *.bat файл для Гудвин(171 знак., 18.10.2018 22:57)
- Я бы на этом месте плюнул и подключил внешний программатор. Пусть Ксения посмотрит и нам напишет, есть ли там для прошивки микроконтроллера на плате (указать) необходимый разъем. В даташите на МК указаны выводы для программирования. Загрузчик Экспериментатор(49 знак., 18.10.2018 23:05, )
- Выводы для ISP-программирования на плате есть, но сама эта плата находится внутри тела 3D-принтера, разборка которого весьма затруднительна, чтобы ее делать всякий раз, когда надо сменить прошивку. - Ксения(18.10.2018 23:09, картинка, картинка)
- Похоже, штатными средствами можно только прошить скетчи, а выгрузить их нельзя. Вот это номер! Осталось только подглядеть монитором USB, что там происходит при загрузке, верификацию они вряд ли отрезали. Вот так делают деньги! - Экспериментатор(18.10.2018 23:29, )
- Выгружать их не требуется, т.к. на компьютере остались исходники. - Ксения(18.10.2018 23:32)
- В исходниках нету bootloader! Настоящий хакир может написать на скетчах свой исполняемый код, которая выгрузит всю флеш вместе с bootloader. Дерзайте, если с avrdude выгорит, а установленные LOCK BITS запрещают чтение внешним программатором. - Экспериментатор(18.10.2018 23:40, )
- Мне вы выгружать флеш надо, а загружать готовый. А с ардуиновым bootloader'ом хотела бы договориться, чтобы именно он мои прошивки по кабелю загружал, не вынуждая всякий раз разбирать конструкцию, чтобы присоединиться к плате программатором. - Ксения(18.10.2018 23:49)
- Так выведите разъем из корпуса на проводочках. Yurasvs(148 знак., 19.10.2018 21:00)
- Была у меня такая идея :) - Ксения(19.10.2018 22:10)
- Вредный совет. При первой же прошивке внешним программатором будет затерт bootloader c LOCK BITS. Так можно поступить только в том случае, если удастся предварительно все сохранить. - Экспериментатор(19.10.2018 21:07, )
- Это тоже аргумент в пользу того, чтобы внешним программатором не пользоваться, а использовать тот ардуиновый загрузчик, который уже залит. - Ксения(19.10.2018 22:14)
- Arduino при компиляции добавляет загрузчик. HEX меньше 512 байт не бывает. - ucMike(20.10.2018 12:06)
- Пример можно в студию? Bootloader должен лежать по старшим адресам, его можно легко вырезать в .bin файле. - Экспериментатор(20.10.2018 12:51, )
- ucMike прав - если попросить Arduino IDE записать продукт компиляции на диск, то пишет два hex-файла - с загрузчиком и без: Ксения(444 знак., 20.10.2018 15:21)
- По ссылке есть работающий аналог hex2bin - AlexG(20.10.2018 15:27, ссылка)
- Оконного мне не надо - консольный хочу. - Ксения(20.10.2018 15:29)
- я тоже хочу.. - AlexG(20.10.2018 15:48)
- Нашла => - Ксения(20.10.2018 23:45, ссылка)
- этой штуке нужен Cygwin для запуска. это не намного лучше чем если бы она была 16-ти битной - AlexG(21.10.2018 07:17)
- Нашла => - Ксения(20.10.2018 23:45, ссылка)
- я тоже хочу.. - AlexG(20.10.2018 15:48)
- Оконного мне не надо - консольный хочу. - Ксения(20.10.2018 15:29)
- По ссылке есть работающий аналог hex2bin - AlexG(20.10.2018 15:27, ссылка)
- ucMike прав - если попросить Arduino IDE записать продукт компиляции на диск, то пишет два hex-файла - с загрузчиком и без: Ксения(444 знак., 20.10.2018 15:21)
- Пример можно в студию? Bootloader должен лежать по старшим адресам, его можно легко вырезать в .bin файле. - Экспериментатор(20.10.2018 12:51, )
- Arduino при компиляции добавляет загрузчик. HEX меньше 512 байт не бывает. - ucMike(20.10.2018 12:06)
- Дык если лок биты установлены, все равно хрен чего из Ардуины выгрузишь... - Yurasvs(19.10.2018 21:14)
- Это тоже аргумент в пользу того, чтобы внешним программатором не пользоваться, а использовать тот ардуиновый загрузчик, который уже залит. - Ксения(19.10.2018 22:14)
- Чтобы bootloader работал с stk500.exe, он должен правильно представляться ПРОГРАММАТОРУ. avrdude, видимо, плюет на имя, а stk500.exe незнакомца игнорирует. Вам придется исправить софт bootloader, если хотите, чтобы он соответствовал требованиям Экспериментатор(134 знак., 19.10.2018 00:11, )
- Править bootloader я не стану - лучше уж на Avrdude перейду :) - Ксения(19.10.2018 00:13)
- Они могли отрезать Avrdude, так как он является злостным хаком в схеме продаж. По количеству установленных секретных bootloader, можно считать лицензионные платежи за изготовление и продажу полезных плат. Цена на обычные ардуины упала ниже Экспериментатор(259 знак., 19.10.2018 00:30, )
- Боюсь. Если мне не удастся превратить 3D-принтер в химического робота, то я должна буду вернуть его владельцу в исходном состоянии. - Ксения(19.10.2018 00:33)
- Химический робот? Я что то пропустил? Хочу все знать! - ASDFS(19.10.2018 01:28)
- Запись своего тестового bootloader в Application Section для проверки интерфейса с stk500.exe Вам ничем плохим не светит. Гораздо больше дров можно наломать, если перегреть драйвера шаговых двигателей избыточным током. Еще можно зубья на ремнях Экспериментатор(253 знак., 19.10.2018 00:46, )
- Там Мега2560 не сама шаговым двигателем крутит, а лишь подает команды драйверу A4988, у него есть защита от перегрузки и нештатных ситуаций => - Ксения(19.10.2018 00:59, ссылка)
- Мне торопиться не надо - могу медленно двигатели гонять. По сути нужно лишь добиться, чтобы этот 3D-принтер верно позиционировал иглу от шприца (которую он держит) на поверхности горизонтального столика и умел ее поднимать/опускать на заданную Ксения(651 знак., 19.10.2018 01:23 - 01:26)
- А зачем такой хардкор - своя прошивка , бутлоадер ... ломать готовую вещь? boka17(1366 знак., 19.10.2018 19:07)
- Откуда информация про G-коды? Это что за язык? Станков ЧПУ? 3D-принтеры тоже поддерживают какое-то его подмножество? - Ксения(19.10.2018 22:02 - 22:41)
- Читайте: Экспериментатор(44 знак., 19.10.2018 22:48, )
- Накрылась тогда моя работа медным тазом :) - видимо здесь ничего в Ардуинку прошивать не надо, а надо лишь обучиться языку G-кодов. - Ксения(19.10.2018 22:50)
- Таки да. А в освободившееся время можно сделать на Ардуине вот это, не такие уж плохие они, эти Ардуины. - Yurasvs(20.10.2018 12:19, youtube)
- Вы меня огорчаете. Я ниже написал, почему так делать не надо. Впрочем, изучайте, знания лишними не бывают, особенно, если сроков Вам никто не ставит. - Экспериментатор(19.10.2018 22:56, )
- "Ниже" это где? Ссылочку лучше дайте. Почему G-кодами управлять плохо? Тем более что ... австралийцы меня опередили - сделали почти то же самое, что я хотела, на G-кодах. Причем, ардуинка у них в точности такая же. Только что в интернете их статью Ксения(33 знак., 19.10.2018 23:17, ссылка, картинка)
- На австралийской ссылке 100% решение вашей задачи. boka17(137 знак., 20.10.2018 10:07)
- Строчкой ниже. У Вас основной упор должен быть на базы данных, а положение пробирок почти не меняется, скругления и скорость тоже не имеют большого значения. В контроллерах станков все наоборот. Вам не нужна SD карта, управление лучше сделать Экспериментатор(274 знак., 19.10.2018 23:35, )
- "Ниже" это где? Ссылочку лучше дайте. Почему G-кодами управлять плохо? Тем более что ... австралийцы меня опередили - сделали почти то же самое, что я хотела, на G-кодах. Причем, ардуинка у них в точности такая же. Только что в интернете их статью Ксения(33 знак., 19.10.2018 23:17, ссылка, картинка)
- Накрылась тогда моя работа медным тазом :) - видимо здесь ничего в Ардуинку прошивать не надо, а надо лишь обучиться языку G-кодов. - Ксения(19.10.2018 22:50)
- Читайте: Экспериментатор(44 знак., 19.10.2018 22:48, )
- "Предлагаю абстрагироваться от "железа" на один уровень выше и управлять готовым принтером." - после таких предложений получаются забавные вещи, как на фотографии внутри:: Экспериментатор(1141 знак., 19.10.2018 20:26, )
- 2Экспериментатор: нужны шашечки или ехать? boka17(2145 знак., 20.10.2018 09:37)
- Вы совершенно правы. Даже если бы я осуществила свой проект, как сама хотела, то это все равно бы вылилось в сочинении своего интерфейсного языка, которым бы внешний компьютер мог выдавать Arduino-плате команды передвижения рабочей иглы. Т.е. по Ксения(1171 знак., 20.10.2018 10:58 - 11:02)
- Вывод совершенно правильный, но не надо огорчаться по поводу программирования - именно оно и остается! boka17(1092 знак., 20.10.2018 19:50)
- Вам не нужно одновременное совместное движение по не скольким осям, этим все сказано. Привязывая себя к G-коду, Вы тем самым привязываетесь к готовым контроллерам ЧПУ, что ограничит дальнейшие возможности. Для Вашей задачи достаточно отдавать Экспериментатор(993 знак., 20.10.2018 11:56, )
- Вы совершенно правы. Даже если бы я осуществила свой проект, как сама хотела, то это все равно бы вылилось в сочинении своего интерфейсного языка, которым бы внешний компьютер мог выдавать Arduino-плате команды передвижения рабочей иглы. Т.е. по Ксения(1171 знак., 20.10.2018 10:58 - 11:02)
- Я полагала очевидным, что мой топовый вопрос подразумевал вариант 2 - "не трогать загрузчик" и грузить свою прошивку через него. Оттого и выпытывала секреты работы с Ардуино у тех, кто может их знать. В противном случае никаких вопросов у меня бы Ксения(56 знак., 19.10.2018 22:09)
- Я так и понял, но в теории можно 1) потрогать и вернуть обратно, 2)сделать лучше, чем было. - Экспериментатор(19.10.2018 22:14, )
- 2Экспериментатор: нужны шашечки или ехать? boka17(2145 знак., 20.10.2018 09:37)
- Откуда информация про G-коды? Это что за язык? Станков ЧПУ? 3D-принтеры тоже поддерживают какое-то его подмножество? - Ксения(19.10.2018 22:02 - 22:41)
- Понятно, ведьмино зелье готовить. Я пару лет назад тоже был очень удивлен, когда ко мне обратился священник одной из наших местных церквей с просьбой отремонтировать ... колокольню! У них там оказывается к каждому колоколу огромный электромагнит Yurasvs(210 знак., 19.10.2018 13:00)
- Круто :)) - MBedder(19.10.2018 13:01)
- Очень интересная задачка :) - Ralex(19.10.2018 11:36)
- ШД разогреваются током через аактивное сопротивление обмоток. На максимальном токе по ДШ они выходят на свою максимальную температуру. Если Вам не нужно больших усилий и скорости, то ставьте минимальный достаточный по усилиям ток, а при длительной Экспериментатор(457 знак., 19.10.2018 01:41, )
- А зачем такой хардкор - своя прошивка , бутлоадер ... ломать готовую вещь? boka17(1366 знак., 19.10.2018 19:07)
- Еще добавлю, что некоторые драйверы ШД сгорают, если вручную быстро крутить шаговые двигатели, а питание отсутствует. На обмотках ШД при этом наводится ЭДС, которая может превышать 100В. - Экспериментатор(19.10.2018 01:17, )
- Это уже проще, хотя двигатели тоже можно перегреть, если задать слишком большой ток и не уменьшать его при простое. В ДШ на двигатели должно быть указано максимальное значение тока. При температуре выше 100С из них начинает вытекать смазка, Экспериментатор(267 знак., 19.10.2018 01:11, )
- Мне торопиться не надо - могу медленно двигатели гонять. По сути нужно лишь добиться, чтобы этот 3D-принтер верно позиционировал иглу от шприца (которую он держит) на поверхности горизонтального столика и умел ее поднимать/опускать на заданную Ксения(651 знак., 19.10.2018 01:23 - 01:26)
- Там Мега2560 не сама шаговым двигателем крутит, а лишь подает команды драйверу A4988, у него есть защита от перегрузки и нештатных ситуаций => - Ксения(19.10.2018 00:59, ссылка)
- Боюсь. Если мне не удастся превратить 3D-принтер в химического робота, то я должна буду вернуть его владельцу в исходном состоянии. - Ксения(19.10.2018 00:33)
- Они могли отрезать Avrdude, так как он является злостным хаком в схеме продаж. По количеству установленных секретных bootloader, можно считать лицензионные платежи за изготовление и продажу полезных плат. Цена на обычные ардуины упала ниже Экспериментатор(259 знак., 19.10.2018 00:30, )
- Править bootloader я не стану - лучше уж на Avrdude перейду :) - Ксения(19.10.2018 00:13)
- Так выведите разъем из корпуса на проводочках. Yurasvs(148 знак., 19.10.2018 21:00)
- Мне вы выгружать флеш надо, а загружать готовый. А с ардуиновым bootloader'ом хотела бы договориться, чтобы именно он мои прошивки по кабелю загружал, не вынуждая всякий раз разбирать конструкцию, чтобы присоединиться к плате программатором. - Ксения(18.10.2018 23:49)
- В исходниках нету bootloader! Настоящий хакир может написать на скетчах свой исполняемый код, которая выгрузит всю флеш вместе с bootloader. Дерзайте, если с avrdude выгорит, а установленные LOCK BITS запрещают чтение внешним программатором. - Экспериментатор(18.10.2018 23:40, )
- Выгружать их не требуется, т.к. на компьютере остались исходники. - Ксения(18.10.2018 23:32)
- Обычно, встроенный загрузчик позволяет прочитать всю флеш вместе с bootloader. Выгрузите ее оттуда средствами ардуино и посмотрите любым двоичным редактором в бинарнике, как себя называет это чудо. Будет понятнее, как его готовить. Экспериментатор(33 знак., 18.10.2018 23:14, )
- Я пока не представляю способностей ардуиного бутлоадера, кроме как загрузчика. ATmega2560. - Ксения(18.10.2018 23:35)
- Вот возможности, если у Вас такой: Экспериментатор(486 знак., 18.10.2018 23:56, )
- Вы не сказали - а из ардуино IDE родной скетч прошивается? - Гудвин(18.10.2018 23:39)
- Да, прошивается. И неродной тоже. Но я не хочу писать проект, как скетч, т.к. IAR знаю хорошо, а на скетчах только светодиодом моргать умею. :) - Ксения(18.10.2018 23:43 - 23:45)
- Ну так и слелайте *.bat файлик для avrdude с командной строкой, которую можно посмотреть в окне IDE при прошивке. И всех делов. - Гудвин(18.10.2018 23:47)
- Получилось. Спасибо за совет. - Ксения(19.10.2018 22:13)
- Попытаюсь. - Ксения(18.10.2018 23:51)
- Ну так и слелайте *.bat файлик для avrdude с командной строкой, которую можно посмотреть в окне IDE при прошивке. И всех делов. - Гудвин(18.10.2018 23:47)
- Да, прошивается. И неродной тоже. Но я не хочу писать проект, как скетч, т.к. IAR знаю хорошо, а на скетчах только светодиодом моргать умею. :) - Ксения(18.10.2018 23:43 - 23:45)
- Я пока не представляю способностей ардуиного бутлоадера, кроме как загрузчика. ATmega2560. - Ксения(18.10.2018 23:35)
- Похоже, штатными средствами можно только прошить скетчи, а выгрузить их нельзя. Вот это номер! Осталось только подглядеть монитором USB, что там происходит при загрузке, верификацию они вряд ли отрезали. Вот так делают деньги! - Экспериментатор(18.10.2018 23:29, )
- Выводы для ISP-программирования на плате есть, но сама эта плата находится внутри тела 3D-принтера, разборка которого весьма затруднительна, чтобы ее делать всякий раз, когда надо сменить прошивку. - Ксения(18.10.2018 23:09, картинка, картинка)
- Я бы на этом месте плюнул и подключил внешний программатор. Пусть Ксения посмотрит и нам напишет, есть ли там для прошивки микроконтроллера на плате (указать) необходимый разъем. В даташите на МК указаны выводы для программирования. Загрузчик Экспериментатор(49 знак., 18.10.2018 23:05, )
- Вам ниже m16 дал ссылку на альтернативные exe, которые вроде загружают hex. Если уж очень надо, то можно найти, чем avrdude отличается от фирменного stk500, возможно, что лишь USB идентификатором при подключении. Экспериментатор(25 знак., 18.10.2018 22:54, )
- Так и проблема в том, что IAR'овскую прошивку я запихать в эту Ардуину не могу. Сам IAR этого делать не умеет, а Arduino IDE умеет, но не хочет. - Ксения(18.10.2018 22:41)
- А что, от avrdude корчит? :) - Гудвин(18.10.2018 21:58)
- Похоже, они что-то там не допилили или, наоборот, выпилили. Я не нашел упоминаний об использовании STK500.exe для программирования Arduino. Может оно и к лучшему, если Вы ИАР собираетесь использовать, места на жестком диске больше останется :) - Экспериментатор(18.10.2018 22:21, )
- Смущает меня то, что программа STK500.exe тоже писана для программаторов, как и AVRDUDE. Но если загрузчик Arduino и в самом деле эмулирует программатор, то должен существовать набор параметров, когда STK500.exe может это сделать. - Ксения(18.10.2018 21:54)
- Что смущает? - v05(18.10.2018 21:45)
- И естественно сам себя не затирает.) - v05(18.10.2018 21:39)
- Спасибо. Хоть что-то прояснилось. Хотя далеко не всё... - Ксения(18.10.2018 21:38)
- У AVR есть специальная сеция в памяти, куда записывают bootloader. Если правильно выставить LOCK BITS, то он сам себя стереть никогда не сможет. - Экспериментатор(18.10.2018 21:11, )
- А мне что толку от этого? Он и без моих усилий сам себя не стирает. От кого мне его защищать лок-битами? - Ксения(18.10.2018 21:14)
- #define ПРОГРАММАТОР (программа в компьютере) Из терминалки микроконтроллеры уже очень давно сами не загружаются. - Экспериментатор(18.10.2018 21:07, )
- Ваш пост мне непонятен. - Ксения(18.10.2018 21:08)
- Пишите на cpp без скетчей. ucMike(114 знак., 18.10.2018 22:31)