LINUX.ORG.RU

Ардуино, связь с компом или r-pi

 , ,


0

2

Доброе время суток!

Подскажите как можно связать десяток ардуинок с компом или r-pi?

Основная проблема - ардуино должна выступать инициатором соединения (к ним будет подцеплен проксимити считыватель).

Пока думаю в сторону i2c, но получается сеть по типу «много мастеров, один слейв». Или i2c-слейв тоже может быть инициатором подключения?


Ответ на: комментарий от BRE

Между отдельными устройствами - не больше 10 метров.
Между самым дальним устройством и «головой» - не больше 50 метров.

Делаю на ардуинке только потому-что сам сисадмин, а не микроконтроллерщик.

kir2yar
() автор топика

i2c-слейв тоже может быть инициатором подключения?

Не может, но в чём проблема периодически опрашивать? Если действительно проблема, можно выделить ещё один порт помимо i2c, который поднимать как только произойдёт событие, и опрашивать всех только по прерыванию от него. А ещё лучше подключить все твои проксимити сенсоры к одной ардуине.

У мультимастера свои проблемы, но вот вроде работающий код: http://forum.arduino.cc/index.php?topic=13579.0

Pythagoras ★★
()
Последнее исправление: Pythagoras (всего исправлений: 3)
Ответ на: комментарий от Pythagoras

Не может, но в чём проблема периодически опрашивать?

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

А ещё лучше подключить все твои проксимити сенсоры к одной ардуине.

Расстояния и планировка не позволяет. Плюс - их примерно 10 штук, но может быть и больше.

kir2yar
() автор топика

Навешать на них W5100 и соединить в локалку.

Radjah ★★★★★
()
Ответ на: комментарий от kir2yar

Между отдельными устройствами - не больше 10 метров.

Между самым дальним устройством и «головой» - не больше 50 метров.

RS-485 используй. Или ethernet. Можно попробовать CAN.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от anonymous

CAN - правильная мысль. Можно взять контроллеры с интегрированным CAN модулем, тогда как RS-485 - это обязательно отдельная микросхема.

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

Модули CAN в контроллерах реализуют логику работы (маилбоксы там всякие, фильтры пакетов), но для физики также надо внешнюю микросхему, например SN65HVD

anonymous
()
Ответ на: комментарий от Dark_SavanT

RS-485 - практически невозможно реализовать мультимасерность. Значит компу, как мастеру, будет необходимо постоянно опрашивать слейвов, если выделить по 100 мс на слейва, то полный цикл опроса при 10 слейвов - 1 с. Вполне себе может быть. Эзернет - это вообще точка-точка, к каждому девайсу надо тянуть свой провод. CAN - это один провод на всех. каждый девайс может выступать мастером т.к. колизии на шине обрабатываются модулем CAN.

anonymous
()
Ответ на: комментарий от anonymous

Вот и пришло поколение, которое эзернет путает с xBase-T... Ethernet - ни разу не точка-точка. 10Base2/10Base5 - позабыли?

NiTr0 ★★★★★
()
5 декабря 2015 г.

Не в тему, но поскольку на LOR'е, видимо, нет личных сообщений, спрошу здесь. [юмор][pulseaudio] Этот вопрос как решили? Дабы не захламлять тему - мыло: МойНикНаRambler.ru

Mega220volt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.