Приветствую, Самоделкины!
Из этой статьи вы узнаете, как прокатиться на сноуборде дома, что собственно, для этого понадобится и как сделать этот процесс максимально интерактивным.Дальнейшая инструкция взята с YouTube канала «AlexGyver».
Основная идея этого проекта пришла к автору во время рядовой закупки всяких железок на китайской торговой площадке Аliexpress. Буквально случайно среди множества электронных компонентов на глаза попался вот такой комплект, состоящий из четырех датчиков веса, который ко всему прочему стоил всего сотку.Обычные привычные датчики из бруска металла продаются в количестве одной штуки за такую же цену.
Когда автор увидел 4 датчика рядом, то сразу представил платформу, которая на них опирается.
Измеряя сигналы с каждого датчика, при помощи школьной математики можно определить положение груза, который лежит на платформе. Еще можно определить направление момента силы, создаваемого перемещением центра тяжести груза, закрепленного на этой самой платформе. Проще говоря, если закрепить человека на такой платформе, то можно будет определить направление, в котором он наклоняется. Думаю, вы уже поняли, что мы будем делать игровой контроллер для компьютера в виде сноуборда. То есть получим прямо-таки аркадный симулятор горнолыжного отдыха.
Для повторения данного проекта понадобятся:
1. Сноуборд с креплениями и ботинками;
2. Показанные ранее 4 датчика веса;
3. Мощный вентилятор, для создания эффекта;
4. Аrduino Pro micro, которая позволит подключить датчики компьютеру и имитировать геймпад;
5. Модули на базе микросхемы HX711;
6. Несколько резисторов на 1кОм;
7. Винтики М6, чтобы в дальнейшем можно было собирать и разбирать всю конструкцию.Подключается это все следующим образом:
Это собственно и есть схема сегодняшнего проекта. Ещё можно добавить кнопочку для калибровки веса. Вообще, один модуль способен обслуживать сразу 4 датчика веса, но в этом случае мы получим одно общее значение, то есть по сути получатся цифровые весы.
Взвеситься после праздников идея конечно хорошая, но нам не это сейчас надо. Нам нужно получить значение с каждого датчика индивидуально, поэтому схема будет вот такая:
Основная идея заключается в следующем: кладем 2 деревяшки снизу, на них закрепляем датчики веса, сверху поставим сноуборд и прижмем его другими деревяшками.
Таким образом у нас получится платформа с большой площадью опоры. Сноуборд отлично зажался и дополнительных продольных креплений можно даже не городить. И так держит отлично, можно наклоняться во все стороны, что уже не плохо. Конечно ощущения от наклонов совсем не те, которые дает доска на скорости, но в качестве домашнего симулятора очень даже неплохо. Конструкция ведет себя как надо, видно, как загружается и разгружается правая и левая сторона при наклонах.
Теперь, что касается крепления датчиков веса. У них с обратной стороны есть выпирающие заклепки, поэтому на плоскость датчик крепить нельзя.
Поэтому, отступим условный сантиметр от края бруска, возьмем в руки стамеску и сделаем углубление – место для датчика.
Затем просто прижимаем датчик саморезами в трех точках.
Теперь касаемо электроники. Резисторы паяем прямо на модуль, все в точности как на схеме:
И можно подключать USB.
Теперь надо немножечко покодить. На изображениях ниже, можно видеть, как происходит опрос датчиков. Имеются 4 графика на каждый датчик и можно посмотреть, как все это дело работает.
Можно собирать установку и тестировать ее в деле.
Для визуализации сигналов с датчиков, автор решил написать простенькую программку на processing. Выбираем порт, жмем «подключить» и видим показания датчиков.
Все нагрузки отрабатываются правильно, можно работать дальше. Итак, у нас есть 4 сигнала с датчиков веса, но при управлении с джойстика используются всего 2 сигнала, то есть две оси вперед-назад и влево-вправо. Нам необходимо перевести данные с датчиков в позицию джойстика. Сперва может показаться, что здесь будет какая-нибудь геометрия/тригонометрия, но все оказалось очень сильно проще. Для определения горизонтального направления момента с верхних датчиков, достаточно вычесть показания правого датчика из левого. Для нижних датчиков делаем то же самое и получим две горизонтальные оси. Чтобы сделать из них одну, достаточно вычислить среднее арифметическое, то есть просто их сложить и поделить на два.
Для вертикальной оси делаем все то же самое и это все, никакой тригонометрии здесь не будет.
Все работает очень плавно, распознается замечательно.Касаемо калибровки. У нас есть калибровочная кнопочка. Первый этап калибровки такой: встаем ровно на доску, центр тяжести по центру доски, и кликаем на кнопочку. Таким образом мы откалибровали центр.
Далее удерживаем кнопочку около секунды и у нас появляется 10 секунд на то, чтобы проверить все максимумы и минимумы, то есть мы совершаем наклоны по всем направлениям на такой угол, который должен быть в игре максимальным.
Все, 10 секунд прошло, калибровка закончилась, кнопочку можно вообще убрать, потому что все данные записались в память, и при последующих запусках все установится автоматически.
Небольшая заметка для тех, кто захочет повторить проект. Все исходники, инструкции, схемы и прочая информация, есть на странице проекта.Также более подробно ознакомиться с проектом можно, посмотрев оригинальный видеоролик автора:




Итак, что происходит во время прыжка? Игрок плавно приседает и фиксируется в нижней точке. Сигнал со всех датчиков резко идет вверх, показывая скачок нагрузки.




Благодарю за внимание. До новых встреч!

