STEAM TRAIN 2025

STEAM TRAIN 2025

AIツール

使用するAIツールはこちら!


アンケートと資料

アンケートのご協力をよろしくお願いいたします。

アンケートフォーム

ワークショップ中にお配りしたワークシートや作成したコードを下記のリンクにアップデートしてありますので、必要に応じて活用していただけたら幸いです。

ワークシートやサンプルコード


おうちでプログラミング

プログラミング環境を用意(インストール手順)

  1. Arduino IDEをインストール
  2. マイコンに書き込むための設定(ボードを追加)
  3. LEDを制御するためのライブラリを追加

STEP1: ArduinoIDEをインストール

Windows/MacのパソコンにArduinoIDEをインストールします。

またはブラウザ上で動かすことが出来るプログラミング環境もあるので、アカウントを作ることで簡単に書き込みをすることができます。

STEP2: マイコンに書き込むための設定(ボードを追加)

マイコン(STEAM TRAIN 2025ではRaspberry Pi Picoを使用しています)に関する設定を追加します。

[ボードマネージャ]を開き、上部に[ raspberry pi ]と入力し検索をかけ、[ Arduino Mbed OS RP2040 Boards ]をインストールする。

このとき、追加でドライバなどのインストールをするかどうかを聞かれる場合があります。聞かれた場合は、許可、YES等を選び追加のインストールを行ってください。

STEP 3: LEDを制御するためのライブラリを追加

STEAM TRAIN 2025ではフルカラーLEDを使用しています。フルカラーLEDを制御するために、必要なライブラリを追加します。

  1. Libary Manager を開き、[ Adafruit Neopixel ]と入力し検索を行います。
  2. バージョンを [ 1.15.0 ] に合わせてインストールを行います。

このとき、1.15.0を必ずインストールしてください。最新のバージョン( 1.15.1 )ではエラーが出て書き込みが出来ません。

画面が切り替わるので、左側のBOARDSでは、[ raspberry pi ]と入力し、[ Raspberry Pi Pico ]を選択、PORTSでは、接続した対応するポートを選択します。

ポートは、(USB)などと表示されます。その他にUSBを指していてわからない場合は、マイコン偽つ属しているUSBを抜き差しすることで特定をすることが出来ます。

正しく選択がされると、[ Raspberry Pi Pico ]という文字が太字になります。

太字になっていることを確認して、矢印(→) ボタンをクリックしてマイコン似プログラムを書き込みます。

プログラミンを試そう

インストールが完了したら書き込みを行います。

書き込みを行うコードを準備しパソコンとプログラムを書き込む基板を接続します。

接続を行ったら、Arduino IDE上部のセレクトボックスルをクリックし、一番下の[ Select other board and port… ]をクリックします。

既に太字で[ Raspberry Pi Pico ]と認識していれば書き込み手順を飛ばしてもOKです。

プログラミングをしよう

サンプルプログラム

下記のリンクよりダウンロードしましょう

ワークシートやサンプルコード

生成AIを使ってプログラミングをしよう

生成AIを使ってプログラミングを行う手順を説明します。

ChatGPTCopilotなどの生成AIサービスにアクセスをしてプログラムを行います。

注意:各社サービスの利用規約に従って利用してください。

ここでは、ChatGPTを例に見てみます。

ChatGPTにアクセスをしたら、下記のサンプルを全てコピーし、指示の部分を作成したいプログラムの内容の指示を書いて生成を行います。

Raspberry Pi PicoとArduino IDEを使って踏切を作るプログラムを作っています。GP19、GP20にそれぞれneopixelフルカラーLEDが3個ずつ接続されています。
次のサンプルコードを参考に指示通りに修正を行い、コピー&ペーストで動くプログラムを完全なコードを作成してください。

# 指示
{ ここに命令を書きます。 例: 赤色に点滅をして、ラの音を0.5秒間隔で10回ならした後に10秒LEDを消灯させてください。 }

# サンプルコード
```
#include <Adafruit_NeoPixel.h>

/* ───── ピン & 定数 ───── */
#define PIN_STRIP_A   19   // GP19:NeoPixel 3個(横)
#define PIN_STRIP_B   20   // GP20:NeoPixel 3個(縦)
#define PIN_BUZZER    21   // 圧電ブザー
#define NUMPIXELS     3    // フルカラーLED 3個
#define BRIGHTNESS    50
#define BEAT          160  // 効果音長 [ms]

/* ───── インスタンス ───── */
Adafruit_NeoPixel stripA(NUMPIXELS, PIN_STRIP_A, NEO_RGB + NEO_KHZ800);
Adafruit_NeoPixel stripB(NUMPIXELS, PIN_STRIP_B, NEO_RGB + NEO_KHZ800);

void setup() {
  // NeoPixel 初期化
  stripA.begin();
  stripB.begin();
  stripA.setBrightness(BRIGHTNESS);
  stripB.setBrightness(BRIGHTNESS);
  stripA.show();
  stripB.show();

  // ブザー初期化
  pinMode(PIN_BUZZER, OUTPUT);

  // 効果音 ♪ ドレミファソラシド
  const int scale[] = {262, 294, 330, 349, 392, 440, 494, 523};
  for (int i = 0; i < 8; i++) {
    tone(PIN_BUZZER, scale[i], BEAT);
    delay(BEAT);
  }
  delay(100);
}

void loop() {
  // ── 赤信号 ──
  // すべて消灯
  stripA.clear();
  stripB.clear();
  // インデックス0を赤に
  stripA.setPixelColor(0, stripA.Color(255, 0, 0));
  stripB.setPixelColor(0, stripB.Color(255, 0, 0));
  stripA.show();
  stripB.show();

  // 音を鳴らす
  for (int i = 0; i < 2; i++) {
    tone(PIN_BUZZER, 349);
    delay(250);
    noTone(PIN_BUZZER);
    delay(250);
  }

  // ── 黄信号 ──
  // すべて消灯
  stripA.clear();
  stripB.clear();
  // インデックス1を黄に
  stripA.setPixelColor(1, stripA.Color(255, 255, 0));
  stripB.setPixelColor(1, stripB.Color(255, 255, 0));
  stripA.show();
  stripB.show();

  delay(300); // 0.3秒待ち、繰り返し
}
```

全てをコピーし、指示を書き込み、矢印(↑)マークでコードを生成をします。

生成が完了すると、プログラムが作成されるので、ワークショップ同様にプログラムをコピーして貼り付けを行ってプログラムを実行させましょう。