понедельник, 27 февраля 2017 г.

Печатные платы последней версии робота

Пару недель назад я решил, что с электроникой я уже разобрался настолько, что можно наконец то заказать печатные платы в хорошем качестве, потому как в экспериментальном прототипе я использовал плату крайне низкого качества, но зато дешево и быстро.
Платы я заказал в одном из сервисов изготовления PCB в Китае (еще и попал на какую то скидку/акцию, так что отказаться я не смог)
И сегодня я наконец то их получил. Вообще то с момента заказа прошло всего 19 дней, так что я очень доволен.

Думаю на этой неделе попробовать собрать одну, не терпится посмотреть что получится в итоге

пятница, 24 февраля 2017 г.

Текущее состояние разработки, и что сделано в данный момент.

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

Как вы наверное видите - это ведро (в нем лежат мячи, которыми робот стреляет), и ствол с платой управления. В ведре также есть механизм подачи мячей к стволу.
Изюминкой является возможность управления роботом с помощью приложения на Android устройстве (телефон или планшет) через Bluetooth. Для работы приложения необходимо устройство, поддерживающее Bluetoth Low Energy стандарт (фактически минимальная версия Android 4.4). Само приложение написано на Xamarin Forms Фреймворке с максимально возможной поддержкой кроссплатформенности. Это значит, что в будущем, если у проекта будут какие то осязаемые перспективы, можно будет довольно быстро дописать пару модулей и получить аналогичное приложение для IOS. Что то из задуманного еще предстоит дописать , но в принципе уже можно вполне комфортно пользоваться.
Приложение позволяет быстро настроить параметры выстрела, сохранить выстрел (пресет) в памяти программ робота и создать до 5 программ, каждая из которых может содержать до 200 пресетов. Мне кажется этого вполне должно хватить для любого спортсмена. В планах есть идея написать модуль, который бы автоматически создавал программу с заданными программами, но случайным образом. Любую программу можно сохранить в приложении, и в нужный момент загрузить в память робота.
Кроме того, для того чтобы пользоваться роботом в зале, не обязательно даже иметь телефон. Можно загрузить созданные программы в память робота дома, и уже в зале запускать их с помощью ИК пульта от телевизора, аудиосистемы, кондиционера, и вообще любого пульта. Фишка в том, что робот может обучиться командам с любого пульта, запомнить их, и реагировать на них в дальнейшем. То есть покупать отдельный путь нет необходимости.
Также из приложения можно тонко настроить режимы работы двигателей, сервомашинок, звука перед выстрелом и т.п. О настройках я напишу отдельную статью позже.

Вообще, при продумывании конструкции и всего остального я старался использовать максимальное число готовых изделий, которые можно купить на рынке, aliexpress или строительном супермаркете. Так используется ведро, пластиковые канализационные трубы и фитинги, сервомашинки, двигатели. Часть деталей распечатана на 3D принтере.

Ну а теперь немного более подробно про отдельные части робота.

Ствол и электроника.


Выстрелы мячами делает ствол, как бы странно это не звучало :-) . Он изготовлен по технологии 3D печати, и может выполнять повороты:

  • вверх на 40° - этого должно хватить, чтобы имитировать мячи-парашюты, когда мяч падает с высоты на стол

  • вниз на 25° . Я думаю, что большой диапазон наклона ствола вниз не сильно нужен, поскольку роботу достаточно просто перебросить мяч через сетку, либо сымитировать подачу

  • влево и вправо на 25°. Этого должно хватить, чтобы сделать выстрел в любую точку стола за сеткой (то есть на стороне тренирующегося человека)

