Русский
Русский
English
Статистика
Реклама

Полезности

Электросамокат не только средство передвижения

20.06.2021 16:11:04 | Автор: admin

Простая доработка электросамоката на примере модели Kugoo M5, для возможности небольших перевозок. Возможно раздельное использование доработок 1, 2.

Для двух доработок, с минимальным использованием инструмента и без порчи (отверстия, резка, изгиб и т.п.) электросамоката понадобится:

1:

Наименование

Кол. шт.

Цена, ~

Примечание

Электросамокат с сидением, имеющий расположение крепления в задней части, схожие с моделью Kugoo M5.

1

50 000

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

Пластиковая корзина (багажник, корзина подсидельная)

1

1800

Болт оцинкованный М5х16 мм.

5

28

Для крепежных работ следует использовать диаметр болтов не менее используемых в элементах багажника.

Болт оцинкованный М5х10 мм.

6

28

Гайка с фланцем М5.

11

40

Шайба пружинная 5 мм (гровер шайба).

12

30

Шайба оцинкованная 5 мм.

4

5

Крепление плоское, 210х90х2 мм

2

230

Уголок усиленный монтажный 60x60x100х1.5 мм.

2

116

Сверло по металлу 5 мм

1

100

Элементы электросамоката не требуют сверления, нужно для крепежа

Черная матовая эмаль с кисточкой

1

130

15 мл

Стоимость крепежа может быть ниже, например при покупке "на вес" либо поштучно. Предполагается наличие дрели, двух ключей М8, плоскогубцев, напильника по металлу либо мультитула, миниатюрной газовой горелки либо "турбо" зажикалки, ножа-резака (наподобии канцелярского либо сапожного), свободного времени (количество зависит от мастерства, ~ 3ч.).

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

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

  • Во вторых теряется возможность использования рюкзака (процесс 2), что сильно уменьшает вместимость перевозимых вещей.

Процесс 1.

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

Изображения крепежа

Один из углов "Уголка усиленного монтажного" нужно закруглить, также желательно убрать острые внешние грани (мультитул, надфиль, напильник и т.п.)

Закругление

Снимаем крепежные элементы, не несущие грузовую нагрузку, диаметром 5 мм.

У элемента "2" будет крепление провода освещения для заднего фонаря - штатный болт заменяем на: Болт оцинкованный М5х16 мм - > Шайба пружинная || Крепление провода -> Гайка с фланцем Символами -> здесь и далее обозначена последовательность элементов крепежа; символами || - элемент багажника электросамоката, уголка, пластины.

Начало

Крепим Уголки усиленные монтажные, используем Болты оцинкованные М5х10 мм:

1 - Гайка с фланцем (фланцем наружу, плоскостью гайки параллельно креплению багажника) -> Уголок усиленный монтажный -> Шайба пружинная -> Болт
2 - Гайка с фланцем -> Шайба оцинкованная -> Шайба пружинная || Шайба пружинная (c внутренней стороны уголка) -> Болт
3 - Болт -> Шайба пружинная -> Шайба оцинкованная || Гайка с фланцем

Крепим уголки

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

Эмаль

Примеряем Крепление плоское, намечаем отверстия, сверлим их в креплении, примеряем Болты оцинкованные М5х16 мм

Крепление плоское

Примеряем Пластиковую корзину, делаем в ней отверстия, прикрепляем конструкцию в следующем порядке (снизу вверх):
Болт оцинкованный М5х16 мм -> Шайба пружинная || Уголок усиленный монтажный || Крепление плоское || Пластиковая корзина || Крепление плоское -> Гайка с фланцем (фланцем вниз).

В процессе эксплуатации при этом удобно наблюдать, что никакая гайка не открутилась и крепление надежно закреплено.

Корзина

Размещение Пластиковой корзины выбрано специально как указано на фото, для наибольшей крепости и возможности доработки 2. Пластиковые накладки, на багажнике (под 45) - относятся к доработке 2.

Задний фонарь, хотя частично накрывается пластиковой корзиной, с расстояния от 1 м. отлично виден, и корзина не закрывает световой поток. Желающие увеличить световой поток могут приклеить на низ корзины светоотражающую полоску (например, отрезок металлизированного скотча).

На пол корзины, для исключения "натирания" выступающими гайками можно положить вырезанный мягкий и легкий материал (например коврик ~ 36р. и др.).

2:

Наименование

Кол. шт.

Цена, ~

Примечание

Электросамокат с сидением, имеющий расположение крепления в задней части, схожие с моделью Kugoo M5.

1

50 000

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

Перегородка-сифон к дождеприемнику

1

80

Двухсторонний скотч

1

150

Рюкзак

1

650

Желательно выбирать модель с крепкой, непромокаемой тканью

Процесс 2.

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

Берем Перегородку-сифон и с помощью миниатюрной газовой горелки либо "турбо" зажикалки, плоскогубцев и ножа, с периодическими прикидками делаем форму похожую на фото

Подставка под рюкзак

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

Вырез

При желании конечно можно сделать поаккуратнее на вид, но по надежности все получилось крепко.

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

Общий вид с доработками, способ крепления рюкзака показан:

Когда рюкзак и пластиковая корзина не заполнены - рюкзак, трос-замок и мелочи можно возить в пластиковой корзине:

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

Подробнее..

Godot, 1000 мелочей

