Arduino головного мозга
152 subscribers
89 photos
153 videos
58 files
133 links
Arduino проекты, Arduino UNO, Arduino NANO, ESP8266, ESP32
Download Telegram
Media is too big
VIEW IN TELEGRAM
Немного текстур на поверхность, наклоны от поворотов...
Всё, отдыхать...
🔥3❤1👍1🥰1👏1👾1
TFT_Lamp [ ver 0.05.064 ].rar
2.8 MB
🌟 "Эх, прокачу!!!"


🗄 В архиве:
💻 - Прошивка для CYD3224S028
💻 - Симулятор на ПК
◼️ - И 3D модель корпуса для печати

⚙️ Программа для прошивки ESP

[ ⬇️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1👾1
Media is too big
VIEW IN TELEGRAM
🚁 "Спасатели вперёд!!!"

🧑‍💻 Плюс ещё одна игровая технология разобрана и, плюс ещё один эффект в мой 'CyberDeck'.

Представляю 'Спасательный вертолёт'

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

Всё построено на базе несложного автомата:
- Поиск цели - случайный выбор места потерявшегося.
- Взлёт - Набор высоты
- Полёт - Продвижение и поворот к цели ( до момента сближения )
- Торможение - Сброс скорости и разворот
- Посадка - Сброс высоты, приземление
- Спасение - Ожидаем пока цель придёт в вертолёт, и по новой. Поиск цели

Но самое сложное было разобраться с очередной технологией рендера '3D мира' по 2D карте.
Принцип прост, из картинки с высотами ( а у меня это шум Перлина ), по координатам игрока определяем какие высоты находятся перед игроком.
Затем от горизонта вниз рисуем столбики высот делённые на расстояние.

В принципе от технологии Wolfenstein3D не особо отличается, но со своими нюансами, типа наклона в бок.

В общем в архиве как прошивка для CYD2432_S028, так и симулятор для ПК.

📂 [ Cкачать ]

🔥 [ Shorts ]
▶️ [ YouTube ]

p.s. 🤔 "Чё-б, ещё поделать?..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1👏1👾1
Media is too big
VIEW IN TELEGRAM
🚁"Налягай на весло!!!"

🧑‍💻 Не понравилась мне производительность вертолёта. Ресурсов жрёт много, а кадров мало. Пришлось немного покопался в коде, и нашёл неоптимальность:

Ландшафт строится как ряд картонных стенок, от точки взгляда, в даль. И вот таких 'в даль' 100 выборок. А если учесть что эти 100 выборок для каждого столбца, коих 120 штук, то и получаем:
120х100 = 12000 выборок для ландшафта.
Каждая точка это шум Перлина, что тоже нагружает бедную ЕСПэшку...
Так вот, а зачем под носом у игрока, 120 выборок, на маленькую ширину. Да и на расстоянии 5-10 шагов от точки взгляда тоже столько не нужно.
В общем оптимизировал по принципу, чем дальше, тем больше.
А под носом и трёх четырёх хватит, которые равномерно размазывпются на всю ширину экрана.
И вуаля, к шуму перлина уже меньше тысячи обращений, и 30фпс в кармане 🥳.

А дальше? Очередная головная боль. Воксельная графика потихоньку перерастает в полигоны... Но об этом чуть позже

p.s. 😱 "Придумал себе на безтолковку, что ещё поделать..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2👍1👏1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Немного спойлеров...
Ой, если оно на ЕСПшке заведётся...😁
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2🤓1👨‍💻1
Наткнулся на ресурс HobbySupport, он иногда собирает проекты людей и проводит конкурс.

Ну, а чем я хуже, решил тоже поучавствовать.

В общем, если интересно посмотрите, там с десяток различных, интересных проектов, в том числе и мой rayCast.
Если что, под номером 7️⃣.

Голосование проходит тут:
https://t.me/hobbysupport
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🎡 "Карусель, карусель... "

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

p.s. 😱 "Придумал же себе на безтолковку..."

[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🥰1👏1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🌏 "Сейчас бы на пляж... "

🧑‍💻 Растеризацию поправил, пока знаю про две проблемы:
1. Не все полигоны захватываются, это видно по краям.
2. Точки, оказавшиеся за спиной, не правильно пересчитываются на экран.

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

p.s. 😅 "Да и пора бы на ESP это запускать..."

[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2👏1😁1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🌏 "It's alive... "

🧑‍💻 Перенос движка поверхности с ПК на ESP32 похоже закончился успехом.
Плюсы - всё работает в 30фпс..
Минусы - дальность так себе,всего 20 клеток. При дальности в 25, уже фпс падает до 20,при 30 - 15. Ну чтож, не зря в Silent Hill придумали туман 😶‍🌫...
 

p.s. 🤔 "Чего-б такого этому всему теперь придумать..."

[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏2❤1🥰1🤯1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
Первый способ добавить ФеПеСов, это уменьшить угол обзора.
Меньше точек собираются слева и права. Но и видимость сокращается.
Копаю дальше...
🔥2❤1👍1👏1
Media is too big
VIEW IN TELEGRAM
☕️ "Утро начинается не с кофе..."

🧑‍💻 А началось с замеров времени на разные части кода, и вот что выяснилось...
Но, всё по порядку.

Весь алгоритм построения делится на несколько этапов:
1. Определение области обзора
2. Сбор вершин внутри области
3. Фильтрация от случайно продублированных
4. Сбор полигонов из вершин
5. Перенос вершин из декартовых координат в радиальные
6. Растеризация полигонов с учётом перекрытий
И вот по третьему пункту выявилась проблема, анализ и выброс лишних точек ( дублей ) занимает аж более 35мс. Поправить конечно это одно, и оно ускорилось в три раза до 12мс. Но мысль появилась другая, что проблема ещё раньше, в алгоритме сбора точек, что при сборе загребаются те что уже есть. Значить копать нужно ещё раньше...

p.s. 🤓 "Ну что-ж, 'наши руки не для скуки'..."


Попробовал сделать чат ->
Ссылка на чат 😝

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
🔥2👍1🎉1
Media is too big
VIEW IN TELEGRAM
Утро, как обычно доброе. Но не для ESP'шки 😂.
40 фпс, с запасом по таймингам, вот с этим уже можно работать...

Поправить пару глитчей, и можно пробовать 'травку засеять, да волны по воде погонять'.
А так, поле для фантазии, го тут можно...
И туман, и дождь, и снег...
Вроде есть мысди про 3Д домики, короче ещё есть куда копать...


[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ 💬 чат ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
🔥2👍1🤯1🤣1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🌎 "Сею, сею, посеваю..."

🤩 Оказывается текстурирование полигона ещё та задачка, со своими танцами и бубном, но ничего, разберёмся...
🎮 Текстуры пока даже хуже чем на первой плойке.

⏳ Главное запас по времени ещё есть. Кадр рисуется 10-16мс, а это от 100 до 60 фпс.

p.s. 🤓 "Живём пока..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1👏1👾1
Media is too big
VIEW IN TELEGRAM
🌎 "Настроим резкость..."

🧑‍🎓 Чуть безтолковка не взорвалась, но вроде поправил наложение текстур на полигон. Чёрт ногу сломит с этими ( x, y), ( r, h), ( u, v).

🎮 Теперь текстуры очень схожи с первой плойкой.

⏳ А запас по времени ещё есть. Не сильно нагрузило систему

p.s. 🤓 "Попробовать blending, что-ли..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👾1
Media is too big
VIEW IN TELEGRAM
🏠 "Миша, это всё не то, давай по новой..."

🧑‍🎓 Я конечно добавил 3D объекты, это уже не столь сложно, но есть одно но...
🧮 Я неправильно сделал расчёт вершин оказавшихся за спиной, от того и глюки визуальные.
📐 А правильно их расчитывать как? А никак, их вообще не должно быть. Полигон, выходящий за границы видимости, должен обрезаться и генерировать новые вершины, из четырёх угольника превращаться в пяти, шести угольник и перестраивать составные треугольники. В общем, рано радоваться...

p.s. 🤓 "blending подождёт..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1🥰1🤯1
TFT_Lamp [ ver 1.00.100 ].rar
3.1 MB
🗄 В архиве:
   💻 - Прошивка для CYD3224S028
🎞 - Программа для фото
  💻  - Симулятор на ПК
  ◼️  - 3D модель корпуса для печати

⚙️ Программа для прошивки ESP

[ ⬇️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
👍 "Ну и хватит на этом..."

😎 Этот проект можно продолжать вечно, но я наткнулся на новую нишу. Это ещё на шаг ближе к честному 3D. И как оказалось там много всего нового. Но даже разобравшись с текущим вариантом 3D ландшафта ещё рано браться за чистое виртуальное пространство.

  😈 И следующим шагом будет добить ландшафты, и поиграться с секторным представлением 2.5 миров, как было сделано в Doom, DukeNukem и подобных играх.

💻 По этому план такой:
- Этот проект ставлю на стоп, выкладываю прошивки как есть, в принципе они приемлемые.
- Сажусь за пару роликов на простые темы
- Ардуина и кнопки. На уровне библиотеки, нажатия, события, зажатия, мультиклики и т.д.
- Ардуина и светодиоды, но не просто blink, а асинхронная работа светиков.
- И отпуск, нужно пожарить попу на морях.

А в сентябре снова в бой, сектора, BSP деревья, следующий шаг в псевдо 3D.

Так же мне мешает мысль и о других темах роликов:
- Продолжение rayCast
- Шум перлина
- Процедурная генерация
- Подключение TFT к Ардуино
- Графика ESP на TFT
- Воксельный движок
- Псевдо 3D поверхность
- Ну или накидайте своих вариантов, потом запущу голосование...

🗯 [ Скачать прошивку тут ]

p.s. 🧑‍💻 "А я сажусь за ролик про кнопки..."

[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🎉1👾1
👍 "Голосование - итоги..."

Вот и закончилось голосование, теперь видны итоги и план действий.

💻 Большенству интересна тема графики на ESP32, значит туда и сделаю упор. Но с одним нюансом, чтобы рассказать про графику и как я её делал, всё таки эту самую графику нужно на чём-то показывать. То есть мне придётся поменять местами две темы. Хоть подключение к TFT к ESP и на втором месте, но логически сначала нужно подключить дисплей, а потом рисовать на нём.
Логическим продолжением после этого будет Воксельная графика. Псевдо 3D и процедурка идут вровень, но процедурку возьму первой, чтобы разбавить поверхности другой темой.
Ну и в остатке остаётся продолжение RayCasting и шум Перлина.
Вроде бы и определились, но ость ещё одно но: для воксельной графики уже нужны углы, корни и работа с uint16 как с дробным числом, эта тема будет после ESP графики.

По этому план такой:

- Кнопочки ( почти готово )
- Подключение TFT к Ардуино
- Графика ESP на TFT
- Бинарное представление углов, дробей, быстрый корень
- Воксельный движок
- Процедурная генерация
- Лампочки
- Псевдо 3D поверхность
- Продолжение rayCast
- Шум перлина

p.s. 🧑‍💻 "Заканчиваю ролик про кнопки..."

[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🥰1👏1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Немножко спойлеров по предстоящей теме...
Осталось немного
- Удержание кнопки на время
- Озвучить это всё
👍2❤1🔥1🥰1👨‍💻1
😎 "Минус пунктик..."

  Первый ролик из серии "Arduino - Next level", типа обучалок Ардуине чуть более чем Вайб-кодер, готов.
Получилось немного скомнано, но и времени было в обрез. Главное эту мысль выкинул из головы.
🤔 Или освободил место для новой?...

🤓 В общем ролик тут:
🔥 [ YouTube ]
❤️ [ VK video ]

p.s. 🏖 "Всё, отпуск, моря, релакс..."

[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ][ 💬 чат ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍3🎉1