Гусеничное шасси на arduino и nrf24l01

tank arduinoЯ очень много времени провел в Интернете в поисках похожего проекта, но увы. Везде все одно и то же. Цель моей идеи была такой: реализовать пропорциональное управление танковым шасси с помощью arduino, модуля nrf21l01, модуля драйвера двигателей L298D и управления самодельным пультом с одним стиком X и Y положения. В дальнейшем планируется навесить еще функций к шасси, например, свет, возможно пару серводвигателей, какие-нибудь датчики.

Мое мнение о гусеничном шасси
Итак, начну свой рассказ.
Шасси. Почему выбор пал на танковую гусеничную платформу? Ведь можно было использовать и обычное колесное шасси, какое было в предыдущем посте. Ответ прост — так захотелось.
Мои поиски начались на Aliexpress, но цены на что-то более вменяемое просто ошеломительны. Но Я все-таки нашел, что казалось мне подходящим вариантом.
Сразу скажу,  пришло  мне полное барахло и, безусловно, оно не стоит тех денег, не покупайте хотя бы мою модель. Насчет цены замечу, что она явно накручена в отсутствии конкуренции на данную продукцию или это просто отбракованный товар.
Приведу пример. Как-то мой знакомый, который внес просто огромный вклад в разработку этого скетча, увидев мое шасси, прислал мне ссылку на магазин, который находится у него в городе, и где продают (не буду говорить игрушки 🙂 ), а скажу, будущие платформы для роботов. Перешел я по ссылке и просто офигел, что китаезы тоже наглые морды.
Для примера я приведу своего продавца на Ali и оффлайн-магазин.
Вот танк полностью в сборе, есть корпус целиком, аккумулятор, зарядное устройство и  пульт. И это не фейк, что он есть на сайте, а на прилавке нету. Есть все, и цены соответствуют. Теперь я вам предоставляю ссылку продавца на Aliexpress и его аналогичный танкгде он просит почти столько же денег, но чисто за гусеничную платформу и два мотора. На мой вопрос — есть ли у него корпус для данной модели —  он ничего не ответил. Этим я хотел сказать, что лучше для начала пройтись по местным магазинам.
Теперь расскажу именно про свое шасси, и чем я так недоволен.
Во-первых, вот ссылка и не говорите, что я сам виноват, мол, вон какой рейтинг у продавца, когда я покупал он был где ~96%,  после того, как я получил и увидел качество сборки, написал продавцу свой комментарий, уже прошел месяц. Он мне ничего не ответил, диспут я не открывал и не хотел, потому что все работало, но криво.
Что же было криво? Одна гусянка была скручена, и из-за этого при движении всегда вело в сторону. Некоторые винтовые отверстия были с трещиной. На котках огромные люфты, что тоже очень влияет на гусянки при движении. Еще я хочу добавить, может это и не минус, но это не то шасси, где можно медленно побуксовать или преодолевать препятствия, оно больше подходит для дрифта)) редуктор у него не тяговитый.  Хватит, наверно, расписывать гусянку, пойдем дальше.
Что нам потребуется:
Что нам потребуется:
Ардуино — 2 штуки, я использую nano на пульте, и пока что на стендовом варианте UNO на шасси.
nrf24l01 — 2 штуки, на пульте и на шасси.
Аккумулятор на 1000Mah 2S — на шасси и пока что power bank для пульта и питания Nano.
Модуль драйвера двигателя L298N.
Джойстик-стик
, здесь есть один нюанс, те дешевые, что продавались на Aliexpress, а именно эта модель, имеют очень плохие показатели, объясняю-не имеют ход потенцометра с 0 до 1023, то есть, как вы чуть-чуть нажмете на стик, показания сразу поднимутся с 0 до 70, например, то есть добиться плавного движения с этими стиками просто не получится. Я использовал стик из пульта от старого вертолета, он внешне один в один, только не на монтажной плате. С этим стиком получается плавное нарастание сигнала при движении стика от самого начала до конца его положения.
Монтажная плата — если вы хотите сделать пульт, похожий на мой, вам потребуется монтажная плата. Я покупал набор платок давно, поэтому я все-таки приведу того продавца, но скажу, что есть смысл поискать получше. Ко мне идут платки зеленного цвета, если их качество лучше, то я дам ссылку на них тоже.
Также нам потребуются кнопки на пульт для возможности подключения дополнительных функций, провода и резисторы для подключения кнопок.

С самого начала я подготовил шасси, припаял к мотору провода с контактом (мамка на конце), для того, чтобы было легче присоединить их к мотору модуля и чутка проклеил горячим пистолетом для надежной фиксации. Затем сделал 4 штырька из скрепки, для мотора модуля для быстрого монтажа-демонтажа в паре с мотором шасси, о чем я написал выше.
Далее начнем подключать все наши компоненты.
Все подключим по схемам.

