Сообщество - Инженериум DIY

Инженериум DIY

564 поста 5 337 подписчиков

Популярные теги в сообществе:

72

Продолжение поста «3D ручка - бесполезная вещь?»2

Задал мне @zerabot вопрос в комментарии: #comment_372400177

Можно ли этой ручкой подварить вместо клея треснутый корпус от прибора или починить посадочное отверстие для закладной гайки в ноутбуке?

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

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

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

Затем с помощью ручки нарастим насрём немного пластика в нужном нам месте.
Важный момент - если пластик просто накладывать сверху, то к корпусу он не приклеится и просто отвалится. Чтобы пластик из ручки приклеелся к корпусу, корпус нужно прогреть. Я думал сначала греть корпус с помощью паяльного фена, но во-первых, у меня нет столько лишних рук, во-вторых, так можно сильно испортить сам корпус. Решение простое - носик ручки сам по себе достаточно горячий (естественно, из него ведь выдавливается расплавленный пластик!) - необходимо аккуратно ткнуть ручкой в пластик корпуса и таким образом нагреть его. Стоит даже поводить кончиком ручки по пластику, что бы тот нагрелся и начал плавиться, и сразу после этого в ручном режиме подавать по немногу пластика из ручки (я давал сразу много, поэтому получилось насрано).

Затем для усиления эффекта, ну и сразу для проверки еще одного варианта способа ремонта я само отверстие тоже залил пластиком:

Нужного диаметра отверстие я высверлил заново:

И с помощью обычного паяльника впаял туда прежнюю гайку:

Гайка держится в восстановленном посадочном месте достаточно уверенно:

Я не пытался сделать красиво и опрятно, моей задачей было проверить принципиальную возможность использования 3D-ручки для подобного ремонта. Ручка с задачей вполне уверенно справилась. Если приложить к процессу долю старания, то может получиться даже эстетически приятный результат. Но если эстетика не важна, то с данной задачей вполне может справиться и суперклей с содой. Главное преимущество 3D-ручки над суперклеем в данном случае, как мне видится - c 3D-ручкой нет риска испортить саму гайку, случайно залив резьбу клеем. Ну и не нужно ждать, пока клей высохнет.

2. Заклепки.
Ооо! А вот тут 3D-ручка просто в своей стихии! В ноутбуках масса есть деталей, которые установлены на корпус с помощью пластиковых заклепок самого же корпуса. Это могут быть декоративные элементы (как элемент картридера, который я взял в качестве примера), это могут быть металлические петли, с помощью которых монитор закреплен за основной корпус ноутбука, это могут быть детали подсветки, акустики и прочее.

Срезаем заклёпки и добросовестно демонтируем деталь.

Затем устанавливаем деталь на место и тыкаем носиком 3D-ручки в точки крепления:

Лишние сопли можно срезать кусачками.
Почти как и было.

3. Трещина в корпусе.
Ну и еще одно применение для 3D-ручки - запаять треснувший/лопнувший корпус изделия. (Да, я специально для данного опыта его сломал)

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

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

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

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

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

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

На удивление, после такой манипуляции вот так по-варварски запаянное место слома получилось довольно крепким, а материнка с разъемами под акустику нормально встала в родные пазы и отверстия:

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

В общем вот такое может быть применение 3D-ручки в ремонте корпусов всякой техники и приборов.
Надеюсь на вопрос я ответил и Вы сможете сделать для себя какие-то выводы.

Показать полностью 19
108

Продолжение поста «3D ручка - бесполезная вещь?»2

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

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

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

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

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

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

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

Каковы альтернативные решения? Ну самое главное решение - забить на наличие отверстия и оставить как есть. Другое - найти крепежи для автомобильной обивки и пластиковых панелей, но такого крепежа у меня не было. Еще решение - залить отверстие термоклеем, а излишки срезать ножом. И сторого говоря, если бы у меня был термоклеевой пистолет - скорее всего именно так я бы и сделал. Кстати, почему я по аналогии с термоклеевым пистолетом не залил отверстие пластиком из 3D-ручки, а затем не срезал излишки так же ножом вровень с корпусом блока розеток? Ну не догадался. Хотя так действительно было бы гораздо проще - не было нужды возиться с наматыванием соплей на кулак расплавленного пластика на шуруповёрт.
Были так же мысли с помощью 3D-ручки "нарисовать" крепежи для провода (их в наличии дома не было, а заказывать и ждать такой крепеж через интернет - долго), но имеющиеся в наличии пластиковые уголки под столом сами по себе послужили не плохим крепежом и для провода.

