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

недавно я начал знакомство с Фридуино (см. http://freeduino.ru/forum/viewtopic.php?id=153).
Для отладки использовал Serial.println. На большом компе (Windows XP 64 SP2) все работало отлично.

При полевых испытаниях на нетбуке Lenovo 20015 (Windows XP 32 SP3) сначала, сразу после установки драйверов от FTDI, все тоже работало номально. Но после перзагрузки нетбука контроллер перестал распознаваться как USB Serial Converter. Вместо этого появляется "неопознанное устройство" с VID и PID равными 0x000. Перезагрузки, выключения, удаление драйверов и т.п. не помогли. После холодного выключения нетбука и ночи простоя фридуино снова распознался на нетбуке правильно.

В инете нашел информацию о том что вылечивается эта проблема соединением пина 26 и 25(земли) чипа FTxxx на плате *дуино.
На форуме arduino (http://www.arduino.cc/cgi-bin/yabb2/YaB … 1263958401) пишут что с сентября 2009 это соединение идет в штатной распайке платы.
ВОПРОС №1: Сделано ли такая же распайка на Freeduino 2009?

При подключения в различных вариантах устройства к стационарному компу таких эффектов не замечено.
ВОПРОС №2: Если распайка 25 и 26 сделана, что может быть причиной такого поведения? Какие ОС/драйвера на компьютере не будут страдать такой бедой и какие - будут?

Дополнительно найден шаманский способ - в момент включения USB от контроллера к нетбуку удерживать кнопку RESET на плате контроллера. В этом случае контроллер как правило распознается. Но этот способ неприменим в промышленной эксплуатации.
ВОПРОС №3: Правильно ли я понимаю что в случае нажатия RESET я явно перезагружаю чип FTDI и он успевает подать корректную информацию на компьютер до того как комп решит что устройство "глючное"?

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

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

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

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

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=
Цены конечно тоже выше наших.

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


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

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

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

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