Дачный туалет. Для Л. Л. 3000 рублей и 1.5 часа работы
Здравствуйте граждане(и дорогие мои стерильные, опрятные и накрахмаленные санитары, ух как встряхнули вы меня)!
Предлагаю вариант дачного туалета.
1) Не продувается ветром(*имеестя в виду-не ощущается внутри).
2) Стоимость в пределах 3000 рублей(конечно можно и удорожить).
3) Лёгок в сборе и разборе-изготовила подруга товарища(для понимания-первый раз пользовалась лобзиком) под моим руководством.
4) Снаружи не видно, что происходит внутри.
5) Малый вес конструкции, легко перенести на новое место.
6) Устойчив к ветрам-не падает.
7) Зиккурат-ого!
8) Мне и соседям понравился(пока я не пришёл на следующий день, не могли понять что это).
9) Дождь ночью был, но он сухой(год прослужит точно) .
Для строительства потребуется:
Шуруповёрт.
Молоток/нейлер.
Рулетка.
Электролобзик/бензопила/циркулярка/сабельная пила/ножовка(мы обошлись лобзиком).
Маркер/карандаш.
Нож.
Степлер.
Угольник(можно и без него).
Перчатки.
(Новый костюм, хотя бы от Gucci, но это не обязательно и не для всех)).
4 бруска 2200мм 50х100-каркас.
2 доски доски 2500мм 25х100-укосины.
2-3 доски доски 3000 25х100-нижние и верхние (распоры, хедеры, ригели-подскажие пжалста).
Гвозди-штук 40 (я использовал 80мм винтовые/спиральные).
Саморезы по дереву- штук 30(для временного крепления конструкции).
Укрывной материал 12 погонных метров однослойный или 6 метров двухслойный. Ширину укрывного материала расчитывайте от нижнего периметра основания строения. У меня 1200мм длина и 1200мм ширина основания строения. Я купил 1.6 м шириной укрывной материал.
Старые доски для пола.
Пол листа ОСБ/ОСП (для чистового пола, я ещё не постелил).
Скобы для степлера половина упаковки.
Так как я следил за шашлыками и помогал ребёнку товарища с домашкой, мне не до фоток было, уж извиняйте.
Собираем 2 стены на земле, (как по мне, оптимально 1000х1000мм нижнего периметра сооружения и 800х800мм верхнего(мы бахнули 1200х1200 низ и 800х800 верх)).Крепим на саморезы. Ставим стенки на вырытую яму и прихватываем саморезами стены (изнутри) доской 25х100 и пробиваем конструкцию гвоздями.Ставим укосины слева и справа пробиваем гвоздями. Накрываем укрывным материалом, с низа одной стороны до другой с запасом 20 см и пробиваем степлером.Делаем петельку(свою петельку я переделаю, расстояния отверстий малО) в укрывном материале на удобном уровне и соответственно забиваем гвоздь(вкручиваем саморез подлинней) на том же уровне к бруску. К низу "дверного полотна" прибиваем скобами доску/брусок.Укладываем внутрь старые доски на пол с зазором 5-10 см от краев конструкции, 3 доски поперёк спереди и 3 доски поперёк с задней части(можно и по 2 доски, если вырыли большую яму или доски широкие). На эти доски укладываем вдоль, черновой пол и крепим их саморезами (можете гвоздями), укладываем сверху ОСБ/ОСП и так же крепите к черновому полу.
Более опытные коллеги в комментариях подскажут как сделать лучше, дешевле и проще.
Написано много, а на деле это быстро делается.
Успехов в труде!
Сделано своими руками
Сделано своими руками мну куриц табакко и пивас пивац внутрь. зримо глазы чо на полу жидкость. (офигеваю!)чому такэ? а вот на : на белом троне муфьта с бачка сливнова отвалилась и писиет h²o. обратнама-на не хотить! у мну на эту трубу и трон белый и стиралка падключац! таперича что, ни пакакать ни в чистом ходить низзя?
ходу отседова©
в смысля в магаз-ин сантехники какай-нибуть... йуха вам на воротник - пазакрывалися все магазины, уот так уот. пёхом шлындаю к последнему на раёне (предпоследнему, как оказалось) - тама мракЪ и санфаянс и свет негорит... спрашивац труба какай-та и кран шаровый штабы типа заглущка на постирац трусы\ носки.. отвечац - у нас лапки, неси шланга подводка резьба смотреть мерять масква звонить заказ делать...
#яПлакалЪ
ходу отседова©
щланга подводка открутиц идю в другая магаз, гаварю : кран шаровый мну ! оне: на- ка! 230 руп.мну: щланга мерять, резьба крутить! гут!пакупац
дома щланга, кран к труба крутить, стиралка жжж, трусы читые надель...про бачек думаль, думаль, неделя думаль...муфта банка класть , бензин лить, крышка закрыль.банка забыль, какать ведро смываль.
©начинается новый день®кино
нашёл банка, муфта как новый, бензина нетЬ, впитался видимо... бачок муфта белый трон соединяц — красата (в простате.жпг) можно какать!
{ серёжа молодец.мп4)
Поиграем в бизнесменов?
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.
DongShan Pi Pico-W: крошечный одноплатник с современным чипсетом за 600 рублей
Китайские производители не перестают удивлять: многие видят явные перспективы рынка одноплатных компьютеров и стараются представить целую линейку девайсов на самых разных чипсетах, а разработчики стараются использовать уже привычное и поддерживаемое долгие годы железо. К ним относятся решения на чипсетах AllWinner, RockChip, Tegra. Другие же стараются взять малоизвестный, но дешевый чип для иного круга применений, развести на нем компактную плату и продавать по цене пачки сухарей, подобные решения появляются регулярно. Один из таких одноплатников я недавно купил на AliExpress — некий DongShan Pi Pico W, на базе экзотического чипсета SigmaStar SSD210, всего за 600 рублей. И тут действительно есть на что посмотреть: два ядра Cortex-A7, контроллер TTL матриц, 2D GPU, Wi-Fi, 64Мб ОЗУ и Embedded Linux на борту. Более того, девайс поставляется в виде System on Module с переходной Evaluation-платой, что позволяет использовать это устройство в составе других гаджетов! Что это за красавец и на что он способен? Читайте в статье!!
❯ Что это за девайс?
Думаю, большинство моих читателей когда-либо слышали об одноплатных компьютерах. Это компактные и достаточно мощные устройства, которые можно использовать как в качестве компактных серверов или даже десктопных машин, так и собрать своё устройство на базе готового одноплатного компьютера. Одноплатники используется во многих сферах: вендинговые автоматы, умные экраны, самопальные игровые консоли и смартфоны, DIY-ноутбуки!
Однако чаще всего можно увидеть обзоры и проекты на базе довольно известных устройств: Raspberry Pi, Orange Pi, Olimex. Эти платы, скажем так, достаточно дорогие: и если Orange Pi One/Zero ещё можно ухватить за 1.000 рублей на вторичке (один из таких я купил еще летом. Узнав о моем блоге, продавец стал моим читателем и вместо одного OPi прислал мне целых два — один в подарок!), а за RPi Zero придется выложить как минимум 2.000 рублей. Однако есть ещё один сегмент одноплатных компьютеров: ультра-дешевые, разработанные на базе чипов для конкретного применения. Один из самых известных представителей — MangoPi/CherryPi R3, который работает на базе AllWinner F1C200s — чипа для… электронных книг!
Информации по дешевым, почти неизвестным одноплатникам довольно мало. У них не очень хорошая поддержка (кроме AllWinner, там почти все чипсеты есть в mainline-ветке Linux), в них могут обнаружится аппаратные баги, да и многие люди вообще не замарачиваются с ними, предпочитая переплатить, но купить что-то более стабильное. Но не я! Я просто обожаю различные ультрадешевые девайсики, поэтому недавно по наводке моего активного читателя NutsUnderline, я заказал интереснейший девайс — DongShan Pi Pico-W. Устройство обошлось мне всего в 600 рублей, но в первую очередь, меня привлек форм-фактор устройства и его чипсет. Некий SigmaStar SSD210!
Я заказал сразу два устройства: первую партию очень быстро разобрали, поэтому я взял «с запасом». Сейчас конкретно этот одноплатник пока-что не доступен в магазине продавца, однако у него же продаются другие устройства на базе SSD210. Можете найти их по ключевому слову: «SSD210» (прямые линки публиковать не буду, дабы не сочли за рекламу). Через месяц оба красавца пришли ко мне и я принялся их изучать.
Какое же было моё удивление, когда я обнаружил, что это по сути System on Module, который вручную надо припаять к Evaluation-плате! Вкратце это значит, что на базе таких SoM вы можете развести плату, протравить её, а затем припаять одноплатник поверх нее и сделать своё полноценное устройство, «без соплей»! Производителю плюсик за такую гибкость — я не очень люблю одноплатники с штырьковыми гребенками. Хотя, конечно, это очень сильно помогает при разработке макета устройства.
❯ Характеристики
Но чем он так меня привлек, помимо SoM направленности? Своим крутым чипсетом! Давайте ознакомимся с его характеристиками поближе:
Процессор: SigmaStar SSD210. 2 ядра Cortex-A7, работающие на частоте до 1ГГц. 16Кб кэш инструкций и 16Кб кэш данных, плюс 128Кб L2-кэша. В процессоре есть FPU и поддержка SIMD-инструкций Neon (альтернатива SSE в x86). Нехило, правда?
Поддержка дисплеев: У чипсета есть выделенный модуль для работы с внешними матрицами. Поддерживаются TTL дисплеи (до 1024x768), SPI-матрицы с клоком до 54МГц (480x320), а также прямой RGB аналоговый RGB сигнал (этот интерфейс можно использовать для подключения к ТВ с тюльпанами или аналоговым матрицам). Про типы дисплеев, вы можете прочитать в моей статье.
2D GPU: Поддержка отрисовки линий, прямоугольников, градиентной заливки, BitBLT, клиппинг, дизеринг, автоматическая конвертация формата пикселя (с RGB888 в RGB565). Это серьёзно снимает нагрузку с ЦПУ при рисовании графики, однако поддерживается ли он в Linux — вопрос другой.
ОЗУ: 64Мб DDR2 памяти «бутербродом» прямо с чипсетом, плюс поддержка до 512Мб DDR2 внешней памяти, до 1333Мб/с.
Звук: Один моно-выход DAC, два выходных канала I2S, вход микрофона. Входные каналы поддерживают частоту дискретизации до 96КГц. Можно организовать вывод звука лишь подключив внешний усилитель. Внешний ЦАП не обязателен, если вам не нужен стерео-звук.
Память: Контроллер NOR/NAND SPI-памяти, до двух параллельно подключенных чипов, плюс поддержка SDIO. BootROM поддерживают загрузку с MicroSD карт.
Сеть: Ethernet, на DongShan Pi есть Wi-Fi.
USB: Как хост, так и ведомое устройство
Периферия: 4 канала ШИМ, GPIO, 4 UART, 2 канала SPI, 2 канала I2C
Камера: До двух камер по интерфейсу MIPI CSI
Безопасность: Есть аппаратное шифрование.
Питание: 0.9В ядро, 1.8В ОЗУ, 3.3В I/O
Очень даже бодро, согласитесь? Вообще, производитель подразумевает SSD210 как чипсет для HMI-дисплеев — т. е. умные дисплеи, которые могут, например, служить стендами в музеях, или служить для заказа билетов в кино. Есть внешние HMI-дисплеи, которыми можно управлять используя другие МК: просто посылая команды и реагируя на нажатия кнопок. Тут мы и видим, как китайский производитель решил применить этот чипсет для другой сферы: одноплатный компьютер для DIY!
На SSD210 есть порт Linux, предлагается использовать Embedded Linux в качестве основной системы. Никаких дистрибутивов по типу Ubuntu для устройства нет — предполагается, что вы сами реализуете весь необходимый для ваших программ функционал (отрисовку графики, обработку ввода, звук и т. п.). Есть Build root и исходный код ядра, а также U-Boot.
Помимо этого, вендор предлагает целое SDK для разработки уже готовых устройств на этом чипсете. Но есть один нюанс: документации практически нет :( Такие пакеты предлагаются крупным коммерческим производителям устройств, поэтому и основная поддержка есть только для них. Есть некоторые сэмплы, как, например, использовать графические дисплеи (показан пример с TTL-матрицей 1024x600), но совершенно не ясно как использовать SPI-матрицы, поскольку они требуют отдельной инициализации.
Но сначала наш одноплатник нужно собрать и запустить. И здесь есть множество тонких моментов, которые необходимо знать перед покупкой такого девайса. Переходим к сборке!
❯ Сборка и запуск
Для более удобного процесса разработки нашего устройства, лучше всего заказывать сразу две платы: одну припаять к переходной плате с штырями, а другую использовать на нашем устройстве. Как я уже говорил ранее, одноплатник предлагается в виде System on Module, которые можно при желании распаять на переходной плате:
Честно сказать, я очень люблю такой тип монтажа и топлю за то, чтобы другие одноплатники не форсировали использование штырьков, а позволяли припаять себя «бутербродом» к другой плате. Обычно SoM дороже чем простые одноплатники, один из примеров — Olimex A20 SoM. Припаиваем основную плату к eval-плате. Обратите внимание, что припой должен находится «скосом» с внешней стороны пинов!
После этого, можно распаять гребенку. После окончания процесса сборки, вызваниваем все пятачки на плате и гребенку, дабы исключить непропай в каком-то месте.
Теперь подключаем питание. На плате уже разведены Step-down преобразователи с 5В на 3.3В (основная логика), 1.8В (DDR2), и 0.9В/1.0В (ядро), нам достаточно подключить лишь 5В, либо запитать плату от 3.7В аккумулятора. Устройство стабильно работает и от 0.5А порта ПК (если не юзать Wi-Fi).
Для работы с одноплатником, обязательно нужен COM-преобразователь. Открываем Putty, задаем COM-порт, выставляем бодрейт 115200 и отключаем контроль четности. После подачи питания на устройство, в консоли побегут логи, U-Boot начнет загружать систему… однако, есть один важный нюанс…
Все платы прошиваются на заводе с помощью фирменного флэшера SSD210. Но фирменный флэшер, по каким-то причинам, на некоторых платах не может сохранить U-Boot Environment (переменные окружения, которые в том числе определяют таблицу разделов и коммандлайн ядра).
Поэтому если ваша плата повисла на CRC Error, нужно ввести следующие команды:
setenv mtdids nand0=nand0
setenv mtdparts ' mtdparts=nand0:0x140000(CIS),0x1a0000(BOOT0),0x1a0000(BOOT1),0x40000(ENV),0x40000(ENV1),0x20000(KEY_CUST),0x500000(KERNEL),0x500000(RECOVERY),0x600000(rootfs),0xa0000(MISC),-(UBI)
setenv bootargs ubi.mtd=UBI,0x800 root=/dev/mtdblock8 rootfstype=squashfs ro init=/linuxrc LX_MEM=0x3FE0000 mma_heap=mma_heap_name0,miu=0,sz=0x1E00000 cma=2M highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x3C00000,max_end_off=0x3F00000 ${mtdparts}
setenv bootcmd ' nand read.e 0x22000000 KERNEL ${kernel_file_size}; dcache on ; bootlogo 0 0 0 0; bootm 0x22000000;nand read.e 0x22000000 RECOVERY ${recovery_file_size}; dcache on ; bootm 0x22000000
setenv autoestart 0
setenv sstar_bbm off
setenv ipl_version "##p3##gdf99011IPL_##########
setenv ipl_version "DUALENV=1 SILENT_CONSOLE=1 CFG_SDMMC_DISABLE=n ALK=1 SPINAND=1 CHIP=pioneer3""
saveenv
После этого отправляем плату в ресет и система загружается как ни в чем не бывало!
Поскольку на плате не разведен разъем USB, для прошивки нужно распустить нерабочий кабель для зарядки смартфона, либо купить внешний USB-разъем на плате. VBUS кидаем на вход питания, белый провод на DM-, зелёный на DM+. Не забывайте провести общую землю между UART-преобразователем и основным питанием платы, дабы не потерять логи.
Замыкаем два пина в центре платы пинцетом и жмем RESET. Плата определится как MSDC-флэшка (не удивляйтесь). Прошивальщик глючный и бывает не с первого раза может прошить устройство. Если девайс после прошивки не включается — введите команды в консоль U-Boot выше.
Теперь переходим к самой системе.
❯ Система
Девайс работает на базе ядра Linux 4.9. Тем не менее, производителем заявлена поддержка Mainline-ядра, что даёт надежду на поддержку устройства в будущем.
Таблица разделов устройства организована в виде ubifs. Вообще, предполагается, что для тестов можно будет запускать ваш софт без перезагрузки, однако когда речь заходит о серьезных модификациях, ребут и прошивка устройства глючным софтом — дело неизбежное.
«Из коробки» на устройстве доступен лишь i2cdev, благодаря которому можно свободно общаться с i2c-устройствами из юзерспейса. Хотите получить доступ к SPI? Готовьтесь качать билдрут, вручную включать spidev в конфиге и редактировать DeviceTree, дабы spidev мог получить доступ к физическим spi-устройствам ядра.
Кроме того, конечно же, есть доступ к GPIO из sysfs.
На самой плате, Wi-Fi реализован в виде внешнего USB-хаба + Wi-Fi адаптера. Чипсет также поддерживает Ethernet.
Для разработки устройств, производитель предлагает отдельное SDK для общения с периферией устройства из юзерспейса. С помощью этого SDK, можно получить доступ к камере, аппаратному декодеру, звуку и настроить матрицу. Судя по всему, общение происходит с помощью ioctl к необходимым устройствам. Это сделано для того, чтобы разработчики не копались в низкоуровневых драйверах, ведь например, ALSA, на устройстве нет совсем.
Если включить нужные нам модули в юзерспейс (spidev, i2cdev, gpio), то можно будет проектировать устройства более простым путем. Например, подключить дисплейчик и прямо из юзерспейса выводить на него графическую информацию. Это открывает перспективы для самых разных применений: опрос датчиков и хранение информации в внутренней памяти, умные сигнализации, самодельные часы, DIY игровые консоли, самодельные телефоны и т. п. Применений просто куча!
❯ Заключение
Вот мы и посмотрели с вами на дешевые одноплатники, где используются чипсеты, которые разработаны для использования в совершенно других сферах. Девайсы весьма своеобразные и для полноценной работы с ними нужно обладать навыками прожженного линуксоида и иметь навыки системного программирования. Но, чего уж точно нельзя отрицать, так это перспектив подобных девайсов для своих проектов. Да, под них нет готовых гайдов, как для Raspberry Pi или Orange Pi, информации по ним минимум… но если захочется — то всегда можно «сварганить» самопальное устройство за минимальный прайс!
Вероятнее всего, я применю один из этих одноплатников для своего проекта немного позже. И конечно же, я напишу об этом отдельный материал — ведь про экзотические чипсеты на Пикабу пишут не так часто!
Чуть позже выйдет материал про Repka Pi. Их одноплатник получился не менее интересным и как раз таки метит в нишу одноплатников с хорошей поддержкой, где есть уже готовые гайды, информация и даже сами разработчики могут помочь с решением некоторых проблем. Без косяков не обошлось: есть пару аппаратных проблем, о которых я расскажу открыто, но в целом девайс выглядит интересным!
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud , дабы не пропускать свежие статьи каждую неделю!
Мы сделали вам плату, а дальше вы сами: Доводим дешевый одноплатник за "косарь" до ума!
В прошлой статье, мы с вами рассмотрели на что способен одноплатный компьютер, который стоит всего 1.000 рублей. Как мы выяснили, перспективы у данного девайса весьма неплохие, однако по факту, Orange Pi продаёт практически голую железку, которую нужно дорабатывать самому. Да, тут есть Ubuntu/Fedora, да, тут выведена гребенка с I2C/SPI — однако из коробки это всё работает криво-косо, либо не работает совсем. Даже обещанные шины SPI/I2C фактически не доступны в системе «из коробки». Материалов о доработке этого одноплатника в сети мало, поэтому я решил довести его до ума сам и поделится с вами — в том числе, готовыми бинарными образами! Интересно, на что способен доработанный одноплатник по цене ящика пива? :)
Над чем будем работать
В прошлой статье, мы с вами определились с потенциальными перспективами такого устройства. По цене 3х ESP32, производитель предлагает нам два полноценных вычислительных ARM-ядра, 256 мегабайт оперативной памяти, 512 мегабайт встроенной NAND-памяти, контроллер питания с возможностью работы от литий-ионных АКБ и 3G модем. Но в бочке меда нашлась ложка дегтя: никто не собирался это всё поддерживать и Orange Pi практически сразу «забили» на поддержку устройства, ограничившись портом Debian/Ubuntun на устройство.
Более того, производитель даже не описал как работать с GPIO и шинами устройства — что фактически превращало его из одноплатника в обычную ТВ-приставку, только без нормального видеовыхода. Меня крайне удивило, почему над такой дешевой платой не хотело работать коммьюнити — большинство людей только видели всю ситуацию и шли оставлять негативный отзыв, не попытавшись даже разобраться. А ведь для опытного линуксоида-эмбеддера здесь работы на день-два!
Ко всему прочему, в Linux не работает GSM-стек. Да, совсем. Производитель даже не стал кооперироваться с MediaTek, чтобы попытаться реализовать работу с модемом на уровне системы. А ведь фактически, вся работа с модемом происходит лишь на уровне AT-команд. Так в чем же проблема была?
Со всем этим мне и предстоит разобраться! Клонируем репозиторий с исходниками ядра и бежим собирать!
Собираем ядро. I2C и SPI.
Вместо типичного Buildroot, Orange Pi использует свою собственную простую систему сборки на shell-скриптах: в качестве тулчейна используется уже готовый linaro. Отчасти, это связано с самими чипами, на которых работают их устройства — MediaTek, например, не использует Mainline ядро и в процессе сборке имеет ещё кучу шагов для подготовки финального образа. Там даже menuconfig не работает и все изменения приходится делать в уже сгенерированной когда-то конфигурации.
Клонируем репозиторий с системой сборки и запускаем скрипт:
git clone https://github.com/orangepi-xunlong/OrangePi_Build cd OrangePi_Build ./Build_OrangePi.sh
Выбираем нашу плату — 3G IoT и ждем, пока система сборки фактически скачает все необходимое для сборки — исходный код ядра, папки external (драйвера, загрузчик и порт linux MediaTek). Обратите внимание, OrangePi даже систему сборки завязали на конкретной версии системы: только Ubuntu 18.04, но на самом деле, ядро соберется без проблем практически где угодно. После того, как все было скачано, переходим в папку с скриптом сборки и запускаем скрипт сборки:
cd ../OrangePi3G_iot/
./build.sh
А нет, не запускаем — скрипт жалуется на то, что не может поставить некоторые пакеты. Не беда — ставим bsdtar и python minimal вручную и идем править код скрипта. Находится в он scripts/general.sh: убираем оттуда устаревшие имена пакетов.
После этого, компиляция ядра должна пройти успешно. Обратите внимание на версию вашей платы — те, что продают сейчас — именно A. Если пытаться подкинуть им ядро для B, то они будут уходить в kernel panic из-за отсутствия eMMC.
Если mkbootimg будет жаловаться на libstdc++6, то ставим его x86 версию из репозиториев.
Готовое ядро будет лежать вoutput/kernel/boot.img, которое можно прошить на устройство. С одним маленьким нюансом — оно рассчитано на загрузку из внутренней памяти, которой критически мало для дистрибутива Linux! У нас нет boot_sd.img, который есть в оригинальном дистрибутиве. Попытка разобрать образ стандартным AndImgTool не увенчалась успехом — рамдиск встроен прямо в образ zImage, а не отдельно, как это обычно бывает у Android-образов.
Покопавшись в скриптах сборки, я так и не понял логику создания boot_sd, ничего связанного с sd я не нашел даже grep'ом по всей папке. Ну что-ж, тогда попробуем обходным путем: скомпилируем нужные драйвера в виде загружаемых модулей (ko). Идём в наш конфиг, расположенный в linux/arch/arm/configs/3giot_defconfig и меняем CONFIG_I2C_CHARDEV и CONFIG_SPI_SPIDEV на m. Пояснение: y заставит систему сборки скомпоновать драйвер статически с ядром, а m выделит его в виде отдельного модуля ko, который затем можно загрузить черезinsmod.
Снова собираем ядро, на этот раз компиляция занимает не больше минуты. Нужные нам файлы появятся в linux/drivers/spi/spidev.ko и linux/drivers/i2c/i2c-d-ev.ko. Переносим их на хост-пк, а затем и на само устройство с помощью SSH:
Загружаем модули ядра:
insmod i2c-dev.ko
И та-дам! Целых две i2c шины появилось в системе (/dev/i2c-0, /dev/i2c-1). Устанавливаем i2c-tools и идем проверять с помощью i2cdetect: первая шина полностью свободна под наши проекты, а на второй по некоторым адресам висит периферия (FM-радио как вариант):
I2C теперь точно работает! Но как насчет SPI?
insmod spidev.ko
Device or resource busy.
Увы! spidev нельзя подгружать динамически, только статически линковать с ядром, чего мы сделать пока не можем. Однако техническая возможность заставить работать SPI есть: например, написать свой драйвер, который транслирует команды из юзерспейса в SPI API, которое работает на уровне ядра.
GPIO
В прошлой статье, я вкратце рассказал, как работать с gpio из user-space на уровне терминала. Однако, большинство разработчиков потенциально будет пользоваться нативным API для GPIO — ну не всерьез же им парсить вывод состояния в консоль? Поэтому я решил написать крошечную библиотеку для работы с GPIO, такую же простую, как и DigitalWrite/DigitalRead!
Давайте сначала разберемся, как именно работать с драйвером GPIO. Для этого открываем исходники ядра и смотрим внимательно, что нам предлагает драйвер: в нашем случае, это вызовы IOCTL, да еще и простые и понятные. Это просто отлично! Я написал single-header библиотеку минут за 10: без проверки ошибок, но работоспособная.
void gpioInit();
void gpioSetDir(int num, byte dir);
byte gpioGetDir(int num);
void gpioWrite(int num, byte value);
byte gpioGetState(int num); byte gpioRead(int num);
void gpioSetPullState(int num, byte enabled, byte up);
Пример использования (141 — крайний пин на гребенке):
#define GPIO_IMPL
#include "gpio.h"
#include <stdio.h>
void testPin(int pin)
{
printf("Pin state %i is %i\n", pin, gpioGetState(pin));
gpioSetDir(pin, 1);
gpioWrite(pin, 0);
printf("Pin state %i is %i\n", pin, gpioGetState(pin));
gpioWrite(pin, 1);
printf("Pin state %i is %i\n", pin, gpioGetState(pin));
}
int main(int argc, char** argv) {
gpioInit();
testPin(141);
}
Модем
Скажу сразу: пока что завести модем мне не удалось, но я активно работаю над этим. В этой части статьи я распишу свои находки и догадки касательно модемов на чипах MediaTek.
В устройствах MediaTek, драйвер для общения с GPS, A-GPS и модемом один — ccci, судя по всему cross chip communication interface. Именно ccci создает устройства, с в которые поступает вход с микрофона и выход на динамики, а также он создает управляющие интерфейсы для общения с различными модулями этого SoC.
При старте ядра, ccci создаёт много устройств — ccci_ioctl, ccci_ipc, ccci_fs и самое нужное нам —ttyC0/ttyC1/ttyC2— в зависимости от количества СИМ-карт в системе. Кроме ccci, в системе есть некий 6620_launcher — бинарник, который загружает прошивку Wi-Fi и gsm0710muxd — специальный сервис, который позволяет в GPRS-сетях одновременно разговаривать и сидеть в интернете.
На смартфонах MTK есть factory mode — так называемый тестовый режим, который гоняют на заводах. Вы, вероятно, когда-то видели китайские меню похожее на рекавери — это и есть factory mode. Из этого режима можно дозвонится в 911 и активировать модем без запуска Android и RIL. Как это работает? Идём читать исходники ядра!
В factory-режиме, для каждого теста, программа активирует модем заново. Для этого есть функции тестового режима для работы с AT-командами и для инициализации модема. Сначала, она открывает терминал /dev/ttyC0 — именно там происходит общение с модемом с помощью AT-команд:
После этого, программа выводит модем из режима сна с помощью команды «AT+ESLP=0», инициализирует СИМ-карту с помощью команды «AT+ESIMS» и задает режим работы с помощью «AT+EFUN=1» и «AT+CREG=1». После этого, модем начинает искать сеть и доступен для обычного общения с помощью AT-команд. Однако, написав тестовую софтину для общения с модемом из под Debian, я получал ошибки вида Device not found. Почему? Пока не знаю. Однако я продолжаю изучать данный вопрос!
Заключение
Подготовленные мною файлы вы можете скачать на диске. Там скомпилированные модули ядра, библиотека для работы с GPIO и пару тестовых программ в качестве примеров.
К счастью, довести гаджет до ума мы смогли своими силами. Весьма странно, что такой крупный и уважаемый производитель как Orange Pi, банально решил «забить» на поддержку собственного устройства. И я лично считаю, что не стоит закидывать в долгий ящик их тем читателям, которые купили когда-то себе подобный девайс и забили, смирившись с отсутствием гайдов.
Немного энтузиазма, опыта и видения будущего проекта — и все получится :)
Почти одноплатник за 400 рублей: как применить дешёвый ТВ-стик 10-летней давности?
Официальная цена на последнюю модель Raspberry Pi составляет около 40$ за штучку. Однако купить её за такую цену невозможно, перекупы накручивают огромные ценники за одноплатники, основным преимуществом которых должна быть цена. И даже альтернативы от китайских друзей в виде Orange Pi или Banana Pi стоят как минимум 3-4 тысячи рублей, что по карману может быть не каждому. Но сейчас на барахолках можно найти старые и дешевые ТВ-стики по совершенно смешным ценам: 2-4$ за штучку, иногда даже с пультом и всеми кабелями. Почему бы не попробовать использовать их в качестве доступных одноплатников? Предлагаю попробовать.
Железный вопрос
Дисклеймер: Хотя такой стик вполне можно считать одноплатником, но прямым конкурентом RPi он не является — здесь нет GPIO. Спасибо за понимание.
Ещё в нулевых люди интересующиеся embedded и разработкой собственных устройств осваивали такие микроконтроллеры, как AVR и PIC32. Но область применений микроконтроллеров довольно узкая, если речь заходит о каких-то серьёзных применениях по типу быстрой обработки показаний с датчиков или реализации собственных компьтеров/игровых консолей. Конечно на рынке уже были DSP — цифровые сигнальные процессоры, которые были во много раз быстрее обычных микроконтроллеров и использовали все преимущества концепции VLIW (которая, кстати, применяется в отечественных процессорах Эльбрус), но раздобыть девкит, а тем более распаять его самому было настоящей проблемой для одиночек или даже небольших предприятий.
Поэтому с появлением одноплатных компьютеров всё стало гораздо проще: мы получаем вычислительные мощности среднего планшета/медиаплеера, но при этом, выполнено это всё в форм-факторе одной небольшой платы, где уже есть всё необходимое: подведено питание ко всем необходимым модулям, разведен USB-хаб, есть выходы на дисплей/телевизор и иногда на звук. Другим серьёзным преимуществом является открытость системы: в подобных платформах обычно используется Linux в том или ином виде (Android, десктопных Linux) или другие операционные системы. Производитель обычно предоставляет всё что нужно для разработки своих приложений и устройств на подобных платформах, в том числе исходники загрузчиков, device tree, исходный код ядра, а также полную схему устройства — это называется Open Source Hardware.
Я и сам давно интересовался одноплатниками, но, к сожалению, цены на них мягко скажем кусаются. Если искать какие-то старые и слабые модели по типу Raspberry Pi Zero, то даже на них цены конские (от 2.500 рублей на момент написания статьи). Приятный сюрприз сделали Orange Pi, выпустив в своё время 2G IoT с чипсетом RDA8810 за ~700 рублей, но его производство было прекращено около года назад. В один день, я смотрел объявления на авито/юле и приметил интересный девайс, коим оказался NoName ТВ-стик на чипе Rockchip RK3028A. Цена была указана более чем демократичная, всего 400 рублей. Не раздумывая, я забрал его для дальнейших экспериментов.
Характеристики
Когда я получил устройство, я удивился с его размеров: в небольшой корпус размером со флэшку умудрились засунуть полноценный и довольно мощный ARM-компьютер! Включив его, я практически сразу понял, в чём был недостаток: циклическая перезагрузка на логотипе. Из кнопок на устройстве была только Fn, которая ничего не делала, даже если включить устройство с ней. Кнопки RESET я также не нашёл. Пришло время его разобрать, благо сделать это не сложно: весь корпус держится на клипсах, которые нужно аккуратно расщелкнуть пластиковой картой.
Перед нами открывается вид платы, которую можно легко вытащить.
Из того, что мы видим, мы можем сделать следующие выводы:
Процессор: Rockchip RK3028A (RK302A) с двумя ядрами Cortex-A9, работающими на частоте 1.2ггц и графическим ускорителем Mali-400.
Память: 512 мегабайт, судя по всему, DDR2, одной банкой.
ПЗУ: NAND-чип Hynix H27UBG8T2CTR-BC 4гб. Есть место под eMMC, практически готовое к установке чипа (припаяны BGA шары).
Вход на питание: 5в, среднее потребление до 0.5А при пиковой нагрузке. Стик способен питаться даже от порта USB на ПК. Выходы на питание OTG и USB-портов тоже 5 вольт, а не 3.3 как на смартфонах.
Один полноценный USB 2.0 порт с питанием 5в + дополнительный порт USB-OTG для подключения к ПК или выведения дополнительного USB-хоста (с него тоже можно питать плату)
Слот MicroSD для расширения памяти, до 32гб SDHC
Что-то похожее на UART для диагностики платы (предположительно, обведено в синий прямоугольник).
Ну, и само собой, HDMI для передачи видео (до 1080p 60FPS) и звука
Прошивка
Прошивку пришлось поискать: название устройства я нашёл, это некий MK805II, родной прошивки на который найти не удалось (в том числе, по номеру платы). Но поскольку ромы TV-боксов практически идентичные и в них нет зависимости от тачскринов/дисплеев/расположений GPIO (обычно они построены на базе референсной платы), я принялся искать другие боксы на этом чипе. Попутно найдя даташит, я узнал, что RK3028A — это полный аналог RK3026 (отличие в корпусах — 3026 в LQFP) и BatchTool они определяется как RK301A (родственник RK3066). После недолгих поисков, я нашёл DEXP LD303, который работал на том же чипе и на той же версии Android. Прошивка в формате img скачана, пора прошивать устройство.
Но сначала в режим прошивки нужно войти. Для этого у процессоров Rockchip есть два режима: LOADER (стандартный прошивочный режим, который можно активировать зажав кнопку RESET) и MaskedROM (для прошивки новых устройств, только-только сошедших к конвейера и где память пока ещё пуста. Активируется, если загрузчик первого уровня не может найти загрузчик второго уровня). Если кнопки/контакта RESET у нас нет даже на плате, то остаётся только MaskedROM, который активировать очень легко, если у вас NAND память: необходимо просто замкнуть I/O линии иглой. При чтении загрузчика, процессор получит бессвязный набор байтов и сам перейдет в режим MaskedROM, тут то мы и сможем его прошить. I/O линии можно найти в даташите к вашему чипу памяти.
Замыкать можно любой из этих 4х пинов между собой.
Замыкаем контакты, подключаем устройство со стороны разъема OTG (на DC IN линии USB не разведены) к компьютеру. Устанавливаем драйвера.
И запускаем RkBatchTool.
Как только устройство будет обнаружено и драйвер правильно установлен, мы сможем прошить устройство. Жмём кнопку Restore (именно её, а не Upgrade) и ждём, пока программа запишет новый загрузчик, перезагрузит устройство в LOADER-режим, отформатирует память и запишет новый образ системы.
Всё, процесс прошивки завершен, бежим втыкать наш одноплатник в HDMI телевизора, подключать питание и ждать загрузки. Заработало! Для первичной настройки понадобится мышь, которую можно подключить в обычный USB-порт.
По итогу мы получили стабильно работающий TV-стик на базе Android 4.2. Не сказать, что система очень свежая, но тоже вполне ничего, на неё всё ещё можно жить. Попробуем найти ему применение. Ниже будут именно фото, а не скриншоты для того, чтобы вы могли увидеть как оно смотрится в действии, ну и потому что нет встроенного скриншоттера.
Тонкий клиент
Применений у такого стика есть масса, и одно из них — тонкий клиент. Помните, были такие машинки раньше? Это небольшие компьютеры, которые обладают минимальными характеристиками (процессоры ARM, Geode, MIPS, небольшой объем ОЗУ, в качестве ОС — Linux/WinCE), предназначенные для подключения к более мощным компьютерам/серверам и работы с них. При этом, тонкий клиент занимается обработкой ввода, выводом картинки, сетью и иногда умеет автономно выполнять часть задач и может комплектоваться жёстким диском.
Такой стик тоже можно использовать в качестве компактного тонкого клиента, подключив его сзади монитора. Выводим хаб, подключаем периферию и ставим клиент RDP. Я смог без проблем подключится к основному ПК и пользоваться им. Кроме того, Android поддерживает некоторую другую USB-периферию: потенциально, даже внешние Ethernet сетевые адаптеры. К слову, Wi-Fi на стике реализован в виде USB-свистка, припаянного к плате. Выводить такой ТК сможет картинку вплоть до 1080p, чего должно хватать всем.
Игровая приставка
2 ядра на частоте 1.2ггц и Malii-400 — весьма неплохие вычислительные ресурсы для игр. О современных Modern Combat и Call Of Duty Mobile можно забыть, но кто сказал, что на таком стике будет не во что играть? Android полностью поддерживает USB-геймпады в любом количестве, так что из устройства выйдет неплохая машинка для игр. А вот для каких?
Не так уж и много Android-игр начала десятых поддерживают геймпад. Из некоторых — почти все части Asphalt и другие игры Gameloft, некоторые игры на Unity, GTA (который, к слову, будет тяжеловат для игры даже в 720p на Mali400). Но те, что поддерживают, обычно работают неплохо. Кое где придется повозиться с настройками графики.
И с эмуляторами дела обстоят вполне ничего: денди/сега/PS1 проявляют себя хорошо. Увы, игры с PSP или Ps2 консоль не потянет: смотрите в сторону устройств с Amlogic S905X.
Компактный сервер
Да, это не шутка. На устройстве можно развернуть сервер, в том числе и файловый. Или разместить на нём персональную страницу — кто на что горазд. У устройства есть поддержка USB-HDD или флэшек.
Серверов различных типов на Android довольно много, поэтому найти применение в таком ключе мы тоже сможем.
Мультимедийная станция
Самый очевидный пункт, ведь даже производитель называет это устройство медиаплеером. Впрочем, не для всех могут быть очевидны большинство возможностей данного гаджета. В список того, что сможет такой стик сейчас входит не только проигрывание музыки или видео в качестве до 1080p, но и DLNA-медиасервер и возможность использовать что-то типа Invidous для просмотра YouTube.
MP4 h263, 1080p30
Сейчас в магазинах техники до сих пор продаются бюджетные телевизоры без поддержки возможностей Smart-TV, так что если бюджет очень сильно ограничен, а получить смарт-устройство хоть в каком-то виде хотелось бы, то чем не вариант? У некоторых ТВ-боксов (именно боксов), есть и аналоговые выходы, что позволяет подключить их даже к старым ЭЛТ-телевизорам. Наверняка тут есть кто-то, кто до сих пор фанатеет по тем здоровым телевизорам, размером с шкаф и весом в пару сотен килограмм?
Подведем итог
Похоже на то, что старенькие ТВ-стики всё ещё могут послужить человеку хорошую службу и остаться полезными даже спустя 9-10 лет после их выпуска. Благодаря копеечной цене, поддержкой вывода изображения в FHD и наличию нескольких USB-хостов, подобные устройства могут оказаться крайне полезными на даче, в гараже или даже в офисе, особенно если есть нужда в тонком клиенте. Теоретически сюда есть возможность установить обычный десктопный linux, даже на отдельную SD-карту, но из-за малого объема ОЗУ и слабого, по меркам десктопного Linux, процессора, работать он будет так себе. Однако на барахолках стремительно дешевеют более мощные устройства на S905X и восьмиядерных, свежих RockChip'ах!
Конечно назвать это устройство полным аналогом RPi нельзя: тут нет гребёнки с GPIO. Но это не значит, что их нельзя реализовать самому: у нас есть потенциальный UART, у нас есть USB-хост, а значит с помощью самодельного GPIO Expander'а, мы сможем рулить пинами условной ардуины так, как нам нужно. Если вас заинтересовало такое устройство — то вперед на барахолки, выбор действительно большой.
Завышенные цены на снаряжения для стрельбы и как решить этот вопрос
Недавно узнал текущие цены на снаряжение для практической стрельбы в ружье открытого класса и очень сильно удивился на сколько они завышены. Решил разобраться с этим вопросом "антикризисным" способом.
В видео расскажу логику решения и то как её получилось реализовать. Дополнительно предложу провести эксперимент по размещение магазинов в ружье открытого класса.
На момент публикации ролика пользовался комплектом из ремня, паучеров и тек-локов несколько месяцев и ничего не сломалось. Тему буду развивать, снаряжение "допиливать", поэтому готов проверить ваши конструктивные предложения на себе.
Готовы к Евро-2024? А ну-ка, проверим!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037
Как мы поднимали игровой сервер на старом ноутбуке с бюджетом в две чашки кофе
Дело было вечером, делать было нечего, а потому мы с друзьями искали, чем себя занять и во что поиграть.
После небольшого спора, выбор игры пал на Майнкрафт. Почему на него? Потому что "почему бы и не да?". Игруля простая, возможностей много, потянет даже подоконник... Но сидеть на серверах с лозунгом "Слышь, купи донат!" и не самыми дружелюбными игроками нам не особо хотелось, а потому было решено поднимать свой приватный сервачок для игры.
Поскольку мы все уже давно переросли период, когда "нормальным сервером" считалась игра через хамач или другие виртуальные локалки, да и не все могли подстроиться под график других, было решено поднимать сервер "по взрослому". Основными требованиями стали:
- Доступность 24/7 (за исключением аварийных ситуаций)
- Безопасность для игроков
- Возможность откатить миры
- Относительная дешевизна, в идеале - бесплатно
- Разнообразие и плюшки
Сказано - сделано. Я - админ, а потому ни одна электроника, даже старая или частично сломанная, у меня дома не выбрасывается, а лежит и дожидается своего часа. После копания в глубинах шкафа был найден ноутбук примерно 2017-2018 года на i3 восьмого поколения, планки памяти к нему, ссд и хард, а также проход в Нарнию, пачка сигарет, початая бухта витой пары и считавшийся утерянным магазин от страйкбольного привода. А вот дисплей от него не нашелся. Наверное, уехал в Нарнию...
Собственно, вот такая вот штука стала нашим хостом, чтобы работать 24/7/365. i3-8130u, 32 гига оперативки, 120 ссд + терабайт хдд на салазках вместо дисковода. Роль бесперебойника играет батарея ноутбука, интернеты идут по кабелю 100 мбит/с от домашнего роутера, на который от провайдера приходит гигабит. В качестве операционки можно использовать винду или любой популярный дистрибутив линукса. Дабы долго не мучиться, вкатил на диск первую попавшуюся под руки систему - дебиан 10.
Впрочем, хост - это только полдела. Надо еще как-то выпустить его в интернеты. Для этого нужен как минимум белый адрес, а если хочется "как у крутых серверов" - еще и домен вдобавок.
Получить белый адрес можно у провайдера. Некоторые провайдеры дают один белый адрес бесплатно, некоторые требуют за это небольшую доплату порядка восьмидесяти рублей (тридцать гривен) в месяц. Мне повезло, мой провайдер дает один адрес бесплатно и без лишних вопросов. Звонок, заявка на белый адрес, через час перезапускаешь роутер - и он ловит настройку с белым адресом. Выход в интернеты готов.
Теперь нужно было открыть порты для доступа "из мира". Серверу был выдан статичный адрес внутри локальной сети роутера (192.168.х.х), оставалось научить роутер понимать, что запросы майнкрафта приходят не куда-то, а на этот адрес. На почти любом роутере есть такая штука, как порт-форвардинг. Называться эта вкладка может "переадресация", "виртуальные серверы", "виртуальные сервисы" и все такое. Добавляем порты, необходимые для игры. В нашем случае, поскольку играть мы собирались в майнкрафт, нужно было открыть миру порт 25565, поскольку именно на него приходят запросы от игроков
Кроме того, дабы не заморачиваться с проблемой связи, я открыл порт 24454, который был нам нужен для работы мода на голосовой чат.
Дальше, дабы не запоминать много цифр, да и просто из соображений удобства и безопасности, было решено прикрутить домен. Регистрировать домен в дорогой зоне типа .сом или .org было бы расточительством, так что нам на помощь пришла бесплатная доменная зона pp.ua. Домен эти ребята дают бесплатно, максимум, за что придется заплатить - за аренду DNS-сервера у регистратора. Меня устроил регистратор NIC.UA, поскольку эти ребята давали DNS-сервер для зоны pp.ua бесплатно и имели автоматическое продление регистрации каждый год.
Регистрируемся у них (эл.почта и пароль), делаем заказ на домен и dns-server. В кабинете, в разделе "Серверы имен" привязываем домен к белому адресу, который мы получили у провайдера.
В общем и целом, все. По желанию, можно еще ко всему этому делу прикрутить SSL-сертификаты для пущей безопасности, что мы позже и сделали, бесплатно заказав их на Let'sEncrypt.
Теперь, когда все было готово, можно было заниматься софтом для самого сервера. Стандартный сервер, который можно скачать бесплатно с сайта mojang, не устраивал - слишком мало возможностей для модификации, оптимизация оставляет желать лучшего, кушает уж больно много ресурсов. Поэтому начали выбирать кастомное ядро для сервера. Остановились, по итогу, на Paper. Качается с сайта papermc.io
Почему выбрали его?
- быстро
- удобно
- много-много плагинов
- нормальная документация
- поддержка новых версий
Качаем пакет, читаем инструкцию, материмся, повторяем все по пунктам. Устанавливаем Java 20, устанавливаем сам Paper. Полчаса работы - и серверный софт настроен. В принципе, уже на этом этапе можно было спокойно играть, но шило в одном месте потребовало сделать все не "на отъебись", а нормально. Я начал работу над проектом в 7 вечера. Пока договорился с провайдером, пока сделал все настройки по железу и привязал адрес к домену, время было уже 2 часа ночи. Спать было бессмысленно, впереди были выходные, так что я решил приговорить вторую чашку кофе и продолжить работу.
Какие плагины были нам нужны?
1. Плагин регистрации и входа.
Эта фича нужна была для отсеивания потенциальных ботоводов и любителей зайти на другой аккаунт, сменив имя в лаунчере. Идеальный вариант - OpenLogin, работает "из коробки". Поставил - и пользуйся. Максимум что - настрой время, отведенное на логин, по умолчанию стоит 30 секунд, что маловато.
2. Плагин античит.
Конечно, среди нас читерастов не было, но, поскольку делали мы сервер с небольшим заделом на будущее, то пришлось прикрутить хотя бы простенький античит, который резал бы неадекватов, в идеале - еще на этапе входа на сервер, отмечая тип клиента. Плагин античита можно выбрать почти любой. Мы остановились на Grim
3. Плагины миров и режимов.
Конечно, выживание - это интересный режим, но он очень быстро надоедает, так что, дабы устроить разнообразие, мы вкатили плагин BentoBox с расширениями Skyblock и OneBlock. Просто во имя разнообразия.
Чтобы эта свистопляска работала, мы вкатили плагины Multiverse-core и Multiverse-portals. В дальнейшем пригодились и для других моментов типа создания тестового мира. Чтобы не было мучительно больно в случае ошибок - прикрутили к серверу еще и плагин бэкапов ServerBackup
4. Плагины правки, команд и защиты мира.
Удобство постройки, разметки, очистки местности, удобство в работе с сервером, поддержка телепортов, поддержка удобных команд и защита от потенциальных неадекватов с помощью регионов. Связка WorldEdit + WorldGuard + EssentialsX
5. Мелкие удобства.
Для разнообразия и удобства, были наскоро прикручены и другие плагины: сидение на ступеньках и поверхностях, лежка, добыча спавнеров, кастомные зачарования, голограммы, невидимые рамки, декоративные головы... Суммарно примерно десяток плагинов, часть из которых еще только ждет своего применения в будущих обновах сервера
Поскольку делал я это все для друзей и подписчиков из телеграма, было решено не заморачиваться и назвать сервер по имени группы - "Сервер Творческого Цеха Малкорана". Ну, или просто Сервер "Кафетерий". Логотип мне помогла нарисовать моя знакомая, набросав его в фотошопе буквально за 10 минут.
Дальше пришлось трудиться совместными усилиями друзей и подписчиков, организовывая карту сервера. Результаты наших скромных трудов на скринах ниже:
Точка спавна:
Фермы:
Храм (да, у нас в группе есть что-то типа религии, вера в Вульпес, древнейшую лису)
Кроме того, мы заморочились и сделали небольшой оплот для игроков в аду. Совсем небольшой, но довольно безопасный. По крайней мере, в него не забредают враждебные мобы.
ПВП-арена. Вот с ней мы заморочились, наверное, даже больше, чем со спавном. Находится в аду, разделена на семь сегментов-биомов, в каждом из которых можно получить бонус, крайне полезный для пвп-сражений
Мир Края тоже не остался без внимания. Правда, выдерживая традицию, мы прикрутили в качестве спавна в Краю космическую станцию.
Ну, и несколько общих видов для масштаба:
Зона мастерских (еще на этапе строительства)
Зона порта и порталов
Отдельное поселение для жителей
На все - про все у нас ушло:
- 1 старый ноут
- 120 рублей (50 гривен) на две чашки не самого лучшего кофе
- Примерно месяц на постройку всех общественных ферм и построек при условии, что играли мы по паре часов в день
Оценить эту красоту можно по адресу
Поддерживается и пиратка, и лицензия. Версия - 1.19.2. но ограниченно поддерживаются и более ранние версии.