レゴ互換モーターでメカナムホイールカーを作ってみたものの、もっとパワーとスピードのある別の車体がほしくなってきたので、手っ取り早くキットを選択。組み立てたキットは「OSOYOO メカナムホイールカー」(英語名はMecanum Wheel Metal Chassis Robotic)。
組み立て方法は公式ページで図入りで解説してくれているので、わりとスムーズに完成。
キット組み立て後の変更
拡張やメンテナンスが行いやすいように適当にプレートを追加。


あとは、PCA9685を追加して、PCA9685とArduino間は4本の配線で動くようにした。

プログラム
動作確認用のプログラム
プログラムの内容 (クリックで展開)
使用したPCA9685ライブラリはこちら
#include <Wire.h> #include <PCA9685.h> #define SPEED 255 #define TURN_SPEED 255 #define SHIFT_SPEED 255 #define BRAKE_SPEED 255 #define PWM_HIGH 255 #define PWM_LOW 0 #define CH_FRONT_DRIVER_ENA 0 #define CH_FRONT_DRIVER_IN1 1 #define CH_FRONT_DRIVER_IN2 2 #define CH_FRONT_DRIVER_IN3 3 #define CH_FRONT_DRIVER_IN4 4 #define CH_FRONT_DRIVER_ENB 5 #define CH_REAR_DRIVER_ENA 6 #define CH_REAR_DRIVER_IN1 7 #define CH_REAR_DRIVER_IN2 8 #define CH_REAR_DRIVER_IN3 9 #define CH_REAR_DRIVER_IN4 10 #define CH_REAR_DRIVER_ENB 11 PCA9685 pwm = PCA9685(0x40); void set_pwm(int ch, int speed) { // map to 12bit value int value = map(speed, 0, 255, 0, 0xfff); pwm.setPWM(ch, 0, value); } void motor_set_speed(int ch_en, int ch_in1, int ch_in2, int speed) { if (speed == 0) { set_pwm(ch_in1, PWM_LOW); set_pwm(ch_in2, PWM_LOW); set_pwm(ch_en, BRAKE_SPEED); } else if (speed > 0) { set_pwm(ch_in1, PWM_LOW); set_pwm(ch_in2, PWM_HIGH); set_pwm(ch_en, speed); } else { set_pwm(ch_in1, PWM_HIGH); set_pwm(ch_in2, PWM_LOW); set_pwm(ch_en, -speed); } } void front_right_motor_set_speed(int speed) { motor_set_speed(CH_FRONT_DRIVER_ENA, CH_FRONT_DRIVER_IN1, CH_FRONT_DRIVER_IN2, speed); } void front_left_motor_set_speed(int speed) { motor_set_speed(CH_FRONT_DRIVER_ENB, CH_FRONT_DRIVER_IN3, CH_FRONT_DRIVER_IN4, speed); } void rear_right_motor_set_speed(int speed) { motor_set_speed(CH_REAR_DRIVER_ENA, CH_REAR_DRIVER_IN1, CH_REAR_DRIVER_IN2, speed); } void rear_left_motor_set_speed(int speed) { motor_set_speed(CH_REAR_DRIVER_ENB, CH_REAR_DRIVER_IN3, CH_REAR_DRIVER_IN4, speed); } void all_motors_set_speed(int front_left_speed, int front_right_speed, int rear_left_speed, int rear_right_speed) { front_left_motor_set_speed(front_left_speed); front_right_motor_set_speed(front_right_speed); rear_left_motor_set_speed(rear_left_speed); rear_right_motor_set_speed(rear_right_speed); } void all_motors_stop() { set_pwm(CH_REAR_DRIVER_ENB, 0); set_pwm(CH_REAR_DRIVER_ENA, 0); set_pwm(CH_FRONT_DRIVER_ENB, 0); set_pwm(CH_FRONT_DRIVER_ENA, 0); } void all_motors_brake() { front_left_motor_set_speed(0); front_right_motor_set_speed(0); rear_left_motor_set_speed(0); rear_right_motor_set_speed(0); } void setup_pca9685() { pwm.begin(); pwm.setPWMFreq(60); } void setup() { setup_pca9685(); all_motors_brake(); } void loop() { all_motors_set_speed( SPEED, SPEED, SPEED, SPEED); delay(2000); all_motors_set_speed( -SPEED, -SPEED, -SPEED, -SPEED); delay(2000); all_motors_set_speed( -TURN_SPEED, TURN_SPEED, -TURN_SPEED, TURN_SPEED); delay(2000); all_motors_set_speed( TURN_SPEED, -TURN_SPEED, TURN_SPEED, -TURN_SPEED); delay(2000); all_motors_brake(); delay(4000); }
各部品のスペックとメモ
車体


