エントリー

カテゴリー「Raspberry Pi」の検索結果は以下のとおりです。

ページ移動

  • ページ
  • 1
  • 2
  • 3
  • 4

ラズパイゲームエミュレータ検証

YouTubeを観ていると中華のエミュ専用機の(性能,外観ともに)良さそうな物が紹介されている

RG350P.jpg

中身のエミュはラズパイでも実装されているRecalboxで快適に動作するとの事

ならばラズパイで評価してみることにした

調べてみると現在ラズパイで動作する代表的なエミュは,RetroPie,Lakka,Recalbox,Batoceraの4種ある

Lakkaは前に試用してみてイマイチだったので,今回は残りの2種(Recalbox,Batocera)を検証した

ラズパイ4版は起動しない

最新のRetroPie4.7.1と同じくRecalbox,Batoceraをサイトからラズパイ4専用のイメージをダウンロードしてmSDに書き込み電源投入しても全く画面に表示されず起動しない

尚,ラズパイ3(当然ラズパイ3のイメージで)は起動した

そこでHDMI関係かと考えHDMIケーブルを外して電源投入するとBatoceraは画面なしで起動した

画面なしで初期動作した状態で,しばらくするとSSHでログインすることができた

しかしHDMIを接続すると起動しない

これはどうやらHDMIの接続でHDMIを使用しようとしてドライバーをロードできていないのではないかと思われる

①旧rasbianをupgradeして動作したmSDの/bootのファイルを全て上書きコピー >>起動しない

②旧rasbianをupgradeして動作したmSDの/boot内のドライバーらしきファイルを全てコピー >>起動画面が表示されたがUSBエラーで停止

③旧rasbianをupgradeして動作したmSDの/bootのファイルで上書きしないでコピー(つまり存在しないファイルのみ)>>起動

つまり不足ファイルがあるということだろう(何なのかは調べ挙げていない)

そしてRecalboxも(対応3)で起動した(こちらは対応2でも対応1と同じだったのでBatoceraとは状況が異なる)

試用&評価

BatoceraはRecalboxの派生らしいので良く似ている

(良い)

  • エミュできるハードが最初から決まっているので必要な設定はできている
  • ROMファイルをPCからコピーするためのSAMBAも設定されている
  • メニューの日本語化可能
  • ハードのイメージが出てくるので判り易い
  • ゲーム画面が凝っている(全画面を無駄なく使用)

(いまいち)

  • 各ハードのエミュソフトの変更が面倒
  • 最初にコントローラ設定しないと嵌るのに初回起動時に設定が強制でない
  • メニュー画面時の音が消せない(Batoceraのみ)
  • NDSが使えない(新しいハードが追加できないのか?)
  • 時刻がJSTにできない(設定方法が不明)

BatoceraはRecalboxともに簡単にエミュしたい人,linuxのノービスレベルの人向けなんだろうと思われる

特に性能が良い訳でもなかったので拙者はRetroPieで十分である

参考

RetroPie : https://retropie.org.uk/ pi/raspberry

Lakka : http://www.lakka.tv/

Recalbox : https://www.recalbox.com/ root/recalboxroot

Batocera : https://batocera.org/ root/linux

ラズパイ4で「Raspberry Pi OS」が起動しない

先日,RetroPie4.7.1を試したが起動しなかった

状況としては

  • 電源ONで赤LEDが点灯,緑LEDが暫く点滅した後,いくら(5分位)待っても画面に何も表示されない
  • 電源の問題はなくmSDをアクセスしているのでIPLは動作している
  • mSDのパーティションを確認しても変化していないのでbootの途中で停止していると考えられる
  • 1年前にマニュアルインストールで構築したレトロパイmSDは起動する

少し色々と考えられることをやってみた結果

  • mSDカードの問題かと他のメーカーのカードでも試したが不可
  • config.txtを編集してHDMI出力を指定したが不可でセーフモードにしたが不可
  • 最新の「Raspberry Pi OS」(2021-01-11-raspios-buster-armhf-lite)で起動したが不可(ラズパイ用のOS名が「Raspbian」から「Raspberry Pi OS」になったようだ)

WS2021020501.png

そこで1年前のRaspbian(2020-02-05-raspbian-buster-lite)をセットアップして試してみたところ正常動作した

そしてアップグレード後も問題なく動作したので,去年の11月あたりから提供されているラズパイ4対応版の「Raspberry Pi OS」が動作しないのではないかということになる(当然ながら利用しているRetroPi4も動作しない)

$ cat /proc/version
Linux version 5.10.11-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1399 SMP Thu Jan 28 12:09:48 GMT 2021
$ cat /etc/debian_version
10.7
$

しかし,最新OSに関して特に問題があるという情報がネットで流れていないので,もしかすると拙者が持っているラズパイ4は何らかのハードが異なり起動しないのかもしれない

最近のOSバージョンではラズパイ4だけでなくラズパイ400も対応になっているので,boot時のハード切り分けに問題があるのではないかと考えてしまう

結局,アップグレードした「Raspberry Pi OS」を使いレトロパイをマニュアルインストールして最新版のエミュレータを動作させた

尚,音は問題なく出たので操作する必要はない

RetroPie4.7.1を試したが起動しない

久しぶりにレトロパイを検索してみるとラズパイ4対応のRetroPie4.7.1があったので試してみた

折角なので「rpi-imager」でmSDカードを構築

WS2021020202.png

が・・・起動しない・・・何故だ?

昔の(いつもの)方法でmSDカードを構築し直してみたり,mSDカードを全クリア(全上書きフォーマット)して構築しても起動しない

また,bootのconfigなどを確認したが怪しそうな部分は見つからない

調査する時間が無いので情報待ちにする

