【親子で作る自由研究】初心者キットで作る「サーボで指差すゲーム」|矢が指した位置を当てる対戦装置

矢が指した先! サーボで指差しゲーム

サーボの矢が指した数字を当てるゲームを作ろう

親子でサーボモータを使った工作したいんだ。何かいいアイデアない?

じゃあ「サーボで指差すゲーム」はどう? サーボに矢印を付けて、ボタンを押すとランダムな角度に動くんだ。指した先の数字を当てるくじ引き風の遊びだよ。

今回は、親子でサーボを使った工作にチャレンジしたい方に向けて、初心者キットだけで作れる「サーボで指差すゲーム」を紹介します。

サーボに紙の矢印を貼り付けて、ボタンを押すと0〜180度のランダムな角度に動く装置です。動いた先に書かれた数字や絵を当てる「ルーレット風くじ引き」として家族で楽しめます。

この記事で作るもの
  1. ボタンを押すとサーボが0〜180度のランダムな角度に動く (個体差で実際の指す位置は調整が必要)
  2. 動く時はちゃんとカクカクせず滑らかに
  3. 0〜180度の範囲を行ったり来たり
  4. サーボの先には紙の矢印

親子での分担

工程親の役割子の役割
配線サーボの色を解説挿す
書き込みIDE操作USB+書き込みボタン
装飾切り抜き手伝い矢印と数字を描く
遊び盛り上げ役ボタン押す

使う部品

部品役割個数
Arduino UNO R3頭脳1
サーボモータSG90矢印を動かす1
タクトスイッチくじ引きボタン1
ブレッドボード配線1
ジャンパーワイヤーつなぐ5本
厚紙、色ペン矢印と数字盤少々

配線図

サーボSG90はキットの5Vから動かせる場合が多いですが、Arduinoがリセットしたり動きがガクつくなら、モバイルバッテリーなど外部5V電源を使い、GNDだけArduinoと共通にしてください。

        a b c d e
       +─────────+
[-]rail| . . . . . | ← GND
       +─────────+
row 5  | X . . . . | ← SW 片足 (D2)
row 7  | X . . . . | ← SW 反対 ([-])
       +─────────+

サーボ直結:
  茶色 → GND
  赤色 → 5V
  橙色 → D9

プログラム

#include <Servo.h>

#define BTN_PIN 2
#define SERVO_PIN 9

Servo myServo;
int currentAngle = 90;

void setup() {
  Serial.begin(9600);
  pinMode(BTN_PIN, INPUT_PULLUP);
  myServo.attach(SERVO_PIN);
  myServo.write(currentAngle);
  randomSeed(analogRead(A0));
  Serial.println("指差しゲーム スタート!");
}

int lastBtn = HIGH;
void loop() {
  int currentBtn = digitalRead(BTN_PIN);
  if (lastBtn == HIGH && currentBtn == LOW) {
    int target = random(0, 181);
    Serial.print("目標角度: ");
    Serial.println(target);
    moveSmoothly(target);
  }
  lastBtn = currentBtn;
}

void moveSmoothly(int target) {
  if (currentAngle < target) {
    for (int a = currentAngle; a <= target; a++) {
      myServo.write(a);
      delay(10);
    }
  } else {
    for (int a = currentAngle; a >= target; a--) {
      myServo.write(a);
      delay(10);
    }
  }
  currentAngle = target;
}

プログラムの動き

flowchart TD A[起動] --> B{"ボタン
押された?"} B -->|Yes| C["0-180の
ランダム値"] B -->|No| B C --> D["現在角度から
滑らかに移動"] D --> E[指し示す] E --> B

数字盤の作り方

サーボの動く範囲 (180度) に合わせて、半円の紙に数字や絵を書きます。

数字盤のアイデア
  1. 1〜10の数字を均等に並べる (10分割)
  2. 「掃除当番」「お風呂当番」など家事を書く
  3. 「今日のおやつ」絵を貼って当てっこ
  4. 「-100円」「+200円」など、お小遣いゲーム
数字盤を自由に作れるのが楽しそう!

家族で「掃除当番」「お小遣い」みたいに家庭の中のルールを書き込めるから、装置は同じでも遊び方を変えられるんだ。

レポートの書き方

レポート構成
  1. 研究のきっかけ
  2. サーボモータの仕組み (角度制御)
  3. ランダム関数で公平に分散しているかの調査
  4. 100回押した時の各数字の出現回数
  5. 家族での遊び方の工夫

改造のアイデア

発展アイデア
  1. 動き出す前にブザーで「ジリジリ」と効果音
  2. LEDを点滅させて「抽選中」演出
  3. 2つのサーボで2軸ルーレット
  4. 結果の数字をシリアルにログ保存

まとめ

今回は、親子で楽しめる「サーボで指差すゲーム」を紹介しました。サーボの基本動作とランダム関数を組み合わせた、初心者向きの楽しい作品です。

大切なのは、数字盤の中身を家族で考えることです。装置は同じでも、ルールを変えれば何度でも遊べる、世界に1つのゲームになります。

他にも初心者キットだけで作れる作例を別の記事で紹介しているので、興味があれば見てみてね。