2. Когда-то давным давно я хотел заказать в ателье по 3D печати крепление для дешевого электронного термометра-гигрометра, который я хотел установить на улицу в подходящее для него место - между винтами крепления ручки москитной сетки на окне в летней кухне. Но там были какие-то сложности, связанные с тем, что всякие ателье с трудом выходили на связь, и мне было совсем неудобны адреса их расположения. Я не понимал, как это всё работает и сколько по деньгам в итоге мне бы это обошлось. В итоге на ателье я забил, а при очередном посещении деревни я нашел ПВХ-уголок и с определенным трудностями, связанными с нагревом и остыванием пластика в определенном положении, сделал крепление из него. Как временное решение получилось вроде норм.
И вот у меня появился 3D-принтер и это крепление теперь я могу напечатать сам без особых заморочек кроме одной - в деревню я уехал раньше, чем напечатал новое крепление. Но так как я с собой взял 3D-ручку, я решил сделать "новое временное крепление".
Заодно неплохо бы поменять заржавевшие винтики на новые. Старое крепление при попытке демонтировать его - тут же сломалось.

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

Рисовал ABS пластиком в хорошо проветриваемом помещении. ABS вполне хорошо наносится на скотч и без проблем от него отрывается.

Лишние края я обрезал ножницами и канцелярским ножом.

Затем усилил монтажные проушины дополнительными слоями пластика и просверлил необходимые отверстия.

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

Почему именно такой термометр, а не, скажем, электронный WiFi, или погодная станция с удаленными датчиками? Не хотят мои родители этих всяких новомодных гаджетов, хотят ножками встать, выйти на улицу, дойти и посмотреть на значение температуры на градуснике. Кстати, консервативный спиртовой градусник, который тоже имеет место быть, лежит на откосе на этом же окне.

3. Ну и до кучи, раз уж руки чешутся, решил я "нарисовать" корпус для USB-переходника, который я часто использую.

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

Нарисовал две стороны корпуса, небрежно (по-быстрому) заполнил пустоты и по месту нарисовал боковые стенки. Ну и обработал неровности ножом.

Как-то так получилось. И это я не обрабатывал деталь наждачкой. У меня есть реноватор, он же мультиэлектроинструмент, он же осцилирующая пила - с ним обработка наждачкой прошла бы очень быстро. Но я тут не ради изготовления детали, а просто в игрушки играюсь и экспериментирую.
Заодно решил напечатать аналогичный корпус на 3D-принтере. Прошлый раз мне в комментах много написали о том, что при наличии 3D-принтера всё это делается гораздо проще, быстрее и красивее. Ну давайте проверим.
Измерил я переходник штангенциркулем, накидал 3D модель в SketchUp, экспортировал модель в STL, и в Оркослайсере запустил по очереди печать двух половинок.

Получилось не с первого раза - первый раз немного не угадал с размерами, пришлось печатать исправленную модель повторно. Так что могу сделать предварительный итог. Если сравнить потраченное время на такую простую деталь как корпус USB переходника, то в данном случае у 3D-принтера нет вообще никакого преимущества. Я на то, что бы разложить инструмент, прогреть 3D-ручку и нарисовать деталь потратил скорее даже меньше времени, чем на то, что бы включить компьютер, нарисовать модель, включить 3D-принтер, напечатать в две попытки деталь (а принтер греется не быстро), а затем склеить две половинки.

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

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

Такой вот инструмент🤷‍♂️. Он Вам точно не нужен, так что не забивайте себе голову😉
Скоро еще расскажу о применении 3D-ручки в ремонте техники (по запросу в одном из комментариев)

Показать полностью 18
13

The One Cube // Трибьют Mighty Nein — Critical Role теперь в кубике

Уже через пару дней новая премьера от Critical Role - The Mighty Nein.
CR - это команда, которая сделала классный анимационный сериал "The Legend of Vox Machina".


Как и в прошлом посте "THE ONE CUBE. Как игральная кость.. Почти =)" идея у нас та же. При тряске меняются картинки и выдаются от их "редкости".

Но за недели работы, переделал код и улучшил показ картинок.