Схема подключения мотор модуля L298N и Arduino
Схема подключения NRF21L01 и Arduino для пульта тоже самое.
nrf24l01

для Arduino Mega будет 
52 — SCK
51 — MOSI
50 — MISO
42 — CSN
40 — CE

Теперь пару слов о пульте.
Он построен на макетной платке 5 см на 7 см, на которой расположились 6 кнопок, аналоговый стик, модуль nrf24l01 и arduino nano. Схематехника осуществлена на обратной стороне платы. Модуль nrf25l01 съемный. В данный момент к ардуино подключена одна кнопка, остальные кнопки ждут своей очереди в моих задумках.
Пульт питается от power bank, дело в том, что я хотел посадить nano на питание от аккумулятора телефона, но у меня была только 5 V, как только я получу посылку с 3.3V nano, тогда сразу посажу её, а этот текст зачеркну. Все припаянные контакты я покрыл лаком. Никакой конденсатор, как многие советуют, не припаивал. Схема подключения arduino и nrf24l01 точно такая же, как писалось выше.

Схема подключения стика и кнопки на пульт
but pot ardu
На схеме я использовал потенциометр вместо стика, функционал у них один и тот же, их, кстати, и можно использовать вместо джойстика.

Фото пульта
пульт пульт 2

Теперь, наверно, самое главное — это код.
Внимание! Данный скетч не будет работать в Arduino IDE выше 1.6.7
вот ссылка на поправленный код, проверенный на версии 1.6.12, замечу этот код был написан для другого проекта, но должен подойти.

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

Продолжение статьи


Комментарии:

Комментарии

  • Очень классно сделано и описано. Тоже хотелось бы шасси на гусенице сделать, проходимость лучше и управляемость. Но пока подходящее шасси в соответствии с ценой/качеством не нашли.

  • Андрей:

    Привет, Александр.
    Не могу залить скетч приёмника. При компиляции выдаёт ошибку:
    ‘Control4WD’ was not declared in this scope

    Помогите пожалуйста.

    • Привет, может Вы сами допустили где нибудь ошибку, потому что у меня компиляция проходит без ошибок, только проверил код, IDE 1.6.7

      • Андрей:

        Попробовал IDE 1.6.7 (до этого была 1.6.10) — всё получилось.
        Спасибо большое!

    • Михаил:

      ето переменая котороя не определена как переменая.
      надо написать там где все перемение стоят:
      int Control4WD;

  • Сергей:

    Добрый ночи !) как можно добавить в ваш код еще две кнопки и передавать их состояние ? значение 255 передается а как передать например 256 и 257? спасибо за ответ )

  • Алик:

    Добрый день. Собрал машинку аналогично вашей схеме. Когда машинку держишь на весу,все работает, как только ставишь на пол, не едет слышен писк.джойстик двухосевой XY. Подскажите пожалуйста в чем может быть проблема, может не хватает пускового тока нужно использовать две L298N? или на моторчиках нужны конденсаторы?

    • А какой элемент питания ? Двигатели такие же? Вы точно сделали раздельное питание на ардуино и на драйвер с общим GND, если двигатели такие же (или желтые мотор редуктор) драйвера хватит спокойно на 4 мотора. Дело в питании скорее всего. Вы запускаете от 5 или ~12 вольт?

  • Алик:

    Питание 6 аккумуляторных батареек 7,2в. желтые мотор редукторы с такими же двигателями. Ардуино у меня запитана от L298N с 5в выхода с общим GND

  • WTF:

    якого [ez у меня не запускаеча скеч

  • artem:

    У меня тоже

  • Игорь:

    Привет Александр ! Написал Вам на мыло и ни какова ответа, согласно этой модели все работает, только светодиод на 8 пине постоянно моргает и ни чем не управляется, как сделать чтоб на передатчике на кнопку нажал светодиод включился и при повторном нажатии отключился? С Уважением дед Игорь !

  • Алик:

    Здравствуйте, снова обращаюсь к вам с просьбой. L298N может крутить моторы по мощнее чем те что представлены на схеме? На машинке передние колеса поворачивают моторчик как у вас на схеме, и он работает, а задний привод не работает, моторчик стоит по мощнее

  • Александр:

    Спасибо! Хороший проект. Собрал, всё работает. Не пойму почему, поработав не много, шасси начинает тупить(плохо едет вперед или назад), проходит само. Не подскажите почему?

Добавить комментарий

Ваш e-mail не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.