Raspberry Pi 400を使ってみた!〜キーボード一体型ラズパイ400の開封から簡単な電子工作まで (ヨシケン)

Facebooktwittermail

こんにちは、Raspberry Piが大好きでRaspberry Pi + AIという本まで出してしまったヨシケンこと吉田顕一です!

Raspberry Pi Foundationからキーボード一体型のRaspberry Pi 400が発表されました。ラズパイ好きとしてはこれを試さない手はありません。今回は技適の試用許可も済ませたRaspberry Pi 400を入手したので、この使用感、工作例をお届けします。

[ Raspberry Pi 400のパッケージ内容 ]
[ 箱から出してつなぐだけ、ものの1分でRaspberry Piが使えるようになった ]

今回の記事の流れ

  • Raspberry Pi 400とは
  • Raspberry Pi 400のオープニング
  • 簡単な電子工作をやってみる(NeoPixelをチカチカ)
  • Raspberry Pi 400を使ってみたまとめ

Raspberry Pi 400とは

Raspberry Piは手のひらサイズのワンチップ・コンピュータで、様々なハードウェアと接続する事ができ、数千円と安価なので、IoT時代の代名詞のようなデバイスになりました。ただ基盤がむき出しで、ディスプレイやキーボードが最初から無いので、電子工作を始めるのに少しハードルが高かったかもしれません。

そこにRaspberry Pi Foundationから2020年11月にキーボードとRaspberry Piが一体化したRaspberry Pi 400が登場しました!Raspberry Pi Foundationから見た目も楽しい外装付きのデバイスが出るのは初めてですし、ディスプレイにつなげば使い始められる、とても手軽なキットとして話題になっています。

ここでは事前に技適の試用許可を取得したRaspberry Pi 400(US配列キーボード)バージョンを手に入れ、その開封から使い勝手を見ていきます。簡単な電子工作もしてみますよ。

Raspberry Pi 400の開封!

それではRaspberry Pi 400を開封していきましょう! 箱はけっこう大きくて高さがあります。Personal Computer Kitと書いてあり、正に自分だけのパソコン・キットという感じです。

箱を開けると、いきなり本体のキーボード。Windowsボタンなどがある位置に、赤いラズパイボタンが!

箱の中、キーボードの下には、マウスと電源ケーブル、Raspbianインストール済みのMicro SDカードが入っています。

箱から中身を全部出してみましょう。他にHDMIケーブル(Micro HDMIーHDMI端子)と英語のビギナーズガイド・マニュアルが入っています。

本体のキーボードはこのような形、表面は真っ白で綺麗です。

今回はUS版のキーボードの為、英字配列になっています。日本語版が2021年にもリリースされる予定で、そちらは日本語キーボードになる予定だときいています。

キーボードを裏返すと、裏面はラズベリー色(?)。排熱の為の通気口もあります。

背面にはコネクタ類が並んでいます。ここを見るとRaspberry Piっぽく、左側にはお馴染みの40ピンがあります。右側には電源のUSB Type-Cや3つの Type A端子、LANコネクタなどが並んでいます。

マウスも白と朱色でキーボードと色が揃っていて、なかなかかっこいい。

それではRaspberry Piを起動する為に、それぞれをつないでみましょう。

HDMIケーブルを一番近くにあったテレビにつないでみます。あとは電源を入れるだけ。箱を開けて約1分で、Raspberry Piが立ち上がって使い始められました。

やはり、簡単は正義!史上一番使いやすいRaspberry Piではないでしょうか。

簡単な電子工作をやってみる(NeoPixelをチカチカ)

Raspberry Pi 400が立ち上がったら、ウィザードに従って、キーボードやWifi接続などの基本的なセットアップを済ませて下さい。

[ 国情報などのロケールの設定 ]
[ Wifiの設定 ]

基本的な設定が終わったら、さっそく簡単な電子工作をやってみましょう。

まずはマルチカラーのLEDが連なって制御できるNeoPixelというものを使ってみます。

ここでは12個のNeoPixelがリング上に連なった、Adafruitが出している12連NeoPixelリングを使います。

このNeoPixelには裏側にIN(入力)、VCC(5V電源)、GND(0V)と端子が付いているので、ここにジャンパ・ケーブルを半田付けします。ケーブルの色はあるもので構いませんが、ここではIN(緑色)、VCC(黄色)、GND(青色)にしています。

それでは各ケーブルを以下表に従って、Raspberry Pi 400に接続します。

NeoPixel側Raspberry Pi側
VCC (黄色いケーブル)PIN2 – 電源(5V)
GND (青いケーブル)PIN6 – GND
IN (緑のケーブル)PIN12 – GPIO18

Raspberry Pi 400背面の40ピンは、写真の向きで(左下にPIN1番、最右上にPIN40番と小さく書いてあります)下図のようになっています。

NeoPixelをつないだ後に、見える位置にセット。

NeoPixelを使い始めるに当たって、Adafruitのこちらのサイトを参照すると、大抵の事はできるようになっています。

https://learn.adafruit.com/adafruit-neopixel-uberguide/python-circuitpython

サイト内に書いてある以下コマンドにより、NeoPixelライブラリがインストールできます。

pi@raspi400:~ $ sudo pip3 install adafruit-circuitpython-neopixel

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simpleCollecting adafruit-circuitpython-neopixel Downloading https://www.piwheels.org/simple/adafruit-circuitpython-neopixel/adafruit_circuitpython_neopixel-6.0.0-py3-none-any.whl

