справится ли uno

andreichsb
Offline
Зарегистрирован: 26.11.2014

Всем привет, с наступающим!

Прежде чем браться за разработку (всмысле, искать разработчика) хочется узнать у сведущих людей - справится ли arduino Uno с поставленной задачей, всмысле, хватит ли памяти, ресурсов, вводов-выводов.

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

Как думаете, потянет?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

andreichsb пишет:

.....

Как думаете, потянет?

Привет.Вас тоже с наступающим.

Справится ли Уно зависит только от разработчика.

ИМХО-UNO справится, но я бы предпочел резвести отдельную печатную плату на которой разместил Atmega328(или Arduino pro mini), расширитель портов и драйвера для индикаторов и всю обвязку для них. Реле, блоки кнопок и индикаторы отдельными блоками соединенными проводами на пайке.

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

 

MacSim
Offline
Зарегистрирован: 28.11.2012

1.Многое зависит от тех результатов, которые хотите достич.

Эсли при этом хотите чтоб он траектории общитывал и строил по говнокодам (по смыслу вашего устройства вроде оно), то слабоват. Нет конечно прямолинейные потянет, но вот с интерполяцией уже нет.

 

MacSim
Offline
Зарегистрирован: 28.11.2012

Прежде че браться за разработку полазьте в нете. на 80-90% могу сказать, что до вас это уже кто-то сделал.

Если и не в таком варианте, то с 3-мя сервами и шпинделем точно есть.

MacSim
Offline
Зарегистрирован: 28.11.2012

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

andreichsb
Offline
Зарегистрирован: 26.11.2014

Максим, то что Вы узрели в данном вопросе некий CNC трехмерник или что то в этом роде, я понял еще из первого вашего сообщения. Не ищите привидение там где его нет...Нет, это не cnc, энкодерная точность измерений не нужна - вполне хватит оптопары, которая дешевле в 1000 раз. единственной в чем я ошибся по запарке в первом сообщении - каналов обратной связи не один а четыре, оптопара + три термодатчика. 

В остальном, вопрос остается открытым - влезет ли ориентировочно программа в UNO. Тут ведь все разработчики "крутяк", как почитаешь запросы (30т.р., 60-70т.р.) не хочется ввязываться в бесполезную работу, заплатить деньги за то что бы потом человек развел руками и со словами "звини, не лезет" либо потянул дополнительные расходы либо вообще исчез из плдя зрения... (прошу не принимать близко к сердцу)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Блин. Ну не влезет в УНО, возьмите Мегу или каку ишо шнягу .. их же "вагон".. :)

andreichsb
Offline
Зарегистрирован: 26.11.2014

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

andreichsb
Offline
Зарегистрирован: 26.11.2014

следующий вопрос, кто возьмется за разработку ПО?

Pochemushka
Offline
Зарегистрирован: 12.12.2014

С наступившим Всех!

Мое мнение не справится.. Я сейчас получл по башке граблями от UNO: написал скетч заимающий более 76% SRAM - в работе начались "зеленые человечки", например конструкция:

String stroka;
char s;
stroka+=s; 
в итоге нифига  к строке не добавляет,т.е. тупо перестают работать любые операции со строками и пока код не кастрируешь до 1570 байт в SRAM,  "барабашки" носятся по коду и гадят налево и  направо. На мой взгляд алгоритм не сложный, но с UNO программист будет "ходить по грани"... 

zalias7
Offline
Зарегистрирован: 18.03.2015

Pochemushka пишет:

С наступившим Всех!

Мое мнение не справится.. Я сейчас получл по башке граблями от UNO: написал скетч заимающий более 76% SRAM - в работе начались "зеленые человечки", например конструкция:

String stroka;
char s;
stroka+=s; 
в итоге нифига  к строке не добавляет,т.е. тупо перестают работать любые операции со строками и пока код не кастрируешь до 1570 байт в SRAM,  "барабашки" носятся по коду и гадят налево и  направо. На мой взгляд алгоритм не сложный, но с UNO программист будет "ходить по грани"... 

 

String stroka;
char s;
stroka+=String(s);

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Не с Uno программист ходить по грани будет, а с Wiring'ом и кривым кодом) оптимизация, батюшка, оптимизация)

Pochemushka
Offline
Зарегистрирован: 12.12.2014

Да как угодно( не придирайтесь) , ВООБЩЕ не работают любые операции со строками даже:
String stroka;
stroka="primer";
Serial.println(stroka.length());
Serial.println(stroka);

вывод первая строка 0, во второй белые медведи жрут зефир в пургу...
Поэтому UNO использую только лампочками пощелкать, если на борту  GSM + пару RFID + 10 датчиков движения и кучу лампочек, то на UNO если использовать библиотеку  GSM (даже крест на крест поотключать прерывания в библиотеках GSM3SoftwareSerial и SoftwareSerial), то SRAM уже больше 1570 байт задействуется.  Спасают at команды, но  с ними тоже не все гладко на UNO приходиться гомосячиться с listen softwareserial. 

Поэтому если MEGA много, а делать нужно использую Leonardo там и память чуток более, и тормозов нет даже если 90% SRAM задуть. 

andreichsb
Offline
Зарегистрирован: 26.11.2014

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

andreichsb
Offline
Зарегистрирован: 26.11.2014

кто сталкивался с твердотелками? как реализовать переключение одной ттр двух соленоидов?

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

andreichsb пишет:

кто сталкивался с твердотелками? как реализовать переключение одной ттр двух соленоидов?

Никак. Либо две твердотелки, по одной на каждый соленоид, либо одна твердотелка для манипуляции клапаном плюс обычное реле с перекидным контактом для переключения клапанов.

У SSR при работе с соленоидом из-за высокой индуктивности нагрузки могут быть проблемы. Нужно проверять работу конкретного типа SSR с конкретным типом клапана.

Alexino
Offline
Зарегистрирован: 29.12.2015

Pochemushka, не стоит тут такие лозунги выкрикивать. У человека, говорящего "не работает строка", вообще странно, что что-то работает. Соответственно, не мудрено, что вы для элементарной задачи берёте дуину покруче.
Не работать ВООБЩЕ может Русский человек в праздники, а код всегда работает так, как написал его программист. Написал кривыми руками - значит будет работать криво.
Работает не так, как хочется - взяли и прошлись отладкой, посмотрели что и где не так.
Строка не может не работать, собственно, она вообще не должна никак работать, ибо она - всего-лишь массив символов. В языке Си вообще нет такого понятия как строка, оно есть только на бумажке или в текстовом редакторе. Это азы языка, почитайте литературку...

Pochemushka
Offline
Зарегистрирован: 12.12.2014

Alexino Предлагаю не учить отца как сделать пятого ребенка. а просто прочитать мои предудыщие собщения,  как принято слева направо, т.е. по христиански, а не по лениво-арабской технологии справа налево по диагонали через строчку. Я нигде не писал про НЕРАБОТАЮЩИЕ строки. я писал, о том, что при превышении уровня заполнения SRAM  больше определенного уровня начинаются глюки, например перестают работать ОПЕРАЦИИ со строками. Разница в буквах видна? 

Обычно все теоритики  перестают спорить и начинают протирать очки после практики. поэтому просто возьмите UNO/NANO залейте ниже следующий скетч и посмотрите в монитор порта, потом поменйте в первой стройке скетча размер массива String с 150 на 151  и еще раз загрузите и посмотрите в монитор порта - вы удивитель,  но вывод будет сильно отличаться от того что вы увидите в первый раз. 

Могу дать даже дать подсказку в чем дело :) Читаем как и где хранятся переменные в памяти контролера в какой из трех возможных вариантах :) 
За нескольк лет общения с aduino я уже насобирал целый мешок всяких "недокументированных" особенностей, как то написание в  serial определенной строки крашит работающий на программном softwareSerial GSM мопед, казалось бы где связь? Но она есть.  

Поэтому с Вашего позволения  я останусь при своем мнении, что если вы делаете скетч в котором будет крутиться под тысячу переменных то лучше UNO  не ипользовать. 
Засим откланиваюсь... 

String  test[150];
String test1;
char test2[50]="this test prigramm";

void setup() {
Serial.begin(9600);
              }

void loop() {
   for(int i=0;i<String(test2).length();i++)test1+=test2[i];
   Serial.println(test1);  
   if(test1=="")Serial.println("Herov kak drov tebe,  a ne operacii so strokami!!!");
   test1="";
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015
Pochemushka, что Вы уперлись в эти строки?
Работа со строками вообще нехарактерна для микроконтроллеров.
Если для Вашей задачи требуется работа именно со строками (что странно), то я бы рекомендовал контроллер с памятью не менее 4 Кбайт. Строки - очень специфичнавя область (это Вам не PC, где строки - норма), если же нужны фрагменты текста, следовало бы посмотреть в сторону char*.