Arduino драйвер мотора для робота

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Прочитал весь топик. Респект за разработки, тоже сам поначалу хотел на транзисторных мостах лепить для себя .. но посмотрел на L298N модули и прикупил их. покупал в мае 4шт за 360руб .. итого 90руб за готовый модуль на 2 мотора по 2А...

Вопрос: чем они хуже чем самодельные мосты на АО4606 по приведенным схемам?

Дело в том, что засовывая платы от Ардуино в Лего-детальки, уже подумал "а не сделать ли шилд" для Меги с моторами и серво? По идее, в формат платы Меги2560 можно упихать пару L298N и разъемы для 12-и серводвигателей (на базе всех 4-х 16-и разрядных таймеров).. тогда "проводов окажется значительно меньше..

Есть аргументы в пользу АО4606 или IRF7319 и навесухи?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ага: падение напряжения. теряется мощность и нагрев самого драйвера

плюс торможение драйвером мотора при 0 или 1 шима. не то чтобы очень критично, но я хотел чтобы его не было. дополнительный нагрев и торможение двигателя

а вообще дело твое. если все это некретично не стоит и заморачиваться

но я говорю о этой схеме

http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota?page=...

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Не очень понял, или меня это действительно мало интересует.

Дело в том, что у меня на моих шилдах L298N работают перемотанные 130-е моторы проводом 0.2-0.25мм под напругой в 4-6В от 4-х NiMH имею: ХХ=0.15А, рабочий ток 0.5-0.9А под нагрузкой, а ток останова у них около 2.5А .. шилды пашут вполне нормально, не греются (или я не замечаю). С пары шилдов поснимал радиаторы и положил микросхемы для уменьшения высоты сборки с Лего деталями - тоже "особых проблем" не вижу.

.. или вы это отписали на предмет АО4606, в смысле что ежели делать на них, то греться будет? Поясните, правда не понял.

Текущий конструктив "моторного блока" выглядит примерно так:

А хочется в виде платы в формате Мега2560, чтобы соединять с Мегой не проводами, а тупо втыканием в разъемы... вот и думал, что может не разбирать свои шилды, а сделать на мостах 4606 по тутошним схемам..

P.S. Ну и хотелось упихать все 8 моторов на один шилд, а заодно сделать "расческу" для серво двигателей на нем же ..

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

от двух литиевых запитай заряженных и посмотри. я в гусеничном шасси заметил. гонял правда по песку, траве и всяким препяттствиям, нагрелся сильно, палец не выдерживал. и это с радиатором

шасси как на первом фото

http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2

а вообще ты спросил я ответил, я не убеждаю тебя не использовать

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Там, аккумы конечно уже юзанные из фотика, но КЗ в 3-5А ещё выдают .. Посмотрю тщательнее. Li-ion - нету. Не подходят по диапазону напряжений: 3.7-4.2В .. поставить 1 - "маловато будет", а поставить 2 - сервы погорят (SG90 - до 7В, где-то читал..), а силовая напруга от одного блока батареек. Делать ещё и Dc-Dc преобразователь .. нафига?

А по тутошним схемам - будет греться на АО4606? По даташиту они вроде как 5 амперники. Расчетные токи нужны в районе ампера - это нормальная работа движков. Лего детали имеют солидное трение в ряде  случаев, особенно когда "неродное лего".

Просто уже очень хочется развести это на шилд ... 4хL298N на 8 моторов = 3*8 = 24 провода от шилдов к меге .. а ещё энкодеры 8шт от моторов .. там такой "зверь" получается .. :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у меня почти не греются. токи до 1.4А. хотя не уверен что не выше, амперметр в блоке питания думаю врет, импульсные токи занижает

да если все устраивает собирай на L298))

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Пасибки, что надоумили потестировать. Вчера проверил эту версию, что без радиаторов. Да, на новых аккумах из фотика, или на свежих алкалиновых батарейках - греется. Поставил стенд и покрутил моторы в режиме 0.5сек "туда и обратно" с интервалом на переключение в 50миллисекунд. Начиная с середины третьей минуты - греется весьма ощутимо: пальцем уже держать проблемно. При этом, токи на стенде не превышали 1.5А, сказалось "отсутствие нагрузки". Похоже поддохшие аккумы не выдают достаточного тока когда мосты переключаются и оба плеча открыты.

Э-эх, полез на али заказывать микрухи... как понимаю, схема в №254 (ваша) это по сути управление затворами через "открытый коллектор".

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да схема моя, точнее совместная получилась

имей в виду. схема из 254 поста на 1 мотор требует 2 шим канала и 1 обычный. итого на 8 моторов нужно 16 шимов и 8 обычных

еще не передумал делать эту схему или 8 каналов?)))

