0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Shrike-LiteでAtCoder問題を解く(2) 準備編②:Factory Codeを確認してRP2040側のLチカ速度を変える

0
Last updated at Posted at 2026-07-09

はじめに

前回は、Shrike-Liteの概要と、今後使う開発環境を整理しました。

今回は、いよいよ実機を触ります。

といっても、いきなりAtCoderの問題をFPGAで解くわけではありません。
その前にFactory Codeを出発点にして、まずはRP2040側のLチカ速度を変えてみます。

比較的簡単な作業を通して、Shrike-LiteのRP2040側の開発ループを一周してみることが目的です。

Shrike-Liteのボード上には青色LEDが二つ搭載されています。

LEDの位置は、Shrike公式GitHubリポジトリに掲載されているボード外観写真を見ると分かりやすいです。

USB-CコネクタのすぐそばにあるLEDはRP2040に、もう一つのボードの下側のLEDはFPGAに接続されています。

今回は、このうちRP2040側のLED点滅速度を変更します。
FPGA側のLED点滅速度変更は、次回の記事で扱います。

今回やること

今回の流れは以下です。

RP2040側は、MicroPythonのスクリプトを書き換えて実行します。

同じ「Lチカ速度を変える」でも、マイコン側とFPGA側では手順がかなり違います。
今回はまず、マイコン側の変更を試してみます。

Factory Codeを確認する

まず、Shrike-LiteのFactory Codeを確認します。

Shrike-LiteをPCに接続すると、USBドライブとして認識されます。
手元の環境では、USBドライブ内に次の2つのファイルが見えました。

USBドライブ
├── blink_all.bin
└── main.py

Shrike-LiteでAtCoder問題を解く(2)_001.png

main.py はRP2040側で動くMicroPythonコードです。
blink_all.bin はFPGAに書き込まれているbitstreamです。

USBドライブ内にはFPGA側のVerilogソース一式が入っているわけではないようです。

FPGA側のLチカサンプルソースは、Shrike公式GitHubリポジトリの examples/led_blink に公開されているものを利用することにします。

今回と次回で触るのは、主に次の2種類のファイルです。

種類 ファイル 役割
RP2040側 main.py RP2040側で動くLチカコード
FPGA側 examples/led_blink 配下のVerilogコード FPGA側で動くLチカ回路

まず今回は、RP2040側の main.py について、既存コードの構成は変えず、点滅速度に関係する部分だけを変更します。

RP2040側のLチカ速度を変える

最初に、RP2040側のLチカ速度を変えてみます。

RP2040側はMicroPythonで動いているため、Thonnyからファイルを開き、スクリプトを実行できます。

Thonnyでファイルを開く

まず、ThonnyをShrike-Lite上のMicroPythonに接続します。

① Shrike-LiteをUSBケーブルでPCに接続します。

② PC上でThonnyを起動します。

Shrike-LiteでAtCoder問題を解く(2)_002.png

③ Thonny画面右下に表示されている接続先をクリックします。

表示された一覧から "MicroPython (Raspberry Pi Pico) ... COMx" を選びます。

Shrike-LiteでAtCoder問題を解く(2)_003.png

Thonnyのシェル画面に、Shrike-Lite上のMicroPythonに接続できたことを示すメッセージが出れば成功です。

Shrike-LiteでAtCoder問題を解く(2)_004.png

今回は、工場出荷時の main.py を直接変更せず、コピーを作って変更します。

USBドライブ上の main.py をコピーして、main_copy.py という名前にしておきます。

Shrike-LiteでAtCoder問題を解く(2)_005.png

点滅速度に関係する部分を探す

Thonnyから「ファイルを開く」→「このコンピュータ」→「USBドライブ」を選び、先ほど作成した main_copy.py を開きます。

Shrike-LiteでAtCoder問題を解く(2)_006.png

MicroPython側のコードのうち、点滅速度に関係しそうな部分を探します。

たとえば、以下のような sleepdelay に相当する処理があるはずです。

    for led in leds:
        led.value(1)
    time.sleep(1)

    for led in leds:
        led.value(0)
    time.sleep(1)

ここでは、点滅間隔を少し変えてみます。

    for led in leds:
        led.value(1)
    time.sleep(0.2)

    for led in leds:
        led.value(0)
    time.sleep(0.2)

変更が済んだら「ファイル」→「保存」で保存してください。

実行して確認する

変更したら、Thonnyから実行します。

Thonny画面上部のツールバーにある、緑色の「現在のスクリプトを実行」ボタンを押します。

Shrike-LiteでAtCoder問題を解く(2)_007.png

実行すると、RP2040側で制御しているLEDの点滅速度が変わるはずです。

time.sleep() の値を小さくすると点滅が速くなり、大きくすると遅くなります。
実際に値を変えて、LEDの点滅速度が変わることを確認できれば成功です。

これで、RP2040側の開発ループは確認できました。

RP2040側は、普通のMicroPythonスクリプトとして書き換えて実行できるため、比較的気軽に試せます。

次回

次回は、FPGA側のLチカ速度を変えてみます。

RP2040側では、MicroPythonスクリプトを保存して実行すれば動作が変わりました。

一方、FPGA側では、Verilogコードを変更したあと、ForgeFPGA Workshopで合成し、bitstreamを生成して、Shrike-Liteへ書き込む必要があります。

次回はこのFPGA側の開発ループを一周します。

前回:準備編①:Shrike-Lite紹介と環境準備

次回:準備編③:ForgeFPGA WorkshopでFPGA側のLチカ速度を変える

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?