(多分)第10回目

みなさんこんにちは、お久しぶりです。松です。

 

今回は塩君と2名でベースキャンプ名古屋で開催しました。

 

今回はソースの解析を行いました。

解析に使用したソースは下記です。

GitHub - gmossy/Sainsmart-4WD-Robot: Documentation for the Sainsmart 4WD Robot

 

 

[ setup()関数 ]

1.初期化

[ loop()関数 ]

2.シリアルによるモードの読み取る

3.モードは下記

   (a) Forward

   (b) Turning Left

   (c) Turning Right

   (d) Turning Backward

   (e) Stop

   (f)  toggle Roam Mode

   (g) 1(?) Mode

4.roamステータスの読み取り

   0(=ELSE)なら何もしない。1(=TRUE)ならRoaming動作

5.8番ピンに接続されたボタンの読み取り

   ボタンが押されると関数が動作。(現時点で動作未定義)

6.2に戻る

 

(a)のForward Modeから(e)のStop Modeまでと、(g)の1 Modeを読みました。

1 Modeの動作は、25(ms)ごとにモータスピード20%から100%まで前進加速した後、100%から0%まで後退します。

動作確認のため、Smart Carを動作させてみましたが、前進するのみで後退してくれず、上手く動作しませんでした。

原因究明は次回の課題です。

 

各モードの関数は2つのモータを動作させるための、motorAとmotorBにmodeとmotorspeedの引数を渡しています。

渡す引数により、A、Bそれぞれのモータが正転、逆転して前進、右左折、後退します。

各モードと引数の関係は下記のようになっていました。

モード motorA motorB
Forward 2 2
Back 1 1
Right Turn 1 2
Left Turn 2 1
Stop 3 3

 

toggle roam modeは上記の動作を組み合わせて動きます。

 

今回ソースをゆっくりと追いかけることで、いくつか使われていない変数を削除したり、

元のソースコードで変だな。と思う箇所を発見して修正することができました。

上記のモードと引数の対応関係も、ソースコード中には引数が"1"の場合は、clockwise、"2"の場合はcounter-clockwiseと表記されているので、

Forwardが[1,1]の方が自然ではないかと思います。直していませんが。

 

今回は参加者二人ということで、話も脱線多めのまったりした感じで進みましたが、

お互いの近況報告などもでき、ソースコードもじっくり追うことができました。

 

更新頻度が下がっていて、これではいけないなーと思っているので、

今年は去年よりも記事を上げることを目標に、ブログ更新も気合を入れ直してがんばっていきたいと思います。

それでは!