не знаю где там открытый коллектор, там вообще биполярников нет)) шим подается только на n канальные, так как их микроконтроллер легко переключает, а p-канальные задают направление. программная задержка на переключение направления, чтобы не было сквозных токов

 

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

В вашей схеме затворы АО4606 управляются транзюками, стоки (коллекторы) которых подвязаны на напругу питания моторов через резистор. Такой подход "в целом" называется "выход с открытым коллектором". Есть куча простой логики с таким выходом, как раз для развязки напряжений логики управления и силовой части. Если схему из начала темы перевести на микрухи с "ОК" (открытый коллектор), то можно решить вопрос по "любому" способу управления, в т.ч. и с 1 ШИМ сигналом... вечерком попробую накидать схемку.

Да, мне надо (ну очень хочется) реализовать плату на 8 маршевых (силовых) моторов. 32 ноги меги я на них "уже выделил" (ещё энкодеры! забыл про них для других применений: X-bus: А0-7, С0-7, WR, RD, ALE + T0in + UART1-3 и 8 аналоговых входов, которые прерывания PCINT 3-го уровня). ШИМ на моторах - будет программный. Сюда же, на плату хочу вывести все PWM ноги "в ряд" с доп. ногами для земли и питания, так чтобы серводвигатели можно было втыкать прямо в такой шилд. Для маршевых моторов думаю приспособить USB-разъемы: 2 силовых и один на энкодер.

Остальные ноги - вывести как входы датчиков .. Аналоги 0-3 у меня уже работают в "микрофонных ушах" робота в режиме дифференциального сравнения с усилением 10/200 раз. С сервой - могут поворачиваться и реагировать, скажем на хлопок ... или есть программная фильтрация - ловит "шум моторов" вражеского робота и определяет направление по углу серв на "ушах". Это как "дополнение" к ультразвуковому датчику. :)

"итого" получится шилд на 11-12 аппаратных серв (все 16-и разрядные счетчики позволяют поставить 50гц через регистр захвата таймера! Командно достаточно только менять значение в OCRрегистре канала), 4-3 ШИМ "моргалки" .. проблема с 13 ногой - она совмещенная.. и 8 силовых моторов с энкодерами. Обрамить это чудо также как мегу и получить в результате "блок управления" круче любого Майндшторма "на порядок" ... в меньшем размере. :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

LM393. вот у нее открытый коллектор. да не суть

http://www.ti.com.cn/cn/lit/ds/symlink/lm393-n.pdf

ну раз хочется делай))

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

По схеме. хз пока чем рисовать, но за основу хочу взять схему с #46,47,65, с заменой 74ACT08 на 74HC09 (ЛИ2) - это 4 х 2И с открытым коллектором. А вот их коллекторы надо будет подвесить на питание моторов как в вашей схеме #254 и #74.

1. Открытый коллектор и резисторы позволяют питать моторы напругой отличной от питания логики.

2. Выхода Ардуино отвязаны от мосфетов

3. Всего 2 сигнала управления DIR и PWM, что радует.

Пробую освоить линуксовый kicad, типа что-то такого:

a5021
Offline
Зарегистрирован: 07.07.2013

Схем плохо читается, т.к. слишком мелкая, но даже так видно, что P-канальные и  N-канальные мосфеты перепутаны местами.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Не смог выложить поудобнее. Там рисунок практически так и выглядит в этом "кикаде" .. уродство какое-то или я с ним ещё не подружился. Идея, надеюсь понятна: заменить 74HC08 (ЛИ1) на 74HC09 (ЛИ2), и соответственно воткнуть резисторы подтяжки до питания моторов. Остальное - как было. Предельный ток там вроде как 25ма .. точно такой же как и у вас через 470 ом.

Если можете отрисовать и просчитать в чем-то разумительном - буду признателен. Напруга моторов от 6 до 12 вольт.

Тут тоже буду думать. Вчера чуть не пожег серву SG90... аккумы сели, и я воткнул 8шт вместо 4-х, дабы не ждать сутки когда зарядятся... в итоге, во время остановки маршевых моторов напруга подскакивала до 9.5 вольт .. серву клинануло по серъезному, пришлось разбирать. Движок был горячий как утюг. Остыла, вроде работает. Похоже таки не зря пишут про предел в 7.2 вольта...

По компоновке на мега-шилд: получается что "в ряд" можно поставить тока 4 мотора, поэтому вчера заказал 74-ую серих тоже в SOP корпусах, дабы смонтировать по 4 драйвера на каждую сторону платы.. :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а зачем так много моторов?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну .. у нас этакий "лего-ардуино-конструктор", как видно из фото. Собери робота сам, какого хочешь. Оффтоп конечно, но поясню:

