光るキーボード&SSD搭載!Raspberry Pi 500+ を徹底検証

【PR】この記事には広告が含まれています。

光るキーボード&SSD搭載!Raspberry Pi 500+ を徹底検証

Raspberry Piとキーボードが一体になったRaspberry Pi 500に上位モデルが登場しましたNVMe SSDと光るメカニカルキーボードを備えたプレミアム仕様のRaspberry Pi 500+です。

Raspberry Pi 500+(UK配列キーボード版)

16GB RAMを搭載したことで、複雑なタスクも快適にこなせます。標準装備のNVMe SSDにより起動やデータアクセスは高速化され、光るキーボードは点灯パターンの変更やプログラミングによるカスタマイズにも対応。Raspberry Pi シリーズに新たな魅力を加える存在となっています。

ショートカットキーで点灯のオンオフや切替が可能

本記事ではRaspberry Pi 500との違いを探りつつ、SSDの快適さやLEDキーボードのカスタマイズ性を中心にレビューしていきます。

チェックポイント

日本語版キーボードの国内での発売は準備ができ次第とのことです。今回の検証には、Raspberry Pi Ltd様より提供いただいたRaspberry Pi 500+(UK配列キーボード版)を使用しています。技適特例申請を行ったうえで検証をしました。

Raspberry Pi 500+の基本構成

Raspberry Pi 500+(UK配列キーボード版)のパッケージ

Raspberry Pi 500+ の進化は、従来モデルのRaspberry Pi 500と比較するとわかりやすいです。ここでは、両者の仕様を比較しながら、その特徴と強化されたポイントを見ていきます。

Raspberry Pi 500との比較

Raspberry Pi 500+Raspberry Pi 500
SoCBroadcom BCM2712Broadcom BCM2712
CPUCortex-A76(ARM v8) 64-bit SoC @ 2.4GHz × 4Cortex-A76(ARM v8) 64-bit SoC @ 2.4GHz × 4
メモリ16GB8GB
ストレージ256GB NVMe SSD
+ microSD スロット
microSD スロットのみ
有線LAN1000 Base-T1000 Base-T
無線LANIEEE 802.11b/g/n/acIEEE 802.11b/g/n/ac
BluetoothBluetooth 5.0Bluetooth 5.0
サイズ312 × 123.06 × 35.76 mm286 × 122 × 23mm
重量613g377g
生産国イギリスイギリス
価格スイッチサイエンス:¥39,600KSY:¥17,600
秋月電子:¥17,800
スイッチサイエンス:¥18,480

Raspberry Pi 500+は、16GB RAM と 256GB Raspberry Pi SSD、そしてLED付きのメカニカルキーボードを搭載した上位モデルです。CPUはシリーズ最上位であるRaspberry Pi 5と同等の性能を持ち、日常利用から開発用途まで幅広く対応できます。Raspberry Pi 500と比べると本体サイズがやや大きく、重量も増しています。

出典:Raspberry Pi 500 Product Briefより引用

キーボード背面のインターフェースはRaspberry Pi 500と同じ構成です。SSD搭載で使用頻度は少ないかもしれませんが、microSDカードスロットも備えています。GPIO端子も搭載されており、LEDやセンサーなどの電子工作パーツを直接接続できます。

256GB NVMe SSD搭載

本体内部に搭載されたNVMe SSD

NVMe SSDにはRaspberry Pi OSがインストールされているため、起動時にはそれを読み込んで動作します。NVMe SSDは、一般的なRaspberry Piで使われるmicroSDと比べて次のような利点があります。

  • 大容量で多くのデータを保存できる
  • 読み書きが高速
  • 耐久性が高く長期間の使用に強い

さらに、付属のヘラ状の工具を使って本体を上下に分割すれば、SSDを交換して容量を増やすことも可能です。

光るメカニカルキーボード

Raspberry Pi 500とのキーの高さの比較

