エントリー

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

ページ移動

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

ラズパイ4のRetropieを再構築

ラズパイ4が販売され暫くしたらRetropie(レトロパイ)がリリースされたがラズパイ4用のRaspbianが安定していかなったせいか正常に動作しなかった

その後もなかなか正常に動作するリリースが無かったのだけど,そろそろどうだろうと思い再構築してみた

バージョン:Retropie 4.8,リリース日:2022.3.14(DLサイト

なので,もう1年以上前のものであるためアップデートすると時間が掛かる

尚,書込みツール(Raspberry Pi Imager)は何故だか駄目なんで直接イメージをμSDカードに書き込み

最初からsambaも動作しており必須ではないがSSHやロケールの設定のみで特に対応せずとも動作する

ただし(ランチャー上で)日本語ファイル名はフォントをインストールしないと表示されない

$ sudo apt-get install fonts-droid-fallback

(追記)いろんなエミュを試してみたろこと正常に動作している

ラズパイ(rasbian)でNOAA受信を試す

NOAA受信のサーバ化においてNOAAの受信データをWXtoImgで画像化したいのでLinux版を動作させることになるのだが,コマンドで実行できるものと勝手に思い込んでいたのが間違いで(判ってないだけかもしれないが)GUIでしか動作できそうにない

先日SDRサーバ化したNanoPiNEOでは(画面出力が無いので)WXtoImgが動作しないため,本来予定していたラズパイで再度試行することにした

IMG_20220205_125838.jpg

ソフトウェアセットアップ

まずはラズパイOS(Rasbian)の最新版を手に入れようとサイトを見てみると64ビット(AMD64)版が正式にあったのでDLした(4日にDLしたのだがリリース直後だったようだ)

最小インストールしたかったのでサーバで良いとLite版をマイクロSDに書き込んで起動したのだがSSHでアクセスできない

いつのまにかSSHはOFFになっていて書込みツール(Raspberry Pi Imager)のオプションでSSHをONしないと使えないようだ

WS20220208_001.png

右下のアイコンを選択してオプション設定を開く

WS20220208_002.png

SSHをONさせる(他に無線LANも接続設定できるようになっている)

この後,先日行った手順でSDRサーバをセットアップして,GUI環境を整えWXtoImgをセットアップしようとしたら動作しないことが判る

実はWXtoImgは32ビット版で64ビット版では動作しない

ということで最初に戻って32ビット版Rasbianを今度はデスクトップ版をセットアップしなおしSDRサーバとWXtoImgをインストールした

以下のメモはLite版に追加する場合でありデスクトップ版には含まれている

(メモ1:デスクトップ環境)

# apt install xserver-xorg
(軽量なxfce)
# apt install xfce4 xfce4-terminal
(デフォルトのPIXEL)
# apt install raspberrypi-ui-mods
(フォント)
# apt install fonts-noto

(メモ2:VNCサーバ)

# apt install realvnc-vnc-server

# systemctl enable vncserver-x11-serviced.service
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver-x11-serviced.service → /lib/systemd/system/vncserver-x11-serviced.service.
# systemctl enable vncserver-virtuald.service
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver-virtuald.service → /lib/systemd/system/vncserver-virtuald.service.

# systemctl start vncserver-x11-serviced.service
# systemctl start vncserver-virtuald.service

(メモ3:その他)

SDRサーバをクリーンインストールしたので必要パッケージとして以下が必要なのが判明

$ sudo apt install libusb-dev
$ sudo apt install libusb-1.0-0-dev

WXtoImgのインストール(コマンドは/usr/local/binに登録される)

# dpkg -i wxtoimg-armhf-2.11.2-beta.deb
環境設定

RTL-SDRの出力をWXtoImgに渡すのにラズパイには標準でマイクのハードウェアが無いことに気付く

WXtoImgの入力が(/deb/dsp)なのでPIPEでできるかなとやってみたが駄目だった(以下)

# mkfifo /dev/dsp
# aplay -r 48000 -f S16_LE < /dev/dsp
# rtl_fm -f 137.9125M -M fm -s 200000 -r 48000 > /dev/dsp

他に仮想サウンドサーバ的な方法もありそうだが,外部チューナ化も検討できる思いUSBサウンドカードを購入

IMG_20220208_202057.jpg

デジタルをアナログ出力してアナログで取り込みデジタル化するのかって思うけど・・・アナログで接続

IMG_20220208_200437.jpg

WXtoImgの入力をUSBマイクにする

WS20220208_012.png

(注)sample rate は 44100 に設定しないと入力エラーとなる

これまでに記録してあった受信音でテスト受信を行ってみると認識しているようなので問題なさそう

WS20220208_013.png

ただし,ビットレートが異なるためかズレがあって画像にはならない

次はリアルで確認する予定

OctoPrint用ラズパイの電源制御ボードを作製

OctoPrint用ラズパイの電源を制御する

IMG_20210228_190639.jpg

基本仕様

ラズパイZEROを使用

ラズパイは3Dプリンタの電源と連動して起動/終了させる

電源制御

3Dプリンタの電源切りを判断し,ラズパイを正常終了(シャットダウン)して電源切りとするため,UPSと電源ON/OFF回路を作ることになる

ソフトコントロールした方が柔軟性が高いのでいつものとおりAVRを使用することとしATtiny13aを使用する

ラズパイZEROはWiFi使用時でも最大消費電流200mA程度(入力5V)→ 効率を多めにみても5V500mA入力できれば良しと見積もる

ラズパイの起動/終了確認はGPIOの8ピン(UART_TXD)を監視することで行う → OSのシリアル利用設定が必要でシリアルコンソールとなる,シリアルは負論理なので使用可能になるとON(1)となる(終了でOFF)

シャットダウン要求はGPIOの7ピンを利用して制御,ラズパイ側でGPIOを監視してシャットダウンする

GPIOは3.3VロジックなのでATtiny13aも3.3Vで使用する

回路図

octoPiPower_回路図.png

  • 元電源が入るとATtiny13aとリポ充放電モジュールが通電
  • ATtiny13aは起動後FETのONでラズパイを起動させGPIOの監視を行う
  • 元電源が切れると電圧の関係でFETへの充電はバッテリーに切り替わる
  • ATtiny13aは元電源OFFを感知してラズパイにシャットダウン要求しシャットダウン後FETをOFF(電源断)する
  • バッテリーはダイソーのUSB充電ライターのリポ(200mAh)を利用

IMG_20210223_200835.jpg

IMG_20210223_200826.jpgIMG_20210223_200911.jpg

  • ON時の5V出力安定のため100μFを付けた(オシロでチェックしたところ無くても問題なしだったが排除していない)
  • スイッチ部はGrd共通のためPチャネルFETとなる
  • ラズパイ3などに変更する場合はダイオードの許容電流に注意
ソフトウェア

ATtiny13a

IMG_20210227_141426.jpg

//3Dプリンター用ラズパイ(octoPi)電源制御プロクラム
// octoPiPower.ino V1.3
//
// ATMEL ATTINY13 / ARDUINO
//
// +-\/-+
// ADC0 (D 5) PB5 1|    |8 Vcc
// ADC3 (D 3) PB3 2| |7 PB2 (D 2) ADC1
// ADC2 (D 4) PB4 3| |6 PB1 (D 1) PWM1
// GND 4|    |5 PB0 (D 0) PWM0
// +----+
//
// PB0 - OUT FET ON/OFF
// PB1 - OUT raspi control (PIN7)
// PB2 - IN raspi sense (PIN8)
// PB3 - OUT LED
// PB4 - IN power
//
// 処理フロー(V1.2まで)
// ①元電源ONにより本機(ATTINY13)がON
// ②ラズパイの電源をONさせる(FET ON)
// ③電源(PB4)とラズパイの状態(PB2)を監視
// ④電源OFFでラズパイにシャットダウンを通知(PB1)
// ⑤ラズパイが終了したらラズパイの電源OFF(FET OFF)
// ⑥⑤により本機もOFFもしくは元電源がONなら終了状態へ移行
// 処理フロー(V1.3から③以降変更)
// 電源連動となるので電源OFFからの復帰はない,また,リブートを可能とした
// ③電源(PB4)を監視
// ④電源OFFでラズパイにシャットダウンを通知(PB1)
// ⑤ラズパイが終了したらラズパイの電源をOFF(FET OFF)
//
#include <avr/io.h>
#include <avr/sleep.h>
#include <util/delay.h>

//接続PIN
#define FET PB0             //電源SW制御
#define RASP7 PB1             //ラズパイ指示(ONでシャットダウンさせる)
#define RASP8          PB2 //TXD(通信ポート)で起動判断(負論理なので通常はON)
#define LED PB3             //動作状態を示すLED
#define POWER PB4 //主電源

void setup() {

  //PIN(入力)
    pinMode(RASP8, INPUT);
    pinMode(POWER, INPUT);
    //PIN(出力)
    pinMode(FET, OUTPUT);
    pinMode(RASP7, OUTPUT);
    pinMode(LED, OUTPUT);

  set_sleep_mode(SLEEP_MODE_PWR_DOWN);

  //ラズパイ電源ON
    digitalWrite(FET, HIGH); //ラズパイON
    digitalWrite(RASP7, LOW); //ラズパイ指示初期化

  //ラズパイ起動待ち
    while(!bit_is_set(PINB, RASP8)) {
     digitalWrite(LED, HIGH);
_delay_ms(900);
digitalWrite(LED, LOW);
_delay_ms(100);
        if(!bit_is_set(PINB, POWER)) {
            digitalWrite(RASP7, LOW); //ラズパイシャットダウン指示
            digitalWrite(FET, LOW); //ラズパイ電源OFF
return; //loop()で元電源OFF待ち
        }
    }
    digitalWrite(LED, HIGH);

//元電源OFF待ち
while(bit_is_set(PINB, POWER)) _delay_ms(1000);

//ラズパイへシャットダウン指示
digitalWrite(RASP7, HIGH);

//シャットダウン待ち
while(bit_is_set(PINB, RASP8)) {
digitalWrite(LED, HIGH);
_delay_ms(500);
digitalWrite(LED, LOW);
_delay_ms(500);
}

//20秒待ち,電源OFF実行
for(int n = 0; n < 20; n++) {
digitalWrite(LED, HIGH);
_delay_ms(100);
digitalWrite(LED, LOW);
_delay_ms(900);
}
digitalWrite(RASP7, LOW); //ラズパイシャットダウン指示
digitalWrite(FET, LOW); //ラズパイ電源OFF
}

//終了
void loop() {
sleep_mode();
}

ラズパイ

IMG_20210223_200934.jpg

ピン監視+シャットダウンプログラムを/etc/rc.localから起動

プログラムは参考の「While loop」版を元にほぼそのままで使用(7ピン監視は10秒間隔にしている)

※)割込み版はバックグランド動作しない

