Серия «Мы очень старались и сделали :)»

15

Всё начиналось с этого :)

Прежде всего хочу выразить благодарность всем неравнодушным людям Пикабу, кто поддержал нас словами, эмоциями и донатами! Большое вам спасибо! 😊
А ребят @catincoat, @Azcol, @fddh543 теперь можно найти как в исходном коде так и через "пасхалку"👍в ОС консоли!

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

Начинали мы с этого:

Тут всё просто - плата Леонардо и графический дисплей на чипе ST7920

Тут всё просто - плата Леонардо и графический дисплей на чипе ST7920

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

Тоже ничего сложного, разместили плату Леонардо и дисплей 1602

Тоже ничего сложного, разместили плату Леонардо и дисплей 1602

Именно на такой простой платформе мы и написали свою первую игру Dino - про прыгающего динозаврика (почти как в браузере Google Chrome). Далее были сиквелы Dino2 и Dino3 с управлением через ПК посредством клавиатуры. Ребята настолько втянулись в этот процесс, что их фантазию уже было не остановить)) придумывали игры с главными героями мультфильмов, даже вещей: пылесосов, половников и батареек))) было круто и весело) (особенно им нравился этап рисования и переноса картинки в бинарный вид, рисовали на листке, попиксельно, ну а потом переводили в понятный 00011100 и так далее). Завершением и апогеем данной платформы был проект PacMan на два игрока с фишками в виде дополнительных жизней и героями которые могли поменять свой облик при поедании ягод - всё как в оригинале, ну почти 😁.
Примерно в это же время, дисплея 1602 нам стало не хватать и мы перешли на графический дисплей 12864, тут уже было куда развернуться, и мы с удовольствием погрузились в проекты: Snake, Pong, Aliens Invaders и другие. Просто открывали старую книгу по играм BASIC и портировали на свою платформу всё что было интересно, а интересного там было много, что стоит только проект Acey Deucey, есть там над чем голову поломать)). Для ребят старые игры оказались настоящим откровением, особенно их поразил тот факт, что базовые алгоритмы остаются неизменными, меняются лишь способы взаимодействия и отображения информации. Как педагог я обязательно подчеркиваю этот факт на своих занятиях. Всю информацию стараюсь подкреплять презентациями и удивительными фактами из мира IT и игр, им нравится).


А что же было дальше?

А дальше мы разработали свою первую консоль) с которой выиграли пару конкурсов, участвовали на день города под палящим солнцем так, что простенький PLA пластик из которого был сделан корпус консоли повело, а дяденька из числа жюри в Невинномысске сказал нам: - "не верю!". Заинтересовались? Напишу об этом в следующий раз)

А сейчас ответы на волнующие вас вопросы:

...много странного даже на первый взгляд. Начиная с действительно странного выбора экрана. ... А иконки вы из третьей винды взяли? - пишет @LemuelGulliver

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

Почему вы использовали arduino, а не стандартный для esp32 фреймворк esp-idf ? - пишет @favoriteclient

К набору методов API ESP-IDF у нас есть доступ, используем методы энергосбережения и настройки процессора. В дальнейшем полностью откажемся от прослойки API Ардуино. Пока так, так как ребятам удобнее.

А почему интерфейс на английском, если русский продукт? - пишет @Cudesniks,

Шрифты у нас в бинарном виде и создание их заняло достаточное кол-во времени. Дисплей поддерживает 4 градации серого и на каждый пиксель приходится по 2 байта информации (по биту в каждом байте, расточительство!), нужно было либо с учетом этого рисовать символы (что не есть хорошо - данных много), либо символы рисовать для монохромной графики и уже потом алгоритмом "растягивать" их без потери данных. Выбрали второй вариант и у нас все получилось) Обязательно добавим кириллицу!

Doom на ней уже запустили? - пишет @UserNumber

Пока нет)) сосредоточились на фреймворке exForm который позволяет выводить графические окна на дисплей + над терминалом думаем. Стыдно, но Pong мы тоже пока не запускали 😂.

Отчего ж не опубликовали ссылку на гитхаб? Интересно же! - пишет @trapwalker

Вот GitHub - avsavushkiny/EX: EXperience, пожалуйста сильно не ругайте)) много мусора) работать и работать ещё над кодом)

А на этом пока всё) Следующий пост будет через три дня и будет содержать часть технической информации. Буду рад любой поддержке 🤝!

Показать полностью 2
579

Мы очень старались и сделали :)

Друзья, супер (!), в первую очередь как педагог и руководитель проекта спешу вам сообщить, что наша команда стала призером в республиканском конкурсе на приз Главы Республики Мордовия. Ура-а-а 🏆 Мы это сделали!

Напомню, что примерно год тому назад, мы поставили перед собой цель: собрать программируемую консоль для школьников, студентов и просто гиков)) и мы её собрали!

Да, было трудно, создавали код с нуля (кроме ядра ESP32), переписывали, переписывали и снова переписывали код. Мы отказались от RTOS и придумали свой удобный планировщик задач. Отказались от графической библиотеки U8G2 и написали свою 😱 (ох уж эти даташиты на китайском 🙄). Изюминкой нашего проекта стал свой фреймворк exForm для создания графических форм, там есть практически всё, от кнопок до вывода 4 цветных изображений (градации серого), фреймы, линии, чекбоксы, текстовые блоки и многое другое 👍. Даже Desktop есть как на ПК, ну почти 🫣. Осталось совсем чуть-чуть: добавить виртуальную клавиатуру и рабочий эксплорер. Ах-да, совсем забыл, ещё мы добавили, а точнее сами написали и уже потом добавили в проект библиотеку для работы с последовательным портом UART, с расчётом CRC при передаче/приёме данных 💪. Макс из нашей команды разработал и внедрил в проект 3Д модель корпуса, делал всё через Компас, 11 деталей, не единого самореза или болта, все детали собираются практически как в Lego. А сколько пластика потратили на черновые варианты!

Ну а для чего все 🤷 это?

Дети, старшеклассники, будущие студенты таким образом знакомятся с it разработкой. В интересной и увлекательной форме изучают язык программирования C++. Это не сухая теория и не сухие задачки из ОГЭ, ЕГЭ, а реальная разработка it продукта. Руки только не доходили полностью вести DevOps.

В планах: добавить много новых функций, разработать единую плату, изменить дизайн корпуса) да много всего впереди!

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

Хочу сказать огромное спасибо всем ребятам за проделанную работу 🤝: Сяткина Катя, Орлов Максим, Ксенофонтов Сергей, Самойлов Михаил.

Для Пикабу мы приготовили серию постов по разработке данной консоли)

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