キーボードにはGateron Blue KS-33 Low Profileが採用されており、カチッとしたクリック感のある打鍵を楽しめます。キーには高さがあり、ストロークも大きめなので、しっかりとした操作感を得られるのが特徴です。

交換可能なキーキャップ

キーキャップを外すための工具も付属しており、標準のキーキャップから好きなデザインのものに交換もできます。

さらに、キーの下には鮮やかに発光するフルカラーLEDが内蔵されており、その制御にはRaspberry Pi Picoにも搭載されているマイクロコントローラチップのRP2040が使われています。あらかじめ用意された6パターンの点灯モードに加え、自分でプログラミングして色や光り方を変えられるため、電子工作でおなじみの RGB LED 制御をキーボード上で体験できる点も大きな魅力です。

Raspberry Pi 500+を分解

Raspberry Pi 500+の内部構造を確かめるため、分解して中身をチェックしてみました。

はじめに、キーボード裏側にある5カ所のネジをドライバーで外します。

本体に付属しているプラスチック製のヘラで周囲のツメを外します。

ファンレスで高性能を実現するヒートシンク

中を開けるとキーボードとメイン基板がリボンケーブルで接続されているので、そこも外します。基板の上には、大きな金属製のプレートが取り付けられていて、これがヒートシンクとして機能しています。

ヒートシンクの冷却性能については、以下の記事で検証を行っています。
≫ Raspberry Pi 500【レビュー】分解で見えた秘密と活用アイデア

このヒートシンクはRaspberry Pi財団が特に設計に注力した部分であり、冷却ファンなしでも高い性能を発揮します。高負荷の作業でも安定した動作が期待でき、静音性にも優れている点が大きな魅力です。

キーボード側の基板にはRaspberry Pi Picoにも搭載されているマイコンチップのRP2040が実装されています。

メイン基板に搭載されたNVMe SSD

メイン基板はキーボード接続部とNVMe SSDを除けばRaspberry Pi 500とほぼ同じ構造です。基板の右側には、Raspberry Piのロゴが印字された公式ブランドのRaspberry Pi SSDが搭載されています。

基板には「2242」「2260」「2280」といったサイズ表記のスロット位置が刻まれています。標準で装着されているのは短い「2230」サイズですが、基板の穴位置を利用すれば、より長いタイプのSSDも取り付け可能です。

Raspberry Pi 500+を起動

起動にあたり周辺機器を準備します。

そぞら
そぞら

マウスやケーブル、電源は付属していません。

まずマウスをUSBポートに接続し、micro HDMIケーブルでモニターとつなぎます。HDMIポートは2つありますが、背面から見て左側の「HDMI 0」に接続するのが基本です。

起動時のLEDアニメーション

別売りの電源ACアダプターをUSB Type-Cポートに差し込むと、自動で電源が入り起動が始まります。

OSインストール不要ですぐに使える

Raspberry Pi 500+は、必要な機器を接続すればすぐに使い始められます。内蔵のNVMe SSDにはRaspberry Pi OSがプリインストールされており、起動から初期設定まで迷うことなく進められます。

起動すると、Raspberry Pi OSの初期設定ウィザードが立ち上がります。言語や地域、Wi-Fiの接続、ユーザー名の設定などを順に進めていきます。必要に応じて画面の表示調整やOSアップデートも行いますが、画面の指示に従えば問題ありません。

Raspberry Pi OSの設定方法は、以下の記事で詳しく解説しています。
≫【2025年最新版】OSインストールから初期設定まで|セットアップ手順のすべて

Raspberry Pi OSのデスクトップ画面

初期設定が終わるとデスクトップ画面が表示され、すぐにブラウザを使ったり、Pythonでプログラミングを始めたりできます。

豊富なアプリケーションが入っている

起動時間の比較

Raspberry Pi 500 と 500+ の起動時間を実際に計測すると、500は25秒、500+は22秒でした。差は3秒ほどで、大きく体感できるほどではありません。

