Держать несколько скетчей в памяти без перезаливки

kriss
Offline
Зарегистрирован: 24.01.2014

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

Можно  ли организовать загрузку нескольких скетчей в виде одного большого и  выбирать нужный  для запуска с помощью кнопок или других воздействий!

Заранее благодарю!

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

kriss пишет:

Можно  ли организовать загрузку нескольких скетчей в виде одного большого и  выбирать нужный  для запуска с помощью кнопок или других воздействий!

а кнопки у вас где будут? можете с планшета заливать, на худой конец, если такая неприязнь к компьютеру :)

Looka
Offline
Зарегистрирован: 24.04.2012

Во первых все кетчи должны поместиться в память. 

Если так, то сделайте из нескольких скетчей один и запускайте соответствующие куски по условию.

Хоть по времени, хоть по освещенности, хоть по прерыванию хоть по нажатию кнопки.   И так далее влоть до GSM и езернета.....

А как слить в один:  читайте  про операторы if()   про функции   или case ...  switch....

kriss
Offline
Зарегистрирован: 24.01.2014

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

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

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kriss, у вас прекрасная возможность научиться простейшим командам программирования ардуино, и при этом сделать для себя что-то полезное.  Вам ответ -можно, действуйте :)

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

kriss пишет:

Выбрал тип кнопкой, подал питание и вижу результат  по набору светодиодов. Не прошел тест - забираю в ремонт. Прошел тест - ищу засаду вне контроллера.

зачем для выбора функций загружать новый скетч?

сначала:

- ардуина есть платформа для разработки и прототипирования устройств.

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

вопрос: вы когда хотите в левый карман что-то положить, отпарываете его с правой стороны и пришиваете на левую сторону?

вывод: разрабатывайте универсальное устройство с требуемым, полным функционалом и пользуйтесь.

 

kriss
Offline
Зарегистрирован: 24.01.2014

Спасибо  dimax, за доброе слово. Конечно я  именно это и делаю.  Но мне, радиолюбителю с ламповых времен, это трудно из-за  возраста.  Купил внуку,  а  заигрался  сам - (впал в детство).  Решил  найти полезное применение в своей  работе.   

 

kriss
Offline
Зарегистрирован: 24.01.2014

под словом тип имеется в виду  проверяемое устройство ( например система управления лифтом  ) с другими условиями, другими входами, выходами и алгоритмом диагностики.    Если   алгоритмы   для всех типов слить в один универсальный  скетч -  эту кучу придется  постоянно  проверять на вшивость -не надо! 

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

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

  Насчет рекомендации   с карманом - я в таких случаях выражаю мысль  более внятно:  не надо чесать правое ухо через левую ногу.  Дарю!

 

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

kriss пишет:

под словом тип имеется в виду  проверяемое устройство ( например система управления лифтом  ) с другими условиями, другими входами, выходами и алгоритмом диагностики.    Если   алгоритмы   для всех типов слить в один универсальный  скетч -  эту кучу придется  постоянно  проверять на вшивость -не надо! 

какая разница, где у вас глюки - в мешке дуино, сотне скетчей, одном универсальном девайсе.

вердикт - считаю проблему порождением непонимания сути дуино.

kriss
Offline
Зарегистрирован: 24.01.2014

Да,  возможно я не понимаю что  может эта игрушка.  Но задаю вопрос и  ожидаю от    профи  получить ответ по   сути - так можно сделать или нельзя.         Если  я пойму, что это невозможно - я откажусь от этой  затеи и буду использовать эту игрушку только по готовым рекомендациям.   А словоблудие не для моего возраста.

Скорее всего Вы не воспринимаете всерьез моих пояснений,  потому  что не сталкивались с "чудесами" при эксплуатации промышленных контроллеров.   А они  часто бывают. из серии "кое что, кое когда сбоит!".

Лучше бы  вообще не  работал, чем  работает,  но кое когда!

