Logibotを走らせてみよう

モーターの動きを決めよう

モーターの動きはIN1,IN2,ENABLEのそれぞれに,0と1の信号を送ることで変えることができる.

どんな動きをするかは,教科書のモーターのページに表が載っているから, それを見ながら自分でいろいろ試してみよう!

ひな形を使いこなそう

nucleoの基本制御およびモーター制御を行うためのひな形は下にあります.

Import programMotor_Temp

nucleoの基本制御およびモーター制御を行うためのひな形です.

こんな命令が使えるぞ.

Aモーターを正転させる

INA1 = 0;
INA2 = 1;
ENABLEA=1;

Aモーターを逆転させる

INA1 = 1;
INA2 = 0;
ENABLEA=1;

Quote:

正転?逆転?

ここで注意が必要なのは正転≠前進ではないこと.

なぜならここでの回転は「モーター」がどの向きに回転するかを表しているからなんだ.

たとえ右のモーターが左のモーターと同じ動きをしていても.その動きはギアを伝って向きや力が変えられるからタイヤまで同じ動きをするとは限らないんだ.

Bモーターをブレーキさせる

INB1 = 1;
INB2 = 1;
ENABLEB=1;  //空転とは違って,止まろうとする力が働く

その場で回転する

INA1 = 0;  INA2 = 1;  //Aモーターは正転
ENABLEA=1;  
INB1 = 1;  INB2 = 0;  //Bモーターは逆転
ENABLEB=1;  //AとBは別々の動きをさせられるね

Quote:

細かく速さを指定するにはどうすればいいだろう?

ちなみに,モーターのON・OFFを変えるためのENABLEピンは

PwmOut ENABLEA(PC_8);
PwmOut ENABLEB(PC_9);

と宣言されているよ.

クイズ

1.スイッチを押したらLogibotが走り出すようにしよう

まずはwhile文とbreakをつかってスイッチを押したら始まる仕組みを作ろう

2.少し進んで右に曲がる,少し進んで左に曲がるを繰り返そう

回転するにはAとBのモーターをそれぞれどう動かせばいいかな?

3.2.のプログラムをスイッチを押して始まるようにし,さらに動きが変わる時に音を鳴らしたり,LEDを光らせたりしよう

いままでやってきたことを組み合わせてできるから,分からなかったらいままでのを見直そう.もしコメントが残っていたら後から見直したときにわかりやすいね!


Please log in to post comments.