レゴ互換モーターでメカナムホイールカーを作ってみたものの、もっとパワーとスピードのある別の車体がほしくなってきたので、手っ取り早くキットを選択。組み立てたキットは「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さんのキットの情報
きょうのかんぱぱ さんのキット製作レポート
きょうのかんぱぱ さんのサンプルプログラム解析