配線不要・すぐに使える / 小型四輪駆動メカナムホイール台車・カーシャーシ


セット: 基本セット
価格:
¥16,300

税込み / 送料200円
(1,000円以上のお買い上げで送料無料)

在庫:
完売
※ お支払い方法は、請求書払い、クレジットカード、AmazonPay、GooglePay、銀行振込に対応しています。
請求書払いの際は見積もり依頼フォームからまず見積もり依頼をご送付ください。(その他はお支払い画面で選択)
※ 全ての配送物に領収書が同封されます。

概要

全方向に移動が可能な、YFROBOT社の四輪駆動のメカナムホイール台車です。Arduino Unoと同等の配置でピンが設置されており、マイコンをそのまま差し込むことで制御することができます。

駆動に必要なセットアップが完了しているので、電池を入れればすぐに動作させることができます。

サイズが137mm x 108mmと小型で、研究開発やプロトタイピングに最適です。

PS2コントローラ付属版では離れた位置からコントローラで動作をさせることも可能です。

同梱内容

基本セット 基本セット+Arduino Uno互換マイコン 基本セット+Arduino Uno互換マイコン+コントローラ
メカナムホイール台車 O O O
予備ピン O O O
六角レンチ O O O
リモコン O O O
Arduino Uno互換ボード O O
コントローラ O
コントローラ受信機 O

 

組み立て方法・動作方法

組み立て方法については下記動画を参考にしてください。

 

※PS2コントローラはオプションです。

※電池は付属していません。単3形の3.7Vリチウム充電池が対応しており、通常の乾電池では動きません。

質の低い電池だと発火の恐れがあるので、次のような保護回路付きのリチウム充電池を別途購入ください。

 

下図のように、1層目に3.7Vの電池を2つ設置することができます。

 

サイズ

メカナムホイールの直径 48mm
サイズ 137mm x 108mm x 54mm

 

サイズ

ピン配置

ホイールM1 位置:左前 方向:4番PIN
PWM:3番PIN
ホイールM2 位置:右前 方向:7番PIN
PWM:5番PIN
ホイールM3 位置:左後ろ 方向:8番PIN
PWM:6番PIN
ホイールM4 位置:右後ろ 方向:12番PIN
PWM:11番PIN
ブザー 9番PIN


  • パワースイッチ:充電池をセットして、このスイッチを押すと電源が入ってマイコンとモータが動作可能状態になります。
  • リセットボタン:マイコンをリセットします。マイコンのリセットボタンを押した時と同様の挙動をします。

 

メカナムホイールでの全方向移動について

メカナムホイールの駆動

4つのそれぞれのホイールの回転方向を制御することにより、全方向移動・回転運動を行うことが可能になります。


ブザーの鳴らし方

9番PINがブザーになっており、ON/OFFを繰り返す周波数の音を流すことができます。

下記はArduinoで3,000Hzの音を1秒間流す例です。(333マイクロ秒で1 ON/OFF = 3,000Hz)

 

void setup() {
  pinMode(9, OUTPUT);
  for (int i = 0; i < 3000; i++){
    digitalWrite(9, LOW);
    delayMicroseconds(166);
    digitalWrite(9, HIGH);
    delayMicroseconds(166);
  }
}

void loop() {
}

LEDの光らせ方

Adafruit_NeoPixelというライブラリを使用します。下記レポジトリからzipファイルをダウンロードしてArduino IDEでインクルードしましょう。

 

#include 
#define RGBPIN 13
#define NUMPIXELS 6

Adafruit_NeoPixel strip(NUMPIXELS, RGBPIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.setBrightness(50);

  strip.setPixelColor(0, strip.Color(150, 0, 0));
  strip.setPixelColor(1, strip.Color(150, 150, 0));
  strip.setPixelColor(2, strip.Color(0, 150, 0));
  strip.setPixelColor(3, strip.Color(0, 150, 150));
  strip.setPixelColor(4, strip.Color(0, 0, 150));
  strip.setPixelColor(5, strip.Color(150, 0, 150));
  strip.show();
}

  

LEDは左上から0〜2、右上から3〜5という順番で並んでいるので、該当の番号のColorをセットすることで任意の色で光らせることが可能です。

コントローラの使い方

