金宏和實です。優秀な小学生プログラマーに教えてもらって、PyBricksとBlocklyPy Commanderを使ってみました。PybricksはMicroPythonのプログラミング環境でBlocklyPy CommanderはVSCodeの拡張機能です。
(VSCodeでPybricksを使えるようにするにはPythonそのものやpybricksライブラリなどのインストールが必要ですが、そこは情報が多いので割愛します。次のサイトなどを参照してください)

ロボットをBluetooth接続した状態で新規にプログラムファイルを作成すれば、上の画像のように各ポートに接続されているデバイスを検知してコードを挿入してくれます。

BlocklyPyを使えば、たとえばGyroセンサーの値を上の画像のようにターミナルに出力させた上で可視化することができます。(コードの書き方が独自の制約があるのでちょっと戸惑い迷いましたが)

次はライントレースをするMicroPythonのコードです。

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
from pybricks.robotics import DriveBase
from pybricks.tools import wait, StopWatch

hub = PrimeHub()                                                       # SPIKE Prime Hub
force_a = ForceSensor(Port.A)                                          # SPIKE/Technic Force Sensor
color_b = ColorSensor(Port.B)                                          # SPIKE/Technic Color Sensor
motor_c = Motor(Port.C, positive_direction=Direction.COUNTERCLOCKWISE) # SPIKE Prime Medium Motor
motor_d = Motor(Port.D)                                                # SPIKE Prime Medium Motor
motor_e = Motor(Port.E)                                                # SPIKE Prime Large Motor
usensor_f = UltrasonicSensor(Port.F)                                   # SPIKE/Technic Ultrasonic Sensor
robot = DriveBase(motor_c, motor_d, wheel_diameter=56, axle_track=112) # DriveBase based on detected motors

# ライントレース用の定数設定
DRIVE_SPEED = 100      # 走行速度 (mm/s)
THRESHOLD = 50         # 白と黒の境界の反射光強度 (中間値)
PROPORTIONAL_GAIN = 1.5 # 補正の強さ(Pゲイン)

def line_trace(distance):
    # 指定した距離に達するまでループを回す
    while robot.distance() < distance:
        # センサーから現在の反射光の明るさを取得 (0〜100)
        current_reflection = color_b.reflection()
        
        # 境界値との「ズレ」を計算
        deviation = current_reflection - THRESHOLD
        
        # ズレにゲインを掛けて、曲がる勢い(旋回速度)を計算
        turn_rate = deviation * PROPORTIONAL_GAIN
        
        # 計算した速度と旋回速度でロボットを動かす(ノンブロッキング)
        robot.drive(DRIVE_SPEED, turn_rate)
        
        # ループが早すぎて処理が詰まるのを防ぐための短いウェイト
        wait(10)

    # 指定距離を走り終えたら、ピタッと停止する
    robot.stop()

def main():
    print("Starting line trace...")
    # 走行距離メーターを0にリセット
    robot.reset()
    line_trace(1000)
    print("Line trace completed.")  

if __name__ == "__main__":
    main()

指定した距離までライントレースをする関数をひとつ持つサンプルプログラムを作ってみました。と言ってもAI(Gemini)が作ってくれたコードに少し手を加えただけです。MicroPythonは広く使われているのでAIがかなり正確なコードを提示してくれるようです。
Pybricksを始めようとしている人は参考にしてください。

また、小中学生がAI を利用することについていろいろな議論がされていますが、プログラミングの場合、AIが作成したコードを読めないと先に進めないので、私論としてはAIとペアプログラミングも良いんじゃないかと思います。