Какой-то  компонент, например,  почти деградировал, но проявляет себя только в определенных условиях.   Надо  их создавать  при проверке исскуственно.  Я знаю как  контроллер должен  себя вести в разных ситуациях.    При    проверке   фирменным  "сервистулом" -  чаще всего  ОК ( он не предусматривает просадку напряжения, изменение температуры и пр.).,  При подключении к приводу -имеем сбой.  На самом деле один из оптронов теряет к-т передачи  из-за помех по сети, потому что   в  пограничном состоянии.  Его надо спровоцировать до  подключения.  Исправный  оптрон не  должен реагировать на помеху.        Иначе придется оправлять  контроллер в ремонт ( за бугор на месяц ), а  расходы уменьшают фонд зарплаты коллектива.   Я  смогу найти глюк и заменить за пару минут, если будет  возможность  проверять конкретный узел, а не все сразу  в режиме нонстоп  фирменного прибора .

Конечно я давно сделал подобные стенды на жесткой логике для нескольких типов контроллеров. Но они каждый год добавляются,  клонируются и модернизируются.       Процесс этот связан с жадностью  наших поставщиков.   Кстати в Сочи эти проблемы тоже проявились. Когда  я еду  на объект , мне  неизвестно  исполнение тип того, там стоит.  Таскать все сразу  пешком на 30этаж- не айс даже для молодых.   

Надеюсь понятно?

 

 

 

 

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

kriss пишет:

Да,  возможно я не понимаю что  может эта игрушка.  Но задаю вопрос и  ожидаю от    профи  получить ответ по   сути - так можно сделать или нельзя.         Если  я пойму, что это невозможно - я откажусь от этой  затеи и буду использовать эту игрушку только по готовым рекомендациям.   А словоблудие не для моего возраста.

Нельзя в один стакан налить сразу два стакана. Для Вашего возраста это еще понятно?

А плату для тестирования - ее еще специально разрабатывать надо. При чем тут несколько скетчей - непонятно. На мой взгляд - самое оптимальное, это одна кнопка питания, а дальше сам контроллер определяет плату и сам делает диагностику.

 

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

kriss пишет:

А словоблудие не для моего возраста.

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

Андрей01
Offline
Зарегистрирован: 04.11.2013

#include <Servo.h>

Servo servo_gor;// создаём объект для контроля сервы