1. Практика показывает что 3-4 моторов Лего-майндшторм явно и катастрофически недостаточно для сборки роботов. Но там это "всего". Серводвигателей я там не заметил. Народ решает "проблему" подключением 2-х и более блоков управления.. что "дорого". Один полноценный комплект Лего - тянет на 30-45тыс.руб., а уж два ... поэтому и занятия в основном "в платных кружках". Мои "соседи" (кружок Легороботов) в апреле закупались на областную дотацию .. на 150тыс.р. и оказалось "маловато" ..   :(

Вот и задумал сделать Ардуино вариант: дешево и сердито. ;)

2. Далеко не всегда подходят сервы. В частности, свои 4 мотора мы приладили "на ура" в первый же день как собрали шилд на 4 мотора: 2 мотора - "туда-сюда" тележкой, 1 мотор - на поворот "стрелы" 360грд, и 1 мотор ушел на "крюк" крана + серва (тогда была только 1шт) на наклон стрелы .. а часто требуется только 4 мотора на движение тележки (полный привод а-ля "луноход").

Сейчас, когда пришли сервы и их теперь аж 10шт (6xSG90 + 2xMG90S + 1xMG995 + 1xMG996) .. легче, но "не значительно": 3 сервы уходит теперь только на оконечную часть "руки": захват + 2 поворота для точной настройки.. на вращение руки 360грд - 1 мотор, на её наклон - 1 мощная серва, на выдвижение руки (4 секционный пантограф на 0 .. 40см) ещё 1 мощная серва + серва на датчик узв. + 2 сервы на вращение "ушами" (2микрофона) ..

Итого уже 8 серв + 5 движков (ещё полный привод тележки). Пока так, но "аппетит приходит во время еды". Хочется таки иметь "запас". Ибо уже идут разговоры что надо ещё для спец. упоров хотя бы парочку, когда в сумо бороться это чудо будет (тоже движки, сервы...) :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да, кстати. С ЛИ2 - засада. Посмотрел чего заказал и там его не оказалось. Типа "нету"... пошарил по даташитам и упс. "обломс": есть только 74S09 но очень дорого или 74LS09 .. но они чахлые - 4-8мА, а вот "подходящих" серий типа 74HC09 (20мА) - нетути... и в наших магазах ЛИ2 - на "раз-два" и обчелси... ушел думать как переделать на 2И-НЕ с ОК...

a5021
Offline
Зарегистрирован: 07.07.2013

В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.

Посмотрите внутреннюю схему, которую приводит производитель для 47HC09:

Если вы подтянете "OUTPUT" на рисунке к напряжению питания моста, то последнее через подтягивающий резистор и расположенный слева от "OUTPUT" диод благополучно окажется на шине питания +5в (Vcc). Последствия могут быть самые неожиданные, но вряд ли приятные.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну вот как раз xx74HC09xx -- имеют какие-то "странные" описания. Так на Али TC74HC09AF -- это внезапно "сдвиговый регистр", причем у "каждого первого" поставщика.

Вот классика схем с открытым коллектором: http://html.alldatasheet.com/html-pdf/27366/TI/SN74LS09D/51/2/SN74LS09D.... нет там никаких "диодов". Это ТТЛ, а не КМОП. У последних - каких только и куда только диодов бывает не обвешано..

Впрочем, я уже прикинул, что схема легко трансформируется на базу 2И-НЕ, особенно если учесть что вход "dir" - по большому счету все равно какое плечо моста включает. А среди них каких только нет и с "ну очень большим током" и "в повышенным напряжением ОК" и супер скоростные.. :)

В целом требуется 1 инвертор на транзюке и 1 логика 2И-НЕ (ЛА..) на мост. Тут вот ещё что подумалось ... а нельзя ли логику организовать на транзюках тоже и использовать какую-нибудь транзисторную сборку на 6-8 шт.? Есть такие? Тогда вопрос "предельного напряжения" для моста как-бы отпадает тоже.

По схеме: использование инверсионного и прямого сигнала для "dir" приводит к тому, что задержка на инверторе дает порядок работы моста типа 1-2-2-1, в том смысле, что если PWM - включен, то сквозные токи - практически гарантированы на время инвертора при одном из смен направлений. Но, с другой стороны, если смена направления (dir) происходит при запрещенном pwm - то ваще 146% гарантия от сквозных токов (чем и понравилось).

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

На 2И-НЕ получается примерно так:

Поскольку у меня парное количество драйверов, то поставил отдельно инверторы.

Так, заметил что один инвертор можно убрать, или перебросить ногу 5 на ногу 1 инверторов. Тогда, правый полумост будет управляться с задержкой t1, а левый с задержкой 2t1, но оба плеча (верх и низ) - синхронно. Почти.

a5021
Offline
Зарегистрирован: 07.07.2013

