1 (2011-04-11 12:34:33 отредактировано Артем)

Тема: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

Здравствуйте,


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

Я программист (т.е. могу написать управляющую программу ), но не планирую занимать пайкой. Просто хочу найти готовое решение, и вроде нашел его. Это:
- 2 модуля Motor Shield v3 (каждый управляет 4мя моторчиками)
- 1 модуль Ethernet Shield v2 (связь)
- Freeduino 2009 (базовый модуль, мб сгодится другой)

Однако я не уверен что все это заработает как только я соединю эти 4 платы, просто посадив их на штекеры :)

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

2

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

1.предварительно хотел предупредить о том, что 300 м по ethernet вы напрямую не передадите, максимум 150!
2.двигатели подключенные к 1-му модулю Motor Shield v3 (без перепайки) будут управляться параллельно двигателями  подключенным ко 2-му одноименному модулю, т.к. подключение будет параллельным(используются одни и те же пины)
3.если вы планируете управлять скорость вращения то вам необходимы ШИМ (PWM) выходы, а их у freeduino 2009 всего 6 (3,5,6,9,10,11пины) присмотритесь к ардуино мега, там шим выходов больше...

3

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

VSTuner, спасибо за ответ.
Я пообщался с командой freeduino.ru по емэйлу. Для удобства поситетелей форума, а также на случай дополнительных комментариев, считаю необходимым привести выдержку переписки.
================

I. Как управлять 8ю моторчиками без дополнительных средств, пайки и перепрошивок
------
Вопрос: /смотри первый пост/

Ответ:
MotorShield может управлять 4 двигателями постоянного тока, при этом
каждый двигатель может быть среверсирован, и на каждом возможно
регулирование скорости путем широтно-импульсной модуляции.

Теоретически можно подключить к одному MotorShield'у 8 двигателей
постоянного тока, но тогда:
1) Их нельзя будет реверсировать
2) Им нельзя будет менять скорость (можно, но определенными парами)
3) Имеющаяся библиотека этот режим не поддерживает - нужно будет в нее такой
    функционал добавлять.

Подсоединить к одной плате Arduino два Motor-Shield'а нельзя.
Точнее можно, но они будут работать абсолютно синхронно - 8 двигателей
не получится.

Есть второй вариант - берется 2 платы Arduino/Freeduino, одна будет Master'ом -
к ней подключается MotorShield и Ethernet Shield.
Вторая будет Slave'ом - к ней только второй MotorShield.
Между собой они связаны через UART, и могут обмениваться данными.

Дальше уже дело прошивок - прошивка Master'а организует интерфейс
через Ethernet, вращение своей четверки двигателей, и передачу команд
Slave'у на управление его четверкой.

Slave принимает по UART команды на управление своими двигателями,
и крутит их.
(---------->Про соединение мастер-слейв)
Выводы 0 и 1 одной платы нужно соединить с выводами 1 и 0 другой. Крест-накрест. И землю конечно тоже.
Можно и без пайки - проводами подходящего диаметра - чтобы в разъеме не болтались.
Это выводы приема и передачи последовательного порта - получается примерно такой-же нуль-модем, каким в старые времена соединяли ПК и через NortonCommander передавали файлы....TotalCommander кажется до сих пор так умеет.

Соответственно что одна плата будет в последовательный порт выплевывать через Serial.print, вторая будет получать через Serial.read
Весь вопрос только к функционалу прошивки.
(<----------Про соединение мастер-слейв)


Такой вариант позволит все 8 двигателей крутить в обе стороны и с регулированием
скорости.

...с Ethernet совместим только MotorShield v3.