モデル名起動時間
Raspberry Pi 50025秒
Raspberry Pi 500+22秒

ただし、500+にはNVMe SSDが搭載されており、ストレージアクセスの安定性や信頼性、耐久性の面ではmicroSDよりも優れています。起動時間そのものの差は小さいものの、日常的に使用するうえで信頼できるストレージを使える安心感があります。

そぞら
そぞら

私の経験上、Raspberry Piが起動しなくなる原因の多くは、microSDの書き込み回数による寿命に起因していました。

変更可能なLEDライトの点灯パターン

Raspberry Pi 500+ の大きな特長のひとつが、キーボードに内蔵されたLEDイルミネーションです。光り方を切り替えたり、好みに合わせてカスタマイズしたりできるので、学習や作業だけでなく「遊び心」をプラスできます。

Fn+F4キーで切り替え

出荷時点で 8種類のプリセット(0〜7) が用意されており、Fn+F4キーを押すことで順番に切り替え可能です。プリセットには単色点灯やグラデーション、アニメーション効果などが含まれていて、本体を再起動しても最後に選んだ設定が自動で復元されます。

プリセット番号特徴
0消灯(電源ボタンのみ点灯)
1すべてのキーが白色に点灯
2すべてのキーが赤色に点灯
3すべてのキーがレインボーのグラデーションカラーに点灯(固定)
4レインボーカラーの回転アニメーション
5押したキーが青色に点灯。連打すると周囲のLEDも点灯し色が変化
6押したキーが赤色に点灯。
7一時的なエフェクトが保存される特別枠。再起動で消える
Fn+F4の切り替えサイクルではスキップされる
どのプリセットでも常時点灯する電源ボタン

右上の電源ボタンのキーは、どのプリセットでも緑色に点灯します。電源を切ると赤に変わり、従来の Raspberry Pi に搭載されていたステータス LED の役割を担っているようです。

コマンドやPythonで自在にLEDを制御

キーボードの光り方を自由に変えるには、追加のソフトをインストールする必要があります。まずターミナルを開きます。

下記のコマンドをターミナルに入力してEnterキーを押します。

sudo apt install rpi-keyboard-config

これでキーボードのLEDやキー設定を変更できるソフトがインストールされます。

コマンドでLEDを操作

インストール後はターミナルからLEDを直接操作可能です。全体を赤にするには以下のコマンドを実行します。

rpi-keyboard-config leds set --colour red  

LED操作に関する主なコマンドを以下に示します。

コマンド内容使用例
rpi-keyboard-config preset index <番号>特定のプリセットに切り替えるrpi-keyboard-config preset index 2
(プリセット2に切り替え)
rpi-keyboard-config leds set –colour <色>キーボード全体を指定した色に点灯--colour red(赤)
--colour "#FF0000"(RGB指定)
--colour "128,255,255"(HSV指定)
rpi-keyboard-config led set <番号> –colour <色>指定したLEDを個別に光らせる(番号指定)led set 5 --colour blue
(LED5を青)
rpi-keyboard-config led set <行>,<列> –colour <色>指定したキーの位置を光らせる(行・列指定)led set 2,3 --colour green
([2,3]のキーを緑)
rpi-keyboard-config leds clearすべてのLEDを消灯する

光るキーボードでゲームもできる

Raspberry Pi 500+ のLEDキーボードには、ミニゲームとして「Flappy Bird」が用意されています。ターミナルで以下のコマンドを実行したあと、「ESCキー」と「ENTERキー」を同時に押し続け、カウントが0になるまで待ちます。

rpi-keyboard-config game

するとキーボードがアンロックされ、ゲームがスタートします。キーボード全体のLEDが画面のように光り、鳥や障害物が光の点で表示されます。