Идея ШИМить верхними транзисторами будет считататься условно-годной, только, если по другому никак. P-канальные мосфеты обладают худшими характеристиками, чем N-канальные и это приводит к тому, что максимальные частоты там будут существенно ниже, а тепла выделяться значительно больше. Ну и задумка разряжать затворы верхних мосфетов через резисторы определяет, что ШИМ там будет медленным и печальным.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

a5021 пишет:

В свое время я уже задумывался насчет логики с ОК, но нашел эту идею несостоятельной. Там получаются сразу несколько врожденных дефектов, каждый из которых стоит того, чтобы отказаться от данного решения полностью.

Посмотрите внутреннюю схему ...

Да, пожалуй Вы правы. Серия 74HC и прочие, что сейчас продаются - это все КМОП, и там по сути нет "открытого коллектора" как явления. Стало быть "втыкать" можно только наши ТТЛ типа К155, КР153х .. смотреть по токам и временам "что лучше подойдет". Или монстрячить ОК транзистором.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну это я нарисовал только как идею перевода схемы на 2И-НЕ логику. "медленный" - это сколько?

по даташиту емкость затвора около 680пф на АО4606. Стало быть имеем время разряда около 1.5нс на каждый ом резистора .. около микросекунды, то бишь 500кГц, и ШИМ думаю может потянуть в районе 20кГц .. это "мало"? Конечно не мегагерцы... но мне - движки крутить, а там чем выше ШИМ - тем хуже управление скоростью (инерция вращения якоря).

Упс. Уточнил. 680пф - это у n-канального, у p=канального 920пф .. да, хуже раза в полтора. 2.2RC даст 2.02 нс/ом или для 620 ом будет 1.25мксек. Это частота в районе 400кГц. Соответственно, предел для ШИМ раз в 20 меньше.

a5021
Offline
Зарегистрирован: 07.07.2013

Считать надо не емкость, а общий заряд затвора -- Total Gate Charge. Не смотря на то, что это некий синтетический параметр, именно его надлежит использовать в расчете скорости нарастания напряжения на затворе.

Питание моста напряжением выше 5-7 вольт вызывает не только проблемы с питанием М/С логики, но и выставляет требование разносить по времени переключение верхних и нижних мосфетов. Даже если вообразить, что каким-то образом удалось бы электрически прикрутить логику, то проблему возникающих "сквозняков" это бы не решило. Требуется либо существенная переработка схемы в сторону усложнения, либо введение организационных ограничений по эксплуатации моста.

По последнему варианту схему я в этой ветке уже рисовал, но не собирал для полной проверки, лишь ограничившись прогоном в симуляторе. Евгений свой вариант без М/С логики собирал и он у него успешно прошел испытания. Но, насколько я понимаю, вам для лего оно не подойдет, т.к. выполнить требования по разносу фронтов организационно там не получится.

У меня были мысли запилить мостовой драйвер с собственным МК, который управлялся бы через какой-нибудь из интерфейсов I2C/SPI/UART, но пока дальше обдумывания общей концепции я не продвинулся. У меня пока отсутствует потребность в таком устройстве, но сама идея довольно интересная и я время от времени к ней возвращаюсь в мыслях.

Если вы опишете чуть подробнее требования к вашему драйверу, а еще лучше то устройство, которое будет им управлять, то можно было бы поразмышлять о том, как лучше сделать то или иное.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну оно практически тут выше описано.

Идея в том, чтобы на базе Ардуино Мега2560 и "моторного шилда", втыкаемого сверху в разъемы меги собрать блок управления по типу Лего майндшторм, но с существенно лучшими параметрами. По параметрам - хочется вытянуть из Меги2560 всё что получится "по максиуму". Получается до 8-и маршевых моторов с энкодерами - есть чем управлять, если по 2 ноги на драйвер. При этом сохраняются все интерфейсы и ещё остаются ноги под 14 датчиков, из которых до 8-и аналоговых (без учета энкодеров)

В части требований к моторным драйверам - компактность (место на шилде), затем возможность PWM в основном для плавного разгона движков (управление скоростью - вторично). Питание, отличное от самой Меги на 4..12 вольт, токовая нагрузка до 2А в постоянном режиме включения (типовая электрическая мощность движков 4-8ватт: больше напруга - меньше ток). PWM - конечно же программный, то есть "не скоростной" или типовой для серводвигателей - 50Гц.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Посмотрел ещё раз все варианты, описанные тут. Проще всего тогда взять схему Евгения по управлению верхними парами, а на нижние таки влепить 2И для уменьшения ножек. Кстати, у него пользуются 2N7002, они тянут до 20/60В и ток до 115мА .. резисторы открытого коллектора можно легко уменьшить по номиналу, увеличив скорость разряда силовых мосфетов вплоть до 120 ом (питание двигла 12в). В этом случае ориентировочное время переключения составит около 250нс, но возрастет потребление в рабочем режиме. Но, раз у него на 8 вольтах 1килоомники показали себя хорошо, то нет никакого смысла. А элементы 2И внизу - не требуют ОК. Можно и 74HC00 поставить по штуке на пару.

