Подключение нескольких совершенно разных датчиков - для совсем уж необразованного
-
Здравствуйте! Я даже не начинающий чайник, а вообще — человек, пока просто прикидывающий возможности. Очень заинтересовался этой вашей Малиной, бегло что-то почитал, но пока ничего еще не понял. Устройства у меня даже и нет еще и мне нужно просто определиться — стоит с этим морочиться, или нет.
Суть вопроса в следующем. Допустим, мне нужно подключить к РПИ сразу несколько датчиков. Ну, прикинем простейший случай, чисто ради примера: ГПС, барометр, магнитный компас, датчик скорости вращения, и до кучи — скажем, некий контроллер исполнительного устройства. Все эти устройства, как я понимаю, могут иметь разные шины. Мне необходимо увязать все это в одну систему. При этом, устройства могут располагаться на расстоянии до 10 метров от центрального компьютера Распберри. В идеале, чисто физически, хотелось бы иметь возможность подключать любое устройство к любому разъему центрального блока, а еще лучше — иметь один разъем и в него втыкать, например, разветвитель. Но это, так сказать, необязательная плюшка. Так вот, какие способы реализации данного комплекса имеются с минимальными затратами по энергопотреблению? Это все можно подключить к GPIO, или это нужно делать по USB? Выгодно ли подключать датчики напрямую к Распберри или же это лучше делать посредством различных контроллеров (Ардуино, к примеру)?
Мне просто как-то нужно получить некие первичные сведения, чтобы самому для себя решить — стоит пытаться этим заняться, или забыть? С микроконтроллерами и всеми этими низкоуровневыми делами я никогда раньше дел не имел — так что я даже не чайник пока еще))
-
Основные типы датчиков либо передают точный цифровой результат измерений по i2c шине, либо являются аналоговыми и выдают определённый уровень напряжения, который зависит от значения измеряемого параметра. В первом случае можно подключить сколько угодно датчиков, главное, чтобы адреса у них были разные.
Во втором случае кол-во подключаемых датчиков зависит от числа каналов АЦП преобразователя. В Raspberry нет встроенного АЦП, нужно приобрести внешний АЦП, к которому будут цепляться аналоговые датчики, а АЦП в свою очередь будет цепляться к i2c шине Raspberry Pi.
Соответственно если купить внешний АЦП, то ардуина не нужна. -
raspiman (2016-03-10 04:00:43):Основные типы датчиков либо передают точный цифровой результат измерений по i2c шине, либо являются аналоговыми и выдают определённый уровень напряжения, который зависит от значения измеряемого параметра. В первом случае можно подключить сколько угодно датчиков, главное, чтобы адреса у них были разные.
Во втором случае кол-во подключаемых датчиков зависит от числа каналов АЦП преобразователя. В Raspberry нет встроенного АЦП, нужно приобрести внешний АЦП, к которому будут цепляться аналоговые датчики, а АЦП в свою очередь будет цепляться к i2c шине Raspberry Pi.
Соответственно если купить внешний АЦП, то ардуина не нужна. О, спасибочки. Ну я так немного почитал еще то-се. Но, конечно, сложно так взять и вникнуть в тему, имея только кучку разрозненных материалов, и при этом не зная самых азов.Вот по I2C сразу вопрос возникает. Вы говорите, что к ней можно подключить сколько угодно устройств. Но верно ли я понимаю, что к ней не получится подключить сначала один датчик, например, а потом — раз, и сразу 10? Ведь там же требуются какие-то чисто физические передлки — верно? Резисторы там всякие и т.д. — да? С другой стороны, если устройства подключать по I2C, то можно сэкономить на энергопотрелении, т.к. не нужно никаких костылей — правильно? Но тут опять возникает проблема: вот, например, ГПС-приемник работает по UART, а значит, в какой-то общий разъем на реальном устройстве его будет не воткнуть. Не проще ли данные с каждого датчика передавать по USB, дополнив каждый из них своим индивидуальным конвертером? Конечно же, я так понимаю — жрать это дело будет сильно больше, но зато мы получаем полную взаимозаменяемость всего и высокую ремонтопригодность — правильно я рассуждаю? Опять же, вопрос энергопотребления в ситуации, когда сломался генератор и остался только полуразряженный аккум — можно легко решить просто отключением всего ненужного.
-
Почему не получится. 10 датчиков подключаются к i2c линии параллельно ( «параллельно» это значит присоединяем к линии SDA/SCL провод, снимаем часть изоляции и к этому месту прикручиваем 10 проводов идущих к линиям SDA датчиков. Аналогично c SCL.). Никаких переделок. Главное, чтобы адреса у всех датчиков были различные
Насчёт GPS не очень понял. Он цепляется к линиям TX/RX GPIO Raspberry Pi.
Проще i2c ничего ещё не придумали.
-
raspiman (2016-03-10 13:27:21):Почему не получится. 10 датчиков подключаются к i2c линии параллельно ( «параллельно» это значит присоединяем к линии SDA/SCL провод, снимаем часть изоляции и к этому месту прикручиваем 10 проводов идущих к линиям SDA датчиков. Аналогично c SCL.). Никаких переделок. Главное, чтобы адреса у всех датчиков были различные
Насчёт GPS не очень понял. Он цепляется к линиям TX/RX GPIO Raspberry Pi.
Проще i2c ничего ещё не придумали. Ага, понятно. Про Rx/Tx и GPS я имею в виду, что в таком случае на корпусе устройства потребуется один отдельный разъем, в которому нельзя будет подключить ничего кроме этого самого ГПСа. Извиняюсь за глупый вопрос: а готовых конвертеров UART > I2C в природе не существует, случайно?))) Ну чисто ради унификации. Это же жутко неудобно, когда устройства к разным шинам подключать надо.
Ну я вот как это себе представляю? Вот у нас центральный компьютер — герметичный металлический ящик. На нем несколько буксовых разъемов. Ну типа НРШМ какие-нибудь, или как их там. HDMI, Ethernet, USB и питание. Всего 4 разъема. Они сами по себе гигантские и дорогие. А тут еще и целый отдельный под ГПС нужен. Это ж тогда придется какой-то специфический разъем подбирать, чтобы спьяну или по незнанию туда не воткнуть что-то не то. Ну я не знаю, короче. В любом случае — огромное спасибо) Вы укрепили меня в желании купить все эти железяки и попытаться поиграть с ними))