ハーフをねらえ!
マウス合宿編
2
●
今年から始まる。
●
狙ってみるか。
●
ハーフ ハーフ … ハーフをねらえ!
ハーフのフレッシュマンクラス
ハーフ応援歌
コートでは だれでも ひとり ひとりきり コース
わたしのあいも わたしのくるしみも だれもわかってくれない
きらめく かぜがはしる たいようがもえる ひかりセンサ モーターがまわる くちびるに ばらのはなびら
めのまえに ななめのみち
わたしはとぼう しろいボールになって はしる ウォールにそって サーブ スマッシュ ボレー
カーブ スラローム ゴール ベストをつくせ
4
●
フレッシュマンクラスで完走が目標
(上位は望まない)
●
てっとり早く、走れるマウスをつくりたい
●
できれば、ステッピングモータにしたい
1年目でハーフに出るには
●
電池
●
マイコン
●
モータードライバ
●
ステッピングモーター
●
台車
●
壁センサ
●
ディスプレイ(あると便利。I2Cの小型品がある)
マウスの構成(ステッパー)
6
●
モーターシールドというのがある。
●
小型のステッピングモータもある。
●
電池はリポがある。(12V程度で小型)
●
ハーフでは足まわりだけ小さく作れば、基板は壁の
上でも良い。
●
mbedは最近進化している。(注目株)
Arduinoかmbedあたりが良さそう
Adafruit モーターシールド v2
I2C接続
モーター電源 5~12V DCモーター 4個 または ステッピングモーター 2個を 駆動できる。
(ユニポーラ・バイポーラ どちらも可)
8
Adafruit モーターシールド v2 ブロック図
PCA9685 16-channel 12-bit PWM I2C LED Controller
TB6612FNG
Dual DC Motor Driver
MCU
I2C
TB6612FNG
Dual DC Motor Driver
M
M
DCモータ x 2
PWM
または
ユニポーラ バイポーラ
※ ユニポーラの場合 センタータップ 2本を GNDに接続する。
モーター電源
モーター電源
最大 PWM周波数 1kHz
Iout = 1.2A
モーターシールドを試してみました
Arduino互換ボード PCとUSB接続
(ロジック電源5V供給)
モーター電源 12V
COPAL
SPG20-1362 ユニポーラ 68Ω 360 step/回転
昔、秋月で買ったもの 結構、熱くなる。
ユニポーラのモーター だが、バイポーラとして 接続している。
ユニポーラより
低速トルクが増大するが
10 // とりあえず、回すだけ。
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_StepperMotor *myMotor = AFMS.getStepper(360, 2);
void setup() {
AFMS.begin(); // create with the default frequency 1.6KHz myMotor->setSpeed(10); // rpm
}
void loop() {
myMotor->step(100, FORWARD, DOUBLE); }
ソフトも簡単
●
結果: 0.5~0.6回転/秒 (PWM周波数250Hz)
●
1~2回転/秒は出るはずなのだが... (ハードの限界?)
●
モータードライバのソースを見たところ、
分解能1msのdelay()を使っている。(Arduinoのライブラリ関数)
計算精度が良くなさそう。(現状の仮説です)
AVR ATmega328 16MHzでも、
もう少し回転速度を上げられるはず。
●
熊本高専の葉山先生が解決しているらしい。(中川さん情報)
●
モータードライバ制御を見直してみる予定
もしくは、mbed, GR-SAKURA, STM32 Nucleoあたりでやってみるのもおも
おかしい 回転数があがらない
12
試作しました
試作しました
上面 下面
側面 前面
14
Adafruitから、いくつか出ています。
小型ステッピングモーター
●
スイッチサイエンスでいろいろと売っています。
●
DCモーターx2かバイポーラx1というのが多い。
(ユニポーラでもバイポーラにしてしまえば使える)
モータードライバ
16
●
ということで、ハーフにチャレンジしてみましょう。
●
出来合いの基板を組み合わせると、そこそこのも
のができます。
●