Исключать сквозняки можно программно: сначала отключаем ШИМ, отрубая оба нижних плеча, а потом меняем DIR и включаем ШИМ с заданной скважностью. Можно воткнуть паузы между действий по 2мкс - "за глаза" будет.

Кто что думает?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

схему давай. а то не очень понятно

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Теперь тока вечером. Собственно там симбиоз из #254 - управление вехними плечами мосфетов (DIR) и из #47 (есть ещё много, #290) - управление нижними плечами через 74HC08 (DIR & PWM). Инвертированные сигналы DIR можно взять с соответствующих верхних плеч, их там должно хватить (можно килоомник уменьшить).

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вот, типа такого получилось.

*** изображение удалено как неверное ***

Упс. Ошибочка. На левом разъеме контакт 2 - DIR, 3 - PWM, на схеме подписано наоборот...

Может кто-нибудь помочь просчитать что получится на 6 и 12 вольтах питания Vss? В смысле какой частоты ШИМ схема сможет держать и какие ожидаются сквозняки, при условии что DIR не переключается когда разрешен PWM.

Заранее пасибки, сам ещё с ПО для радиолюбительства только осваиваюсь. И как-то оно бедно (kicad)...

a5021
Offline
Зарегистрирован: 07.07.2013

Входы у логики висят на питании моста. Нечего тут считать. Негодная схема.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Блин, точно. Нк значит надо ещё один инвертор входного сигнала.

a5021
Offline
Зарегистрирован: 07.07.2013

Тут на али копался, нашел микрухи логики в мелких (3 х 2мм) восьминогих корпусах, типа msop или что-то наподобие. Раньше их не было или они были дороги, а сейчас появились по нормальной цене. За HC04 (3 элемента НЕ) и HC08 (2 элемента 2И) просят по десять рублей при покупке десятком. С такими чипами плату драйвера можно сделать размером с пятирублевую монету, если не меньше.

Триггеры Шмидта вообще по шесть рублей за корпус. Вот чем надо кнопари от дребезга защищать.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Исправил и резисторы добавил где забыл:

А вот развести в kicad пока никак не получается.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а по 20 рублей можно взять тиньку

http://ru.aliexpress.com/item/Free-Shipping-10PCS-LOT-ATTINY13-ATTINY13A...

тиньку конечно запрограммировать и исползовать схему из 254 поста, и управлять как сервой, что вообще требует один пин основной ардуины

в случае когда нужен не один драйвер можно использовать мегу 8. 6 шимов это 3 драйвера. а управлять по i2c например

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

У тиньки 15 ножек. Из них 2 запрограммировать на I2C, а на 12 можно повесить аж 4 драйвера из #254. Итого 2 тиньки = 8 моторов. :)

А ещё есть такой девайс аж на 16 серв и тоже по I2C: http://ru.aliexpress.com/item/16-Channel-12-bit-PWM-Servo-shield-I2C-interface-PCA9685-Adafruit-Compatible-new/32230165641.html?adminSeq=201164481&shopNumber=1414081

Так может ну её нафиг, эту "мегу"? Оставить один I2C и пусть пашет... :) (не шибко на него много получится: сервы + движки + гирокомпас + гироскоп + дисплей + .. а скорости на всех - хватит? )

А по схеме: можете что посоветовать, подправить или сказать как оно будет работать?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

схема похожа на рабочую, пробуй

это что за тинька на 15 ножек. 2313 чтоли. я говорил от тиньке13. даже ссылку дал

и 4 драйвера чтобы повесить нужно 8 шимов. где их взять? программный только

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Так ежели I2C, конешно программный. Там аппаратный уже все равно бесполезен. Чтобы пробовать, надо дождаться прихода деталек и таки освоить этот kicad .. не разводит он плату у меня ни в какую... по резисторам: можете помочь где какие надо воткнуть в цифру, а какие лишние? Давно это все было, забылось ужо. Да и КМОП .. не работал с ним раньше.

a5021
Offline
Зарегистрирован: 07.07.2013

jeka_tm пишет:

тиньку конечно запрограммировать и исползовать схему из 254 поста, и управлять как сервой, что вообще требует один пин основной ардуины

Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет.

Цитата:
в случае когда нужен не один драйвер можно использовать мегу 8. 6 шимов это 3 драйвера. а управлять по i2c например