Сейчас работает так:
1) В оперативную память предзагружаюся 20 случайных картинок - это наш барабан.
2) При тряске показываются "рубашки карт".
3) Когда кубик перестали трясти - он крутит барабан и останавливается.
4) В этот момент покоя заменяются в барабане 5 случайных картинок с карты памяти.

Так же сделал, что две боковых грани показывают статичные логотипы.


Возможно кто-то слышал про The One Dice. Судя по тому что он собрал на кикстартере 2000+ предзаказов и около 500 тысяч долларов, людям интересна театральность бросков.

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


И специально приобрел клевые аксессуары для антуражного фона. Теперь следующие видео будут еще красивее =)


Немного фоточек кубиков с этой съемки.
Забавно, что в своей простоте конструкции, особо не придумаешь каких то ракурсов с ними. Только вот меняя окружение и картинки на кубиках.

Пуговички для Nott =)

Пуговички для Nott =)


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


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

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

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


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

У меня вот идея (и уже сделаны картинки) для идеи - "Из чего сегодня будем собирать DIY ардуино проект".


P.S. Загрузил этот контент во все соц сети, до которых смог дотянуться =)
Пока что результата немного, но надеюсь алгоритмы поднимут просмотры.
И в любом случае, это всё один большой интересный путь проекта.


И кстати, кому интересно, в моем TG-канале чаще выходят обновления по этому проекту.

https://t.me/andreibesarabchannel

Показать полностью 8
51

Энкодер на базе HEDR и STM32

Всем привет!

В данной статье я хочу Вам рассказать про датчик HEDR(от компании avago technologies) - это двухканальный инкрементальный оптический датчик, предназначен для измерения пройденного пути, линейной скорости, угловой скорости и направлении вращения вала.
С помощью данного датчика будет реализован энкодер на базе микроконтроллера STM32, который будет производить вычисление пройденного пути.

В данной статье будет рассмотрено:

  • Принцип работы датчика HEDR-5420-ES214;

  • Схема подключения к микроконтроллеру STM32;

  • Программная реализация (расчет пройденного пути и вывод информации на дисплей).

Технические характеристики датчика HEDR-5420-ES214

Документация на датчик

  • Напряжение питания [ 4.5 - 5.5В ];

  • Тип выхода [ квадратурный ];

  • Диаметр вала [ 5 мм ];

  • Разрешение [ 200 отсчетов на оборот ];

  • Рабочая температура [ от -10°C до +85°C ].

Принцип работы датчика HEDR-5420-ES214

Устройство состоит из трех основных компонентов:

  • Источник света (светодиод, формирующий поток света);

  • Оптическая система (линза, обеспечивает фокусировку и отражение света);

  • Фотодетектор.

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

Эти изменения интенсивности света преобразуются в внутренние сигналы А и В, которые проходят через компараторы в составе обработки сигналов, на выходе формируются два цифровых прямоугольных сигнала - канал А и В, находящиеся в квадратурной фазе на 90°, что позволяет микроконтроллеру определять направление вращения вала, к примеру:

  • если канал А опережает канал B - вращение происходит в одну сторону;

  • если канал B опережает канал А - вращение происходит в противоположную сторону.

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

Осциллограмма данных полученных с датчика HEDR-5420-ES214

Осциллограмма данных полученных с датчика HEDR-5420-ES214

Схема подключения к микроконтроллеру STM32

Схема подключения HEDR и дисплея к микроконтроллеру STM32F030CCT6

Схема подключения HEDR и дисплея к микроконтроллеру STM32F030CCT6

 Макет STM32F030CCTx и HEDR

Макет STM32F030CCTx и HEDR

В данной схеме используются преобразователь напряжения DA1 (+12V +5V) и стабилизатор напряжения DA2, дисплей подключается к выводам МК 21_SCL_I2C2 и 22_SDA_I2C2, датчик HEDR подключается к выводам МК 29_CH.A и 30_CH.B, данные сигналы сначала проходят через делители, R17-R18-[CH.A] и R15-R16-[CH.B], так как датчик работает от +5V, сигналы соответственно тоже у него +5V, я всегда стараюсь дополнительно защитить МК, после делителя амплитуда сигналов снизится до +3.3V, копипастить информацию по описанию узлов преобразователя, стабилизатора, узла обвязки напряжения питания и резонатора для МК не особо хочется, поэтому кому интересно можно почитать статью [Модуль обработки и коммутации данных, с внешними управляющими устройствами по RS-485 на STM32]
Настройка микроконтроллера STM32F030CCTx в CubeIDE

