arduino + app inventor + массив

anon
Offline
Зарегистрирован: 23.05.2013

добрый день. хочу со смартфона передавать массив на ардуину. 
в аррinventor написал такое. подскажите, как корректно принять этот массив на ардуине?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

anon пишет:

 подскажите, как корректно принять этот массив на ардуине?

Изучить си

anon
Offline
Зарегистрирован: 23.05.2013

серьзно? свой язык программировния написать  посоветуй еще.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

anon пишет:

серьзно? свой язык программировния написать  посоветуй еще.

Тогда - никак. 

anon
Offline
Зарегистрирован: 23.05.2013

мне нужно принять 3 числа с андроида в массиве, а вы мне предлагаете с изучить - (тем скетча строк 15)
это как к врачу придти - у меня спина болит, что делать? - в Мед поступать, там вас научас, чем спину лечить. следующий.
 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

anon пишет:

мне нужно принять 3 числа с андроида в массиве, а вы мне предлагаете с изучить - (тем скетча строк 15)
это как к врачу придти - у меня спина болит, что делать? - в Мед поступать, там вас научас, чем спину лечить. следующий.
 

Ну по этой аналогии - заплатите и за Вас все сделают. Есть на форуме такой раздел.

rkit
Offline
Зарегистрирован: 23.11.2016

anon пишет:

мне нужно принять 3 числа с андроида в массиве, а вы мне предлагаете с изучить - (тем скетча строк 15)
это как к врачу придти - у меня спина болит, что делать? - в Мед поступать, там вас научас, чем спину лечить. следующий.
 

Врачу платят зарплату. Если тебе нужны отношения как с врачом, то есть раздел "закажу проект".

anon
Offline
Зарегистрирован: 23.05.2013

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

 

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

Можно подорожник приложить...

anon
Offline
Зарегистрирован: 23.05.2013

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

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

правила форума почитай сначала

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Вы путаете помощь и сделайте_за_меня работу. Нельзя помочь тому, кто даже не пытался.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

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

Похоже на описание товаров на али :))))

anon
Offline
Зарегистрирован: 23.05.2013

не путаю

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

anon
Offline
Зарегистрирован: 23.05.2013

ну, это проще явы) и подходит для таких альтернативноодарённых как я

(чем-то напоминает 1с, да?)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Короче: массив приходит по синезубу, значит, на стороне ардуины он выплёвывается в какой-нибудь Serial. Надо для начала выяснить, сколько байт занимает одно число, и порядок следования байт. Далее: только эти данные приходят с приложения? Дело в том, что при таком раскладе нет возможности определить, что именно пришло, т.к. по сути мы оперируем только байтами.

Ок, допустим, что у нас приходит три числа, размерность каждого 4 байта, и всё. Значит, нам  надо вычитать 12 байт, и преобразовать их в наши числа. Делаем примерно так:

uint8_t counter=0;
uint8_t bytes[12];

void setup()
{
	Serial.begin(9600);
}
void loop()
{
	while(Serial.available() && counter < sizeof(bytes)/sizeof(bytes[0]))
	{
		bytes[counter++] = Serial.read();
	}

	if[counter == sizeof(bytes)/sizeof(bytes[0]))
	{
		uint8_t total_numbers = (sizeof(bytes)/sizeof(bytes[0]))/sizeof(uint32_t);

		for(uint8_t i=0, j=0; i<total_numbers; i++, j+=sizeof(uint32_t))
		{
			uint32_t number;
			memcpy(&number,&bytes[j],sizeof(uint32_t));

			Serial.print("Number #");
			Serial.print(i+1);
			Serial.println(number);
		}

		counter = 0;
	}
}

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

anon
Offline
Зарегистрирован: 23.05.2013

примерно то, что нужно. по факту да, в сериал будут падать 3 числа диапазона 1-99. 
спасибо огромное

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

anon пишет:

примерно то, что нужно. по факту да, в сериал будут падать 3 числа диапазона 1-99. 
спасибо огромное

После 25-й строки добавьте:

Serial.print("=");

Чтобы отделить число от номера. Ну и про нюансы - я вам сказал, проверка и подгонка - за вами ;)

-NMi-
Offline
Зарегистрирован: 20.08.2018

DIYMan пишет:

Какая жесть этот апп инвентор, ужоснах.

Похоже на описание товаров на али :))))

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

-NMi-
Offline
Зарегистрирован: 20.08.2018

anon пишет:

в сериал будут падать 3 числа диапазона 1-99. 

Ыщщо`б неплоха сваять кантейнер с заголофком и контролькой фканце, ато блюпуп он токой, каварнай )))

anon
Offline
Зарегистрирован: 23.05.2013

спасибо