Шимов там, к сожалению, только три, причем, один из них восьмибитный. Рискую быть опять обвиненым в офтопике, но я бы в этом случае смотрел в сторону stm32f030f4p6. Он и дешевле атмеги8 (хоть и с разницей в рубль-два) и несравнимо мощнее, что по периферии, что по производительности. 48-и мегагерцовое ядро и пять шестнадцатибитных таймеров. Наружу выходят шесть каналов шим, но два канала делят ноги с i2c, так что при использовании последнего, аппаратных шимов остается четыре. С учетом же, что на всех пяти таймерах есть каналы сравнения в разном количестве, то софтовых каналов можно сделать вообще дофига, причем, за счет высокой частоты ядра, весьма приличных частот и разрядностей. С использованием в разработке у него нет никаких сложностей, т.к. встроенный бутлоадер позволяет грузить прошивку через последовательный порт, что даже программатора не нужно. Только переходник USB-UART.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

шимов 6. это таймеров 3

стм конечно хорошо но кто умеет с ним работать? немногие среди здесь находящихся

хотя я для одного проекта возможно рискну использовать стм. ну просто ардуинки не хватает, дуе у меня нет, но есть mapple mini и дискавери

a5021
Offline
Зарегистрирован: 07.07.2013

На первой странице мануала по атмеге 8 написано, что число каналов шим равно трем. Это же можно обнаружить, разглядывая распиновку: таймер 0 не имеет выходов наружу, у таймера 1 их два и у таймера 2 один. Всего три.

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

блин перепутал. да в меге8 3 шима, это в 328 6

a5021
Offline
Зарегистрирован: 07.07.2013

Ко всему еще могу добавить, что именно в узко-специализированном применении младших стм есть особая прелесть: стм-ы на борту имеют весьма продвинутые аппаратные навороты, которые можно применять не исписывая горы кода. В то же время, более крупные модули управления часто проще делать на атмеге и ардуине, т.к. для них существует обширная инфраструктура, библиотеки и поддержка сообщества. Все вместе это называется экосистема. Кто-бы что ни говорил, но экосистема атмеловских камней более продвинута по сравнению с армами, т.ч. сравнивая МК разных семейств это всегда нужно иметь ввиду.

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

даже в таком дешевом камне есть dma

ног больно мало

a5021
Offline
Зарегистрирован: 07.07.2013

Во первых, существуют и более ногастые корпуса, а во вторых, никто не мешает повесить на SPI гирлянду из сдвиговых регистров и получить столько ног, сколько нужно. Причем, если использовать разные сдвиговые, то это могут быть, как выходы, так и входы. Цифровые, правда. Штатная частота SPI для F030 -- 12мбит. Нештатная, но тем не менее отлично работающая -- 24мбит. Два hc595, висящие на SPI в последнем случае могут трясти шестнадцатью ногами с частотой ближе к мегагерцу, причем каждая нога может исполнять свой собственный танец. Я не пробовал, но расчет показывает, что таким образом можно все эти ноги сделать отдельными ШИМ-каналами с частотой ~23кгц и пятибитным разрешением (ну или с частотой пониже, а битностью повыше). Если выделить под описание параметров ШИМ-сигнала область памяти в ОЗУ размером 512 байт, то зациклив передачу через DMA из этого буфера по SPI на сдвиговые, получим шестнадцать полностью независимых аппаратных ШИМ-каналов, которые будут работать без участия процессора.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

звучит красиво. это надо проверять

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

A5021 пишет: "Здесь хорошо бы знать, что хочет Arhat109-2 от схемы. Если ему требуется формировать ШИМ вне схемы драйвера, то тинька тут только мешаться будет."

Гы. Собственно это как раз я извиняюсь за свой оффтоп в вашем проекте. Проект хорош, и показался мне полезным, вот и решил продолжить, вместо того чтобы начитать свой. )

Задача: сделать из Arduino Mega2560 r.3 "Лего-кирпич" (так они называют свой блок управления в наборах "Lego MaindStorm") по своим возможностям значительно перекрывающий любой из оригинального Лего (их сейчас 3 варианта) И желательно в размерах оригинала с обрамлением из Лего-деталек.

Лего-кирпич имеет наружные размеры 13х9х5 "лего-дырок" или 104х72х47.5 мм. или "внутренний размер": 88х56х45 мм. По 8мм с горизонталей - толщина стенок для креплений "лего-деталек". Сюда входит собственно плата + батарейный отсек на 6 АА аккумуляторов. Со сторон 72мм имеет по 4 разъема для подключения 4-х датчиков с одной стороны и 4-х двигателей с другой. ФСЁ. )

1. Именно Мега2560 и никакая иная. Ну, .. есть она уже у меня. Понятно что на stm32 - можно слепить и меньше и круче. Тут крайне желательно БЕЗ переделок оригинальной платы, ибо их выпускается как г*на (к моим потугам есть интерес у ряда Лего-кружков нашего города - тоже УЖЕ имеют Мегу 2560: "давай мы сначала посмотрим что у тебя получится").