Настройка RCC и SYS (в RCC выбираю Crystal/Ceramic Resonator, так как у меня внешний кварц на 8 МГц)

Настройка дисплея

Взаимодействие дисплея с МК будет через I2C2

Настройка выводов узла подключения датчика HEDR

  • TIM1_CH1 (к данному выводу будет подключаться сигнал CH.A);

  • TIM1_CH2 (к данному выводу будет подключаться сигнал CH.B).

Таймер используется в режиме Encoder mode - это специальный аппаратный режим, который позволяет микроконтроллеру автоматически подсчитывать импульсы от инкрементального датчика и определять направление вращения, данная конфигурация освобождает МК от необходимости программно обрабатывать прерывания по каждому импульсу.

Encoder Mode TI1 and TI2 данный параметр указывает, что используется оба канала датчика (A и B), это дает разрешение X4 - т.е. счетчик будет увеличиваться на 4 шага за один полный оборот.

Описание режимов

TI1 - подсчет ведется по фронту одного канала А, направление определяется по уровню В, разрешение 1.8 градусов;

TI2 - аналогично логике TI1, но базируется на канале В;

TI1 and TI2 - подсчет ведется на каждом фронте обоих каналов (А+, А-, В+, В-), направление определяется автоматически, т.е. количеством импульсов на оборот 200, я получаю 800 шагов на оборот, разрешение будет 0.45 градусов.

Input Filter - включает цифровую фильтрацию входного сигнала, помогает убрать дребезг и шум, значения от 0 до 15, чем выше значение, тем надежнее фильтрация, но будет повышаться задержка.

Polarity (Rising Edge) - счетчик реагирует на восходящие фронты сигнала.

Настройка Clock

Программная реализация ведомого устройства