Collecting Adafruit-Blinka (from adafruit-circuitpython-neopixel) Downloading https://www.piwheels.org/simple/adafruit-blinka/Adafruit_Blinka-5.8.1-py3-none-any.whl (137kB) 100% |████████████████████████████████| 143kB 252kB/s

Successfully installed Adafruit-Blinka-5.8.1 Adafruit-PlatformDetect-2.22.2 Adafruit-PureIO-1.1.7 adafruit-circuitpython-neopixel-6.0.0 adafruit-circuitpython-pypixelbuf-2.2.0 pyftdi-0.52.0 pyusb-1.1.0 rpi-ws281x-4.2.5 sysv-ipc-1.0.1

その後、Adafruitサイトにあるサンプルプログラムを使ってみます。このリンクからダウンロードしてRaspberry Piに送るか、以下コマンドで取得、実行してみて下さい。

https://learn.adafruit.com/pages/2281/elements/3005652/download

pi@raspi400:~/ $ sudo mkdir Programs
pi@raspi400:~/ $ cd Programs
pi@raspi400:~/Programs $ sudo wget https://learn.adafruit.com/pages/2281/elements/3005652/download -O
neopixel_simpletest.py
pi@raspi400:~/Programs $ sudo python3 neopixel_simpletest.py

まずはNeopixelが様々な色に光り出したと思います。

ただピカピカ光るだけでも楽しいですが、せっかくなのでキーボードの押したキーと連動するものにしましょう。サンプルのプログラムとして以下のようなneopixel_keys.pyを作りました。プログラムはGithubにも格納しています。https://github.com/ktrips/raspi400

[ Program: neopixel_keys.py ]

import sys,tty,termios
def getch():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(sys.stdin.fileno())
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch
import time
import board
import neopixel
# On CircuitPlayground Express, and boards with built in status NeoPixel -> board.NEOPIXEL
# Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1
# pixel_pin = board.NEOPIXEL
# On a Raspberry pi, use this instead, not all pins are supported
pixel_pin = board.D18
# The number of NeoPixels
num_pixels = 12
# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!
# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.
ORDER = neopixel.GRB
pixels = neopixel.NeoPixel(
    pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
def wheel(pos):
    # Input a value 0 to 255 to get a color value.
    # The colours are a transition r - g - b - back to r.
    if pos < 0 or pos > 255:
        r = g = b = 0
    elif pos < 85:
        r = int(pos * 3)
        g = int(255 - pos * 3)
        b = 0
    elif pos < 170:
        pos -= 85
        r = int(255 - pos * 3)
        g = 0
        b = int(pos * 3)
    else:
        pos -= 170
        r = 0
        g = int(pos * 3)
        b = int(255 - pos * 3)
    return (r, g, b) if ORDER in (neopixel.RGB, neopixel.GRB) else (r, g, b, 0)
def rainbow_cycle(wait):
    for j in range(255):
        for i in range(num_pixels):
            pixel_index = (i * 256 // num_pixels) + j
            pixels[i] = wheel(pixel_index & 255)
        pixels.show()
        time.sleep(wait)
while True:
    char = getch()
    if char in ("r",”R”): #red
        print("Red!")
        pixels.fill((255, 0, 0))
        pixels.show()
    if char in ("g",”G”): #green
        print("Green!")
        pixels.fill((0, 255, 0))
        pixels.show()
    if char in ("b",”B”): #blue
        print("Blue!")
        pixels.fill((0, 0, 255))
        pixels.show()
    if char in ("z",”Z”): #zoom
        print("Zoom!")
        pixels.fill((255, 255, 255))
        pixels.show()
    if char in ("t",”T”): #tired then rainbow colors
        print("Rainbow colors!")
        rainbow_cycle(0.001)
    if char in ("s",”S”): #stop
        print("Stop Neopixel")
        pixels.fill((0, 0, 0))
        pixels.show()
    if char in ("x","q",”X”,”Q”): #quit
        print("Program Ended")
        pixels.fill((0, 0, 0))
        pixels.show()
        break

ここでは、キーボード上でRキーを押すと、赤く(Redに)光ります。同様にG(reen)やB(lue)を押すとその色に変化するはずです。また昨今Zoom会議などを行う時に、Z(oom)と押すと、明るく白色に光って顔色をよく見せられるかもしれません。そして疲れている時にT(ired)と押すと、レインボーに光って気分がアガるかも!?最後に、xまたはqと押すと電気が消えます。

(R)edを押した時(Z)oomを押した時(T)iredを押した時

いかがでしょうか?Raspberry Pi 400で簡単に電子工作できたでしょうか?

Raspberry Pi 400を使ってみたまとめ

Raspberry Piとキーボードが一体化したRaspberry Pi 400を使ってみました。

箱から取り出して、ディスプレーにつなぐだけですぐ使い始められるので、電子工作やIoTの敷居がグッと下がったのではないでしょうか? 手軽にLinuxを始めるのにも適していると思います。

外部機器や、LED、センサなどをつなぐコネクタ類もキーボード背面にまとめられていて、すっきり使いやすいようになっています。

今回はマルチカラーLEDのNeoPixelを光らせる最初の電子工作をしてみました。

その他にも、例えば人感センサーを付けて、座り過ぎ、仕事のし過ぎをチェックする事もできるかもしれません。

また温湿度センサーや明るさセンサーを付けて、デスク周りの環境チェック、快適な仕事場所を目指すのもいいかもしれません。

今後、このRaspberry Pi 400とセンサー、外部機器などを使って、様々な電子工作をしていきたいと思います!

(吉田 顕一)

Facebooktwitterrssyoutubeinstagram