ロボットを動かすプログラミングのツールには「Pybricks(パイブリックス)」を採用しています。「ブロックコーディング」か「Python(パイソン)」で、プログラミングできます。

  • Pybricks という名前は「Python(Py)で LEGO ブロック(Bricks)を動かす」という意味の造語です。

このツールは、ロボットを本格的な産業用ロボットに近い性能に変えてくれます。「本格的なロボットなんて、子供には早いのでは?」と思われるかもしれませんが、実は逆なんです。本格的だからこそ、反応が速くて、思い通りに動きます。「動かない…なんで?」というストレスを、ブラックボックスの高度な制御でゼロにして、純粋な試行錯誤を楽しんでもらう事が出来ます。

命令ブロックの移動や画面の拡大縮小、ブロックのコピペなどの基本操作も簡単で、スマホやタブレットの操作になれているお子様でしたら、すぐにプログラミングができます。

以下に、Pybricks と公式アプリの違いをまとめています。

  • ハブのクロック周波数は100MHzですが、下表の処理速度にはロボット制御における実効ループ速度を記載しています。
  • Pybricks のブロックコーディングでは、PC上で Python に翻訳してロボットにダウンロードするため、ロボット自体の性能は Python と同じです。
  • Hz(ヘルツ)は1秒間の処理回数です。

項目Pybricks
(当教室)
LEGO公式アプリ
(一般的な教室)
処理速度高速
〜1000Hz
低速
〜100Hz
アプリ内表記日本語 & 英語切替
日本語化は当教室独自
日本語 & 英語切替
ブロックから
Pythonへ翻訳
ボタンを
クリックするだけ
不可
起動時間速い
< 5秒
遅い
> 30秒
Bluetooth安定やや不安定
ロボット間通信ハブ同士で
簡単通信
基本不可
コントローラーXbox controller に
簡単接続
基本不可

Pybricksは英語表記であるため、講師が独自にブロックコーディングの「日本語化」を行っています。お子様にも分かりやすいよう直訳ではなく、やさしい表現を選んでいます。

英語
日本語
  • 条件分岐の流れを分かりやすい言葉に
    • ifもし
    • else ifでももし
    • elseほかは
  • 不要な「前置詞」はカット
    日本語と英語は語順が違います。また、Pybricksのブロック内のパラメーター(数字を入力するところ)や、ドロップダウンリストの位置は固定です。翻訳は単語のみが置き換えになりますので、前置詞を翻訳すると不自然な日本語になってしまいます。そこで「at」や「from」、「to」といった「なくても分かる」前置詞は削除しました。
  • 必要な「前置詞」の時間の流れは「」に
    言葉の後ろに矢印をつけることで、「条件が満たされるまで」という時間の流れを視覚化しました。
    • until sensor == REDまで  センサー == 赤
    • while sensor == REDあいだ  センサー == 赤
  • 等号・不等号を分かりやすく
    つまづきやすい等号・不等号に説明をつけています。「どっちが大きいんだっけ?」と迷うことがなくなります。

これにより、お子様たちは高機能なPybricksを分かりやすい日本語で学べます。さらに「英語表記への切り替えもボタン一つ」で出来るため、「英語でもやってみたい!」そんな意欲が出てきたら、すぐに英語表記に切り替えられます。まずは日本語で基本を理解し、慣れたら英語で挑戦する。そんなハイブリッドな学びも可能です。

  • 日本語・英語を定期的にフラッシュするようにも出来ます。タイミングも「4秒~20秒」で自由に設定可能です。

ブロックコーディングでは、入口を優しくするために、教室オリジナルの簡単な命令をたくさん用意しています。

ただ、お子様には簡単でも、ブラックボックスの中では精確に動くよう高度な制御を行っています。特に移動に関する命令の裏では「ジャイロセンサーでロボットが精確に動く」ように制御されています。

  • 通常の命令を使ってロボットを動かすと、プログラムは正しくても、ロボットが外乱により思い通りに動かないことがあり、お子様が試行錯誤をやめてしまうことがあります。そうならないよう、初心者は精確に動く簡単な命令を使っています。

