Официальный сайт компании Arduino по адресу arduino.cc
Держать несколько скетчей в памяти без перезаливки
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 17/02/2014 - 06:38
Я чайник в софте, осваиваю мегу, запустил несколько полезных скетчей - они заработали. Пытаюсь освоить другие. Однако перспектива постоянного контакта с компом для перезаливки - меня не устраивает.
Можно ли организовать загрузку нескольких скетчей в виде одного большого и выбирать нужный для запуска с помощью кнопок или других воздействий!
Заранее благодарю!
Можно ли организовать загрузку нескольких скетчей в виде одного большого и выбирать нужный для запуска с помощью кнопок или других воздействий!
а кнопки у вас где будут? можете с планшета заливать, на худой конец, если такая неприязнь к компьютеру :)
Во первых все кетчи должны поместиться в память.
Если так, то сделайте из нескольких скетчей один и запускайте соответствующие куски по условию.
Хоть по времени, хоть по освещенности, хоть по прерыванию хоть по нажатию кнопки. И так далее влоть до GSM и езернета.....
А как слить в один: читайте про операторы if() про функции или case ... switch....
Компьютер я уважаю. Но в полевых условиях он обуза. Мне и так чемодан с инструментом носить.
Поэтому хочется иметь универсальный девайс для беглого тестирования нескольких типов контроллеров на объекте. Кнопки в девайсе. Экран мне не нужен. Выбрал тип кнопкой, подал питание и вижу результат по набору светодиодов. Не прошел тест - забираю в ремонт. Прошел тест - ищу засаду вне контроллера.
kriss, у вас прекрасная возможность научиться простейшим командам программирования ардуино, и при этом сделать для себя что-то полезное. Вам ответ -можно, действуйте :)
Выбрал тип кнопкой, подал питание и вижу результат по набору светодиодов. Не прошел тест - забираю в ремонт. Прошел тест - ищу засаду вне контроллера.
зачем для выбора функций загружать новый скетч?
сначала:
- ардуина есть платформа для разработки и прототипирования устройств.
- исходник программы представляет из себя так называемый "скетч", который компилируется в прошивку, которая заливается в контроллер по компорту.
вопрос: вы когда хотите в левый карман что-то положить, отпарываете его с правой стороны и пришиваете на левую сторону?
вывод: разрабатывайте универсальное устройство с требуемым, полным функционалом и пользуйтесь.
Спасибо dimax, за доброе слово. Конечно я именно это и делаю. Но мне, радиолюбителю с ламповых времен, это трудно из-за возраста. Купил внуку, а заигрался сам - (впал в детство). Решил найти полезное применение в своей работе.
под словом тип имеется в виду проверяемое устройство ( например система управления лифтом ) с другими условиями, другими входами, выходами и алгоритмом диагностики. Если алгоритмы для всех типов слить в один универсальный скетч - эту кучу придется постоянно проверять на вшивость -не надо!
Когда одним контроллером проверяешь другой - нужно быть уверенным, что первый безупречен.
если понравится в эксплуатации- и спаяю полноценный девайс из отдельных компонентов, а ПО закажу у профи. А тобы заказать ПО - уже хочу сам разобраться в тонкостях.
Насчет рекомендации с карманом - я в таких случаях выражаю мысль более внятно: не надо чесать правое ухо через левую ногу. Дарю!
под словом тип имеется в виду проверяемое устройство ( например система управления лифтом ) с другими условиями, другими входами, выходами и алгоритмом диагностики. Если алгоритмы для всех типов слить в один универсальный скетч - эту кучу придется постоянно проверять на вшивость -не надо!
какая разница, где у вас глюки - в мешке дуино, сотне скетчей, одном универсальном девайсе.
вердикт - считаю проблему порождением непонимания сути дуино.
Да, возможно я не понимаю что может эта игрушка. Но задаю вопрос и ожидаю от профи получить ответ по сути - так можно сделать или нельзя. Если я пойму, что это невозможно - я откажусь от этой затеи и буду использовать эту игрушку только по готовым рекомендациям. А словоблудие не для моего возраста.
Скорее всего Вы не воспринимаете всерьез моих пояснений, потому что не сталкивались с "чудесами" при эксплуатации промышленных контроллеров. А они часто бывают. из серии "кое что, кое когда сбоит!".
Лучше бы вообще не работал, чем работает, но кое когда!
Какой-то компонент, например, почти деградировал, но проявляет себя только в определенных условиях. Надо их создавать при проверке исскуственно. Я знаю как контроллер должен себя вести в разных ситуациях. При проверке фирменным "сервистулом" - чаще всего ОК ( он не предусматривает просадку напряжения, изменение температуры и пр.)., При подключении к приводу -имеем сбой. На самом деле один из оптронов теряет к-т передачи из-за помех по сети, потому что в пограничном состоянии. Его надо спровоцировать до подключения. Исправный оптрон не должен реагировать на помеху. Иначе придется оправлять контроллер в ремонт ( за бугор на месяц ), а расходы уменьшают фонд зарплаты коллектива. Я смогу найти глюк и заменить за пару минут, если будет возможность проверять конкретный узел, а не все сразу в режиме нонстоп фирменного прибора .
Конечно я давно сделал подобные стенды на жесткой логике для нескольких типов контроллеров. Но они каждый год добавляются, клонируются и модернизируются. Процесс этот связан с жадностью наших поставщиков. Кстати в Сочи эти проблемы тоже проявились. Когда я еду на объект , мне неизвестно исполнение тип того, там стоит. Таскать все сразу пешком на 30этаж- не айс даже для молодых.
Надеюсь понятно?
Да, возможно я не понимаю что может эта игрушка. Но задаю вопрос и ожидаю от профи получить ответ по сути - так можно сделать или нельзя. Если я пойму, что это невозможно - я откажусь от этой затеи и буду использовать эту игрушку только по готовым рекомендациям. А словоблудие не для моего возраста.
Нельзя в один стакан налить сразу два стакана. Для Вашего возраста это еще понятно?
А плату для тестирования - ее еще специально разрабатывать надо. При чем тут несколько скетчей - непонятно. На мой взгляд - самое оптимальное, это одна кнопка питания, а дальше сам контроллер определяет плату и сам делает диагностику.
А словоблудие не для моего возраста.
возраст здесь не при чём, прибегают всех возрастов, которым нужно вынь да положь - начинаешь им объяснять суть глупости их хотелок, продолжают упорствовать в нежелании разобраться.
Вот пример на сервах и кнопке, всё у меня робит
Убираете мою библиотеку серво и мои команды для серво и ставите своё всё, я просто использую готовые примеры и их разбираю до основания и собираю свой пример.
kriss
Сколько "полезных" скетчей?
Сколько "весят" скетчи?
Мож проще купить ардуинки про-микро и в каждую свой скетч - вот и пробники готовые, благо они очень маленькие и главное дешевые.
Большое спасибо за поддержку Андрей01 и NE_XT!
Рад, что есть в форуме НОРМАЛЬНЫЕ люди, без хамства и понтов. Я не нуждаюсь в готовом скетче и тем более нахаляву. У меня достаточно возможностей заказать прогу на любом процессоре из используемых в работе. Я хочу понимать, что делает скетч и изменять его. Но "мои профи" ардуину не воспринимают ее всерьез. А мне она понравилась - т.к я не программист. Мне нужно было узнать, что такое возможно.
сделать девайс на один конкретный контроллер у меня нет вопросов и я уже приступил. Но дублировать "железо" очень нерационально. Вероятность использования неизвестна, а основная трудоемкость и размеры связаны с интерфейсом. Чтобы подключиться к ардуине нужно собирать интерфейс - до десятка разьемов с преобразователями уровней DC24/DC5 и наоборот. Длина жгутов до 0,5м.
Однако идею NE_XT! я продумаю - конечно проще менять самостийные ардуины внутри интерфейса. Смущают только общие разъемы интерфеса к ардуине - надежность.
еще раз спасибо и удачи!
Мне нужно было узнать, что такое возможно.
так возможно или нет?
...чисто по хамски интересуюсь.
можно (перемычками, через меню, по какому нить датчикку и т.д.)
например каждый скетч завернуть в if оператор
Спасибо, работаю
например каждый скетч завернуть в if оператор
сколько в итоге скетчей получится?
сколько пямять позволит
сколько пямять позволит
больше одного?
хоть 10 (если память позволит)
int prog=analogRead(A0);
if (prog>200 && prog<300)
{
//scetch 1
}
if (prog>200 && prog<300)
{
//scetch 1
}
if (prog>300 && prog<400)
{
//scetch 2
}
if (prog>400 && prog<500)
{
//scetch 3
}
мне это так представляется (например)
ок - тема об объединении двух и более скетчей заиграла новыми душераздирающими подробностями...
int prog=analogRead(A0);
if (prog>200 && prog<300)
{
//scetch 1
}
вы повторяетесь. этот вариант был сразу же предложен топикстартеру, а именно
... сделайте из нескольких скетчей один и запускайте соответствующие куски по условию.
но это вариант он [с высоты своего опыта :) ] отверг, ибо
Если алгоритмы для всех типов слить в один универсальный скетч - эту кучу придется постоянно проверять на вшивость -не надо!
ну тогда скетчи заливать на SD-карту и через меню выбирать нужный и перепрошивать МК.
Правда, для этого понадобятся уже две Ардуинки - одна прошивает другую, в итоге вшивость будет аналогичная, но с небольшим плюсом - можно оперативно наклонировать сколько угодно МК.
ну тогда скетчи заливать на SD-карту и через меню выбирать нужный и перепрошивать МК.
Правда, для этого понадобятся уже две Ардуинки - одна прошивает другую, в итоге вшивость будет аналогичная, но с небольшим плюсом - можно оперативно наклонировать сколько угодно МК.
скетчи выводить на LCD, редактировать кнопочным джойстиком.
на LCD 16x2 :0Ъ
Вы - неимоверный транжира!
Ведь уже имеется светодиод на 13-й ноге.
В Меге не получится, а вот в Уно можно:
Купить много микроконтроллеров Atmega328P-PU. Прошить их разными скетчами, а потом в панельки микросхемы переставлять.
Спасибо всем. получилось слить 4 скетча. общий объем 7000байт. только потребление возросло из-за LCD. Можно и стоит ли заменить на другую ардуино UNO или NANO?