操作はスペースキーを押して鳥(緑色のLEDで表示)をジャンプさせるだけです。水色のパイプを避けながら進むと、スコアが最上段のキーに表示されます。シンプルなゲームですが、LEDとキーボードだけでゲームが作れることに可能性を感じます。

PythonでLEDを操作

ピンク色で数字の「2」を表現

プログラミング言語Pythonを使って、LEDを操作することもできます。Thonnyというソフトでプログラムを書き、実際に動かしてみましょう。

Thonnyの起動

Thonnyでは画面上部の大きな白いスペースにプログラムを入力し、「▶(再生マーク)」をクリックすることで実行できます。

以下はLEDキーボードで特定のキー位置を指定して光らせるコードです。

from RPiKeyboardConfig import RPiKeyboardConfig

# キーボード制御を初期化
keyboard = RPiKeyboardConfig()

# LEDを直接制御するモードに切り替え
keyboard.set_led_direct_effect()

# 行0・列0のLEDを「ピンク」で点灯(Hue=213)
keyboard.set_led_by_matrix(matrix=[0, 0], colour=(213, 255, 255))

# 設定を反映して実際に光らせる
keyboard.send_leds()

keyboard.set_led_by_matrix(matrix=[0, 0], colour=(213, 255, 255))で、光らせる位置と色を指定します。matrix=[0, 0] はキーボードの一番左上のキーを意味します。たとえば [1, 3] にすると「上から2行目・左から4列目」にあるキーが光る仕組みです。

ただし、すべての座標にLEDがあるわけではなく、行や列によっては「抜けている」場所があります。指定した座標にLEDが存在しない場合はエラーになります。ターミナルで「rpi-keyboard-config leds get」を実行するとLEDの番号と対応する行・列の座標が一覧表示され、実際に指定できる位置を確認できます。

colour=(213, 255, 255) は、光の色をHSVという形式で指定しています。

  • 最初の 213 は「色合い」を決める値で、213ではピンク寄りの色。0 にすると赤、42 前後で黄色、85 なら緑、170 で青といったように数値を変えることでさまざまな色に変更可能
  • 次の 255 は「鮮やかさ(彩度)」を表し、255 が最もはっきりした色
  • 最後の 255 は「明るさ(輝度)」で、最大値に設定されているため明るく光る

最後に keyboard.send_leds() を実行すると、指定した内容が反映されて、LEDが実際に光ります。

LEDキーボードで時刻を表示してみた

LEDを自由に制御できるとなると、文字を表示してみたくなるものです。以下のコードではLEDキーボードを使って、時刻をスクロール表示する仕組みを作ってみました。

import time
from RPiKeyboardConfig import RPiKeyboardConfig

font_5x4 = {
    "0": ["0110","1001","1001","1001","0100"],
    "1": ["0010","0010","0010","0010","0010"],
    "2": ["0110","1001","0010","0100","1111"],
    "3": ["1110","0001","0110","0001","1110"],
    "4": ["1001","1001","1111","0001","0001"],
    "5": ["1111","1000","1110","0001","1110"],
    "6": ["0111","1000","1110","1001","0110"],
    "7": ["1111","0001","0010","0100","0100"],
    "8": ["0110","1001","0110","1001","0110"],
    "9": ["0110","1001","0111","0001","1110"],
    ":": ["000","010","000","010","000"],
}

keyboard = RPiKeyboardConfig()
keyboard.set_led_direct_effect()

current_brightness = keyboard.get_brightness()
print(f"Current brightness: {current_brightness}")

rows = 5
max_col = 16
scroll_area_cols = 16

def build_message(numbers, space=1):
    message = [""] * rows
    for num in numbers:
        digit = font_5x4[num]
        for r in range(rows):
            message[r] += digit[r] + "0" * space
    return message

