工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで作る段ボール迷路ゲーム:ジョイスティックで傾けてボールをゴールへ

必要な部品と材料

プロジェクト概要

古典的な「ラビリンス(迷路)」ゲームをArduinoとサーボで自動化。ジョイスティックで迷路盤をX/Y方向に傾け、鉄球を穴に落とさずゴールへ導きます。段ボールで1時間程度で組み立て可能な低コスト工作です。

設計とカット

  1. 底板:20cm×20cm 正方形 1枚
  2. 側板:14cm×16cm 二等辺台形 2枚(片方にサーボ用長穴、もう片方に中心3mm穴)
  3. 内部支柱:14cm×4cm 長方形 4枚(中央にサーボ用長穴、中心に3mm穴)
  4. 迷路盤:12cm×12cm 正方形 1枚(お好みの迷路パターンを印刷して貼り付け)
  5. 壁:1.5cm×12cm 短冊 8枚以上(迷路に合わせてカット)

印刷した迷路パターンをガイドに壁をグルーで固定。サーボを側板と支柱に取り付け、サーボホーンを支柱/迷路盤にネジ止めしてリンク機構を形成。

Arduinoで作る段ボール迷路ゲーム:ジョイスティックで傾けてボールをゴールへ Arduinoで作る段ボール迷路ゲーム:ジョイスティックで傾けてボールをゴールへ

配線

スケッチ

ジョイスティックのアナログ値を読み、中心付近はデッドゾーンとして無視。傾きに応じてサーボ角度を±20度の範囲で滑らかに更新(遅延で速度調整)。

#include <Servo.h>

Servo myServoX, myServoY;
int ServoXPin = 8, ServoYPin = 9;
int ServoXHomePos = 90, ServoYHomePos = 90;
int ServoXPos = 103, ServoYPos = 135;
int XAxlePin = A0, YAxlePin = A1;
int XAxleValue = 0, YAxleValue = 0;
int range = 12, center = 6, threshold = 3;

void setup() {
  myServoX.attach(ServoXPin);
  myServoY.attach(ServoYPin);
  myServoX.write(ServoXHomePos);
  myServoY.write(ServoYHomePos);
  Serial.begin(9600);
}

void loop() {
  XAxleValue = readAxis(XAxlePin);
  YAxleValue = readAxis(YAxlePin);

  if (XAxleValue > 0) { ServoXPos++; myServoX.write(ServoXPos); delay(100*(7-XAxleValue)); }
  if (XAxleValue < 0) { ServoXPos--; myServoX.write(ServoXPos); delay(100*(7+XAxleValue)); }
  if (YAxleValue > 0) { ServoYPos++; myServoY.write(ServoYPos); delay(100*(7-YAxleValue)); }
  if (YAxleValue < 0) { ServoYPos--; myServoY.write(ServoYPos); delay(100*(7+YAxleValue)); }

  // 角度制限 ±20度
  ServoXPos = constrain(ServoXPos, ServoXHomePos-20, ServoXHomePos+20);
  ServoYPos = constrain(ServoYPos, ServoYHomePos-20, ServoYHomePos+20);

  delay(10);
}

int readAxis(int pin) {
  int reading = analogRead(pin);
  reading = map(reading, 0, 1023, 0, range);
  int distance = reading - center;
  if (abs(distance) < threshold) distance = 0;
  return distance;
}

拡張アイデア

回路図

Arduinoで作る段ボール迷路ゲーム:ジョイスティックで傾けてボールをゴールへ

製造プロセス

  1. TinyML言語検出器:Edge ImpulseとArduino Nano 33 BLE Senseで「はい」を多言語判別
  2. Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
  3. Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
  4. Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
  5. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  6. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  7. Arduino超音波センサーとProcessingで作るリアルタイム距離測定ソナー
  8. MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
  9. Arduino Nanoで作る音声反応デスクライト:音楽に合わせて光るイルミネーション
  10. Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
  11. ゲーム用カスタムArduinoジョイスティックハンドルの製作