Я отказался от использования коллекторных (щеточных) моторов, поскольку щетки быстро стираются, эти моторы тяжелые, и крутящий момент на низких скоростях слабоват.
Выстрелы осуществляются с помощью двух бесколлекторных моторов, которые обычно используются  в квадрокоптерах. Это действительно классные и относительно недорогие моторы, которые имеют широкий диапазон скоростей (700-9000 оборотов в минуту), причем управлять скоростью их вращения можно с точностью до 20-30 оборотов в минуту. У меня в приложении в силу ряда причин шаг изменения скорости мотора установлен в 50 оборотов в минуту. Это дает очень плавно настраивать параметры выстрела. Также двигатели легко и быстро реверсируются (меняют направление вращения на противоположное), а значит можно создавать выстрелы с очень сильным вращением.
Всем хороши эти двигатели, кроме одного - ими очень непросто управлять. Здесь нельзя просто подключить батарейку, чтобы мотор начал вращаться. Для этого используется сложнейший алгоритм управления, и непростая схема управления (электроника). Тем не менее на сегодняшний день я решил большинство проблем, и получил стабильно работающую схему с программой управления. Работающий прототип платы выглядит сейчас так:
Вообще изначально плата задумывалась так, чтобы быть универсальной для любой конструкции робота - будет это установка робота на столе, как большинство недорогих роботов Buddy, на треноге (как например Фора Снайпер), или вариант робота с рециркуляцией (повтором - когда отбитые мячи снова выстреливаются роботом). Главное чтобы механизм подачи мячей успевал подталкивать их к стволу. А уже датчик в стволе сам определит, есть ли мяч для выстрела. Момент выстрела плата управления в этом случае выберет сама. Это позволяет плавно настраивать интервал между выстрелами. Приложение позволяет задать интервал в диапазоне 0,5-30 секунд. Это время для каждого выстрела свое, поэтому можно создавать программы с пресетами, в которых паузы между выстрелами меняются от выстрела к выстрелу. Так можно сымитировать какой либо стиль игры и отработать данный стиль на тренировке.

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

Также плата может управлять двумя типами двигателей механизма подачи:

  • двигателем постоянного тока (обычно с редуктором).

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

Механизм подачи

Я ранее уже писал о том, какие бывают механизмы подачи. Сейчас я использую механизм "вертушку". Он в принципе работает, но обнаружились пара слабых мест, с которыми я сейчас разбираюсь. Механизм собран из канализационной пластиковой муфты 110мм, пары заглушек на эту муфту и  пластиковой канализационной трубы 50мм. Ну и пара деталей распечатаны на 3D принтере.
Таким образом, получился еще один независимый узел, который можно заменить, не меняя ничего в конструкции ствола. Сейчас этот узел вставлен в ведро, но можно использовать его и отдельно, как вот в этом видео
Пример работы робота на длинные дистанции показан здесь

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

Мобильное приложение
Позже я напишу отдельную статью о приложении, а пока вот несколько скриншотов:





вторник, 21 февраля 2017 г.

Конкурс разработок на STM32 микроконтроллерах. И причем здесь робот?

Как то так совпало, что несколько дней назад фирма ST, которая выпускает микроконтроллеры STM32 (а именно на его базе сделан мой робот), объявила конкурс на лучшее видео к своему проекту – и призом будет именно 3D принтер, который мне так необходим (какое совпадение!). Условия победы – максимальное число лайков у видео в сообществе ST. На данный момент лидирует человек с 30 (да, да – именно тридцатью) лайками.
В общем, прошу всех неравнодушных лайкнуть это видео с роботом, ОБЯЗАТЕЛЬНО НА ИХ САЙТЕ - https://community.st.com/videos/1284-table-tennis-robot (нужно будет зарегистрироваться у них на сайте)
Потратьте пожалуйста пару минут времени, принтер реально необходим - печатать в 3D студии выходит очень дорого

Вот здесь инструкция для тех, у кого возникли сложности с регистрацией Инструкция по регистрации

Как устроен робот для тенниса

Как же эта штука работает? На самом деле очень просто: жжж... чпок... бам.... Ну это если не вдаваться в детали :-) 
Если вдаваться, то обычно у робота есть 2 основных узла (про сетки, емкости для мячей и т.п. я тут писать не буду):
  1. Ствол с роликами, который выстреливает мяч.
  2. Подающий узел, который подтягивает/подталкивает мячи к стволу

