Matz葉がにロボコンで実践するSmalrubyとmruby/cを活用したプログラミング教育
松江市ふるさと納税 返礼品

田辺 侑美 (松江高専OG)，杉山 耕一朗 (松江高専)
2023/11/10 Ruby World Conference 2023 (くにびきメッセ)

「Matz葉がにロボコン」とは• ライントレースでコースを往復 + 規定演技

プローブ
(探査針).
金星エリアに落とす雲粒子を回収

カラーセンサ

採点内容

点数

松江エリアを出た (ロボット全体)

1

中間点を越えた (ロボット全体)

1

金星エリアに入った (片道ゴール)

1

金星エリアにプローブを投入した

1

松江エリアに戻った (ロボット全体)

2

雲粒子を松江エリアに持ち帰った ※ 最大 3 点

1[本選のみ] 相手より先に「ゴール」と言った

1

Agenda
1.
2.
3.
4.
5.
6.

Matz葉がにロボコンに至る経緯
プログラミングツールの開発
講習会・試走会・大会
Matz葉がにロボコンから見えたこと〜教育的側面〜
Matz葉がにロボコンから見えたこと〜コミュニティ的側面〜
まとめ発表者略歴 (1)
名前: 杉山 耕一朗(すぎやま こういちろう)
所属: 松江高専 情報工学科 (2016年度〜)
専門: 惑星気象学 & 地球惑星情報学
雲対流モデル(数値流体シミュレーションモデル)開発― 木星・金星・火星
IoT を活用した環境モニタリング

前職は金星探査機「あかつき」プロジェクト→ 金星探査をイメージしたコース

背景画像 https://akatsuki.isas.jaxa.jp/gallery/illustration/

1. Matz葉がにロボコンに至る経緯

はじめに• 近年の小学生に対するプログラミング教育において，企業・高等教育機関・地域等との連携がうたわれている[1]• 筆者らの所属する松江高専においても，小学校・公民館・自治体からプログラミング出張講座の依頼が増えている．

シューティングゲーム