2. Сохранить удобство пользования "кирпичем" для "детишек". Вот с этим, пока проблема: то что сделано - требует гирлянды проводов что крайне неудобно на практике. Поэтому и озадачился шилдом для моторов.

3. По возможности, не уменьшать аппаратные ресурсы Меги. Ну, .. есть они, почему бы не использовать. И вот тут, у меня пока получается следующая раскладка:

а) аппаратный ШИМ для серводвигателей. Есть 4 16-битных счетчика по 3 канала. За вычетом 13 ноги == 11 серводвигателей. Программно управлять аппаратным шимом - проще простого: analogWrite() при верно настроенном счетчике (50Гц). Но, только 5-й таймер имеет полный комплект ног у Ардуино плат .. уж не знаю по каким причинам. Поэтому он у меня выделен в отдельное применение.

"подитог": +8 серв; На практике - уже опробовано, проверено и выяснено что "хватает с небольшим запасом" (есть 10, макс. использование - 7шт.).

б) аппаратный 8-и битный ШИМ. Есть 2 счетчика по 2 канала, один из которых перепрограммировать - нельзя (таймер времени). Как вариант и второй счетчик оставить на той же частоте в 125кГц. Для управления двигателями - явно "многовато", но можно использовать как яркостные каналы "кирпича". У нас уже есть "примеры": Скорая помощь, которая обнаружив препятствие плавно моргает светодиодом "в стиле спец. сигнала".

+ "подитог": +4яркостных ШИМ; На практике - полезно только как антураж, но прикольный. В скетчах часто светодиод на 13 ноге использую как датчик "загрузки процессора". )

в) встроенные интерфейсы: I2C, 4xUART, ISP, JTAG - пока есть задачи только для I2C, ISP и 1 UART. На оставшиеся ноги смотрю как на "резерв". Смущает что на I2C уже висят: LCD1602 + GY-271 + GY521 + BMP180 .. мне кажется уже "многовато". Но шилды гироскопов и альтиметра (ещё датчик tilt) легко помещаются между разъемами платы Меги, на подложке, прямо на проце меги и, что называется, "не отсвечивают" никак; Тут хочется в "итого" оставить "как можно больше", но пока это - резерв по большей части;

+ "подитог": +I2C + 1-4UART + ISP (+JTAG условно, не знаю нафига)

г) 16 аналоговых входов Меги. Пока планируются и частично уже пользуются как входы подключения разных датчиков и микрофонов. Часть входов из набора 8-15 планируются под энкодеры двигателей для подсчета силами прерываний (PCINT2 16..23) или от других датчиков, позволяющих работу по прерываниям.

+ "подитог": до 16-и датчиков. На практике задействованы 2 микрофона (уши) + ультразв. датчик (echo) + 2 датчика определения линии (больше нету в наличии) + 2 IR датчика препятствий. Итого 7 шт.

д) ну и "доп. разъем Меги". Во-от... тут есть полноценный 5-й счетчик, который пока однократно был использован под шилд TCS3200 (датчик определения цвета), да и то почти по скетчу производителя.. но тут есть идеи на предмет аппаратного счета через вход T5 или T5ICP. Ну и тут же заняты 4 ноги под ISP на самом деле.

Здесь же, есть xbus интерфейс из 19 ног, который легко позволяет расширять SRAM до 64кбайт. Под него и 1 доп. ногу уже спроектировал плату памяти на 1 мегабайт SRAM, но делать пока не стал - доставшаяся SRAM-микруха памяти оказалась "битой" (на макетке 2 ноги адреса не ожили). Шилд получается на latch-защелке + 2 SN74LS189 (РУ8) и одном транзисторе .. плюсом микросхема памяти. Страничный расширитель SRAM на 256 страниц по 4кбайт, управляется легко через ту же xmem.h. С ним остается свободными "всего" .. 3 ноги от доп. разъема. Пока помню про него как "резерв", если не хватит памяти нашему кирпичу. )

По сути, под маршевые двигатели можно задействовать эти 3 ноги (из них 1 уходит под узв. датчик!) и 6 резервных ног дополнительных UART, а соответственно имеем место под 4 маршевых движка. Практика показывает что "надо" от 3 до 6, и часто 5-6... маловато будет. ) Сейчас имеем 4 шилда L298N на 8 двигателей. Но, проблема "гирлянды проводов" - просто катастрофическая: подключить "не туда", детям - легко. Да и в конструкциях, вся эта висящая лапша существенно мешает и периодически отваливается.

