Электропроводка в Мите несложная, но чтобы было куда подглядывать я нарисовал схемку и сфотографировал монтажный вариант разводки.
Вот принципиальная схема питания контроллера:
Мне не хотелось припаивать аккумуляторы намертво и не оказалось подходящих разъёмов, поэтому я использовал клеммник, привинтив его на днище тележки.
Сейчас мы проектируем свой шилд, одной из задач которого, будет контроль состояния аккумулятора и тока его заряда. По этой причине разрыв положительного провода, идущего от разъёма зарядки к плюсу аккумулятора выведен на клеммник. Пока шилд не готов, поэтому на клеммнике установлена перемычка.
Чтобы ничего не напутать перед сборкой я набросал и монтажную схему:
Теперь о питании двигателей. Вот помесь принципиальной и монтажной схем:
Здесь видно, что клеммники моторов, установленные на Ромео, будут располагаться в задней части робота. Причём, клеммник М1 управляет левыми двигателями, а М2 - правыми. Конденсаторы вообще-то можно не ставить, но я решил поберечь щётки моторов и подстраховался. И последнее: чтобы минимизировать наводки от моторов, Сергей Китель предложил использовать витую пару, что я и сделал. Причём он, кстати, использовал обычный сетевой кабель.
Ну и вот результат:
"Сетевой" всмысле локальной сети, а не сети 220В :)
ОтветитьУдалитьточно ;)
УдалитьХорошо расписано! Новички, я думаю поймут без проблем.
ОтветитьУдалитьДобрый день. Не столкнулись ли Вы с проблемой разной скорости вращения двигателей? Если да, то как решали? Мой первый робот собран на Turtle - 2WD Mobile Platform заметно забирал в сторону, причем эта проблема изменялась в зависимости от заряда аккумуляторов. Поэтому регулировка разной скоростью моторов программно не имела смысла.
ОтветитьУдалитьДвигателя запитал микрофонным кабелем с экраном, который припаял к корпусам моторов.
У нас таких проблем не было, по крайней мере из нашей комманды никто с таким не столкнулся, судя по молчанию.
УдалитьМогу посоветовать подключить движки напрямую к аккумулятору и посмотреть как будет двигаться тележка, если так же будет крениться в одну из сторон, то скорее всего разные параметры у движков (сечения провода якоря, кол-во витков или возможно даже намагниченности магнитов статора) тут проблема решается поиском двигателей с максимально идентичными характеристиками.
Если при прямом подключении движков к аккумулятору все норм, то проблема в драйвер шилде или в коде :)
Да, проблема именно в двигателях, но шли они в комплекте с платформой, что и удивило. Буду пробовать решить проблему с помощью энкодеров
УдалитьПо моему проще движки поменять.
УдалитьПри наличии двигателей действительно проще. Но у меня возможность покупки только через почту - интернет. С какими параметрами они приедут хз, а энкодеры есть.
УдалитьПодтверждаю, что я с такой проблемой не сталкивался, но у нас на тележках на каждой стороне по два запараллеленных двигателя. Поэтому отклонение менее вероятно.
УдалитьЯ подумывал об использовании энкодеров, но так и не придумал им применения. При поворотах на нашей тележке всё равно будут проскальзывания колёс, поэтому тут энкодеры не помогут. А вы подсказали интересную мысль - использовать энкодеры при прямолинейном движении.
Не могу удержаться и не посоветовать вам простое в реализации программное решение. Можно определить коэффициент для коррекции скорости более быстрого мотора для двух состояний аккумулятора: полностью заряженного и разряженного. Зависимость, думаю, будет линейная. Поэтому, зная уровень напряжения, всегда можно определить коэффициент. А уровень на аккумуляторе можно получить с помощью делителя напряжения и одного аналогового входа микроконтроллера.
УдалитьДумаю, это решение проще использования энкодеров, правда не универсальное. Зато экономите на используемых входных пинах - один против двух.
я игрался с таким 2WD turtle в школе. дело не в двигателях, не в драйверах, и не в проводах. дело в том что движки развернуты в разные стороны, а у этих движков скорость в разные стороны разная + разброс от движка к движку ( погрешность изготовления).
Удалитьбез энкодеров прямо не поедет, можно попробовать регулировать ШИМ-ом по таблице - "напряжение аккумулятора- коэффициент". для этого нужно к роботу добавить 2 резистора - делитель напряжения ( на нашем сайте где то есть ) и конечно составить таблицу. но лучше сразу энкодеры. - если купить сложно, то можноо сделать из шариковой мышки или в принерах и сканерах тоже есть готовые оптопары, или вообще из фотодиод+светодиод. колесо я вырезал из двд-бокса. можно на просвет, можно вариант с отраженным светом ( легче с креплением). для крепежа ищи пластик "полиморфус" (продается в магазинах радиомоделей) - вещь номер 1 в домашнем арсенале любого самоделкина.
энкодер вообще много для чего нужен. для учебы и эксперисентов - вообще незаменимая весчь.
на нашем 4WD таких проблем нет потому что нужно приложить много усилий чтоб изменить траекторию с прямой. зато мы теряем в поворотах.
Дима, у меня энкодеры стоят как раз для прямолинейного движения. в паре с дальномером для реализации "slam" - навигации.
я не поворачиваю на ходу. только прямолинейное движение и повороты на месте.
Робот Митя двигается вполне прямолинейно без энкодеров. Поэтому их установку я считал перебором. Но сейчас вы меня убедили :) - можно довернуть наш скетч для опционального использования энкодеров. На случай двухколёсной тележки, например.
Удалитьэто как раз то, что мы планировали при создании платформы - у меня все эти кусочки есть, есть даже для схемы с поворотной сервой.
УдалитьL_enc = digitalRead(ENC_LEFT); //сигнал с энкодера
R_enc = digitalRead(ENC_RIGHT);
// если сигнал изменился -> Dist++
if (L_enc != L_enc_last) {L_dist++;}
if (R_enc != R_enc_last) {R_dist++;}
L_enc_last=L_enc;
R_enc_last=R_enc;
if (L_dist > R_dist)
{
left_speed = 255-2*(L_dist - R_dist);
analogWrite(SPEED_LEFT, left_speed);
}
else
{
right_speed = 255-2*(R_dist - L_dist);
analogWrite(SPEED_RIGHT, right_speed);
}
Этот комментарий был удален автором.
ОтветитьУдалить