int val;//
void setup()  
{  
   servo_gor.attach(9);// подключаем серву к пину 9      
   pinMode(2, INPUT);   //объявляем 2 пин как вход    
}
void loop()                       
{
   val = digitalRead(2);    // узнаём состояние кнопки
  if(val)                    // тоже самое что (val == HIGN)  // если 10 пин замкнут
     {
     servo_gor.writeMicroseconds(2000);
   delay(1000);
 servo_gor.writeMicroseconds(2150);
   delay(1000);
     }               // делаем какуюто каманду
  if(!val)                   // тоже что и val==LOW           // если 10 пин не замкнут
     {
     servo_gor.writeMicroseconds(1000);
   delay(5000);
     servo_gor.writeMicroseconds(2000);
   delay(5000);
   }               // делаем другую каманду

Вот пример на сервах и кнопке, всё у меня робит

 

Андрей01
Offline
Зарегистрирован: 04.11.2013

Убираете мою библиотеку серво и мои команды для серво и ставите своё всё, я просто использую готовые примеры и их разбираю до основания и собираю свой пример.

NE_XT
NE_XT аватар
Offline
Зарегистрирован: 22.05.2012

kriss

Сколько "полезных" скетчей?

Сколько "весят" скетчи?

Мож проще купить ардуинки про-микро  и в каждую свой скетч - вот и пробники готовые, благо они очень маленькие и главное дешевые.

kriss
Offline
Зарегистрирован: 24.01.2014

Большое спасибо за поддержку Андрей01 и NE_XT!

 Рад, что есть в форуме НОРМАЛЬНЫЕ люди, без хамства и понтов.        Я не нуждаюсь в готовом скетче и тем более нахаляву.    У меня достаточно возможностей заказать  прогу на любом процессоре из используемых в работе.    Я хочу понимать, что делает скетч и изменять его.     Но "мои  профи"  ардуину не   воспринимают  ее всерьез.      А  мне она понравилась - т.к я не программист.   Мне нужно было  узнать, что такое возможно.  

сделать девайс  на  один конкретный контроллер    у меня нет вопросов  и я уже приступил.  Но дублировать  "железо" очень нерационально.       Вероятность использования  неизвестна, а основная трудоемкость и размеры связаны с интерфейсом.                   Чтобы подключиться к  ардуине нужно собирать интерфейс - до десятка разьемов с преобразователями уровней DC24/DC5 и наоборот.  Длина жгутов до 0,5м.   

Однако  идею NE_XT!  я продумаю - конечно проще менять  самостийные ардуины внутри интерфейса. Смущают   только общие разъемы  интерфеса к ардуине - надежность.

еще раз спасибо и удачи!

  

 

 

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

kriss пишет:

Мне нужно было  узнать, что такое возможно.  

так возможно или нет?

...чисто по хамски интересуюсь.

denis707
Offline
Зарегистрирован: 09.09.2013

можно (перемычками, через меню, по какому нить датчикку и т.д.)

denis707
Offline
Зарегистрирован: 09.09.2013

например каждый скетч завернуть в if оператор 

kriss
Offline
Зарегистрирован: 24.01.2014

Спасибо, работаю

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

denis707 пишет:

например каждый скетч завернуть в if оператор 

сколько в итоге скетчей получится?

denis707
Offline
Зарегистрирован: 09.09.2013

сколько пямять позволит

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

denis707 пишет:

сколько пямять позволит

больше одного?

denis707
Offline
Зарегистрирован: 09.09.2013

хоть 10 (если память позволит)

 

denis707
Offline
Зарегистрирован: 09.09.2013

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

 }

мне это так представляется (например)

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

ок - тема об объединении двух и более скетчей заиграла новыми душераздирающими подробностями...

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

denis707 пишет:

int prog=analogRead(A0);

if (prog>200 && prog<300)

 {

  //scetch 1

 }

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

Looka пишет:

... сделайте из нескольких скетчей один и запускайте соответствующие куски по условию.

но это вариант он [с высоты своего опыта :) ] отверг, ибо

kriss пишет:

Если   алгоритмы   для всех типов слить в один универсальный  скетч -  эту кучу придется  постоянно  проверять на вшивость -не надо!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ну тогда скетчи заливать на SD-карту и через меню выбирать нужный и перепрошивать МК.

Правда, для этого понадобятся уже две Ардуинки - одна прошивает другую, в итоге вшивость будет аналогичная, но с небольшим плюсом - можно оперативно наклонировать сколько угодно МК.

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

Tomasina пишет:

ну тогда скетчи заливать на SD-карту и через меню выбирать нужный и перепрошивать МК.

Правда, для этого понадобятся уже две Ардуинки - одна прошивает другую, в итоге вшивость будет аналогичная, но с небольшим плюсом - можно оперативно наклонировать сколько угодно МК.

скетчи выводить на LCD, редактировать кнопочным джойстиком.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

на LCD 16x2 :0Ъ

step962
Offline
Зарегистрирован: 23.05.2011

Вы - неимоверный транжира!

Ведь уже имеется светодиод на 13-й ноге.

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

В Меге не получится, а вот в Уно можно:

Купить много микроконтроллеров Atmega328P-PU. Прошить их разными скетчами, а потом в панельки микросхемы переставлять.

kriss
Offline
Зарегистрирован: 24.01.2014

Спасибо  всем. получилось слить 4 скетча. общий объем 7000байт.    только потребление возросло из-за LCD.   Можно и стоит   ли заменить на другую ардуино  UNO   или NANO?