Студент Международного центра компетенций — Казанского техникума информационных технологий и связи П. Ермолаев в детстве мечтал об игрушке «Танковый бой». В статье он рассказывает, как решил собрать радиоуправляемую модель самостоятельно.

С чего все началось

В детстве я мечтал об игрушке под названием «Танковый бой». Смысл в том, что два игрока управляют танками, которые катаются и стреляют друг в друга инфракрасными лучами до тех пор, пока у кого‑то не кончатся жизни.

Игра «Танковый Бой»
Игра «Танковый Бой»

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

Подбор комплектующих

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

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

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

Радиомодуль nrf2401
Радиомодуль nrf2401

Что еще понадобится? Само гусеничное шасси, которое я нашел на «Авито» за 500 рублей, сервопривод для башни, ИК‑диод, ИК‑фотодиод и несколько обычных светодиодов, чтобы индицировать количество оставшихся жизней. И да, чуть не забыл про одно из самых главных — электромеханическое реле, с помощью которого будут приводиться в действие электромоторы.

4-канальное реле
4-канальное реле

Сборка

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

Изначально я хотел использовать имеющиеся у меня уже аккумуляторы на 5 Вольт, но при первых же ходовых испытаниях было выявлено, что этого напряжения недостаточно для бесперебойной работы Arduino. После были закуплены и установлены аккумуляторы почти в 9 Вольт — этого уже оказалось достаточно. Ходовая модель выглядит примерно так:

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

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

Схематичное изображение модели
Схематичное изображение модели

На башню был прикреплен ИК‑светодиод, ИК‑фотодиод и три индикационных светодиода. Проводов, идущих от башни в корпус, оказалось довольно много. Проделывать дырку в плите под башней я не стал и сделал ее чуть ближе к корме, что тоже было не самым лучшим решением.

Говоря о пульте, тут без каких‑либо изысков: Arduino nano, 7 кнопок (обе гусеницы вперед и назад по отдельности, поворот башни и стрельба), модуль радиосвязи и аккумулятор.

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

Программирование оказалось не особо сложным. Все необходимые инструкции по использованию специальных библиотек для радиомодуля и сервопривода есть в открытом доступе в интернете. Единственное, что заставило меня запариться и искать решения в интернете, это проблема с заливкой скетча на Arduino Nano. Программа просто выдавала ошибку без четкого указания на проблему. А ларчик‑то просто открывался: нужно зайти во вкладку Инструменты → Процессор и выбрать вариант (Old Bootloader), и тогда всё заработает как надо.

Итог

Из-за огромного числа проводов модель получилась большой по габаритам. Тем не менее, функцию свою она выполняет.

На корме имеется крышка для замены аккумулятора. Для зарядки я сделал небольшое устройство на базе модуля TP-4056.

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

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

