Оглавление:
- Шаг 1: Список деталей и инструментов
- Шаг 2: настройка и подготовка Raspberry Pi
- Шаг 3: Установите выделенный сервер
- Шаг 4: Протестируйте свой сервер и пригласите друзей
- Шаг 5: Спасите мир! (с автоматическим резервным копированием)
- Шаг 6: Подключите светодиоды
- Шаг 7: запрограммируйте светодиоды для проверки состояния сервера
- Шаг 8: Сделайте ящик с рудой
- Шаг 9: Резюме, дополнительные мысли и благодарности
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Автор MrJymmFollow About: Много идей, никогда не хватает времени. Подробнее о MrJymm »
ОБНОВЛЕНИЕ, июль 2020 г. - Прежде чем приступить к работе над этим проектом, имейте в виду, что в различные программные инструменты, которые я использовал для его создания более двух лет назад, было внесено МНОГО изменений и обновлений. В результате многие шаги больше не работают так, как написано. Проект все еще может быть завершен, и он по-прежнему доставляет массу удовольствия, но, пожалуйста, ожидайте, что вам придется самостоятельно повозиться, чтобы все заработало. Некоторые решения можно найти в недавних комментариях в конце инструкции. Спасибо и удачного майнинга
Если вы поклонник игры в Minecraft, вы, вероятно, думали о том, как весело было бы иметь собственный персональный сервер, которым можно было бы поделиться с друзьями. Мои сыновья постоянно спрашивали меня об их собственном общем мире, и в конечном итоге их интерес к Minecraft объединился с моим интересом к Raspberry Pi, и родилась идея OreServer.
Этот проект покажет вам, как настроить сервер Minecraft с забавной и уникальной функцией - он построен в виде рудного блока и светится разными цветами в зависимости от того, сколько людей сейчас играет в вашем мире!
Но это еще не все! Мы также сделаем сервер доступным для всех, у кого есть версия Minecraft для ПК, чтобы вы могли поделиться адресом своего сервера и пригласить друзей в свой мир. Он будет работать круглосуточно и без выходных, так что даже если вы заняты или не дома, ваши друзья могут продолжать строительство. И мы настроим автоматическое резервное копирование на случай трагедии (в то время эта пушка TNT казалась хорошей идеей…), чтобы вы могли выполнить сброс с работы в предыдущие дни.
Шаг 1: Список деталей и инструментов
Это детали, инструменты и программное обеспечение, которые вам понадобятся для завершения этого проекта. Я добавил ссылки для справки, но большинство этих расходных материалов можно приобрести у разных поставщиков, поэтому приобретайте их там, где вам будет проще / дешевле.
Части:
-
Raspberry Pi 3 и блок питания
Они также доступны в виде набора
- Прямоугольный адаптер Micro USB
-
Карта MicroSD
Минимум 8 ГБ, но рекомендуется качественная карта на 16 или 32 ГБ
- Адафрут Неопиксель Драгоценный камень
- Три коротких провода GPIO
- Серебряная или серая нить для 3D-печати (любого типа)
- Винты 2,5 мм (4 шт.)
- Пергаментная бумага или белая папиросная бумага
Инструменты:
- Картридер MicroSD
- Паяльное оборудование
- Маленькая отвертка
- 3д принтер
Программное обеспечение:
- Майнкрафт (версия Java для ПК)
-
Распбиан Лайт ISO
НЕ версия "с настольным компьютером"
- etcher.io
- Putty или аналогичный клиент терминала SSH
- Filezilla или аналогичный FTP-клиент
Шаг 2: настройка и подготовка Raspberry Pi
Прежде чем мы сможем начать установку сервера, нам нужно выполнить некоторые базовые шаги по настройке и настройке Pi.
1. Подготовьте карту MicroSD
Во-первых, нам нужно установить операционную систему Rasbian на нашу карту MicroSD с помощью etcher.io.
- Вставьте карту MicroSD в устройство для чтения карт, а устройство для чтения карт - в порт USB на ПК.
- Запустите etcher и используйте кнопку Select Image, чтобы загрузить Rasbian Lite ISO.
- Выберите карту MicroSD для установочного диска
- Щелкните Flash!
Когда процесс завершится, etcher отсоединит диск MicroSD от системы, но нам нужно добавить еще один файл, поэтому просто отключите его и снова подключите. Теперь карта будет считываться как диск с надписью «boot». Скопируйте пустой файл с именем «ssh» на загрузочный диск, а затем снова отсоедините диск MicroSD от системы. Карта MicroSD теперь готова к установке в Raspberry Pi.
** Если вы не можете загрузить файл «ssh», его легко создать самостоятельно, просто переименовав пустой текстовый файл. Убедитесь, что вы удалили расширение «.txt». Когда все заработает, значок станет пустым, как на скриншоте. **
2. Подключитесь к терминалу Pi
Теперь, когда у Pi есть операционная система, давайте включим ее!
- Подключите проводной кабель Ethernet и блок питания к Rasberry Pi. Хотя Pi 3 имеет встроенную поддержку Wi-Fi, проводное соединение более надежное и предпочтительное для нашего сервера.
- Затем нам нужно получить IP-адрес Pi от вашего маршрутизатора. Этот шаг будет немного отличаться в зависимости от марки вашего маршрутизатора - в моем случае я ввожу 192.168.1.1 в свой браузер, чтобы войти в панель управления маршрутизатора. Вы будете искать список клиентов DHCP и запись с именем «raspberrypi». Обратите внимание на назначенный IP-адрес, в моем примере это 192.168.1.115. Теперь это также хорошая возможность установить IP-адрес как «зарезервированный» или «постоянный», чтобы позже ему не назначался другой адрес. Если у вас возникнут какие-либо трудности с этим шагом, обратитесь к документации или на сайте поддержки вашего маршрутизатора для получения подробной информации.
- Теперь мы можем открыть Putty, ввести IP-адрес Pi в поле «Имя хоста» и нажать «Открыть».
Теперь вы должны увидеть черный экран с надписью «Войти как:». Это ваш терминал Pi, и именно здесь мы будем выполнять остальную работу по настройке сервера. Помните, экраны терминалов предназначены для клавиатур! От вашей мыши здесь особо не будет толку.
3. Распи-конфиг
Чтобы завершить начальную настройку, нам нужно войти в систему, используя значения по умолчанию:
войти как: пи
пароль: малина
Теперь мы можем выполнить базовую настройку настроек Pi по умолчанию, введя следующие
sudo raspi-config
Нам нужно внести несколько изменений, и я проведу вас через них в том же порядке, в каком они пронумерованы на экране конфигурации.
- Изменить пароль пользователя - это обязательно! Всем известен пароль по умолчанию, поэтому немедленно смените его.
-
Параметры сети
Имя хоста - по умолчанию это "raspberrypi", но при желании вы можете изменить его, чтобы оно было более информативным
- -(без изменений)-
-
Параметры локализации - если вы не в Великобритании, вы захотите изменить их на свою страну. В моих примерах предполагается, что это США.
- Изменить языковой стандарт - используйте стрелку вниз, чтобы найти запись для "en_GB" со знаком * рядом с ней. Используйте ваш пробел, чтобы удалить это *, а затем спуститесь немного дальше до "en_US. UTF-8" и снова используйте пробел, чтобы пометить его *.
- Изменить часовой пояс - настройка важна для правильной работы наших задач по времени.
- Изменить раскладку клавиатуры - вы можете пропустить это, но если оставить в Великобритании, есть несколько символов клавиатуры, которые перемещаются.
-
Параметры интерфейса
- -(без изменений)-
- SSH - включите это, чтобы вы могли продолжать использовать Putty после перезагрузки Pi.
- -(без изменений)-
-
Расширенные настройки
- Разверните файловую систему - это гарантирует, что Pi может использовать все пространство, доступное на SD-карте.
- -(без изменений)-
- Разделение памяти - измените это значение на 16, чтобы освободить больше памяти для использования Minecraft.
Теперь выберите «Готово», а затем выберите «Да» для перезагрузки.
Это завершит ваш сеанс в Putty. Просто дайте ему время, чтобы завершить перезагрузку, затем снова откройте Putty и повторно подключитесь к IP-адресу Pi. Не забудьте использовать свой новый пароль!
Шаг 3: Установите выделенный сервер
Настройка серверного программного обеспечения - самый долгий, но также самый важный шаг. Мы будем проводить много времени, вводя кучу скучных команд Linux. Не позволяйте этому вас запугать! Пока вы можете копировать и вставлять, вы можете пройти через эту часть.
Сервер Minecraft довольно сложен, и запуск его на компьютере размером с Raspberry Pi требует некоторой оптимизации. Я начал с этого фантастического руководства Джеймса Чемберса, потому что у него есть несколько отличных советов по увеличению производительности сервера. Я собираюсь кратко описать процесс его установки ниже и выделить некоторые изменения и обновления, которые я сделал, но я настоятельно рекомендую вам прочитать его страницу для получения более подробной информации.
Теперь, когда вы снова вошли в систему, используя «пи» по умолчанию и новый пароль, мы можем начать вводить команды для установки файлов сервера.
Важно - многие из этих команд длинные и сложные, и их будет сложно ввести в окно терминала. Так что не делай этого! Выделите текст команды в этом окне, скопируйте его с помощью ctrl-c, а затем в окне терминала просто щелкните правой кнопкой мыши, чтобы вставить текст. Видите ли, эта мышь все-таки для чего-то годится!
На оставшейся части этого шага вы будете копировать каждую из команд в эти текстовые поля кода.
Я дам краткие объяснения того, что мы делаем по пути.
Мы начнем с обновления нашего программного обеспечения.
sudo apt-get update && sudo apt-get upgrade
Каждый раз, когда вы видите запрос на одобрение установки, введите «y» и нажмите Enter, чтобы принять и продолжить.
Minecraft работает на Java, но наша "Lite" установка Rasbian не включает его, так что давайте возьмемся за это.
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense = accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808 /jdk-8u161-linux-arm32-vfp-hflt.tar.gz
Примечание ** Когда Java обновляется до более новой версии, эта команда может устареть. Если вы получили сообщение об ошибке, вам необходимо обновить команду до последней версии. Посетите страницу загрузки Oracle Java, нажмите кнопку «Принять лицензионное соглашение», а затем щелкните правой кнопкой мыши ссылку на последнюю версию файла linux-arm32 и выберите ссылку «Копировать». Вам нужно будет использовать эту обновленную ссылку, чтобы заменить текст в приведенной выше команде, начиная с http. **
Теперь мы можем установить только что загруженные файлы Java.
судо mkdir / usr / java
cd / usr / java
Если вам пришлось изменить ссылку для загрузки для новой версии, убедитесь, что вы изменили номер версии в следующих командах, чтобы он соответствовал.
sudo tar xf ~ / jdk-8u161-linux-arm32-vfp-hflt.tar.gz
sudo update-alternatives --install / usr / bin / java java /usr/java/jdk1.8.0_161/bin/java 1000
sudo update-alternatives --install / usr / bin / javac javac /usr/java/jdk1.8.0_161/bin/javac 1000
cd ~
И, наконец, главное событие, которого вы так терпеливо ждали, давайте установим сервер Minecraft. Это специализированная версия сервера под названием Paper, в которой много оптимизаций для повышения производительности.
mkdir Paper
wget
распаковать master.zip -d Бумага
mv ~ / Paper / RaspberryPiMinecraft-master / * ~ / Paper /
cd Paper
chmod + x start.sh
wget
java -jar -Xms512M -Xmx800M paperclip.jar
Эта последняя команда запустит сервер в первый раз, и через несколько секунд вы получите сообщение об ошибке, в котором говорится, что вы должны согласиться с EULA. Откройте лицензионное соглашение с помощью следующей команды:
нано eula.txt
Измените строку с надписью «eula = false» на «eula = true». Сохраните изменения, нажав ctrl-x, затем Y, затем введите.
Примечание ** Джеймс Чемберс упоминает метод разгона вашей SD-карты в этом месте своего руководства. Я лично не пробовал этот шаг, потому что он требует высококачественной карты, а та, которую я имел в наличии, не является чем-то особенным. Я считаю, что разгон, безусловно, еще больше повысит производительность, но даже без разгона сервер работает достаточно хорошо, так что я не получил никаких жалоб от детей, играющих на нем. **
Давайте быстро взглянем на свойства сервера и внесем пару изменений.
нано server.properties
Здесь есть длинный список вещей, которые вы можете изменить на своем сервере, например, персонализировать имя сервера и MOTD, изменить игровой режим или включить PvP или командные блоки. Вы можете изменить настройки по своему усмотрению сейчас или открыть этот файл, чтобы внести другие изменения позже, но мы внесем два изменения немедленно.
максимальное количество игроков = 8
порт сервера = 25565
Восемь игроков - это максимум, который я бы рекомендовал, может быть больше, и вы, скорее всего, увидите, что производительность сервера замедлится, даже с учетом всех оптимизаций, сделанных для работы на Pi.
Порт сервера следует изменить, потому что, как и стандартный пароль «raspberry», всем известен порт по умолчанию 25565. Даже незначительное изменение на 26565 поможет защитить ваш сервер. Запишите номер порта рядом с тем, где вы сохранили IP-адрес Pi. И то, и другое вам понадобится позже.
После завершения обновления настроек сохраните изменения, нажав ctrl-x, затем Y, затем введите.
Следующий шаг в подготовке вашего сервера также займет больше всего времени после его запуска, вероятно, около часа. Эти команды предварительно сгенерируют ваш мир, а это значит, что серверу не придется делать всю эту работу позже, пока вы и ваши друзья исследуете его.
cd ~ / Paper / плагины
wget --content-disposition -E
sudo apt-get экран установки
cd Paper
./start.sh
Не будет похоже, что что-то случилось, но ваш сервер уже запущен! Для взаимодействия с сервером нам нужно использовать эту команду
экран -r майнкрафт
А затем мы предварительно сгенерируем мир:
wb world set 1000 спавн
WB мир заполнить 1000
WB заполнить подтвердить
Это часть, на которую уйдет много времени. Иди перекуси и загляни позже! Когда процесс будет завершен, выключите сервер с помощью очень простой команды
останавливаться
Это сохранит и закроет сервер и вернет вас к терминалу Raspberry Pi.
Наша последняя задача - настроить сервер на автоматический запуск при подключении или перезапуске Raspberry Pi. Мы можем сделать это, создав простой скрипт.
cd ~
нано startup.sh
Раньше мы использовали nano для редактирования пары файлов, но на этот раз мы создаем один с нуля, поэтому окно будет пустым. Скопируйте эти две строки в файл:
cd / home / pi / Paper
экран -dmS minecraft java -server -Dfile.encoding = UTF-8 -Xms512M -Xmx800M -XX: NewSize = 300M -XX: MaxNewSize = 500M -XX: + CMSIncrementalMode -XX: + UseConcMarkSweepGC -XX: + UseParNew CMSIncrementalPacing -XX: ParallelGCThreads = 4 -XX: + AggressiveOpts -XX: + AlwaysPreTouch -XX: + DisableExplicitGC -XX: SurvivorRatio = 16 -XX: TargetSurvivorRatio = 90 -jar /home/pi/Paper/paperclip.
Затем сохраните новый скрипт, нажав ctrl-x, затем Y, затем введите.
chmod + x startup.sh
chmod + x /etc/rc.local
sudo nano /etc/rc.local
В самой последней строке файла rc.local написано «exit 0». Прямо над этой строкой мы добавим следующее:
su pi -c /home/pi/startup.sh
И еще раз сохраняем изменения файла с помощью ctrl-x, затем Y, затем Enter.
перезагрузка sudo
Вы получите сообщение о том, что соединение закрыто, и вы можете закрыть окно Putty.
Вот и все! Вы прошли через скучный момент! Теперь мы готовы протестировать наш сервер!
Шаг 4: Протестируйте свой сервер и пригласите друзей
Далее мы собираемся проверить, что сервер работает, и убедиться, что наши друзья могут присоединиться.
Откройте программу запуска Minecraft на своем ПК и нажмите «Играть». Убедитесь, что вы используете последнюю версию выпуска, соответствующую серверу Paper.
На главном экране выберите «Многопользовательская игра», затем «Добавить сервер». Введите имя, которое вы хотите иметь в списке серверов, а в поле «Адрес сервера» введите IP-адрес вашего Pi и номер порта. В моем примере мы используем 192.168.1.115:26565. Убедитесь, что у вас есть двоеточие между IP-адресом и номером порта и что нет пробелов. Нажмите «Готово», а затем нажмите «Играть» на своем сервере. Через несколько мгновений вы окажетесь в совершенно новом мире!
Подожди, вернись! Не начинайте строить в одиночку, давайте пригласим друзей! К сожалению, они не могут использовать тот же IP-адрес, что и вы. Итак, чтобы это сработало, вам сначала нужно сообщить своему маршрутизатору, что люди, которые находятся за пределами вашего дома, могут подключаться к Pi. Это называется переадресацией портов, и точный процесс будет немного отличаться в зависимости от вашего маршрутизатора. Я приложил снимок экрана, на котором показано, как это выглядит на моем маршрутизаторе марки TP Link, но вам может потребоваться посетить сайт поддержки маршрутизаторов для получения дополнительной информации.
В настройках перенаправления портов введите номер порта, который вы выбрали для своего сервера, а затем IP-адрес для вашего Raspberry Pi. Теперь ваш маршрутизатор знает, что когда ваши друзья пытаются подключиться к этому номеру порта, они должны быть направлены на Pi.
Затем нам нужно использовать бесплатную службу, такую как No-IP, для создания вашего собственного уникального адреса, называемого именем хоста. Вы также настроите свой маршрутизатор или компьютер, чтобы поддерживать IP-адрес имени хоста в актуальном состоянии.
Следуйте инструкциям в их Руководстве по установке.
Когда вы закончите настройку своей учетной записи без IP, ваши друзья смогут подключиться к вашему серверу, введя ваше новое имя хоста и номер порта в разделе «Адрес сервера» на экране многопользовательской игры Minecraft. Например, hostname.ddns.net:26565.
Шаг 5: Спасите мир! (с автоматическим резервным копированием)
Этот шаг не является обязательным, но он может спасти вас. Ваш мир сталкивается с некоторыми серьезными рисками, будь то поврежденная карта MicroSD, случайные шалости или несчастья, или просто эти надоедливые ползучие вирусы. Чтобы защитить вашу тяжелую работу, сервер будет автоматически сохранять ваш файл мира каждую ночь. Чтобы предотвратить заполнение вашей карты MicroSD, мы также удалим все резервные копии, созданные более недели назад. После этого вы можете легко скопировать их на свой компьютер или другой резервный диск для еще большей безопасности.
Мы начнем с использования Putty для повторного подключения к нашему Pi, чтобы создать еще один новый скрипт.
нано dailybackup.sh
Скопируйте в скрипт следующие команды:
# Остановить сервер Minecraft
screen -x minecraft -X stuff stop ^ M sleep 5 # Скопировать каталог Paper в резервную копию / PaperYYDDMM cp -a Paper /. backup / Paper $ (date +% F) # Удалять резервные копии старше 7 дней find backup / * -mindepth 0 -maxdepth 0 -type d -ctime +7 -exec rm -rf {};
А затем скажите это вместе со мной - сохраните файл, нажав ctrl-x, Y, введите.
Теперь мы создадим повторяющуюся задачу для запуска сценария резервного копирования каждую ночь с помощью crontab.
crontab -e
При первом запуске этой команды вам будет предоставлен выбор редакторов, выберите номер 2 для Nano.
Это откроет специальный файл для планирования задач. Внизу этого файла добавьте следующие строки:
5 0 * * * /home/pi/dailybackup.sh
15 0 * * * перезагрузка sudo
Первая строка указывает Pi запускать ваш сценарий резервного копирования каждую ночь в 0:05. Вторая строка говорит Pi перезагрузиться через десять минут. Если вы предпочитаете другое время для резервного копирования и перезагрузки, вы можете изменить эти строки по своему усмотрению. Просто помните, что первое число - это минуты, а второе число - час в 24-часовом формате. Три звездочки гарантируют, что этот скрипт будет запускаться каждый день.
После того, как ваша система проработает какое-то время, вы можете выработать привычку сохранять резервные копии в другом месте с карты MicroSD Pi. Эта задача очень проста, если подключиться к вашему серверу с помощью Filezilla. Просто перетащите папку резервного копирования с правой стороны Filezilla и поместите ее на свой компьютер. Как только он скопирует все файлы, вы можете хранить их столько, сколько захотите!
А если случится трагедия и вам нужно вернуться к одному из файлов сохранения, это быстрая и простая процедура. Сначала убедитесь, что вы остановили сервер:
экран -r майнкрафт
останавливаться
Затем используйте Filezilla, чтобы удалить каталог Paper и заменить его, перетащив один из сохраненных каталогов обратно на Pi. Убедитесь, что вы удалили дату из имени каталога, чтобы он снова получил имя просто Paper. Затем вы можете перезапустить свой сервер с помощью
./startup.sh
И вот так вы можете вернуться к строительству!
Шаг 6: Подключите светодиоды
Пришло время добавить света! Здесь ваш сервер начинает становиться больше, чем просто пылесборником за вашим монитором. Этот шаг покажет вам, как припаять и прикрепить Neopixel Jewel к Raspberry Pi, а затем установить программное обеспечение, необходимое для работы светодиодов. Вскоре после этого вам никогда не придется задаваться вопросом, ждет ли кто-нибудь онлайн, чтобы поиграть с вами, потому что ваш сервер скажет вам с первого взгляда!
Neopixel от Adafruit - фантастические светодиоды. Они RGB, что означает, что они могут светиться любым цветом, который вы хотите. Они адресные, что означает, что вы можете использовать программные команды, чтобы изменить их цвет, когда захотите. Для получения более подробной информации о том, как Neopixels работают с Raspberry Pi, ознакомьтесь с официальным руководством Adafruit.
У Jewel есть 7 светодиодов, которые дают нам много ярких ярких цветов. Также имеется пять точек контакта под пайку, но мы будем использовать только три. Я настоятельно рекомендую вам использовать три провода разного цвета, чтобы не перепутать их при подключении к Pi позже. В моих примерах фотографий я использовал красный, черный и коричневый цвета.
Перед тем, как начать этот шаг, вам нужно полностью выключить Raspberry Pi. Введите эти команды, а затем отключите питание Pi.
экран -r майнкрафт
останавливаться
sudo shutdown -h сейчас
Отрежьте три внутренних провода GPIO, достаточно длинных, чтобы у вас было достаточно проводов для работы во время пайки. Вы всегда можете зациклить лишнее, как я. Осторожно припаяйте провода к контактам на джевеле. Затем прикрепите женские разъемы к контактам Raspberry Pi GPIO:
PWR к контакту 1 = 3,3 В
GND к контакту 6 = Земля
IN к контакту 12 = GPIO18
Как только Jewel будет на месте, вы можете снова подключить Pi и использовать Putty для подключения и установки программного обеспечения LED с помощью следующих команд. Обратите внимание на места, которые могут попросить вас ввести Y, чтобы продолжить установку.
sudo apt-get install build-essential python-dev git
sudo apt-get install scons
sudo apt-get install swig
git clone
cd rpi_ws281x
бра
Важно ** На следующем шаге мы сделаем небольшое дополнение к библиотеке neopixel. Это нужно, чтобы избежать ошибки памяти, которая сводила меня с ума на несколько дней. Без него светодиоды будут работать несколько часов, а затем перестанут корректно обновляться. **
cd python
сборка python setup.py
Судо нано сборка / lib.linux-armv7l-2.7 / neopixel.py
Используйте стрелку вниз, чтобы прокрутить мимо строки с надписью «class Adafruit_NeoPixel (object):». Недалеко от нее вы найдете раздел с синим текстом, в котором написано def _cleanup (self). Вы скопируете следующую строку в этот раздел, точно так, как показано на скриншоте выше.
ws.ws2811_fini (self._leds)
И еще раз нам нужно сохранить изменения с помощью ctrl-x, Y, enter.
cd ~
компакт-диск rpi_ws281x / python
sudo python setup.py установить
Затем нам нужно указать в тестовом файле количество светодиодов, которые у нас есть, и тогда мы сможем их зажечь!
CD примеры
sudo nano strandtest.py
Найдите строку с надписью LED_COUNT = 16 и измените ее на LED_COUNT = 7, затем ctrl-x, Y, введите для сохранения.
sudo python strandtest.py
Если все прошло правильно, вас только что ослепил вспыхивающий радужный взрыв. Когда вы снова сможете видеть, нажмите ctrl-c, чтобы выключить свет. Светодиоды не погаснут, но перестанут мигать, и пока этого достаточно.
Шаг 7: запрограммируйте светодиоды для проверки состояния сервера
Когда наши светодиоды установлены и готовы, самое время заставить их реагировать на сервер. В частности, мы заставим их указывать текущее количество игроков на сервере:
Игроки = Руда
- 0 = красный камень
- 1-2 = Железо
- 3-4 = Золото
- 5-6 = Изумруд
- 7-8 = Бриллиант
Если сервер не работает, Ореблок будет угольным (светодиоды выключены). И в качестве дополнительного бонуса, если проверка статуса не может найти подключение к Интернету, светодиоды будут мигать желтым!
Чтобы получить количество игроков с сервера, мы собираемся установить mcstatus от Натана Адамса, одного из разработчиков игр Mojang.
sudo apt-get install python-pip
sudo pip установить mcstatus
Затем нам нужно скопировать два приведенных ниже скрипта Python, mcled.py и ledoff.py, на наш сервер с Filezilla. Просто перетащите два сценария в поле справа, как показано на снимке экрана.
Идите вперед и протестируйте ledoff.py прямо сейчас, чтобы мы могли выключить светодиоды, которые остались гореть на предыдущем шаге.
sudo python ledoff.py
При запуске скриптов вручную таким образом вы получите сообщение «Ошибка сегментации». Это нерешенная проблема в библиотеке Neopixel.py, которая не влияет на то, что мы делаем.
Если вам интересно, как работают эти сценарии, вы можете открыть их в любом текстовом редакторе на своем ПК или с помощью nano на экране терминала. Только будьте осторожны, чтобы случайно не сохранить любые изменения, которые могут помешать их работе!
Примечание. ** mcled.py предполагает, что вы используете порт 26565 из моего примера. Если вы используете другой порт, вы должны изменить сценарий, чтобы он соответствовал следующим шагам **
sudo nano mcled.py
Найдите красную строку с текстом «# Получить количество игроков на сервере», а под ней вы увидите строку с зеленым текстом с надписью «localhost» и номером порта рядом с ним. Измените номер порта, чтобы он соответствовал вашему, и, как всегда, сохраните изменения с помощью ctrl-x, Y, enter.
Чтобы получать постоянные обновления статуса сервера, мы скажем Pi запускать скрипт mcled.py каждую минуту, а это означает настройку еще пары строк в crontab.
crontab -e
Вы увидите две строки, которые мы добавили ранее для планирования резервного копирования и перезагрузки. Теперь добавим еще два:
* 6-20 * * * sudo python mcled.py
0 21 * * * sudo python ledoff.py
Первая строка указывает Pi запускать mcled.py каждую минуту каждого часа с 6:00 до 20:59. Вторая строка говорит Pi выключить светодиоды в 21:00. Это личное предпочтение, потому что к тому времени мои дети больше не играют в Minecraft, хотя сервер продолжает работать. У нас также есть OreServer, который находится на видном месте над телевизором, и яркий свет вечером становится раздражающим. Вы, конечно, можете изменить эти две строки, чтобы светодиоды работали без остановки, или выключились позже, или что-то еще, что подходит для ваших целей.
Вскоре после того, как ваши изменения будут сохранены (вам надоели ctrl-x, Y, введите еще?) Скрипт будет вызван, и ваш Jewel снова загорится. Скорее всего, он будет красным, что означает, что сервер работает, но не используется. Найдите минутку, чтобы запустить Minecraft и присоединиться к серверу, как мы это делали во время нашего предыдущего теста. Вскоре после того, как вы подключитесь, светодиоды должны переключиться на белый цвет, а затем снова на красный при отключении.
Шаг 8: Сделайте ящик с рудой
Последний штрих, чтобы собрать все это воедино, - это корпус Oreblock для Raspberry Pi. Чтобы сделать корпус Ore, я использовал 3D-принтер Lulzbot TAZ6 в моем местном производственном пространстве RiverCityLabs. Я предоставил свои файлы. STL для печати в качестве основы и вверху ниже. Если у вас нет собственного 3D-принтера, поищите в своем районе сообщество производителей, они великолепны! Или у вас может быть местная библиотека или школа, где есть принтеры, доступные для всех. Есть также несколько онлайн-сервисов 3D-печати, которые могут напечатать и отправить вам дизайн. Или вы можете проявить творческий подход! Ничто не мешает вам сделать коробку из картона или груду серого Lego, или что-нибудь еще, что у вас есть под рукой.
Некоторые важные замечания при настройке файлов 3D-принтера:
- Распечатайте файл без каких-либо изменений масштаба, чтобы убедиться, что монтажные отверстия совпадают с Pi.
- Переверните верхнюю часть вверх дном, чтобы открытый конец был обращен вверх.
- Обязательно включите настройки опоры, чтобы выступы на стенах не испачкались.
После завершения печати вы можете прикрепить Pi к основанию с помощью четырех винтов 2,5 мм. Я не могу найти ссылку на настоящий продукт, но я нашел их в упаковке из 2 штук в Menards, что было намного лучше, чем заказывать коробку из 100 штук на Amazon.
Снимите с верха весь поддерживающий материал и отрежьте лист пергаментной бумаги или белой папиросной бумаги, чтобы поместиться внутрь. Это рассеивает свет светодиодов, что делает эффект свечения в миллион раз лучше, чем просто оставлять отверстия открытыми.
Присоедините адаптер MicroUSB под прямым углом к порту питания так, чтобы кабель выходил из задней части корпуса рядом с портом Ethernet.
Теперь вы можете снова подключить шнур питания и сетевой шнур, установить Top на место и наслаждаться!
Шаг 9: Резюме, дополнительные мысли и благодарности
Главный приз Minecraft Challenge 2018