Оглавление:

Мобильное игровое устройство Raspberry Pi: 11 шагов
Мобильное игровое устройство Raspberry Pi: 11 шагов

Видео: Мобильное игровое устройство Raspberry Pi: 11 шагов

Видео: Мобильное игровое устройство Raspberry Pi: 11 шагов
Видео: Raspberry Pi - Что нужно знать? Что нужно иметь? Достаточно купить только плату? 2024, Ноябрь
Anonim
Мобильное игровое устройство Raspberry Pi
Мобильное игровое устройство Raspberry Pi

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

Это документация по сборке моего мобильного игрового устройства Raspberry Pi, вдохновленная Nintendo Switch. Стоимость составляет чуть менее 200 долларов, и он позволяет запускать многие старые игры с использованием RetroPie. RetroPie имеет более 30 встроенных эмуляторов, поэтому запускать старые игры очень просто, если у вас есть ПЗУ!

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

Надеюсь, вы сможете использовать инструкции в этом руководстве, чтобы создать собственное игровое устройство Raspberry Pi. Если да, пожалуйста, сообщите мне, нажав "Я сделал это!" в конце Инструкции.

Также, если вам понравился этот проект, проголосуйте за него, как в конкурсе Game Life. Спасибо!

Шаг 1: Список деталей

НАВЫКИ И УМЕНИЯ

Вам нужно будет уметь обращаться с паяльником, знать основы Python и немного разбираться в деревообработке.

Способность уничтожать видеоигры тоже обязательна (хотя я все еще над этим работаю …)

ЧАСТИ

1x Raspberry Pi 2 или 3 - 35 долларов

1x официальный 7-дюймовый сенсорный экран Raspberry Pi - 75 долларов США

1x Micro SD-карта (минимум 8 ГБ, но вы, вероятно, захотите больше для своих ПЗУ!)