while True:
    current_time = time.strftime("%H:%M").lstrip("0")
    message = build_message(current_time, space=2)
    msg_width = len(message[0])

    for shift in range(msg_width + scroll_area_cols):
        for r in range(rows):
            for c in range(scroll_area_cols):
                try:
                    keyboard.set_led_by_matrix(matrix=[r, c], colour=(0, 0, 0))
                except ValueError:
                    pass

        for r in range(rows):
            for c in range(scroll_area_cols):
                src_col = shift + c - scroll_area_cols
                if 0 <= src_col < msg_width:
                    if message[r][src_col] == "1":
                        try:
                            keyboard.set_led_by_matrix(matrix=[r, c], colour=(213, 255, 255))
                        except ValueError:
                            pass

        keyboard.send_leds()
        time.sleep(0.15)

数字を5×4のドットフォントとして定義し、それを組み合わせて現在時刻を「hh:mm」の形に変換します。はじめに文字列を作り、左から右へ少しずつずらして表示することで、文字が横に流れていくように見せています。存在しないLED座標を指定するとエラーになるため、例外処理を追加しました。

時刻「7:42」をスクロール表示

使えるドット数が限られており、キーの配置も不規則なため文字は見づらいですが、ギリギリ読める程度にはなったかな?と、自分的には満足です。

GPIOピンに透明OLEDを接続

Raspberry Pi 500はキーボード一体型ながら、他のRaspberry Piと同様にGPIO端子を備えています。これにより、センサーやLEDといった電子パーツを接続して、電子工作やハードウェア制御の学習にも活用できます。

今回は透明OLEDディスプレイを使って近未来的な時計表示を作成します。

ディスプレイのスタンドは3Dプリンターで作成しました。

Raspberry Piとディスプレイの配線

Raspberry Pi 500+とディスプレイの接続は次のようになります。

SPIを有効にする

LCDを使うには、SPIインターフェースを有効にする必要があります。SPIはRaspberry Piとディスプレイがデータを通信するための仕組みです。

デスクトップ左上の「ラズベリーマーク(メニュー)」をクリックし、設定」→「Raspberry Piの設定」を選びます。

「インターフェイス」タブを開き、「SPI」の項目を「有効」に切り替えます。

SPIが有効になっている状態

以下のコマンドで、日本語フォントの「Takaoフォント」をインストールしました。これはプログラムでディスプレイにテキストを表示するために必要です。

sudo apt install -y fonts-takao

Pythonスクリプト

以下のプログラムは透明OLEDディスプレイに、現在の時刻と立体的に回転するピラミッドのアニメーションを表示するものです。

import spidev
import lgpio
from PIL import Image, ImageDraw, ImageFont
from math import sin, cos, radians
import datetime
import time

spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 8000000

DC = 25
RESET = 27

h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(h, DC)
lgpio.gpio_claim_output(h, RESET)

WIDTH = 128
HEIGHT = 64

def hardware_reset():
    lgpio.gpio_write(h, RESET, 0)
    time.sleep(0.05)
    lgpio.gpio_write(h, RESET, 1)
    time.sleep(0.05)

def send_cmd(cmd):
    lgpio.gpio_write(h, DC, 0)
    spi.writebytes([cmd])

def send_data(data):
    lgpio.gpio_write(h, DC, 1)
    spi.writebytes(data if isinstance(data, list) else [data])

def init_display():
    hardware_reset() 
    cmds = [
        0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00,
        0x40, 0x8D, 0x14, 0x20, 0x00, 0xA1, 0xC8,
        0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB,
        0x40, 0xA4, 0xA6, 0xAF
    ]
    for cmd in cmds:
        send_cmd(cmd)