Ссылка на скачивание исходного кода [ https://t.me/ChipCraft В закрепленном сообщении [ #исскуствомк_исходный_код — Исходный код для Encoder_HEDR_5420_STM32F030CCTx].

Модуль process_Encoder

Данный модуль реализует считывание сигналов с инкрементального датчика HEDR и вычисляет:

  • Количество импульсов на оборот;

  • Пройденную дистанцию;

  • Отображение данных на дисплее.

#define ENCODER_MODE_X4 4

Данный параметр отражает режим подсчета импульсов, привожу формулу

Этот режим обеспечивает максимальную точность - 0.45 на один шаг.

#define WHEEL_DIAMETR_M 0.230f // 230 мм
#define WHEEL_RADIUS_M (WHEEL_DIAMETR_M / 2.0f)

Здесь я задаю геометрические размеры колеса, на валу которого установлен датчик%

Диаметр колеса 230 мм (0.230м);

Радиус вычисляется так:

#define STEPS_PER_REV (ENCODER_PPR * ENCODER_MODE_X4)

Максимальное количество шагов за один оборот

#define CIRCUMFERENCE_M (2.0f *M_PI * WHEEL_RADIUS_M)

Длина окружности колеса - это путь, который проходит колесо за один оборот

т.е. при моем радиусе 0.115, получится за один полный оборот 0.72 м.

Функция display_init() - инициализация дисплея

  • Инициализируется драйвер дисплея;

  • Выполняется заливка экрана черным цветом;

  • На дисплее на 2 секунды отображается стартовый экран с надписью ''ChipCraft";

  • После задержки экран очищается для дальнейшей работы.

библиотеку для работы с дисплеем я взял с [https://github.com/afiskon/stm32-ssd1306/tree/master]

Функция display_update()

Отвечает за визуализацию информации на дисплее:

  • Экран предварительно очищается с помощью ssd1306_Fill(Black);

  • В верхней части по центру отображается надпись «Encoder»;

  • Ниже последовательно выводятся:

    • количество импульсов;

    • дистанция;

  • Буфер графики передается на дисплей вызовом ssd1306_UpdateScreen()

Функция encoder_Handler()

Логика работы:

  • считывание текущего значения таймера;

  • определение разницы (delta) между текущим и предыдущим значениями;

  • накопление общего счетчика enocoder_position;

  • вызов функций для вычисления дистанции и обновление дисплея.

Функция get_distance_m() - вычисление пройденной дистанции

Переводит количество импульсов датчика в физическую длину пути в (метрах).

process_Encoder.c

#include "./Project/process_Encoder.h"
#include "./Project/shared.h"
#include "./Project/ssd1306.h"
#include "./Project/ssd1306_fonts.h"
#include "main.h"
#include <stdlib.h>//abs
#include <string.h>//memset
#include <stdio.h>
#include <stdint.h>
#include <math.h>

#define ENCODER_PPR 200 // импульсов на оборот
#define ENCODER_MODE_X4 4

#define WHEEL_DIAMETR_M 0.230f // 230 мм
#define WHEEL_RADIUS_M (WHEEL_DIAMETR_M / 2.0f)

#define STEPS_PER_REV (ENCODER_PPR * ENCODER_MODE_X4)
#define CIRCUMFERENCE_M (2.0f *M_PI * WHEEL_RADIUS_M)

uint16_t current_count= 0;
int16_t delta = 0;
float distance = 0.0f;
int32_t encoder_position = 0;

uint8_t ssd1306_buffer[SSD1306_BUFFER_SIZE];


void display_init(void) {
ssd1306_Init();

ssd1306_Fill(Black);
ssd1306_SetCursor(20, 25);
ssd1306_WriteString("ChipCraft", Font_11x18, White);
ssd1306_UpdateScreen();

HAL_Delay(2000);

ssd1306_Fill(Black);
ssd1306_UpdateScreen();
}

void encoder_Handler(void) {

static uint16_t last_count = 0;
current_count = __HAL_TIM_GET_COUNTER(&htim1);

delta = (int16_t)(current_count - last_count);
encoder_position += delta;

last_count = current_count;

get_distance_m();

display_update(encoder_position, distance);

}
void display_update(int32_t pulses, float distance) {

char buf[32];

ssd1306_Fill(Black);

ssd1306_SetCursor(25, 2);
ssd1306_WriteString("Encoder" ,Font_11x18, White);

sprintf(buf, "Pulses: %ld", pulses);
ssd1306_SetCursor(2, 22);
ssd1306_WriteString(buf, Font_7x10, White);

sprintf(buf, "Dist: %.2f m", distance);
ssd1306_SetCursor(2, 36);
ssd1306_WriteString(buf, Font_7x10, White);

ssd1306_UpdateScreen();
}

float get_distance_m(void){

distance = ((float) encoder_position / STEPS_PER_REV) * CIRCUMFERENCE_M;

return distance;
}

Модуль proj_main() - главный метод

  • Выполняется инициализация дисплея;

  • Запуск таймера;

  • Запуск функции encoder_Handler().

proj_main.c

#include "./Project/shared.h"
#include "./Project/proj_main.h"
#include "./Project/process_Encoder.h"
#include "./Project/process_Encoder.h"

void proj_main()
{
volatile const char *ch = ";V-F-BIN;ver: "VER_PROG(VER_a,VER_b,VER_c);(void)ch;//0x8008b00

display_init();

HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);

while (1){

//хэндлеры
encoder_Handler();

}//while (1)
}


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

Показать полностью 13 1
62

3D ручка - бесполезная вещь?2

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

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

И вот купил я себе и 3D-принтер, и 3D-ручку. У меня пока что не дошли руки до изготовления нужных мне деталей с помощью 3D-принтера, потому что хоть и говорят, что мол он готов печатать из коробки, но всё же требует предварительных настроек, установки программ, пробной печати, работы над ошибками, затем создание 3D-модели из головы и уже потом только её изготовление... Нужно время.
Но 3D-ручка готова к работе из коробки по настоящему - достал, включил (после прочтения инструкции конечно же), установил нить филамента и начал ваять изделие, которое заранее себе вообразил. Тем более комплект посылки с 3D-ручкой включал в себя целый мешок всякого разноцветного пластика ABS.

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

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

Постоянные ограничения мобильного интернета вынудили меня на днях снова провести домой кабельный интернет. Новый роутер не имеет в своем корпусе креплений для монтажа на стену или потолок. Уже я смирился с тем, что роутер будет просто стоять на полке в прихожей, как я обратил внимание на эту старую антресоль. Роутер отлично помещается на её дверцу, а значит нужно всего лишь изготовить под него крепление.
В принципе, как я написал в самом начале, крепление можно было бы изготовить с помощью картона и клея, но раз уж есть возможность, почему бы не "нарисовать" пластиковое крепление с помощью 3D-ручки?
Мне не пришлось что-то сильно измерять, а построение 3D-модели шло сразу по месту вокруг роутера, то есть нужно было лишь приложить роутер и посмотреть, где осуществлять спайку отдельных нарисованных деталей.

Отростки сверху - это паузы для принятия более удобной позы. Они были отрезаны ножницами.

Зеленая нить закончилась и в ход пошла розовая.

На всё про всё, то есть на изготовление крепления и монтаж роутера на дверцу ушло примерно 2 часа.

Поеду я скоро в гости в деревню. 3D-принтер с собой взять не смогу, но смогу взять 3D-ручку. Попробую к деталям применить пост-обработку паяльником и может быть наждачкой. Может быть что-то получится.

А у Вас есть 3D-ручка?

Показать полностью 11
20

Ремонт шуруповерта: когда виноват не драйвер, а плохой контакт

Запищал. Без причин запищал, как будто я его душу. Крутиться не хочет мой любимый Fengbao. А он у меня безщеточный, значит, дела плохи — скорее всего, не работает одна фаза.

Разбираю своего страдальца. Снимаю эту вечную заливку с платы управления, прозваниваю транзисторы — а пробитых нет! Странно. Решаю проверить простым способом: подключаю лампу от поворотника авто между фазами. Аккуратно, с минимальным нажатием на курок — лампа светится в полнакала. На другой фазе еле заметно, третья - что-то среднее.

Потом проверил осцилографом выходы фаз — ШИМ есть, но он не только разной скважности, но и с разным размахом. Ну, думаю, всё, приехали — управление сдохло. Заказал новую плату, благо, в китайских аппаратах всё взаимозаменяемо.

Пока плата в пути, решил собрать инструмент на всякий случай обратно. И о чудо — работает! Правда, пару дней продержался и снова запищал. Ну тут уже понятно — где-то обрыв, который то появляется, то пропадает.

Осмотрел обмотки статора — всё чисто, ни почернений, ни сколов. Снял термоусадку с проводов, идущих на плату, — следов подгоревшего тоже никаких. Просто обжал все клеммы по-новому, посильнее… И проблема ушла. Оказалось, банальный плохой контакт в одном из силовых проводов такую картину выдавал. Прав был мой учитель на курсах радиомастеров, который говаривал: «Запомните, 90% всех поломок — это либо плохой контакт, либо высохший конденсатор».

Так что, прежде чем нести в сервис или заказывать новую плату, всегда есть смысл пройтись по соединениям. А у вас были такие мнимые «поломки», которые оказались сущей ерундой? Поделитесь, а то, может, коллективный разум поможет кому-то сэкономить время и нервы.

Показать полностью 3
634

Самодельный двигатель

С детства питаю слабость к нижнеклапанный двигателям(sv (side valve) в мировой классификации).

К вот таким

К вот таким

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

А потом увидел это чудо))))но оказался просто макет,и некрасивые цилиндры у урала

