概要
SBC(Single Board Computer:シングルボードコンピュータ)は、CPU・メモリ・ストレージインターフェース・各種I/Oポートを1枚の基板上に実装した小型コンピュータです。電源を入れるだけで動作し、OSのインストールとアプリケーション開発をすぐに開始できます。
一般的なPCと比較して非常に小型・低コストでありながら、LinuxやAndroid・場合によってはWindowsを動かす能力を持ちます。最も有名な製品がRaspberry Piで、世界中の教育機関・メーカーズ・プロトタイプ開発者に広く使われています。
SBCはSoM(System on Module)と異なり、それ単体でコンピュータとして機能します。SDカードやeMMCにOSイメージを書き込み、HDMIでモニターに接続、USBでキーボード/マウスを繋げばデスクトップPCとして使えます。一方でキャリアボードを別途設計する必要がなく、プロトタイプから少量生産まで幅広く活用できます。
歴史・背景
SBCの概念自体は1970年代から存在します。1976年にはJohan Monarkという研究者がMotorolaの6800を使ったシングルボードコンピュータを設計しました。1977年にはNational Semiconductor SC/MPを使ったNSC800が登場し、教育・評価用途のSBCが市場に出始めます。
1980年代にはIntel SBC 80/10・SBC 86/12などが産業用コントローラとして使われました。しかし本格的なSBC普及のきっかけとなったのは2012年のRaspberry Pi Model Bの登場です。
Raspberry Pi財団はもともとプログラミング教育を普及させる目的でRaspberry Piを開発しました。35ドルという低価格・LinuxのサポートとGPIOピン・豊富なコミュニティにより爆発的な普及を遂げます。2023年には累計販売台数が5000万台を超えました。
Raspberry Piの成功に続き、ODROID・PINE64・Rock Pi・Orange Pi・Banana Piなど多数の競合SBCが登場。またNVIDIA JetsonのようなAI特化型SBCも普及しています。
技術仕様
代表的なSBC製品比較
| 製品 | SoC | RAM | 動作周波数 | 用途 |
|---|---|---|---|---|
| Raspberry Pi 5 | BCM2712 (Cortex-A76×4) | 4〜8GB | 2.4GHz | 汎用 |
| Raspberry Pi 4 B | BCM2711 (Cortex-A72×4) | 1〜8GB | 1.8GHz | 汎用 |
| Raspberry Pi Zero 2 W | RP3A0 (Cortex-A53×4) | 512MB | 1GHz | 超小型 |
| NVIDIA Jetson Nano | Tegra X1 | 4GB | 1.43GHz | エッジAI |
| BeagleBone Black | AM335x (Cortex-A8) | 512MB | 1GHz | 産業・教育 |
| ODROID-N2+ | S922X (Cortex-A73×4+A53×2) | 2〜4GB | 2.4GHz | 高性能メディア |
| Rock Pi 4 | RK3399 (Cortex-A72×2+A53×4) | 1〜4GB | 1.8GHz | 汎用 |
標準的なI/O仕様(Raspberry Pi 5の例)
GPIO: 40ピン(GPIOx26 + 電源・GND)
USB: USB3.0×2、USB2.0×2
HDMI: microHDMI×2(最大4K@60Hz)
カメラ: MIPI CSI-2×2
ディスプレイ: MIPI DSI×2
Ethernet: GbE(1Gbps)
Wi-Fi: IEEE 802.11ac(2.4/5GHz)
Bluetooth: BT 5.0 / BLE
ストレージ: microSDカード + PCIe 2.0(M.2 HAT経由)
GPIO電圧: 3.3V(5V非耐性!)
GPIO最大電流: 16mA/ピン(合計50mA)
GPIOピン配置(40ピンヘッダー抜粋)
ピン1 : 3.3V電源
ピン2 : 5V電源
ピン3 : GPIO2 (I2C1_SDA)
ピン5 : GPIO3 (I2C1_SCL)
ピン8 : GPIO14 (UART_TX)
ピン10 : GPIO15 (UART_RX)
ピン11 : GPIO17
ピン19 : GPIO10 (SPI0_MOSI)
ピン21 : GPIO9 (SPI0_MISO)
ピン23 : GPIO11 (SPI0_SCLK)
ピン39 : GND
ピン40 : GPIO21
動作原理
SBCはLinux(Raspberry Pi OSなど)の起動から以下の流れで動作します:
- 電源投入: 5V USB-C(または5V GPIO)から電源供給
- ブートロム: SoC内蔵のROMがSDカード/eMMCからブートローダーをロード
- U-Boot/ファームウェア: ブートローダーがLinuxカーネルとデバイスツリーをロード
- カーネル起動: Linuxカーネルがドライバーを初期化
- ユーザースペース: systemdが各サービスを起動
- アプリケーション: ユーザーのPython/C++/Node.jsプログラムが動作
# Raspberry PiでGPIOを制御するPython例(RPi.GPIOライブラリ)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT) # GPIO17を出力に設定
try:
while True:
GPIO.output(17, GPIO.HIGH) # Highに設定(3.3V)
time.sleep(1)
GPIO.output(17, GPIO.LOW) # Lowに設定(0V)
time.sleep(1)
finally:
GPIO.cleanup() # GPIOリソースを解放
# 新しいgpiodライブラリの使用例(Raspberry Pi 5推奨)
import gpiod
import time
with gpiod.Chip("gpiochip4") as chip:
line = chip.get_line(17)
line.request(consumer="example", type=gpiod.LINE_REQ_DIR_OUT)
line.set_value(1)
time.sleep(1)
line.set_value(0)
用途・ユースケース
SBCが活躍する主な用途:
- 教育・学習: プログラミング入門・電子工作・Scratch・Python学習
- プロトタイプ開発: 製品のコンセプト検証・機能プロトタイプ作成
- ホームオートメーション: Home Assistant・Node-REDによるスマートホーム構築
- メディアサーバー: Kodi・Plex・RetroArchなどのメディア再生・ゲームエミュレーター
- ネットワーク機器: Pi-hole(DNSフィルタリング)・VPNサーバー・ルーター
- IoTゲートウェイ: センサーデータ収集・クラウド送信・ローカル処理
- デジタルサイネージ: 店舗・施設の情報表示端末
- AI推論: TensorFlow LiteやONNX RuntimeでのエッジAI
実装・開発のポイント
電源設計
Raspberry Pi 4/5は5V 3A以上(公式は5V 5A推奨)の電源が必要です。電力不足はCPUのサーマルスロットリングや予期せぬリセットの原因になります:
# 電力警告の確認(Raspberry Pi OS)
vcgencmd get_throttled
# 0x0 = 正常、0x50005 = 電圧低下が発生
SDカードの選定と寿命対策
Raspberry Piの弱点はSDカードの書き込み寿命です:
- Class: UHS-I U3 / A2クラス以上を推奨(ランダム書き込み性能が重要)
- ブランド: SanDisk Endurance / Samsung PRO Endureなどの耐久モデル
- ログのRAMDISK化: systemdのジャーナルをtmpfsに配置してSDへの書き込みを減らす
- overlay filesystem: ルートファイルシステムを読み取り専用にしてSDを保護
# /etc/fstab でtmpfsを設定してログをRAMに置く例
tmpfs /var/log tmpfs defaults,noatime,nosuid,size=32m 0 0
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=64m 0 0
HAT(Hardware Attached on Top)
Raspberry Pi用の拡張基板をHAT(Hardware Attached on Top)と呼びます。40ピンGPIOヘッダーに差し込み、I2C EEPROMによる自動認識をサポートします。モーターHAT・カメラHAT・センサーHATなど数百種類が市販されています。
他技術との比較
SBC vs マイコン(MCU)
| 項目 | SBC | MCU |
|---|---|---|
| OS | Linux / Android | ベアメタル / RTOS |
| プログラミング | Python / C++ / Node.js など | 主にC/C++ |
| 起動時間 | 数十秒 | 数ms〜数百ms |
| リアルタイム性 | 弱い(OS割り込みで揺れる) | 強い(割り込み応答がus〜ms) |
| 消費電力 | 2〜15W | 数mW〜数百mW |
| 単価 | 1,000円〜1万円 | 数十円〜数千円 |
SBC vs SoM
SBCはそれ単体で動作できる完成品、SoMはキャリアボードとセットで使うモジュールです。量産製品にはSoM+カスタムキャリアボードが適し、プロトタイプ・少量生産・教育用途にはSBCが向いています。