GPS/iBeaconで宝探し[1] 文部科学省，「小学校プログラミング教育の手引(第三版）」
https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf

出張講座の課題と我々の着想
出張講座：その場限り• 特にIoTセンサやロボットのようなハードウェアを用いる
場合，自宅での再実施は困難

ギャップ

プログラミング的思考の涵養には繰り返し学習が重要[1]出張講座を契機として小学生の継続した学びを実現できないか？
1. 講習会 + 後日の成果発表の場→ 上位入賞という分かり易い目標設定．モチベーション向上大会までの期間に頑張ってプログラミング
2. 地域性のある教材開発・活用→ 地域コミュニティ連携によるプログラミング機会の増加[1] 文部科学省，「小学校プログラミング教育の手引(第三版）」
https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf

アイデア実現のために出張講座を契機として小学生の継続した学びを実現できないか？
1. 講習会 + 後日の成果発表の場→ 上位入賞という分かり易い目標設定．モチベーション向上大会までの期間に頑張ってプログラミング「ご当地ロボコン」の枠組みを活用
2022年3月頃「一緒にやりません？」
松江「高専でいける？」
ご当地ロボコン ＝ IT コミュニティベースのロボットコンテスト．
福井の「越前がにロボコン」から始まり全国各地へ拡大中．ルールは概ね共通．

アイデア実現のために出張講座を契機として小学生の継続した学びを実現できないか？
2. 地域性のある教材開発・活用→ 地域コミュニティ連携によるプログラミング機会の増加

コミュニティの Smalruby，mruby/c を活用(1) Smalruby開発講座(課外活動) [with 松江市]

高尾宏治氏の指導(2) mruby/cを高専授業で利用 [with ITOC]
マイコン版の Smalruby (SmT) の開発

ブロックから mruby/c コードを生成し，それをマイコンに書き込み動かすことが可能

以上の背景の下で，我々はMatz葉がにロボコンの創出• Matz葉がにロボコンの特徴– 「ご当地ロボコン」の枠組みの利用– 地域性を加味した教材や講習会資料 = Smalruby + mruby/c– コミュニティとの連携

発表者略歴 (2)出身：島根県 松江市
年齢：21歳

経歴：2022

松江高専 情報工学科 卒業
杉山研究室所属
2023〜 ソフトバンク株式会社たなべ ゆみ

田辺 侑美

趣味：スノボとか車とかギターとか（今年4回目の帰省）

2. プログラミングツールの開発～高専 卒業研究として実施～かにロボット（ハードウェア）
プローブ：
タミヤキットのボール→ サーボモーターで落とす
脳：マイコンボード（松江高専の演習ボード流用.特注）- ESP32マイコン搭載、- mruby/c ファームウェア(内製)足：タミヤの昆虫キット
手：ライトセンサー→ コースを感知
越前がにロボコンの「NSかにロボ」に準拠．
搭載マイコンと開発環境が異なる- IchigoJam 搭載- BASIC でプログラミング
NSかにロボプログラミングツールの概要
プログラム作成から書き込み、実行までブラウザで完結

プログラミングツールの概要
SmTの特徴1. プログラム作成から実行までブラウザで完結
ブラウザからシリアル通信可能なWeb Serial APIを活用

2. Smalruby を拡張
・マイコン制御

・自作ブロック追加
・ブロックと mruby/cの相互変換
マイコン制御ブロック群

Smalruby と SmT の違い
Smalruby : ブロックプログラミングツール

・Scratch がベース・ブロックをドロップしてプログラミング・ブロックと Ruby の相互変換ができる

マイコン制御機能を拡張
自作ブロックと mruby/c の相互変換機能を実装
SmT（シント）かにロボ用ブロックの2つのカテゴリ
かにロボ制御ブロック（自作ブロック）は「簡単カテゴリ」と「普通カテゴリ」を用意
現在のプログラミング教育では、ビジュアルプログラミングからテキストプログラミングへの段階的な移行が前提として議論されている[2]（小中学校：ブロックプログラミング、高校：テキストプログラミング）→ ブロックの難易度を分けることで、簡単 → 普通 → Ruby (テキストプログラミング)とスムーズに移行ができるのでは？
同カテゴリのブロックのみでプログラム作成可能[2]安元太一ら、小学校・中学校・高等学校間の接続を考慮したプログラミングの授業の提案、
情報教育シンポジウム論文集、pp.36-43、2021

2つのカテゴリの特徴
簡単カテゴリのブロック

対応するRubyコード

1つのブロックが 複数の処理を行う
簡単にプログラムを作成できる

2つのカテゴリの特徴
普通カテゴリのブロック

対応するRubyコード

1つのブロックが 1つの処理を行う
より細かな調整が可能

ブロック ↔︎ Ruby の相互変換
ブロック と Rubyコード が 1対1対応のため変換可能

オブジェクトを判定

メソッドを判定
ブロックの種類を指定してブロック生成“ch”フィールドの値を設定“speed”フィールドの値を設定

ブロックと Ruby コードを行ったり来たりして、対応付けながら理解してほしい！

プログラム例
松江 → 金星のライントレース
右センサーが白→右へ
左センサーが白→左へ

右も左も白になるまで

ツール開発 (GitHubで公開)
https://github.com/gfd-dennou-clubmrubyc-esp32

ESP32用 mrucy/c ライブラリ本体(GPIO, PWM, ADC, UART, I2C, SPI, WiFi)
ITOC の I/O APIガイドラインに準拠

かにロボ用SmT

かにロボ用
コンパイルサーバ

センサ用クラス(I2C,SPI)，
iBeacon(現在，16 種類)

3. 講習会・試走会・大会

1/5, 1/6

講習会

1/14

試走会

1/15

Matz葉がにロボコン プレ大会

講習会
日時：1月 5, 6日 9:00～16:00（2日とも同じ内容）
参加者：計 24 名の小学生
2年：1人，3年：1人，4年：5人，5年：11人，6年：6人

近しい集団に声をかける（デバッグ要素が強いため）
OSS協議会・島根県・松江市のイベントに参加したことのある方，著者が役員している野球チーム

講習会
実施内容：
午前：ロボットの組み立て（3時間）
午後：ロボットプログラミングの基礎（3時間）「簡単」カテゴリのブロックを利用したプログラミング「普通」カテゴリや Ruby で直接書けることの説明は紹介程度

講習会終了時点での状況：
参加者のほとんどがライントレースを片道できたかどうか

当日じゃんけん大会になったらどうしようか、、、

自宅でのプログラミング• 大会までの 9 日間は自宅でプログラムを改良保護者とのやり取りの例– ロボット・パソコンの貸し出し– コースの一部を配布– 保護者からの質問対応 (LINE，メール)– 講習会資料は全て Web 公開

コースの往復が出来て小躍りする小学生 (自宅にて)
かにロボ拡大参加者が自分で追加したコース

参加者に配ったコース

か試走会（1月 14日 午後）
大会前日の最終調整・最終追い込み！
講習会とは違い、質問に答える形式で開催
任意参加にも関わらず、95% が自主的に参加

Matz葉がにロボコン
プレ大会 当日！

Matz葉がにロボコンプレ大会当日

大会結果• ほぼ全員が片道ゴール (計 3点) 達成• 上位陣は，往復 (計 5点) + プローブ投入 (1点) 達成
予選：タイムトライアル (1 人 2走)

決勝：トーナメント形式 (1人 2走)

決勝
進出

MSチーム

優勝賞品：松葉がにプロヴァ―ズB

チーム
IN-LET

いのいちのかにMSチーム

大会結果 ～デザイン賞～• デザイン賞

最優秀賞： チーム14

4. Matz葉がにロボコンから見えたこと～教育的側面～プログラミングへの取り組み
前日試走会（任意参加）に 95% が参加
大会準備として，自宅での取り組み時間：平均 5時間 / 9日

頑張り度合いと大会順位
参加者が提出したプログラムとサンプルプログラムとの差分と大会順位の相関 相関係数：0.4
差分[字]

順位[位]

自主的にプログラムを工夫した子の方が順位が高い

カテゴリごとの使用率
プログラム作成に使ったカテゴリの割合
簡単カテゴリ：30.5%
普通カテゴリ：65.8%
Ruby：3.7%

1 2 3 4 5 6 7 8 9 9 9 9 13 13 15

1923

順位

講習会で扱った簡単より普通の使用率が高い
細かなスピード調整などできることが要因と推測

カテゴリごとの使用率
プログラム作成に使ったカテゴリの割合
Ruby使用：3人
大会以前のテキストプログラム経験→ 少しある
ほとんどない全くない
1 2 3 4 5 6 7 8 9 9 9 9 13 13 15

1923

順位

Ruby未経験の参加者もテキストコーディングに挑戦
ブロック → テキストへの移行の助けになった？

開発したツールの使用感
SmTの使いやすさ（プログラム作成，マイコンへの書き込み）
使いやすい：95%以上

小学生が利用しやすいプログラミング環境を実現

教育面のまとめプログラミング教育に、大会など成果発表の場は有用
小学生がプログラミングに熱中する姿がたくさん見られ、優勝者決定の瞬間には仲間同士で喜び合っていた• 講習会後は片道できるかどうか→ 大会ではほぼ全員が片道クリア、上位陣は往復をクリア• 講習会で終わらず、自宅や試走会に参加し自らプログラミングに取り組んだ（自宅での平均取り組み時間：5時間/9日）• プログラムを自主的に工夫した子の方が順位が高い傾向• 講習会では直接扱わなかった細かな調整のできる
ブロックカテゴリやRubyを使ってみた小学生も5. Matz葉がにロボコンから見えたこと～コミュニティ的側面～

Matz葉がにロボコンプレ大会の運営• 地域コミュニティとの協働体制• 実施体制– 主 催：松江高専– 共 催：しまねOSS協議会，松江市– 後 援：島根県– 協 力： 福井県こどもプログラミング協議会

しまねOSS 協議会

JAXA 宇宙科学研究所 Planet-C プロジェクト
かにロボ連盟：越前がにロボコン

松江市• 講習会のスタッフの内訳– 松江高専の教員・学生4名，しまねOSS協議会 (IT企業エンジニア) 5名，松江市職員2名• 大会のスタッフの内訳

島根県
しまねOSS 協議会 会長

図：大会前日の準備風景．
各組織の皆さんが協力して– 松江高専の教員・学生4名，しまねOSS協議 準備．OSS協議会 井上会長
会 (IT企業エンジニア) 7名，松江市職員2名， 自らがコース敷設．

島根県職員1名．
– 保護者にも協力を依頼 (審判員)．

大会の 1 コマ• 「Ruby City Matsueらしさが現れた一枚」と評価

図：Matz葉がにロボコンの集合写真．
松江市作成のRuby City Matsueプロジェクト紹介スライドより抜粋

最近の動き：急速な波及• 関係者の自主的な働きかけ → 県内各地へ．松江大会へ誘導– 松江大会 1/6 (講習会 12/2, 3, 17，走行会 12/23)– 安来地区大会 11/26 (講習会 10/21, 走行会 11/4)• ロボットの作成から始める– 益田地区大会

12/9 (午前：講習会，午後：大会)• 組み立て済みのロボットを提供– 出張講座松江市• 美保関公民館 8/10
• 雲南プログラミングFES 11/12• 忌部小学校 (松江市) 11/27• 秋鹿学びラボ (松江市) 12/3
• (奥出雲町)– その他：Ruby Conf TAIWAN 12/16(松江市ブース)
緑字：高専が主体ではないもの

Matz葉がにロボコンの宣伝

図：バスケットボール B リーグ「スサノオマジック」戦 (Ruby City Matsueの冠試合)にて．
松江市ブースにて「かにロボ」の宣伝

各地域に受け皿を～安来市のケース～••

安来市出身の高専OGが中心
安来市職員の積極的なコミットによって，実施体制が整う．
情報科学高校– Code for yasugi–ロボ作成中

高専OG

市職員
高専生
高校生

Code for yasugi

親子で参加

各地域に受け皿を～益田市のケース～• 松江高専と益田市の連携協定に基づいた出張講座を活用• 益田市役所の積極的なコミットによって実施体制が整う– 益田翔陽高校– ITエンジニア• 地域のパソコン教室への働きかけ

通常の出張講座は高専教員が行うのみ– 「簡易的な大会するので，教室のロボットで参加しませんか？」コミュニティ的側面のまとめ
地域コミュニティ連携での講習会・大会運営の実現
プログラミング機会の増加，地域全体としてのITリ
テラシ向上に貢献• 地域の旗印である Ruby と上手く合致した→ 自治体・しまねOSS協議会からの支援• 関係者が楽しんでいる・面白がっている→ 周囲「うちでもやってみようかな」• 松江以外でも活動の受け皿が出来つつある．

6. まとめまとめ• 出発点– 出張講座を契機として小学生の継続した学びを実現できないか?
•方法––•場(Matz葉がにロボコン)の創出：講習会 + 後日の成果発表
地域性(Ruby)を加味した教材や講習会資料の活用

成果
––
–

プログラミング教育に大会など成果発表の場は有用である
ことを確認
地域性を加味したことで地域コミュニティとの連携が円滑に• 産官学の一体化
小学生のプログラミング機会の増加，地域全体としてのITリテラシ向上に貢献

Matz葉がにロボコンの創出
出張講座を契機として小学生の継続した学びを実現するためには？ 成果発表の場が有効では？
→コミュニティの支援を得て「ご当地ロボコン」としての盛り上がり．今後は県内への普及を図る
2023/01/16

山陰中央新報•主•共•後•協朝日新聞催：松江工業高等専門学校
催：しまねOSS協議会、松江市
援：島根県
力：福井県こどもプログラミング協議会
JAXA 宇宙科学研究所 Planet-C プロジェクト

かにロボ連盟：越前がにロボコン

参考•

SmT：http://kanicon.epi.it.matsue-ct.jp/•

講習会資料：https://www.shimane-oss.org/kani-robo/pdf/training.pdf•

組み立てマニュアル：https://www.shimane-oss.org/kani-robo/pdf/manual-kanirobo.pdf•

サンプルプログラム：https://www.shimane-oss.org/kani-robo/pdf/sampleprogram.pdf•

大会パンフレット：https://www.shimane-oss.org/kani-robo/pdf/pamphlet-kanirobo.pdf