Комментарии (29)


  1. Helpred
    18.09.2023 09:40
    +2

    Ну не знаю. Как проект - норм, можно фичи прикрутить, тогда цена оправдает себя, потому что...

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

    Нет, на авито готовые наборы в рабочем состоянии лежат от 1500р. за оба танка. В свое время очень популярная игрушка была.


  1. baldr
    18.09.2023 09:40
    +2

    С таким проектом в наше время есть шанс заинтересовать военкомат раньше диплома.


    1. Zenitchik
      18.09.2023 09:40

      С чего бы вдруг?


      1. forester22
        18.09.2023 09:40

        Чтобы Армату запустить. ))


        1. Zenitchik
          18.09.2023 09:40
          -1

          А военкомат тут причём?


      1. VT100
        18.09.2023 09:40
        +1

        За неуд по электронике?


        1. Zenitchik
          18.09.2023 09:40
          +1

          Пожалуй, единственное разумное объяснение.


  1. Polarisru
    18.09.2023 09:40
    -1

    Со старта у меня было понимание, что модель надо создавать на базе Arduino

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


    1. sepetov
      18.09.2023 09:40

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


      1. hvunt
        18.09.2023 09:40
        +2

        Начните с Ардуино и не заморачивайте голову.

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


        1. sepetov
          18.09.2023 09:40

          Спасибо! Тогда, наверное, лучше посмотреть на готовый обучающий набор с книгой и набором компонентов, чтобы на макетной плате по-быстрому тренироваться, не отвлекаясь на пайку. Или нет?


          1. hvunt
            18.09.2023 09:40
            +1

            Да, чтобы начать прямо с основ, то лучше взять уже готовый набор, но с прицелом на то, что хотелось бы из него потом собрать что-то осознанное. То есть, например, хотите у себя дома погодную станцию - смотрите, чтобы в наборе были датчики влажности и температуры и какой-нибудь wifi/bluetooth модуль (чтобы данные по воздуху отправлять). Хотите сделать в будущем управляемые шторы - смотрите, чтобы в наборе были двигатели и соответствующая обвязка (драйверы для двигателей, они обычно так и указываются).


            1. sunsexsurf
              18.09.2023 09:40

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


              1. zavant
                18.09.2023 09:40
                +1

                Можно начать вообще без набора, попробовав собрать схему в симуляторе типа tinkercad или wokwi. Там же можно посмотреть готовые проекты.


              1. MoonArsenii
                18.09.2023 09:40

                kit.alexgyver.ru вроде там дофига модулей и ещё уроки есть, как раз для начинающих.


      1. Polarisru
        18.09.2023 09:40

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


        1. sepetov
          18.09.2023 09:40

          Да, начальных знаний нет. Почему arduino не для промышленного использования прочитал тут, вы, видимо, тоже об этом? К сожалению, планы всё-таки на промышленное использование, но очень потом и в "тепличных" условиях. Думаю, всё-таки лишним это изучение не будет. Спасибо!


          1. Polarisru
            18.09.2023 09:40
            +2

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


    1. NutsUnderline
      18.09.2023 09:40
      +1

      это прекрасный инструмент чтобы быстро и прикидочно проверить идею, например. Но с учетом того что очень много сложных проектов сделано в среде Arduino/Platformio - плохой ли это диагноз. И что то мне сомнительно что вылизанная функция DigitalWrite как то повлияет на надежность по сравнению с out PORTB,temp Стандартами безопасности, реализацию которых можно видеть в том же STM Cube вообще присущи всякие перепроверки очевидного, так что может Arduino то еще и надежнее будет с точки зрения софта :) :)


      1. Polarisru
        18.09.2023 09:40
        +1

        Нет, не будет, потому что вы понятия не имеете, как оно работает под капотом. И речь тут даже не про софт, хотя и там могут быть существенные подводные камни, о которых вы можете только догадываться.


        1. NutsUnderline
          18.09.2023 09:40
          +1

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


          1. VT100
            18.09.2023 09:40

            "На время" ли?


  1. iliasam
    18.09.2023 09:40
    +4

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

    21 век, а управление моторами в игрушечном танке - на реле)
    Есть же в продаже куча разных плат драйверов коллекторных моторов.


    1. engine9
      18.09.2023 09:40
      +1

      А полевик и диод шунтирующий обмотки двигателя (для защиты от обратных выбросов высокого напряжения) разве не сгодится ?


      1. iliasam
        18.09.2023 09:40
        +2

        Тут же изменение полярности мотора нужно, так что на один мотор нужен полноценный H-мост из 4 транзисторов.


        1. engine9
          18.09.2023 09:40

          Спасибо, всё верно.


    1. alextrof94
      18.09.2023 09:40

      Больше того, есть уже и модули именно для ардуинщиков на нормальных микрухах, которые управляют моторами в ключевом режиме, из-за чего при тех же нагрузках имея размер "с фалангу" даже не греются, да и максимальная нагрузка выше. Я когда начинал 7 лет назад - был только огромный л298н.


  1. Albert2009Zi
    18.09.2023 09:40
    +1

    Мой совет. Для лучшей надежности, все таки, после проверки функционала на bread board, хотя бы перенести все соединения на "растер" плату (такая плата с дырками под пайку) и запаять их. Однозначно будет надежнее. А лучше, всё таки развести плату переходник, дабы минимизировать количество навесных проводов.


  1. DungeonLords
    18.09.2023 09:40
    +1

    Похожий проект с вебкамерой.