また、すべてのブロック名に「番号」と「絵文字」がついていて、お子様が直感的にブロックを見つけられるようにしています。授業ではロボット組み立て後に基本命令の確認を行いますが、その際は「2番のターンを確認しよう!」のように伝え、合わせて絵文字の意味も確認しています。こうすることでお一人でミッションチャレンジする際も、番号や絵文字で直感的にプログラミング出来るようになります。

それでは「3つの移動命令」をご紹介します。

  • ストレートでまっすぐに進みます。絵文字の±は、ロボットがどちらの向きに動くかを直感的に示しています。第1パラメーターの「mm」に、絵文字と同じ符号で進みたい距離を入力します。
    • 正の値(+):前進
    • 負の値(−):後退
  • 超信地旋回です。2つのタイヤを同じスピードで反対に回し、その場でターンをします。絵文字の±は、ロボットがどちらの向きにターンするかを直感的に示しています。第1パラメーターの「°」に、絵文字と同じ符号でターンしたい角度を入力します。
    • 正の値(+):右回転
    • 負の値(−):左回転
  • 信地旋回です。片方のタイヤだけでターンをするコンパスのような動きです。絵文字の±は、ロボットがどちらの向きにターンするかを直感的に示しています。第1パラメーターの「°」に、絵文字と同じ符号でターンしたい角度を入力します。第2パラメーターはタイヤをどちらに回すか入力します。
    • 正の値(+):右回転、前進
    • 負の値(−):左回転、後退

この3つ以外にも、ブラックボックスの簡単命令には絵文字をつけています。

ブロック名絵文字
パワーターン↪️↩️
ステアリング
(ハンドル)
↩️🚘↪️
並進移動
(全方向移動)
歩く🚶🏿🦕🦖🐊
🐢🐕🐈‍⬛🐘🐎
🐓🕷🦂🐜
アームや
クレーンなど
🦾 🏗️ 🏋🏿
ライントレース〰〰
赤まで
ライントレース
〰🟥
黒まで進む▶️⬛⛔️
赤まで進む▶️🟥⛔️
近づくまで
前に進む
👁️🧱⬅️🚗
はなれるまで
後ろに進む
👁️🧱🚗➡️
ぶつかるまで
前に進む
🧱💥🚗⬅️
ぶつかるまで
後ろに進む
➡️🚗💥🧱
急ブレーキ🛑🚗‼️
リセットする➡️0️⃣
ジャイロを使う🧭
モーターを回す⚙️
タイヤを回す🛞
タイムを表示⏱️
ライトをつける💡
数字を表示7️⃣
コントローラー🎮
ボタンが押される
までまつ
🔵👆🏾

小学6年生からPythonでのプログラミングに挑戦します。Pybricksでは画面のボタンを押すだけで、ブロックが「Python」に変換されて表示されるので、まずはブロックコーディングとPythonを比較しながら学んでいきます。

この「一発変換」には、次のメリットがあります。

  • 自分で文法チェックができる
    ずっとくりかえすって、Pythonだとwhile True:って書くんだ!」
    ブロックでプログラムを組み立てて、Pythonのコードの書き方を知ることができます。この「文法チェック」をくり返すことで、お子様たちは自然とPythonの文法を覚えていきます。
  • 無理なく移行できる
    「全部書くのは難しいけど、コピペして改造しながらだったらできるかも?」そんな挑戦も可能です。ブロックを卒業し、本格的なコーディングへ進むための「入口は優しく、到達点は高く」がここにあります。
ブロック から Python へ

Pythonに慣れてきたら、ブロックコーディングを介さずに、直接Pythonから始めます。ここでも、はじめは予め用意されたブラックボックスの定義命令を使って学んでいきます。学びが進むとその定義命令の中を自分で工夫したり、一から新しい定義命令を作って、より良い制御ができるよう試行錯誤していきます。