Raspberry Pi覚書。

シングルボードコンピューター「Raspberry Pi」の専用OS「Raspbian」の覚書。バージョンは4.14 (Stretch) を使用。

ここではあえてWindowsXPを使って導入してみる。

Helmetsテーブル筐体ケース覚書

あると便利なもの…セーム革の眼鏡拭き、デザインナイフ、皮膜剥きペンチ

ラッカー系で黒く塗ると、板が反ってしまうので注意

GPIO PIN Assignment
boardGPIOPin No.
Class-D AMP Vin5V4
GNDGND6
DIN2140
BCLK1812
LRC1935
1.3inch LCD Module VCC3.3V17
GNDGND20
DIN1019
CLK1123
CS
DC2522
RST2713
BL2418
1.3inch LCD HATLCD GNDGND?
VCC3.3V17
SCLK1123
MOSI1019
DC2522
CS824
RST2713
BL2418
Stick 6N/A
19N/A
5N/A
26N/A
Thumb13N/A
Button KEY121N/A
KEY220N/A
KEY316N/A

参考→240x240, 1.3inch IPS LCD display HAT for Raspberry PiAdafruit MAX98357 I2S Class-D Mono Amp

  1. 「1.3inch LCD HAT」及び「Waveshare 1.3inch LCD Module」の設定
    1. SPIを有効にする
      1. $ raspi-config
      2. Interface Options → SPI → Yes
    2. $ git clone https://github.com/juj/fbcp-ili9341.git
      $ cd fbcp-ili9341
      $ mkdir build
      $ cd build
    3. RPiZ + 1.3inch LCD HAT用の引数を付けてビルドする
      $ cmake -DSTATISTICS=0 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSPI_BUS_CLOCK_DIVISOR=6 -DWAVESHARE_ST7789VW_HAT=ON ..
      • core_freqをDIVISOR(偶数)で割った値がSPIバスクロック
      • RPiZ、Z2、3の「core_freq」は400MHz、RPi1と2は250MHz、RPi4は500MHz
      • この場合、400/6=66.67MHz
    4. $ make -j
      $ sudo install fbcp-ili9341 /usr/local/bin/fbcp-ili9341
    5. /etc/rc.localを編集する
      fi

      fbcp-ili9341 &

      exit 0
    6. /boot/config.txtを編集する
      hdmi_group=2※HDMIアウトプットグループをDMTに
      hdmi_force_hotplug=1※HDMIモニタが検出されなくてもHDMIで出力
  2. 「2.2inch TFT LCD Module 240x320 ILI9341」及び「2.4inch LCD Module 240x320 ILI9341」の設定
    1. RPiZ2 + 2.2inch LCD Module用の引数を付けてビルドする
      $ cmake -DSTATISTICS=0 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSPI_BUS_CLOCK_DIVISOR=6 -DADAFRUIT_ILI9341_PITFT=ON ..
    2. $ make -j
      $ sudo install fbcp-ili9341 /usr/local/bin/fbcp-ili9341
  3. Adafruit MAX98357 I2S D級アンプの設定
    1. $ sudo nano /etc/asound.conf
      pcm.speakerbonnet {
         type hw
         card 0
      }

      pcm.dmixer {
         type dmix
         ipc_key 1024
         ipc_perm 0666
         slave {
            pcm "speakerbonnet"
            period_time 0
            period_size 1024
            buffer_size 8192
            rate 44100
            channels 2
         }
      }

      ctl.dmixer {
         type hw
         card 0
      }

      pcm.softvol {
         type softvol
         slave.pcm "dmixer"
         control.name "PCM"
         control.card 0
      }

      ctl.softvol {
         type hw
         card 0
      }

      pcm.!default {
         type plug
         slave.pcm "softvol"
      }
    2. $ sudo nano /boot/config.txt
      #dtparam=audio=on
      dtoverlay=hifiberry-dac
      dtoverlay=i2s-mmap
    3. emulationstationの「MAIN MENU」 →
      1. 「SOUND SETTINGS」 → 「AUDIO DEVICE」 → 「PCM」
    4. ボリューム調節
      • 方法1
        $ amixer sset PCM 80%※音量を80%に
      • 方法2
        1. MENU → SOUND SETTINGS → AUDIO CARDを「DEFAULT」に、AUDIO DEVICEを「PCM」に → SYSTEM VOLUMEを調節
  4. 画面を90°回転させて使用したい場合
    • 古い方法(display_rotate=3はGPUメモリを余計に消費し、エミュの実行速度がかなり落ちる)
      1. /boot/config.txtを編集し、下記の1行を追加する
        display_rotate=3
      2. libretroのaspect_ratioを、横画面モノは1:1、縦画面モノはCustomの3:4にする※うろ覚え
      3. /opt/retropie/configs/mame-libretro/retroarch.cfgを編集する
        aspect_ratio_index = "23"
        custom_viewport_width = "200"
        custom_viewport_height = "320"
        custom_viewport_x = "20"
    • 新たに考えた方法(こちらの方法なら本来の実行速度が出る)
      1. /opt/retropie/configs/autostart.shを編集する
        emulationstation --screenrotate 3 --screensize 480 640 #auto
      2. /opt/retropie/configs/retroarch.cfgを編集する
        aspect_ratio_index = "5"
        # video_allow_rotate = "true"
        # video_rotation = 0"1"
      3. libretroのaspect_ratioを、横画面モノは16:9、縦画面モノは1:1を指定する
  5. (emulationstationの文字を大きくする)
    • themeがcarbonの場合
      1. /etc/emulationstation/themes/carbon/carbon.xmlを編集する
        <view name="basic">

           <textlist name="gamelist">
              <selecgtorColor>1c1c1c</selecgtorColor>
              <selectedColor>8b0000</selectedColor>
              <primaryColor>969696</primaryColor>
              <secondaryColor>7a6161</secondaryColor>
              <fontPath>./art/Cabin-Bold.ttf</fontPath>
              <fontSize>0.0300.055</fontSize>※かなり巨大
        • 画面を90°回転させたときは「0.045」が良さげ
    • themeがcarbon-2021の場合
      1. /etc/emulationstation/themes/carbon-2021/theme.xmlを編集する
        <theme>

           <variables>
              <colorRed>8b0000</colorRed>
              <colorBlue>3082ce</colorBlue>
              <colorGreen>50d62c</colorGreen>
              <colorYellow>efbc0b</colorYellow>
              <colorOrange>ef710b</colorOrange>
              <colorPurple>ac0bef</colorPurple>
              <colorTeal>04e9f7</colorTeal>
              <colorPink>f50297</colorPink>
              <themeColor>${colorRed}</themeColor>
              <themeArtFolder>./art</themeArtFolder>
              <themeFont>${themeArtFolder}/Cabin-Bold.ttf</themeFont>
              <themeScrollSound>${themeArtFolder}/scroll.wav</themeScrollSound>
              <themeGamelistFontSize>3264</themeGamelistFontSize>※縦使いなら56くらい
           </variables>