PS2Xというライブラリを使います。下記レポジトリからzipファイルをダウンロードしてArduino IDEでインクルードしましょう。

下記は押したボタンやスティックの値をシリアルモニタに出力するサンプルです。コントローラに乾電池を入れてONにした後に、受信機を台車に接続し、マイコンを起動すれば接続を始めます。接続完了後にボタンを押すと、押したボタンが表示されます。

 

#include 

#define PS2_DAT        A0
#define PS2_CMD        A1
#define PS2_CS         A2
#define PS2_CLK        A3

/******************************************************************
   select modes of PS2 controller:
     - pressures = analog reading of push-butttons
     - rumble    = motor rumbling
   uncomment 1 of the lines for each mode selection
 ******************************************************************/
//#define pressures   true
#define pressures   false
//#define rumble      true
#define rumble      false

PS2X ps2x;
int error = 0;
byte type = 0;
byte vibrate = 0;

void (* resetFunc) (void) = 0;

void setup() {
  Serial.begin(9600);
  delay(500);  //added delay to give wireless ps2 module some time to startup, before configuring it

  error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_CS, PS2_DAT, pressures, rumble);

  if (error == 0) {
    Serial.print("Found Controller, configured successful ");
    Serial.print("pressures = ");
    if (pressures)
      Serial.println("true ");
    else
      Serial.println("false");
    Serial.print("rumble = ");
    if (rumble)
      Serial.println("true)");
    else
      Serial.println("false");
  }
  else if (error == 1)
    Serial.println("No controller found");

  else if (error == 2)
    Serial.println("Controller found but not accepting commands.");

  else if (error == 3)
    Serial.println("Controller refusing to enter Pressures mode, may not support it. ");

  type = ps2x.readType();
  switch (type) {
    case 0:
      Serial.println("Unknown Controller type found ");
      break;
    case 1:
      Serial.println("DualShock Controller found ");
      break;
    case 2:
      Serial.println("GuitarHero Controller found ");
      break;
    case 3:
      Serial.println("Wireless Sony DualShock Controller found ");
      break;
  }
}

void loop() {
  if (error == 1) {
    resetFunc();
  }
  if (type != 2) {
    ps2x.read_gamepad(false, vibrate);

    if (ps2x.ButtonPressed(PSB_PAD_UP)) {Serial.print("Up");}
    if (ps2x.ButtonPressed(PSB_PAD_RIGHT)) {Serial.print("Right");}
    if (ps2x.ButtonPressed(PSB_PAD_LEFT)) {Serial.print("Left");}
    if (ps2x.ButtonPressed(PSB_PAD_DOWN)) {Serial.print("Down");}
    if (ps2x.ButtonPressed(PSB_TRIANGLE)) {Serial.print("Triangle");}
    if (ps2x.ButtonPressed(PSB_CROSS)) {Serial.print("Cross");}
    if (ps2x.ButtonPressed(PSB_SQUARE)) {Serial.print("Square");}
    if (ps2x.ButtonPressed(PSB_CIRCLE)) {Serial.print("Circle");}
    if (!(ps2x.Analog(PSS_LX) > 126 && ps2x.Analog(PSS_LX) < 130 && ps2x.Analog(PSS_LY) > 126 && ps2x.Analog(PSS_LY) < 130)) {
      Serial.print("Left joy stick: ");
      Serial.print(ps2x.Analog(PSS_LX));
      Serial.print(",");
      Serial.println(ps2x.Analog(PSS_LY));
    }
    if (!(ps2x.Analog(PSS_RX) > 126 && ps2x.Analog(PSS_RX) < 130 && ps2x.Analog(PSS_RY) > 126 && ps2x.Analog(PSS_RY) < 130)) {
      Serial.print("Right joy stick: ");
      Serial.print(ps2x.Analog(PSS_RX));
      Serial.print(",");
      Serial.println(ps2x.Analog(PSS_RY));
    }
    delay(50);
  }
}

 

返品・不良品・キャンセルについて

お支払いについて

Amazon American Express Apple Pay Google Pay Mastercard Shop Pay Visa

お支払い情報は安全に処理されます。 クレジットカードの詳細を保存したり、クレジットカード情報にアクセスすることはありません

合わせて買いたい

Recently viewed