Совместное использование Motor Shield и Bluetooth Shield

alex2alex
Offline
Зарегистрирован: 11.10.2012

Уважаемые коллеги!

Необходимо совместно с Arduino Uno использовать Motor Shield v3.0 (Seeed Studio) и Bluetooth Shield (Seeed Studio) в одном проекте. Желательно - с минимальными изменениями схем подключения и соответствующих библиотек.

Есть вроде бы простой вариант - вместо четырех независимых моторов использовать две пары моторов, каждая из которых управлялась бы одним ШИМ и подключенным к нему драйвером мотора. Освободившиеся цифровые выходы (например, 3, при неиспользовании Motor(2)) использовать для связи Bluetooth Shield  Arduino Uno.

Какие недостатки у такого варианта и есть ли более красивые решения?

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Вам надо подключить 4 мотора? Есть шилды, которые позволяют подключить сразу 4 мотора, например MSS Shield

а ещё:

Гугл и вики Seed Studio не знают про SeedStudio Motor Shield V3.0, только 1.0 и 2.0 :) http://www.seeedstudio.com/wiki/Motor_Shield

Про v1.0 написано что он использует пины D13, D12, D11, D10, D9, D8;

Про v2.0 ничего явно не написано, но наверное там используются те же пины.

Блютус-шилду (http://www.seeedstudio.com/wiki/Bluetooth_Shield) для работы с ардуинкой нужно два цифровых вывода - для TX и для RX (выбираются джамперами из D7-D0), и ещё необязательный А1 - статусный пин блютус-модуля.

 

 

alex2alex
Offline
Зарегистрирован: 11.10.2012

Спасибо за ответ!

Motor Shield v3.0 Freeduino (не SeeedStudio, как я ошибочно написал):

http://freeduino.ru/arduino/mshield.html

использует все пины с D3 по D12, и позволяет управлять 4-мя независимыми моторами (через L293) и 2-мя сервомоторами (без усиления, напрямую с выходов ШИМ).

BT, как Вы справедливо написали, требует двух пинов для коммуникации с Arduino Uno по Tx и Rx.

Я понимаю, что есть другие моторные шилды, которые используют 2 мотора и позволят совместно использовать BT, но хотелось бы использовать существующий.

Может быть подскажете что-то конкретное?

Всех благ.

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

хм, а чем вам не нравится пины D0, D1, D2, D3? И потом, " и 2-мя сервомоторами (без усиления, напрямую с выходов ШИМ)." - посмотрите, к каким пинам ардуины они (сервы) подключаются (этот шилд очень похож на упомянутый мной MSS shield, там сервы подключаются к D10 и D9 напрямую)

alex2alex
Offline
Зарегистрирован: 11.10.2012

D3 используется Motor Shield (с использованием библиотеки AFMotor управляет одним из моторов (Motor (2)). D2 свободен.

Сервомоторы тоже нужны, поэтому выводы, управляющие ими, не хочется трогать.

D0 и D1 также не хочется трогать.

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Аналоговые выводы. Они могут использоваться как цифровые. Если SoftwareSerial не будет работать на них, то перевесить сервы на аналоговые выходы, а на пины для серв на плате прицепить блютус.

alex2alex
Offline
Зарегистрирован: 11.10.2012

Спасибо за советы. Всегда хорошо иметь возможность выбора.

Аналооговые пины для серво? Возможно. Но придется переписать все, что связано с использованием сервомоторов, убрать (обломать?) соединение D9, D10 Arduino Uno с соответствующими контактами Motor Shield и как-то соединять аналоговые пины с разъемами сервомоторов. Не хотелось бы.

Разве это лучше, чем мой первоначальный вариант? Напомню, я предполагал вместо четырех независимых моторов использовать две пары моторов, каждая из которых подключалась бы к одному выходу моторной платы. Освободившиеся пины (в том числе D3) использовать для BT. например так: D2 - Tx BT, D3 - Rx BT.

Уже попробовал два мотора подключать к одному выходу моторной платы - крутятся. Хватит ли мощности L293D на максимальных оборотах пока не пробовал.

 

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Если предпологаемые условия использования позволяют ваш первоначальный вариант, то здорово. Имейте только в виду, что L293D могут (и будут!) нехило нагреваться.

А так - D13 не используется моторшилдом, судя по схематике. Можно на него и на 3 пин повесить блютус шилд, но это потребует проводка от 13 пина на шилде до RX или TX.

alex2alex
Offline
Зарегистрирован: 11.10.2012

Зашел на сайт, чтобы сообщить Вам о своем решении: Rx BT - D2 (не D3, D3  Motor Shield), Tx BT - D13 (!) с перемычкой! И прочитал Ваше последнее сообщение, практически совпадающее в главном - использовании D13.

Конгениально, как говаривал Остап Бендер.

Все равно - спасибо за участие. Даже, если бы я сам не додумался, Ваша помощь помогла бы.

Спасибо!

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Просто был не уверен в том, будет ли работать SoftwareSerial на 13 и 3 пинах. :)