II. Как управлять 8ю моторчиками с помощью дополнительных средств, но БЕЗ пайки и перепрошивок
------
Вопрос:
я сообразил что достаточно вывести 8 логических выводов и землю чтобы управлять 8-ю реле (пример "силовой установки" реле - http://www.masterkit.ru/main/set.php?code_id=18781 . 12Вольт питания мы ей найдем).
В таком случае, мастер-слейв и два мотор-шилда не нужны, даже после подключения эзернет-шилда остается еще 10 свободных пинов.

Ответ:
Судя по описанию - вполне соответствует Вашим задачам, и должна без проблем управляться от Freeduino.

Верно мыслите. 10 свободных пинов цифровых, и еще 6 аналоговых входов, которые можно и как цифровые входы/выходы использовать.

...выводы 0 и 1 заняты последовательным портом - они через резисторы подключены к чипу FT232RL.
Из-за этого с этими выводами есть особенности работы, даже если не использовать последовательный порт - электрическое соединение с Ft232 то остается.


III. Внешнее питание через Ethenet
-------
Вопрос:
про питание - как правильно его подвести к Freeduino с уставновленным на нем Ethernet Shield. Можно ли это запитать весь блок через кабель Ethernet, нужно ли выставлять для этого джамперы или соединять контакты каким либо образом?  Или надо подводить дополнительный кабель к USB/COM базовой платы? Второй случай не пугает, но все-таки это будет еще один кабель, обидно...

Ответ: Сам по себе Ethernet Shield не поддерживает технологию Power-over-Ethernet, но с учетом
незадействованных в кабеле жил 4,5,7,8 можно "наколхозить" питание по ним. Получится что-то вроде приложенных картинок.
/ картинки не прикладываю, там показан выводу двух проводов из кабеля UTP5 /
С подачей питания по длинному кабелю есть ряд хитростей:
1. Чип W5100 потребляет довольно большой ток - до 180 мА
   Из-за этого, если питать плату Arduino от напряжения 12В или выше,
на ее стабилизаторе
   выделяется неплохая мощность (12В-5В)*180мА = 1,26 Вт - он начинает
заметно греться.
   Отсюда вывод - желательно питать плату от 7-9В.
   Либо, можно пробовать клеить радиатор на стабилизатор.

2. Тут важно не забывать, что если от этой линии будут еще двигатели
питаться, и прочее, то
   напряжение может просесть на длинном Ethernet кабеле.
   100м одного провода из UTP-5 имеет сопротивление около 10 Ом, если
2 провода параллельно соединить,
   будет 5. Ну, а т.к. одна такая пара соединяет земли, а вторая
"плюсы", то общее сопротивление - 10Ом.
   При токе 200мА упадет уже 2В - т.е. от 12 останется 10.

Кстати, заодно в тему внешнего питания: наш Ethernet Shield, как и
оригинальный Arduino Ethernet Shield первой версии
имеет особенность сброса чипа W5100.
Подробно описано в оригинале тут (много текста):
http://www.arduino.cc/cgi-bin/yabb2/YaB … 25354009/2
и у нас на форуме (кратенько по сути вопроса):
http://freeduino.ru/forum/viewtopic.php?pid=662#p662


IV. Как купить, доставка
-------
Вопрос: Я живу в Петербурге, представителем freeduino там является "ЧИП-и-ДИП". Но их ценник в 2.5 раза выше чем в Вашем магазине. И, что самое печальное, в каталоге даже не числиться Ethernet Shield. Естественно, я хотел бы сделать покупку напрямую - банковским переводом или веб-мани - как Вам будет удобнее. Но меня беспокоит срок доставки. Вы не могли бы посоветовать быстрый и не очень дорогой (500-1500р) вариант доставки заказа в Петербург?

Ответ:
По нашему опыту почта РФ не так страшна, как ее малюют, но, конечно, по просьбам заказчиков мы иногда шлем и транспортным компаниями: Автотрейдинг, СПСР-Экспресс и др. Сроки доставки у них обычно не сильно меньше почты РФ.

А из Питера у нас были вот такие партнеры:
http://www.megachip.ru/search.php?searc … amp;stype=
Цены конечно тоже выше наших.

4

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

VSTuner пишет:

1.предварительно хотел предупредить о том, что 300 м по ethernet вы напрямую не передадите, максимум 150!

Несмотря на цифры, заявленные в спецификации ethernet, он работает даже на колючей проволоке и телефонной лапше (CAT1)!
Если использовать "обычную" витуху (CAT5е) то на 300 метров 10 мегабит в секунду легко заработает. на витой паре 7 категории 100 мегабит работает на расстоянии 200-250, может быть работает и на большем, на лично я такой протяженности линий не встречал. Если использовать кабель типа П-296 то на 100 мегабит работает на 300 вполне запросто, а уж 10 мегабит - на все 500 метров. Хотя конечно многое еще зависит от того, каков трансформатор, который последнее время чаще всего выполнен в виде единого модуля с самим разъемом ethernet.

Ну а если использовать дополнительно пару медиаконвертеров и оптоволоконный кабель с одномодовым волокном, то и на 75 километров не предел (интересно кстати - будут ли в будущем делать Ethernet-шылды сразу с лазерным трансивером? поживем-увидем =)
Все возможно, при использовании соответствующих технологий.

5 (2011-04-30 02:03:47 отредактировано mogalkov)

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

xinoxano пишет:
VSTuner пишет:

1.предварительно хотел предупредить о том, что 300 м по ethernet вы напрямую не передадите, максимум 150!

Несмотря на цифры, заявленные в спецификации ethernet, он работает даже на колючей проволоке и телефонной лапше (CAT1)!
Если использовать "обычную" витуху (CAT5е) то на 300 метров 10 мегабит в секунду легко заработает. на витой паре 7 категории 100 мегабит работает на расстоянии 200-250, может быть работает и на большем, на лично я такой протяженности линий не встречал. Если использовать кабель типа П-296 то на 100 мегабит работает на 300 вполне запросто, а уж 10 мегабит - на все 500 метров. Хотя конечно многое еще зависит от того, каков трансформатор, который последнее время чаще всего выполнен в виде единого модуля с самим разъемом ethernet.

Ну а если использовать дополнительно пару медиаконвертеров и оптоволоконный кабель с одномодовым волокном, то и на 75 километров не предел (интересно кстати - будут ли в будущем делать Ethernet-шылды сразу с лазерным трансивером? поживем-увидем =)
Все возможно, при использовании соответствующих технологий.

По спецификации для ethernet 10/100/1000 (стандарт IEEE группы 802.3.) длина провода категории 4/5/5е составляет 96м. Я лично если надо больше, то ставлю в разрыв свитч (5портов стоит 400р. акорп) так как просто усилитель сигналов стоит дороже. По опыту могу сказать что да, можно тянуть длиннее, без всяких усилителей, но во первых это менее удобно при последующем обслужимании сети, во вторых очень сильно идут потери(Удельное электрическое сопротивление меди     0,0172Ом·мм2/м, считай...). И насколько я знаю (может чего и упустил, и чтото в стандартах поменялось) cat 7 пока что официально такого стандарта нету, а лапша телефонная никак не cat1. Стандарты cat это именно сетевые стандарты, и относятся они именно к типу проводника в проводе.

6

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

Я тоже верю что, при должной категории кабеля, езернет шилд пробъется на 150м.
Про свитч - это первое что пришло в голову и первое что оттуда ушло. Потому что задача состоит в том чтобы управлять движущимся роботом. Тянуть за собой на шнуре в 70 метров тележку со свитчом неэстетично :) Хотя для стационара это может быть самое надежное решение.