01.07.2020 20:13:32 | Автор: admin
Недавно открыл для себя Godot engine, опенсурсный игровой движок. Делюсь некоторыми приёмами и заметками, в основном из области 3д, кода или общих моментов.


У Godot в целом репутация скорее 2д движка, которое проработано довольно хорошо, но и не так давно появившиеся 3д возможности позволяют делать трёхмерные игры. Особенно если вы в состоянии оптимизировать какие-то вещи самостоятельно, не делаете слишком уж тяжёлую и комплексную игру, а также вас устраивают текущие варианты рендера. Ну или можете ждать будущих оптимизаций и появления vulkan.

Из коробки в движке есть некоторая физика, в том числе джоинты и колёсный транспорт. Нет встроенного редактора terrain, но можно воспользоваться плагином, импортировать из специализированных программ или просто как меш из 3д пакета. В последнем случае ради производительности придётся самостоятельно резать ландшафт на фрагменты-чанки, и скорее всего делать им отдельные меши под коллизии. Что касается мешей под форму коллизии ландшафта чтобы не было визуальных нестыковок, нужно триангулировать модель во время экспорта из 3д пакета. Например, один из простейших способов это сделать в Blender экспортировать меш в формате collada (.dae), там по дефолту стоит галочка triangulate.

Godot практикует подход всё есть сцена и заточен под древовидную структуру элементов. На практике это означает, что новые объекты на уровень добавляются как ветки к уже существующим на нём узлам, их можно сворачивать в префабы и открывать отдельно, как будто это их отдельный маленький локальный мирок. Таким образом очень удобно редактировать всевозможные сохранённые составные объекты, единственный момент если на вашем уровне был выставлен свет, то, допустим, зайдя внутрь персонажа, в его локальную сцену, вы этого освещения не увидите и настраивая его материалы не будете понимать как они смотрятся на свету. Эту проблему можно решать по разному, например, переключаясь в окно уровня и оценивая происходящие изменения с персонажем, после сохранения его сцены, там. Или просто временно бросить источник света внутрь префаба с персонажем.


Сцена с объектом theEnergy, который будет помещён на уровень для сбора игроком. В качестве основы используется узел Area, к которому прикреплена форма коллизии, а также сферический примитив, внутрь которого вложен ещё один.

Что касается языков, то если не рассматривать низкоуровневый способ, то наиболее ходовые варианты это скриптовые языки GDScript и C#, а также визуальный скриптинг для чего-то простого. GDScript лучше интегрирован в движок, имеет больше примеров, не требует запуска внешней среды, а в плане общей структуры тут будет происходить всё то же, что в варианте C# объявление переменных, вызов функции инициализации, цикл процессов, цикл физических процессов и так далее. Так что выбор GDScript в качестве основного скриптового языка разработки имеет смысл. Пересаживаясь на C# получим разве что большую аккуратность и подробность записи, теряя в лаконичности, но усиливая разборчивость и контроль над ситуацией фигурные скобочки вместо использования табуляции, отметки конца строки, более формальную типизацию.
Что касается глобальных переменных, то для их использования что в GDScript, что в C# потребуется добавить в параметрах проекта глобальный скрипт/скрипты в автозагрузку, к переменным которого можно будет обращаться глобально.
Также в Godot действует ограничение -на каждом объекте не может быть больше одного скрипта. Но этот момент можно обойти, например, повесив второй скрипт на дочерний объект.

Сигналы


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


Заводим сигнал

Излучаем его в том же скрипте при нажатии кнопки или других условиях

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


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

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


А вот и описание самого метода, который мы заводили выше. Получая сигнал он обрабатывает посланную с ним переменную.

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



CGS-объекты



Один из полезных 3д инструментов в Godot примитивы constructive solid geometry. Проще говоря это объекты, поддерживающие булевы операции пересечение, исключение, объединение. Кроме набора примитивов есть универсальный CGS Mesh, в качестве формы для которого можно установить уже произвольный меш.



Пустышка CGS Combiner потребуется для использования в иерархии, чтобы управлять приоритетом применения операций, если в этом есть необходимость при сборе какой-то сложной конструкции.

Основное применение CGS удобство и простота прототипирования статики уровня и каких-то его элементов. По факту можно сделать меш в 3д пакете, и повторить в нём те же самые результирующие формы, разве что этим надо будет заниматься вне игрового редактора.

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




Далее у нас идут CGS движущиеся. Через код, либо записанную анимацию. В целом через этот способ можно реализовывать какие-то эффекты, но очень желательно чтобы подобные анимации не крутились на сцене в цикле. Несколько анимированных CGS могут заметно посадить производительность, к тому же в Godot оптимизирует не все вещи, и если вы не вырубите анимированные CGS самостоятельно, то они будут продолжать расходовать производительность вне видимости камеры.
Тем не менее эффекты анимированных CGS уже сложно заменить решениями 3д пакета, поэтому вы можете быть заинтересованы именно в их использовании (по крайней мере, если не собираетесь рисовать продвинутое 3д через код). Главное найти им правильное применение, лучше всего их использовать точечно, в определённых местах, включая анимацию по триггеру. Как эффект открытия прохода или прочий разовый спецэффект. Естественно, чем проще форма CGS объектов тем лучше. А основную вычислительную нагрузку они оказывают именно в процессе соприкосновения в движении, притом нет особой разницы, какой именно объект двигать относительно другого.


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

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru