Closed karubehub closed 2 years ago
定数が原因ではないようです。 ev3_motor_config() を実行した後に、 すぐに、ev3_motor_set_power() や、ev3_motor_steer()を実行しても、 動き出さないという症状のようです。
ev3_motor_config()を実行した後に、 tslp_tsk(100*1000U); などと、100ミリ秒Sleepさせた後であれば、 パワーに、定数を設定しても、動作することを確認しました。
ev3_motor_steer() も同様でした。
確認しました。 確かにmotorが反応しませんね。spike側ではコマンドを受け付けて、pwmの設定はしているようなので、spike側の問題のような気がします。もう少し確認します。
わかりました。初期のコマンド送信で、モーター設定後すぐにmotor.float()が呼ばれるため、止まっていました。 これはraspi側の内部データを-1で初期化するようにしたため、最初のモータ操作時にstopを示すデータを0に初期化した際に、そのコマンドがSPIKE側に伝わり、float()が呼ばれていました。-1初期化は0を示すデータが送られないことを解決するために途中から入れたのですが、その後それが不要なようにしたので、-1初期化をやめて0初期化にすることでstopのコマンドが送られないようにします。
ev3_motor_set_power() や、ev3_motor_steer() のパワー値に、定数を設定した時に、動作することを確認しました。
既知の情報であれば、申し訳ありません。 ev3_motor_set_power()にパワーを定数で設定すると動きません。
sensor_testプログラムでは、これを回避するために、
while(1){ i++; ev3_motor_set_power(EV3_PORT_B,50+i%5); } などと記述されています。