Ну и как опять же, показала практика, шилд без радиаторов всеж-таки греется, хоть и медленно. А с ними, да 4шт .. конструкция получается "впечатляющих размеров", что сильно ограничивает "построюшки".. на соревнованиях есть предельный габарит в 25х25х25см. в "сложенном виде".

Вот, вместо x-bus шилда и задумал сделать шилд на 8 маршевых моторов. В этом случае, под датчики освободится ещё 6 ног. И тогда, вторую группу аналогов можно будет честно использовать под энкодеры моторов и/или не занимать интерфейсные пины дополнительных UART-ов.

Итого, пока получается кирпич с возможностями одновременного подключения (в случае доп. шилда с моторами):

8 серв + 8 маршевых моторов (до 8 энкодеров) + I2C + UART + SPI + (внутри кирпича: GY-271 + GY-251 + BMP180 + Tilt) + 4 LED-PWM + LCD1602 (сверху) + внешние датчики (гнезд): HCSR04 + TCS3200 + 2 Микрофонных шилда + 2 IR шилда + 2 шилда линий. + батарейный отсек на 4 АА аккумулятора и крону для самой ардуины. Всё это по оценкам, должно влазить в габарит 120х72х48мм, что уже не настолько "много и печально", а главное исключает гирлянды служебных проводов.

Предистория: сам - программист с 1979года, имеющий опыт работы практически на всех типах ЭВМ, в т.ч и микроконтроллеров: "не пугайте меня клавиатурой! Я начинал, когда их не было"
Кроме этого, за плечами хорошее конструкторское образование + старый опыт радиолюбительства, начиная с лампового детекторного приемника, лет в 10.
Дитенок, практически с 2-х лет грезит роботами, лет с 6-и толчется у меня за спиной, уже пробует писать скетчи сам (сейчас ему 9лет, не пускал раньше - нефиг глаза портить, успеет ещё), вот когда был выбор "что купить", выбрал Мегу.. теперь вот мучаемся..  )

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Посмотрел КМОП каскадные соединения транзисторов и особенности входных каскадов .. вот последний вариант драйвера одного мотора:

Пока продолжаю воевать с разводкой в kicad .. вроде как "получается". Но, в автомате - коряво... )

Номиналы резисторов открытого кллектора "150..1К": верхний предел из соображений, что в #254 такое работает успешно, а нижний предел из нагрузочной способности 2N7002 при предельном напряжении питания моторов в 12в. Тут получается, что "чем меньше" номинал - тем шустрее ШИМ, но и тем больше потребление самого драйвера.

Оценочно, при номинале в 150ом получим предельный ШИМ (1/20 частоты переключения мосфетов) в районе 160кГц. С пиковыми утечками только через 2N7002 около 80мА на 12 вольтах.

На 1 килооме будем иметь макс.ШИМ около 25кГц с потреблением через 2N7002, в пиках 12мА на 12 вольтах.

При уменьшении питания моторов до 6 вольт скоростные способности слегка улучшаются, а вот потребление в пиках снизится пропорционально. )

P.S. кстати, теоретически, драйвер должен быть работоспособным вплоть до 30 вольт - допустимого напряжения для AO4606 и поддерживать моторы с током до 5А .. надо только подобрать коллекторные резисторы верно для такого режима.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну почему оффтоп. по теме. может у тебя получится лучше. это хорошо что 50 шт заказал. я штук 5 полевиков сжег на экспериментах

а аккумуляторы лучше поставь 18650 и самую дешевую зарядку к нему

я сам в diptrace развожу

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

У меня линукс, и винды нет лет 10 как (последняя - хрюша со вторым сервиспаком) - сейчас "ваще не в курсях" что на винде есть и как юзается. Ставить wine - он глючный как мой ночной кошмар, а на виртуал бокс - не хочется по ресурсам. Если надоест линуксовый софт (то ещё чудо), то скорее всего поставлю XP2 через дуалбут. Но, пока "терплю и разбираюсь". Гимп, вот оказался вполне себе конкурент фотожабе .. но, блин, опять оффтоп. )

18650 - это снова Li-ion .. как обеспечить не превышение 7вольт для питания серводвигателей? Ставить преобразователь? .. снова габарит .. ) Для увеличения емкости батарейного отсека, сейчас присматриваюсь к формату уккумов ААА .. получается что их можно 8шт. втыкнуть вроде попарно в параллель. Заодно и разброс параметров меньше влиять будет. Да и их запас - около 12шт. по 1000мач и все рабочие. )

Не, одна 18650 пойдет на питание самой ардуинки, уже присмотрел место взамен кроны..

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну смотри сам. как компенсировать разряд аккмуляторов будешь? и просадку под нагрузкой

ацп начнет еще гулять. да и столько моторов и серв будут питаться от отдельного источника? короче питание ты не продумал