JavaScriptを有効にしてください

Seeed Studio XIAO RP2040でPRK Firmwareを使ってみた

 ·  ☕ 3 分で読めます

前提

ボードにPRK Firmwareを入れる

  1. githubのreleasesからuf2ファイルをダウンロード
    基本的に最新バージョンで大丈夫とのこと
  2. USB接続しBOOTボタンを押しながらRESETボタンを押す
  3. ターミナルでマウントされていることを確認する
    $ mount
    /dev/disk2s1 on /Volumes/RPI-RP2 (msdos, local, nodev, nosuid, noowners)
    
    この時点ではRPI-RP2となっている。
  4. ダウンロードしたuf2ファイルをRPI-RP2に移動する
    $ mv path/to/uf2_file /Volumes/RPI-RP2/uf2_file
    
  5. もう一度マウントを確認して名称が変わっていたらファームウェア書き込みは完了
    $ mount
    /dev/disk2 on /Volumes/PRKFirmware (msdos, local, nodev, nosuid, noowners)
    

keymap.rbを作成する

ピン設定やキーマップ、LEDの設定についてはkeymap.rbというファイルで管理する。
ファイルを作成したら作業ディレクトリから/Volumes/PRKFirmwareにコピーすればOK。
更新したい時も同じ手順。

$ cp path/to/keymap.rb /Volumes/PRKFirmware/keymap.rb

ピン番号について

ボード本体に記述されている番号ではなく、それに対応する別の番号を指定して設定する必要がある。
https://www.switch-science.com/products/7634
上記サイトのピン番号が記載されている画像のMicropythonの番号を使用する。
P0のようになっているが数字のみ指定する。

キースキャンについて

https://github.com/picoruby/prk_firmware/wiki/Keyscan-matrix
キーマトリクスを使用したり、マトリクスなしの直接読み取り等指定できる。

LEDについて

https://github.com/picoruby/prk_firmware/wiki/RGBLED
RGBクラスを使用して色やパターンを指定できる。
試してないけど、マトリクス機能を使用してより複雑なパターンも実行できるよう。
https://github.com/picoruby/prk_firmware/wiki/RGB-Matrix#rgb-matrix

色はRGBクラスのhue, saturation, valueにそれぞれ値をセットすることで変えられる。
この使用例では

rgb.hue        = 10  # 0-100 / default: 0

となっているが、コードを見た限りだと0~348で指定するっぽい。
指定した値をここでrgbに変換しているっぽいけど、hueの値での分岐の際に100までだと青系の色にできなさそうな気がする。

とりあえずこんな感じでhueを100以上にしても動作することは確認できた。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
kbd = Keyboard.new

kbd.init_direct_pins(
  [1] # D7
)
kbd.add_layer :default, %i[ 
  KC_1
]

rgb = RGB.new(
  0,   # D6
  5,   # size of underglow pixel
  0,   # size of backlight pixel
  true # 32bit data will be sent to a pixel if true while 24bit if false
)
rgb.effect     = :static
rgb.speed      = 31
rgb.hue        = 260 
rgb.saturation = 100 
rgb.value      = 31

kbd.append rgb 
kbd.start!

LEDの電源についてはボード上で3V3と記載されているピンを使用した。
LEDの仕様上5vの電圧が必要で、3V3では仕様外の使い方となるらしい。
https://zenn.dev/koron/articles/390bb5efa43ad0

実際には上記記事のやり方で使用するのが良さそう。

VCCピンを使用しても動作することは確認できたけど、この場合はDINで使用するピンが3.3vの出力なので電圧が合わない。
逆流防止のためにこっちも電圧を合わせに行く必要がありそう。

その他

ブレッドボードとテープ式LED(LEDは10個点灯まで確認)を使用して簡単にPRK firmwareの使い方を確認できた。
QMK firmware等他のを使い込んだ経験がないのでどちらが良いとも言えないが、
ボードに書き込むのに特にツールが必要ないので、導入時のハードルはかなり低い印象。


書いた人
keee
Webエンジニア

目次