ПС: в целом система из этого топика на данный момент собрана. На роботе крутится скетч тсп-сервера для ловли команди и тсп-клиента для отсылки прерываний с датчика движение. На нетбуке Lenovo (питания его USB порта для фридуино хватило, что радует) тоже сделаны на .NET сервер и клиент плюс мозг.
ППС: скетч, хоть и простой, отожрал 10Кб из 14. И пинов мало. Команда фридуино - сделайте МЕГУ плз!
ППППС: цифровой пин №2 (прерывание №0) НЕ РАБОТАЕТ при подключенном Ethernet Shield v2. В базовой документации на Shield этого нет. Я узнал это уже в процессе разработки и был очень огорчен.

7 (2011-05-05 12:23:44 отредактировано Артем)

Re: Можно ли набрать из готовых модулей блок управления 8-ю ДПТ?

Почему ПИН №2 на Ethernet не работает я точно сказать не могу. Никаких модификаций в схему не вносил. История этого исследования такова:

1. attachInterrupt(0,...) сделал. Подал пульс на 2ой пин. Но прерывание не пришло.
2. Стал думать, ничего не придумал. Полез в инет и нашел распиновку по шилдам http://www.robgray.com/temp/Arduino-shi … s-used.png. Увидел что Ethernet(Arduino) занимает второй пин.
3. После чего сделал attachInterrupt(1,...) . Подал пульс на 3ий пин. Прерывание сработало.