完成ボード

IMG_20210227_214435.jpgIMG_20210227_214450.jpg

バッテリーは基板の裏に配置した

接続

ラズパイとの接続用にソケットを作製

IMG_20210227_161542.jpgIMG_20210227_161553.jpg

ピンはラズパイ上から右ピンに多いので接続のやり易さから左右反転させている(基板の裏からみるとラズパイ上と同じ位置になる)

必要なのは8ピンまでだが切り良く10ピンまで対応できるようにしている(ただし不必要なピンは接続していない)

raspi_gpio.png

システムテストによる調整

最終確認にてソフトウェアの調整を行った

  • シャットダウン要求でシャットダウン後の電源OFFまでの時間を20秒にした(当初は5秒)→ 8ピンがOFF直後に電源OFFすると正常終了していないためディレイを入れている
  • 元電源OFFでシャットダウンまでにONになったらシャットダウン中止を削除(ラズパイ単体なら良いが3Dプリンタと連動なので必要ない)
  • ラズパイ起動後にて元電源OFF前にシャットダウンされたら電源OFFを削除(3Dプリンタと連動のため不必要と再起動を可能にした)

尚,3Dプリンタとの電源連動は(コンセントで連動でも良いが)DCDCで24Vから5Vにダウンさせ入力する予定である

(電源ON)

(電源OFF)

調整により電源OFFまで長くなっている(安全のためでもある)

参考

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

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

ページ移動

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

ユーティリティ

検索

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

過去ログ

Feed