1x литий-ионный аккумулятор - 3,7 В, 4400 мАч - 19,95 долларов США (https://www.adafruit.com/product/354)

2 аналоговых 2-х осевых джойстика для большого пальца - 5,95 долл. США (https://www.adafruit.com/product/512)

1x зарядное устройство PowerBoost 1000 - 19,95 долларов США (https://www.adafruit.com/product/2465)

1x MCP3008 - 8-канальный 10-разрядный АЦП - 3,75 доллара (https://www.adafruit.com/product/856)

1x Adafruit Trinket - 6,95 долларов США (https://www.adafruit.com/product/1500)

4x 3 мм светодиода

Ассортимент тактильных кнопок - (круглая: https://www.adafruit.com/product/1009 и квадратная:

Ассортимент проводов, резисторов и других мелких компонентов

Перфорированная доска

1/4 дюйма дерева и 1/2 дюйма дерева для сборки корпуса

ИНСТРУМЕНТЫ

Паяльник

Игольчатые плоскогубцы

Инструмент для зачистки проводов

Также может пригодиться паяльная станция / рука помощи.

Сверлильный станок

Ленточная пила / спиральная пила

Настольная пила

Шлифовальный станок

Инструмент Dremel

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

RetroPie (https://retropie.org.uk)

Весь код и схемы Fritzing доступны в этом файле Github.

Вам также понадобится другой компьютер для загрузки RetroPie и ПЗУ на Raspberry Pi. Этому компьютеру потребуется Etcher.io, Win32DiskImager или другое приложение, которое может записывать RetroPie на SD-карту, вместе с последней версией Arduino IDE. Если вы используете Windows, вам необходимо установить PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), чтобы подключиться к Raspberry Pi по SSH.

Шаг 2: макет ваших схем

Я начал с макета своих схем, чтобы убедиться, что все работает по плану.

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

Все элементы управления подключены к 3,3 В, подключение к 5 В может повредить Raspberry Pi

Проводка контроллера

Всего имеется 12 кнопок управления. 4 для A / B / X / Y, 4 для DPAD, по одному для каждого Start и Select и две плечевые кнопки. У вас может быть 4 плечевых кнопки в зависимости от места, но для большинства игр RetroPie, для которых требуются плечевые кнопки, требуется только две (я думаю…).

Кнопки подключены с одной стороны к 3,3 В через резистор 10 кОм, а с той же стороны подключены к соответствующему выводу GPIO через резистор 1 кОм. Другая сторона подключена непосредственно к GND (земле). Если логика вашей схемы отличается, убедитесь, что логика в вашем коде отражает это! В коде, который я предоставил, это может работать в любом случае, но не цитируйте меня по этому поводу;)

Джойстики подключены к АЦП MCP3008 (аналого-цифровой преобразователь). С одной стороны 8 каналов, с другой - интерфейс SPI. Убедитесь, что вы подключаете выходы джойстиков к правильной стороне АЦП! X, Y и SEL (выбор кнопки) джойстиков подключены к АЦП. Вывод SEL не аналоговый, но для экономии на выводах GPIO я подключил их к АЦП. Я подключил резистор к контактам SEL на 3,3 В, так как на выходе устанавливается плавающее значение, когда он не нажат, а затем замыкается на землю при нажатии.

АЦП подключен к Raspberry Pi через 4 контакта, но некоторые контакты не требуются (насколько я знаю. Контакты на схеме были протестированы и работали нормально, вместе с некоторыми другими). Как я уже сказал выше, убедитесь, что ваш код отражает ваше оборудование!

Электропроводка

Вам необходимо сначала загрузить код для Trinket из Arduino IDE. Откройте файл TrinketRPi.ino в среде Arduino IDE, выберите свою плату и порт в меню инструментов и нажмите кнопку загрузки.

Выход 5 В PowerBoost подключен непосредственно к контакту 5 В GPIO Raspberry Pi и контакту 5 В сенсорного экрана, а земля PowerBoost подключена к контактам заземления Pi и сенсорного экрана. Брелок питается от вывода 3.3v GPIO Raspberry Pi.

Брелок Adafruit используется для управления мощностью. Контакт 0 на Trinket подключен к GPIO 15 (не физическому 15) на Raspberry Pi, а контакт 2 на Trinket подключен к контакту EN на PowerBoost. Наряду с этим, кнопка питания подключена между BAT и EN на PowerBoost. Когда эта кнопка нажимается и удерживается около 5 секунд (время, необходимое для запуска Trinket), все включается. При отпускании Trinket удерживает контакт 2 HIGH (подключенный к контакту EN на PowerBoost), поддерживая питание системы.

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

Когда Pi запускается, контакт 15 устанавливается на HIGH (Controller.py), чтобы уведомить Trinket о том, что он включен. Когда Pi каким-либо образом выключен, контакт 15 становится НИЗКИМ, в результате чего Trinket удерживает питание в течение ~ 20 секунд, а затем полностью отключает питание.

С сожалением вынужден сообщить, что я внес в него некоторые изменения, которые теперь похоронены в ограждении, и я не уверен, что я сделал, поскольку этот проект был создан некоторое время назад. Этот макет должен работать, но, пожалуйста, проверьте его, прежде чем запихивать в недоступное место!

Вывод BAT PowerBoost подключен к АЦП для считывания уровня заряда батареи. Резистор 6,8 кОм соединяет вывод BAT с каналом АЦП, а другой резистор 10 кОм соединяет вывод BAT с GND. Это позволяет АЦП получать выходное напряжение батареи и приблизительный уровень заряда батареи. При зарядке выход батареи будет 5 В, поэтому нет никакого способа узнать уровень заряда батареи во время зарядки с этой настройкой.

Если хотите, вы можете подключить VBUS к PowerBoost так же, как BAT; это позволяет узнать, заряжается ли аккумулятор.

Светодиодные индикаторы

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

Каждый 3-миллиметровый светодиод подключается к выводу GPIO через резистор 100 Ом и обратно на землю. Мои светодиоды зеленые, убедитесь, что вы выбрали подходящие резисторы для светодиодов других цветов, так как у них разные требования к питанию!

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

Шаг 3: Установите программное обеспечение

Установите программное обеспечение
Установите программное обеспечение

Для загрузки RetroPie на SD-карту вам понадобится такое приложение, как Etcher.io (рекомендуется) или Win32DiskImager, а также операционная система RetroPie по ссылке в начале.

Чтобы использовать Etcher, сначала вставьте карту micro SD в компьютер. Откройте Etcher и нажмите «Выбрать изображение». Перейдите в папку, в которую вы загрузили RetroPie, выберите ее и нажмите «Открыть». Затем нажмите «Выбрать диск» и выберите свою SD-карту из списка. Убедитесь, что вы выбрали правильную SD-карту, так как она сотрет ее! Нажмите «Flash» и дождитесь завершения. После этого SD-карта будет автоматически извлечена, поэтому ее можно безопасно удалить с компьютера.

Если у вас нет Raspberry Pi 3, вам понадобится ключ Wi-Fi. На этом этапе может пригодиться игровой контроллер, но требуется только клавиатура. Вставьте SD-карту в Raspberry Pi, подключите ее к монитору (сенсорный экран работает нормально) и подключите питание. После загрузки RetroPie вам нужно будет настроить элементы управления. Выберите контроллер / клавиатуру и следуйте инструкциям. После этого перейдите к настройкам WiFi в меню RetroPie и настройте свой WiFi.

Вам также потребуется включить SSH. Вернитесь в меню RetroPie и выберите raspi-config из списка (я думаю, что это то, где он находится). В разделе интерфейсов выберите SSH. Он спросит, хотите ли вы включить SSH. Выберите "Да".

Возможно, вам придется перезагрузить Pi сейчас. После перезагрузки вернитесь в меню RetroPie. Я считаю, что есть параметр IP-адреса или имени хоста, который сообщит вам IP-адрес Raspberry Pi. Скопируйте это на лист бумаги или просто оставьте это меню пока открытым.

На вашем компьютере вам нужно будет подключиться к Raspberry Pi по SSH.

Если вы работаете в Windows, загрузите, установите и откройте PuTTY (ссылка в списке частей) и установите в поле «Имя хоста (или IP-адрес)» имя хоста вашего Raspberry Pi, затем нажмите «Открыть», чтобы начать сеанс.

На Mac и Linux вы можете просто открыть терминал и ввести

$ ssh pi @ имя хоста

заменив «hostname» на IP-адрес, который вы получили на Raspberry Pi. Обратите внимание, что $ не вводится в терминал, это просто означает, что это новое приглашение терминала.

Далее введите

$ nano /home/pi/Controller.py

и вставьте в него содержимое файла Controller.py из Github. Controller.py - это скрипт на Python, который обрабатывает все элементы управления, такие как джойстики и кнопки.

Вам нужно будет изменить номера контактов, чтобы они соответствовали вашим аппаратным средствам.

Нажмите CTRL-X или CMD-X, а затем Y, чтобы сохранить файл. Далее введите

$ sudo nano /etc/rc.local

затем введите эту строку в файл:

sudo python3 /home/pi/Controller.py &

затем нажмите CTRL-X (Windows) или CMD-X (Mac), а затем Y (без CTRL / CMD), чтобы сохранить. Это заставляет скрипт Controller.py запускаться при загрузке.

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

$ sudo ~ / RetroPie-Setup / retropie_setup.sh

и перейдите к настройке станции эмуляции через

Управление пакетами -> Базовые пакеты -> станция эмуляции -> Конфигурация или Конфигурация / Инструменты -> станция эмуляции и выберите вариант Очистить / сбросить входную конфигурацию станции эмуляции.

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

На этом этапе вы можете загрузить свои ПЗУ в Raspberry Pi. Есть много разных способов сделать это, и я считаю эти видео самыми полезными:

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

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

Использование обоих вариантов позволит лучше контролировать установку RetroPie, но для передачи ПЗУ необходим только один. Выберите тот, который вам больше всего подходит.

Шаг 4: Подготовьте Raspberry Pi и сенсорный экран

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

Прежде всего, это порты USB и Ethernet. Припой с них удалить сложно, так как он имеет высокую температуру плавления. Я отрезал большую часть каждого порта ножницей для жести, а затем распаял оставшиеся части. Будьте осторожны при удалении этих портов, так как некоторые более мелкие компоненты могут быть легко сбиты с Raspberry Pi (исходя из опыта).

Один порт USB подключен (не напрямую) к недавно открывшимся паяным контактам USB на Raspberry Pi. Это позволяет подключать его к боковой стороне корпуса.

Выходной порт USB был удален с сенсорного экрана таким же образом.

Далее распаял контакты GPIO. Я обнаружил, что самый простой способ сделать это - сначала отрезать черную пластиковую часть в нижней части контактов GPIO. Это позволяет отпаивать каждый штифт отдельно. Мне не удалось распаять заземляющие контакты из-за припоя с более высокой температурой плавления, но позже их можно сократить.

Шаг 5: Создайте схемы для элементов управления

Создать схемы для элементов управления
Создать схемы для элементов управления
Создать схемы для элементов управления
Создать схемы для элементов управления

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

Будет два набора из 4 кнопок в форме ромба для DPAD и для A / B / X / Y. Я забыл сфотографировать свои, когда собирал его, но разобраться с макетом не должно быть очень сложно. Мои кнопки почти касались двух углов каждая. Кнопки Start / Select могут быть припаяны к отдельной перфокартах, или вы можете подключить их к перфорированной плате кнопок A / B / X / Y. Плечевые кнопки также должны быть припаяны к отдельным перфорированным платам.

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

Светодиоды были припаяны к одной полоске перфорированной платы, как и АЦП.

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

Вы можете подождать, прежде чем паять какие-либо провода к Raspberry Pi или между секциями перфорированной платы, пока не узнаете схему своего корпуса. Я этого не сделал, и это усложняло установку всего позже (ой).

Шаг 6: Создание дела

Создание дела
Создание дела
Создание дела
Создание дела
Создание дела
Создание дела
Создание дела
Создание дела

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

Передняя, верхняя и задняя части сделаны из дерева толщиной 1/4 дюйма (если я правильно помню), а боковые стороны и низ сделаны из дерева 1/2 дюйма.

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

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

Большое отверстие для сенсорного экрана измерялось от металлической секции на задней стороне сенсорного экрана. Я начал с того, что просверлил отверстие около одного края экрана, снял один конец пилы для прокрутки, пропустил его через отверстие и снова прикрепил, чтобы я мог вырезать отверстие. Небольшой недостаток был сделан в прямоугольном отверстии для прохода ленточного кабеля на задней панели экрана (на фото выше). Я использовал инструмент Dremel, чтобы сбрить часть сбоку от этого отверстия, чтобы сенсорный экран плотно прилегал к корпусу.

Верхняя часть корпуса была просверлена примерно так же, с прямоугольными отверстиями для HDMI, A / V-разъема, USB-порта и порта для зарядки. Raspberry Pi расположен прямо рядом с верхней частью корпуса, поэтому кабели HDMI и A / V не нужны. Я, вероятно, должен был использовать удлинители, так как это было несколько тесновато.

В задней части корпуса есть шесть отверстий для вентиляции. У них нет определенного размера или макета, поэтому вы можете сделать из них крутой узор! Я забыл просверлить отверстие за световыми индикаторами зарядки PowerBoost, поэтому мне нужно держать устройство прямо так, чтобы я мог видеть их через вентиляционные отверстия. Вы можете просверлить небольшое отверстие в задней части корпуса, чтобы вы могли их видеть!

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

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

Шаг 7: Завершение работы с электроникой и тестовая установка

Завершение работы с электроникой и тестовая установка
Завершение работы с электроникой и тестовая установка
Завершение работы с электроникой и тестовая установка
Завершение работы с электроникой и тестовая установка

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

Провода можно напрямую припаять к Raspberry Pi, просто убедитесь, что вы дважды проверили размещение, прежде чем делать что-то постоянное!

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

Проверьте отверстия и расстояние, чтобы убедиться, что ваш макет работает!

Шаг 8: Покраска

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

Шаг 9: Установка компонентов

Установка компонентов
Установка компонентов
Установка компонентов
Установка компонентов

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

Для джойстиков я сделал небольшие «стойки», используя дюбеля и небольшие куски дерева, которые затем привинчивались и / или приклеивались к монтажным отверстиям в монтажных панелях. Я использовал суперклей Gorilla, он быстро склеивается и легко соединяет древесину и паркетную доску. Одну панель для подключения джойстика пришлось обрезать с одной стороны с помощью ленточной шлифовальной машины, чтобы она лучше подходила.

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

У PowerBoost был небольшой деревянный брусок, приклеенный ко дну, который затем был приклеен к боковой стороне корпуса.

Светодиоды просто приклеили прямо к корпусу. Я обнаружил, что суперклей «сжигал» краску, если она попала снаружи при установке светодиодов, поэтому будьте осторожны при этом.

После подключения АКБ он был приклеен к нижней части корпуса двусторонним скотчем из поролона, который вроде держится хорошо.

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

Шаг 10: Завершение

Заканчивать
Заканчивать

Теперь, когда оборудование готово, вы можете завершить настройку элементов управления в RetroPie. Сначала подключите адаптер питания 5 В, 2,5 А или любой официальный адаптер питания Raspberry Pi, так как ваша батарея может еще не заряжаться. Убедитесь, что у вас есть минимум 2,5 А, если ваш Pi включен, пока вы его заряжаете, так как мощность делится между схемой зарядки PowerBoost и Raspberry Pi. Если вы заряжаете его, когда Pi выключен, любое зарядное устройство должно работать. Загрузите Raspberry Pi, удерживая кнопку питания около 5 секунд. Я обнаружил, что моя по какой-то причине не загружается при подключении к сети, поэтому вам, возможно, придется заряжать аккумулятор, пока не загорится зеленый индикатор на PowerBoost (аккумулятор заряжен), а затем отключить его. После запуска RetroPie вам нужно будет снова настроить контроллер, только на этот раз это будет контроллер Python. После того, как вы настроили элементы управления, убедитесь, что все работает, запустив любимую игру и протестировав ее!

Шаг 11: Заключительные слова и благодарности

Поздравляю! Вы создали собственное мобильное игровое устройство Raspberry Pi! Получайте удовольствие, играя в игры на ходу и демонстрируя это своим друзьям!

Вот несколько вещей, которые я бы сделал по-другому:

- Использование Arduino для управления вместо прямого подключения к Raspberry Pi. Несколько раз я пережигал контакт GPIO, и (я считаю) Arduino имеет большую защиту контактов, чем Pi.

- 3D-печать была бы хороша для чехла, но, к сожалению, у меня его нет (пока)

- Проводка спланирована лучше. Я как бы бросился прямо в этот проект, но немного поздно понял, что мне нужно было еще кое-что спланировать:)

- Отверстия для светодиодов состояния зарядки. Светодиоды индикатора зарядки на PowerBoost показывают, заряжен аккумулятор или нет, и я забыл просверлить отверстие, чтобы их было видно. Хорошим местом, вероятно, будет задняя часть корпуса за PowerBoost или сверху над светодиодами.

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

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

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

Спасибо, что прочитали это руководство!

Рекомендуемые: