Команда в массиве

strelok12371
Offline
Зарегистрирован: 28.12.2020

Всем привет. Работаю над проектом автономного склада. Столкнулся с вопросом оптимизации кода. Давайте я расскажу про проект для большей наглядности (код пока только на бумаге). У нас есть склад, который разбит по цветам. Каждый цвет - это определённый предмет, но для большей вместимости однотипных предметов, у каждого цвета несколько ячеек хранения. Так же у нас есть терминал (контроллер arduino uno r3 с которым мы общаемся через serial) и робот с манипулятором. Робот и терминал обмениваются информацией через wifi модуль. Принцип работы следующий. На терминале склад представлен массивом (столбцы - цвет, строки - ячейка). в зависимости от заполнении цветов и ячеек, в него записывается 0 или 1. и когда нам нужно взять или положить на склад, (в каждом цвете три ячейки), у нас появляется семь вариантов того, как склад может быть заполнен. В зависимости от этого, манипулятор должен выполнять определённое действие(для всех цыетовых зон они одинаковые). Идея пришла к тому, чтобы сразу расписать все варианты действия для манипулятора. Терминал будет проводить расчет и отправлять номер действие роботу. и в зависимости от той цифры, которую мы передали роботу, должно будет в определённой зоне выполнится это действие. если делать поиск действия через if, то код будет слишком объёмным. Теперь после того как я объяснил примерно принцип, сам вопрос. можно ли код для ардуино записывать в массив и в зависимости от номера действия обращаться к определённому массиву (в действии для манипулятора будут только команды servo для 5-ти микросервоприводов).

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Как мне представляется - реально работающее решение будет зависеть от множества факторов.

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

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

b707
Offline
Зарегистрирован: 26.05.2017

strelok12371 пишет:

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

формулировка бредовая, но по сути то что вы хотите - реализуется оператором switch() case

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

strelok12371, Ваш текст состоит из двух частей: описания и вопроса. К сожалению, внятно сформулировать ни того, ни другого, Вы не смогли. У меня, когда я читал, конечно, возникло определенное впечатление, но, прочтя три предыдущие ответа на Ваше сообщение, я заметил, что каждый из четырех отвечающих понял тему по-своему. Т.е. по-разному.

Попытайтесь расписать чуть поподробнее, и не забудьте снабдить текст иллюстрациями.

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

Попытайтесь сформулировать вопрос в терминах задачи, а не в терминах реализации.

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

вирусные технологии добрались до ардуино?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

strelok12371 пишет:

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

Можно.