def set_addressing():
    send_cmd(0x21)
    send_cmd(0)
    send_cmd(WIDTH - 1)
    send_cmd(0x22)
    send_cmd(0)
    send_cmd((HEIGHT // 8) - 1)

def display_image(image):
    set_addressing()
    pixels = list(image.getdata())
    buffer = []
    for page in range(HEIGHT // 8):
        for x in range(WIDTH):
            byte = 0
            for bit in range(8):
                pixel = pixels[x + (page * 8 + bit) * WIDTH]
                if pixel == 0:
                    byte |= (1 << bit)
            buffer.append(byte)
    for b in buffer:
        send_data(b)

init_display()

font1 = ImageFont.truetype("/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf", 12)
font2 = ImageFont.truetype("/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf", 14)
font3 = ImageFont.truetype("/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf", 24)

scale_factor = 0.7
x_offset = 25
X_CENTER = 64
Y_CENTER = 28
pyramid = ((0, -20, 0), (-20, 20, -20), (20, 20, -20), (0, 20, 20))

try:
    while True:
        for angle in range(0, 361, 10):
            dt_now = datetime.datetime.now()
            date1 = dt_now.strftime('%m/%d')
            weekday = dt_now.strftime('%a').upper()
            time1 = dt_now.strftime('%H:%M')
            second = dt_now.strftime('%S')

            f = [[0.0 for _ in range(3)] for _ in range(4)]
            r = radians(angle)

            for i in range(4):
                x1 = pyramid[i][2] * sin(r) + pyramid[i][0] * cos(r)
                ya = pyramid[i][1]
                z1 = pyramid[i][2] * cos(r) - pyramid[i][0] * sin(r)
                y2 = ya * cos(r) - z1 * sin(r)
                z2 = ya * sin(r) + z1 * cos(r)
                x3 = (x1 * cos(r) - y2 * sin(r)) * scale_factor + x_offset
                y3 = (x1 * sin(r) + y2 * cos(r)) * scale_factor + Y_CENTER
                f[i][0] = x3
                f[i][1] = y3

            image = Image.new("1", (WIDTH, HEIGHT), 255)
            draw = ImageDraw.Draw(image)

            for i in range(3):
                draw.line((f[0][0], f[0][1], f[i + 1][0], f[i + 1][1]), fill=0)
                draw.line((f[i + 1][0], f[i + 1][1], f[(i + 1) % 3 + 1][0], f[(i + 1) % 3 + 1][1]), fill=0)

            draw.text((55, 8), date1, font=font2, fill=0)
            draw.text((103, 8), weekday, font=font2, fill=0)
            draw.text((50, 29), time1, font=font3, fill=0)
            draw.text((114, 39), second, font=font1, fill=0)

            display_image(image)
            time.sleep(0.1)

except KeyboardInterrupt:
    pass


最初に必要なライブラリを読み込み、SPIを使ってディスプレイと通信できるように設定します。

描画部分では、年月日や曜日、時刻をフォントで表示するだけでなく、三角形を組み合わせたピラミッドの線を描き、角度を少しずつ変化させることで3Dアニメーションとして動かしています。

キーボードのLEDと組み合わせることで、さらに近未来的な雰囲気が際立ちました。

まとめ

Raspberry Pi 500+ は、NVMe SSD搭載で安定性を高め、光るメカニカルキーボードによって「使用する喜び」を強く打ち出したプレミアムモデルです。起動時のLEDアニメーションは、電源を入れるたびにワクワクさせてくれます。さらに光り方をプログラムで変えられるため、書いたコードの成果がすぐに目に見える形で反映され、体験的な学びにつながります。

一方で、価格は39,600円と高めで、初心者が気軽に気軽に手に取れるモデルではありません。従来の「安価で気軽に使えるコンピュータ」というイメージから離れつつあるのも事実です。個人的には光るキーボードは大歓迎ですが、SSDはオプション扱いでも良かったのではと感じました。

直近で発売されたRaspberry Pi公式製品

総じて Raspberry Pi 500+ は、「手頃さ」よりも「体験価値」を重視する方向へシフトした象徴的なモデルといえます。Raspberry Pi 5の16GBモデルなども含め、シリーズ全体が高性能・高価格帯へと向かいつつあるのが最近の傾向です。Raspberry Pi が今後どのような進化を見せるのか、引き続き注目です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です