Узел с роликами.

На стволе всегда есть двигатели (один, два, или три), на которых закреплены резиновые ролики. Когда мяч подкатывается к ролику, тот цепляет мяч резиной и резко толкает мяч вперед. Так как скорость вращения роликов достаточно высокая, то мяч довольно быстро летит вперед с каким то вращением.

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


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

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

Подающий узел

Чтобы ствол выстрелил мячом, этот самый мяч нужно как то как то в ствол "зарядить". Тут уже народ изобретает что только может. Из того что я видел или слышал, могу выделить такие конструкции:
  • "Вертушки". Самая простая для повторения конструкция (состоит всего из нескольких деталей), которая встречается наиболее часто. Диск вращается, цепляет мяч и подталкивает его к стволу


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

Червячный механизм подачи мячей изпластиковой трубы

  • И еще один (экзотический для меня) метод подачи мячей - воздухом. О нем мне рассказал один мой знакомый. Мяч просто "задувается" к стволу напором воздуха. Что то в этом есть - отсутствуют дополнительные вращающиеся детали, моторы и т.п. Сам я этого не видел, но такие роботы реально существуют. Интересно как у них с шумом... Недостаток, про который я знаю, в том, что к ним подходят мячи только одного диаметра, на который они рассчитаны. Все мы знаем, что не так давно ITTF одобрило новые пластиковые мячи немного большего диаметра (40+), и возможно они уже в такой ствол не полезут.

понедельник, 20 февраля 2017 г.

Как я начал создавать пушку для настольного тенниса...

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

Несколько лет назад я всерьез увлекся настольным теннисом. Эта игра меня настолько увлекла, что я постоянного искал во дворах играющих людей, чтобы с ними померяться силушкой поиграть, ну и желательно победить. Прямо скажем, побеждать удавалось не всегда.  В ход пошли ролики с youtube и  чтение форумов, чтобы понять как же мне повысить свой уровень игры. 
Немного позже я перешел на игру в помещении, где быстро понял что играть во двор я уже не вернусь. Соперники в помещении были уже посильнее, чем во дворе, поначалу что то  противопоставить им не удавалось (а хотелось).
Итак, с этим что то нужно было делать. И я понял, что для отработки техники мне просто необходим либо тренер, либо робот-пушка (лучше конечно и то, и другое). Беглое знакомство с вариантами роботов на рынке показало, что это удовольствие недешевое. Здесь (как и везде наверное) работало правило - либо дешево, либо качественно и функционально. 
Ну я не ищу легких путей, тем более мне всегда нравился процесс конструирования и создания чего то нового. К тому же я довольно неплохой инженер-электронщик (забегая вперед - я уже и программист). И я решил, что я по быстрому сделаю себе своего робота. О как же я был оптимистичен в сроках, и как же я ошибся! Ну вернее я все таки довольно быстро сделал первую версию, и она даже как то стреляла. Но мне этого было недостаточно, я хотел большего - мне нужна была лучшая стабильность, лучшая точность попадания, легкость управления и развертывания робота, возможность программирования выстрела,... В общем хотелось получить все навороты промышленных роботов, но чтобы "свое, родное"... 
Это вылилось в несколько версий роботов, с которыми я экспериментировал. Немного позже я напишу краткую историю этих разработок. Кое что есть на форуме tt-maximum.com и на youtube канале
Сейчас мой робот, это довольно навороченная штука с управлением с телефона или планшета по Bluetooth, кучей настроек и параметров, возможностью плавной регулировки скорости двигателей и их быстрого реверса (а значит более сильными вращениями). Я еще не закончил разработку, но сейчас мне кажется, что мне скоро все таки удастся создать недорогого робота с функциональностью, аналогичной промышленным образцам. Об этом я и буду рассказывать в этом блоге.