メカナムホイール

エンコーダ付きDCモーター
| 項目 | 内容 |
|---|---|
| コネクタ | JST XH 6pin(1.5mm) |
| 黒 | VMモーター電源 |
| 赤 | GND |
| 白 | ホールセンサー用V型電源 |
| 黄 | ホールセンサー用G-GND |
| オレンジ | ホールセンサーのS1 |
| 緑 | ホールセンサーのS2 |
| 定格電圧 | DC 9.0V |
| ギア比 | 1/75 |
| Output Speed(無負荷時速度) | 150±10%rpm |
| No-load Current(無負荷時電流) | 200mA(Max) |
| Stall Current(ストール電流) | 4500mA(Max) |
| Stall Torque(ストールトルク) | 9.5kg.cm |
| Rated Torque(定格トルク) | 3000g.cm = 0.294N.m |
| Rated Current(定格電流) | 1200mA(Max) |
| Rated Speed(定格速度) | 100±10%rpm |
| Noise | 56dB |
| モーター本体の無負荷速度 | 11500±10%rpm |
| モーター本体の無負荷時電流 | 180mA(Max) |
| モーター本体のストール電流 | 4500mA(Max) |
| モーター本体の失速トルク | 160g.cm |
定格9Vを7.4Vで運用。
モーターの詳細PDF
Shenzhen Chihai Motor Store
メーカーのHP
モータードライバー
OSOYOO Model-X Motor Driver Module
| 項目 | 内容 |
|---|---|
| ロジック電圧 | 5V |
| 駆動電圧 | 5-35V |
| 定格電力 | 25W |
| 使用チップ | L298N, 78M05 |
| 対応モーター | 2相または4相ステッピングモーター、2相DCモーター |
記載が見えづらいけど、外側のピンはV0, 12V, GND, GND, 5V, S, Sと記載されている。
V0, 12V, GNDは電圧計に接続。
内側のピンはENA, IN1, IN2, IN3, IN4, ENBと記載されている。
| 項目 | 内容 |
|---|---|
| ENA | Enable A(K1) |
| IN1 | Input1(K1) |
| IN2 | Input2(K1) |
| IN3 | Input3(K3) |
| IN4 | Input3(K3) |
| ENB | Enable B(K3) |
制御方法

L298N
| 項目 | 内容 |
|---|---|
| 最大電流 | 合計4A |
| 負荷用電源電圧 | 約5V~46V |
| ロジック電源電圧 | 4.5V~7V |
Voltage meter
| 項目 | 内容 |
|---|---|
| Measuring Range | DC0-100V |
| Input Voltage | DC3-30V |
| Pin | 3Pins |
記載が見えづらいけど、ピンの内容はVt, VCC, GNDと記載されれている。 測った結果は、Vt、VCCともに電池電圧と同じ8.0V。
OSOYOO MEGA2560 R3 Control Board
| 項目 | 内容 |
|---|---|
| Operating Voltage | 5V |
| Input Voltage (recommended) | 7-12V |
| Input Voltage (limits) | 6-20V |
Arduinoって7〜12Vで動くんだ。
使用した電池(付属外)
KEEPPOWER P1832J 3200mAh 保護回路付き リチウムイオンバッテリー
| 項目 | 内容 |
|---|---|
| 種類 | 18650 |
| 連続使用可能時間 | 3 Hours |
| 電圧 | 公称電圧: 3.7V, Max 4.2V, Cut-off 2.5V 400mA放電条件 |
| 出力 | Max6.2A |
| サイズ | 直径18.70mm ±0.25mm × 長さ69mm ±0.85mm |
| 重量 | 49.0g±0.5g |
| サイクル寿命 | 500回 |
| 推奨充電方式 | CC/CV Max 充電電流 2A |

KEEPPOWER P1832J 3200mAh 保護回路付き リチウムイオンバッテリー 日本製セル (2本組)
- メディア: エレクトロニクス
リンク
キットの組立方法 公式ページ
@deveminさんのキットの情報
きょうのかんぱぱ さんのキット製作レポート
きょうのかんぱぱ さんのサンプルプログラム解析

