![](https://img.sabae.cc/data/20230807/8de15ca2-0c1f-4f85-85b6-eb99eec0bf0b.jpg)
プログラミングの基本を学んだ「
福井県小中学生プログラミングフェス in 美浜町」Day1に続く、2日目はいよいよこども自動車「
Radish(らでぃしゅ)」のプログラミングにチャレンジ!
![](https://img.sabae.cc/data/20230807/44dc3f5e-4209-4e64-997c-5a4343f2604f.jpg)
プログラミングの復習、早速使いこなしてくれてるIchigoJamメモ帳!
![](https://img.sabae.cc/data/20230807/b9e5386b-bcdf-467d-9f74-d7bd7b549e8f.jpg)
カムロボで実験して・・・
![](https://img.sabae.cc/data/20230807/a908e150-2db3-4dc0-88f5-8da58c0636a3.jpg)
体育館で実際に搭乗!
![](https://img.sabae.cc/data/20230807/1060519d-da43-4e79-a1c7-9516b3123200.jpg)
自分でプログラミングした自動運転ロボットに、楽しく搭乗している上空から。
![](https://img.sabae.cc/data/20230807/5c3cd19a-f1b6-478d-80b4-03b3a51a1c5b.jpg)
みんな元気いっぱい!
![](https://img.sabae.cc/data/20230807/aededa07-0fe2-4733-9b87-685c22d6ed21.jpg)
楽しそう!
![](https://img.sabae.cc/data/20230807/79303adc-3fde-424b-ba3a-531ee7525210.jpg)
記念撮影する様子を更に後ろからドローンで撮影!
![](https://img.sabae.cc/data/20230807/4d5da2d7-6616-4529-8dd7-bfbab6e62b31.jpg)
美浜町さん、ご協力、ありがとうございました!
テクノロジーの楽しさ、美浜町のこども達へも、どんどん伝えていきましょう!
![](https://img.sabae.cc/data/20230807/38475e5c-2d2a-4893-9a8e-763f4e77d025.jpg)
「VRふくい 美浜町 旅館またべゑ 上空360度」
360度写真オープンデータを「」に追加。
![](https://img.sabae.cc/data/20230807/69684627-2282-47e7-91dd-53522f757a89.jpg)
ドローンがあれば、Googleマップみたいな映像が、リアルタイムに楽しめます。
プログラミングができれば、ステキなデータをいろんな形で活用できます!
![](https://img.sabae.cc/data/20230807/439a553c-ebc3-4baf-a1fa-6c1c059d1dd5.jpg)
1日目の様子が早速福井新聞に掲載!旅館またべゑのオーナーさん、なんと富山商船高専出身の大先輩エンジニア!
![](https://img.sabae.cc/data/20230807/8c99468f-504c-47f2-b123-17fe22df1c13.jpg)
「pachipachi」src on GitHub
参加した子に教えてもらったゲーム、マルチタッチに対応しているともっと楽しそうだともりあがり、作ってみる約束をしたので、まずは基本的なマルチタッチな動きを実装。
2D物理シミュレーションを使った「ビッグロックの実験」を元に、マウスとマルチタッチ操作を加えたeg2d.jsを作成し、タッチで消すだけアプリを実装しました。プログラムはこんな感じ。
import { Matter, createWorld } from "https://code4fukui.github.io/pachipachi/eg2d.js";
const { Bodies } = Matter;
// 枠をつくる
const world = createWorld(document.body);
world.add(Bodies.rectangle(100, 450, 30, 800, { isStatic: true }));
world.add(Bodies.rectangle(900, 450, 30, 800, { isStatic: true }));
world.add(Bodies.rectangle(500, 835, 800, 30, { isStatic: true }));
// ボール配列
const balls = [];
// ボールの大きさ
const size = 70;
setInterval(() => {
// 1000msec毎に5コ落とす
const fallBalls = (w, n) => {
for (let i = 0; i < n; i++) {
const x = 500 + Math.random() * 300 - 150;
const y = -300 - Math.random() * 300;
const b = Bodies.circle(x, y, w);
world.add(b);
balls.push(b);
}
};
fallBalls(size, 5);
// 画面外に落下したものを削除
for (let i = 0; i < balls.length; i++) {
if (balls[i].position.y > 1100) {
balls.splice(i, 1);
i--;
world.remove(balls[i]);
}
}
}, 1000);
// 2点間の距離計算
const distance = (p1, p2) => {
const dx = p1.x - p2.x;
const dy = p1.y - p2.y;
const len = Math.sqrt(dx * dx + dy * dy);
return len;
};
// マウス移動かマルチタッチされたとき、ボールに触れていたら消す
world.ontouch = (p) => {
const nhit = balls.findIndex(b => distance(b.position, p) < size);
if (nhit >= 0) {
const hit = balls[nhit];
balls.splice(nhit, 1);
world.remove(hit);
}
};
src on ss.sabae.cc
「プログラム」を開いて、「見てみる」ボタンを押してみよう。
左側のプログラムの中から、一度に落ちてるくる数「5」を探して「10」に変えて「見てみる」ボタンを押してみよう。
他にも何か数を変えて試してみよう。
リロードすれば元通りなので何も心配しなくてOK!
ロボットにゲームに、プログラミングを楽しもう!
持ってかえってもらった自分だけのパソコン、IchigoDake。
IchigoIgaiか、IchigoDyhookがあれば、思う存分プログラミングできますよ!
越前がにロボコンにチャレンジしたい小中学生を募集します!
参加希望の方はこちらまで!
links
- 福井県小中学生 プログラミング・フェス 2023
- 越前がにロボコン