(追記)

HDMI端子が2つあるので注意しなければならないが接続違いでは無かった

ラズパイにOLEDを接続してCPU温度表示

ラズパイ4のCPU温度が気になってターミナルから監視してたのだけど・・・簡単にI2Cが使えるのだから表示器を接続して常時見えるようにすれば良いじゃないか!と気付くまで時間が掛かってしまった

IMG_20200223_210556716_HDR.jpg

情報取集したところ手持ちのI2C接続表示器のうちLCD(「AQM1602*」や「AQM0802*」)は,通信電圧の問題があって工夫すれば使用できるものの綺麗な接続でないので断念しOLEDを使う

OLED使用となるとSSD1306のグラフィックライブラリ(ArduinoならU8glibやU8g2lib)が必要でラブパイ(debian)だとpython用にライブラリがある

(参考)

ライブラリ(U8glib)の移植という方法もあったが折角の機会なのでpythonに初挑戦

しかし当然というかpythonの環境がすんなり出来なくてすったもんだ楽しむことになる

ハードウェア

OLEDをラズパイのGPIOに接続する

多数の方が選択している片側(奇数)ピンの連続5ピンを利用(もう片側の偶数ピンの電源ピンをFANで使用しているという理由もある)

IMG_20200222_163439476_HDR.jpg

ピン接続用の変換アダプタを作製

IMG_20200222_162945203_HDR.jpgIMG_20200222_162959883_HDR.jpg

ラズパイ4と接続

IMG_20200222_163428170.jpg

ソフトウェア

OLED接続確認

(I2Cの有効化)

$ sudo raspi-config
$ sudo shutdown -r now

(ツールインストール)

$ sudo apt install i2c-tools

$ sudo i2cdetect -l
i2c-1 i2c bcm2835 I2C adapter I2C adapter
$ sudo i2cdetect -y 1
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
$

CPU温度表示プログラムの作成

(python環境セットアップ)

$ sudo apt-get install python-setuptools
$ sudo apt-get install python3-setuptools

(ライブラリインストールのためのpipセットアップ)

$ sudo apt install python3-pip

(GPIOライブラリのインストール)

$ sudo pip3 install RPi.GPIO

(SSD1306ライブラリのインストール)

$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
loning into 'Adafruit_Python_SSD1306'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 137 (delta 0), reused 0 (delta 0), pack-reused 134
Receiving objects: 100% (137/137), 43.42 KiB | 225.00 KiB/s, done.
Resolving deltas: 100% (69/69), done.
$ cd Adafruit_Python_SSD1306
$ sudo python3 setup.py install

(Pillowのインストール)

$ sudo pip3 install pillow

(追加:OS版数により以下が必要かも)

$ sudo pip3 install Adafruit_BBIO

(サンプル実行)

IMG_20200223_162957544_HDR.jpg

(嵌った点)

  • pythonの最新がV3なのだがデフォルトが3になっていない(2から3で大幅に変更されているため互換はない)
  • エラーメッセージが判り難いためライブラリが無いことがメッセージからは判らない
  • python3を実行しなければならない(pythonだとV2が実行)
  • pip3を使用する(pipは無い)

(CPU温度表示プログラム)

#!/usr/bin/python3
# coding: UTF
#
import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

import subprocess

# Raspberry Pi pin configuration:
RST = None # on the PiOLED this pin isnt used

# 128x32 display with hardware I2C:
disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, i2c_address=0x3C)

# Initialize library.
disp.begin()

# Clear display.
disp.clear()
disp.display()

# Create blank image for drawing.
# Make sure to create image with mode '1' for 1-bit color.
width = disp.width
height = disp.height
image = Image.new('1', (width, height))

# Get drawing object to draw on image.
draw = ImageDraw.Draw(image)

# Draw a black filled box to clear the image.
draw.rectangle((0, 0, width, height), outline=0, fill=0)

# Load default font.
#font = ImageFont.load_default()
# Load font.
font1 = ImageFont.truetype('/home/pi/font/8-BIT WONDER.TTF', 8)
font2 = ImageFont.truetype('/home/pi/font/upheavtt.ttf', 40)

while True:

# Draw a black filled box to clear the image.
draw.rectangle((0, 0, width, height), outline=0, fill=0)

clock = str(subprocess.check_output("vcgencmd measure_clock arm", shell = True))
clock = clock[clock.find('=')+1:-9] + "MHz"
temp = str(subprocess.check_output("vcgencmd measure_temp", shell = True))
temp = temp[temp.find('=')+1:-3]

# Write two lines of text.
draw.text((0, 0), clock, font=font1, fill=255)
draw.text((8, 2), temp, font=font2, fill=255)

# Display image.
disp.image(image)
disp.display()
time.sleep(5)

(補足)

  • 表示文字はディフォルトでは寂しかったのでフリーフォントを(例:https://www.dafont.com/bitmap.php から)DLして利用
  • リアルタイム表示に近づけるなら最終行のsleep時間を短くする
  • 行末文字列位置もstr.findで得た方が良い

(実行)

/etc/rc.local から起動(cronという選択もある:cron実行用に修正が必要)

以下をrc.localの適正な位置に追加

# OLED Display
if [ -x /home/pi/disptemp.py ]
then
     /home/pi/disptemp.py > /dev/null 2>&1&
fi

 

ページ移動

  • ページ
  • 1
  • 2
  • 3
  • 4

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり
Re:SDRplay社RSP1クローンを購入
2025/05/25 from 匿名希望
Re:Mozilla FirefoxではNHKプラスを再生できない件
2025/05/09 from Donabeyaki
Re:ATS-25を作製する
2025/03/23 from kazu

過去ログ

Feed