Делаю просто потому что хочу,или смогу ли?никаких целей не преследую -вроде снять 500лошадей или полететь в космос.Проект будет долгий,думаю за пару лет соберу,никуда не тороплюсь

Последние годы развилось очень моделирование,литьё,3д печать.принтер у меня году в 16 появился,компасом я норм вроде владею.Запчасти всякие постепенно накапливались.Пара станков имеется:фрезерный сф16 удг и вертикальногоризонтальный поворотный столик,и токарный wm210.муфельная печь пм-8 для плавки алюминия уже подготовлена.навыки отточены,руки готовы.так что начнем.

Первое и основное от чего возьмём цилиндры-м72/к750.

Обычно они изношены вусмерть.и точить надо в 79мм и поршни всякие дорогие,поэтому поршни берём ваз 21126 82мм,а почему?а потому что качество нормальное и их как грязи.все меняют стыковые на невтыковые,а стыковые 1000₽ за 4шт с пальцами купить можно.

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

Но это только щеки.Палец нгш берём готовый,а что из доступного?Палец д245 38мм

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

Старых фоток не нашел,но вобщем ходил ,мерял,прикидывал,палец 92мм ,минус две щеки коленвала по 20мм =46мм для шатуна место

Главный шатун и прицепные

Главный шатун и прицепные

А шатун выглядит так у звёзды.Один главный и к нему прицепные.ну и решено было делать из Д16Т главный шатун.взял плиту,просверлил,расточил центральное отверстие и оно стало базовым для всех остальных процесов

После расточки на столике поворотном по диаметру профрезеровал,и просил раз под добавочные шатуны

Затем разметил по градусам ,просверлил,расточил и развернул чистовой развёрткой отверстия под пальци,они тоже от 21126 18мм

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

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

Вот что получилось

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

Печатал из кусков из Pla

Каково же было мое удивление,когда неприятный момент обнаружился

Уже начали появляться цилиндры,пока их 5 (3расточил уже под 82мм и 2 в расточку отдал на днях)нашел,левые.а ГБЦ уже все 7нашел.

Уже начали появляться цилиндры,пока их 5 (3расточил уже под 82мм и 2 в расточку отдал на днях)нашел,левые.а ГБЦ уже все 7нашел.

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

Раздвинул цилиндры,так +-норм,на том и порешал

Раздвинул цилиндры,так +-норм,на том и порешал

Теперь все устраивает

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

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

Всем бобра

Показать полностью 38
14

The One Cube // Short film. О заявке на alt.ctrl.GDC 2026

Вот и пролетели три месяца с момента, как родилась идея игрового куба.

Ранее про куб здесь были посты:

LED CUBE. Дневник разработки. Август '25

THE ONE CUBE. Дневник разработки. Сентябрь '25

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

Ранее я рассказывал про такую нейросеть:

platform.parallel.ai

Как я понимаю, внутри это очень мощная аналитика (что-то на уровне Google Gemini) + система поиска по всему интернету (perplexity ai на мощных стероидах).
Нейросеть разбивает запрос на смысловые части, ищет актуальную информацию по каждому пункту, и потом составляет практически дипломную работу / исследование (средние ответы от этого ИИ ~ 10-15 страниц текста)

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

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

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

Сначала написал письмо на Independent Games Festival. Там не поняли мою заявку, но порекомендовали податься на alt.ctrl.GDC 2026. Изучив описание конкурса на сайте, понял, что куб как раз подходит под конкурс (там идея в уникальных игровых консолях / приставках и тд).

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


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

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

Поэтому решено было сделать всё своими силами. То есть показать небольшую экскурсию по городу на велике + сборку куба + демонстрацию текущих игр. Возможно, для тех кто живет в России все эти начальные кадры не новы. Но вот для жюри из США, мне кажется это будет неожиданная заявка.

И "вишенкой на торте" монтажа ролика оказалась музыка. Получилось в Suno сделать идеально подходящую мелодию под настроение видео (очень надеюсь вы смотрели видео с включенным звуком).

P.S. и кстати, в ролике не просто так показано несколько устройств и фраза про 2 месяца. Как я понимаю, в конкурсе очень ценятся устройства сделанные с нуля, причем серийность должна добавить удивления от заявки =)


Кроме видео, в котором и так многое понятно, добавил десяток разных фотографий с кубом:


Фоточки это хорошо, арт видео это тоже классно.

Но игры про змейку и тряску показаны слишком скомканно в основном ролике.
Докинул в заявку полные видео, которые сюда уже постил:

THE ONE CUBE. Как игральная кость.. Почти =)

LED CUBE. Первая игра - 6D змейка


Концепция устройства по прежнему остается той же - это тактильная компактная игровая консоль.

Для жюри составил вот такой текст:

Альтернативность The One Cube заключается в полном отказе от традиционных способов ввода. В нём нет кнопок, нет джойстиков — только шесть экранов и гироскоп. Это создаёт уникальную физическую и непосредственную связь с игровым миром. Ощущения особенные, потому что вы не просто управляете персонажем, а держите в руках и буквально манипулируете целым игровым миром.

Простейшая демонстрация — это «6D Змейка»: вы не нажимаете «вправо», а физически наклоняете саму реальность.

Эта простая, интуитивная механика — основа для нового класса тактильных игр, и она открывает целое пространство для геймдизайна: от Diablo-подобных RPG с видом сверху, где вы ведете героя, наклоняя мир; до игр, где физическое встряхивание становится вашим броском кубиков; и головоломок, где вы переливаете симулированную жидкость между гранями.

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

Надеюсь им понравится =)


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


Зачем я всё это здесь пишу..

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


Спасибо что дочитали до конца =)

Подписывайтесь мой тг канал, там пишу не только о кубике:

https://t.me/andreibesarabchannel

Показать полностью 15
Отличная работа, все прочитано!