Hatena::ブログ(Diary)

熊工房 ohgumaの腹凹ませたい日記

2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2018 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |

2018-05-19

[]ホームセンターにて(その2)

ホームセンターでネジ・ナットを探すと、TJ3Bで扱うM3サイズのものだけ見ても形状等いろいろあり楽しい


基本のなべネジと皿ネジ。2つは長さの測り方が異なる。

ネジ穴の面取りをすることで、皿ネジは頭を隠すことができる。

f:id:ohguma:20180516174312j:image

f:id:ohguma:20180516174259j:image


プラスチックねじセンサー周辺などで鉄ネジ使用できない場合に使う。きつく締めると簡単なめるのでねじロック剤などを併用したい。

f:id:ohguma:20180516174331j:image

ネジ止め剤

ネジ止め剤


ナットは、3Dプリンタ出力のパーツ等で埋め込む場合に舐めにくく便利でないかと思う。

f:id:ohguma:20180516174432j:image

ナイロンナット駆動部など緩むとまずいところ向けだが、まず通常のナットねじロック剤などの緩み止めを使うべきと思う。

f:id:ohguma:20180516174350j:image


いろいろな化粧ネジと化粧ナット。それぞれ手で締めることもでき、頻繁に開け閉めするフタの固定などに使うとよいかも。

f:id:ohguma:20180516174220j:image

f:id:ohguma:20180516174241j:image

f:id:ohguma:20180516174232j:image

f:id:ohguma:20180516174224j:image

化粧ナット使用例。バッテリー交換時には外す。

f:id:ohguma:20180519225507j:image

f:id:ohguma:20180519225522j:image

2018-05-18

[]ホームセンターにて

四国の田舎暮らしでは、ロボットパーツは通販を利用して購入するため、専門店で実物を見てから買うという機会は殆どないが、工具やネジ・金具などであれば現物を確認できるホームセンターで購入することも多い。そこに並んだ工具類を眺めるだけでも楽しい

最近は100円ショップでも工具類を扱っているところは多いが、特にドライバーなど繰り返し利用する道具は精度の高いメーカー品をオススメしたい。近所のホームセンターだと、KTC・ベッセルあたりが定番だと思う。


ベッセルといえばボールグリップドライバー。TJ3Bだと「+2」「+1」というサイズプラスドライバーを使う。ベッセルの細軸タイプはグリップも小さめで工具箱にも入れやすく愛用してる。

f:id:ohguma:20180516173953j:image

またネジとナットを固定する際、ナット側はボックスドライバーを使うとしっかり締めることができる。TJ3Bで使われる「M3」サイズナットだと「5.5mm」のサイズを使う。

f:id:ohguma:20180516173620j:image

ボーックスレンチが入らない場所用にコンビネーションレンチ(片目片口スパナ)も同じサイズがあると便利。

f:id:ohguma:20180516173708j:image


道具の正しい使い方はこちらで確認しよう。

2018-05-17

[]C-Styleでオムニホイール制御(SCA導入 その3)

モータ制御値の組み合わせは表計算ソフトなどでまとめると、その周期性に簡単に気づけると思う。全モーターの回転方向を揃えているとより分かりやすい。(以下、Excelの例。数式表示にしています)

f:id:ohguma:20180518142416p:image

3輪:6方向、4輪:8方向をより細かく分ける場合、隣り合う移動方向用のモーター毎の制御値の平均値を使うと計算上は中間の向きになる。三角関数が使えなくても、移動方向を増やすことはそう難しくない。(配列の使えないC-Styleではifの分岐が面倒なことになるが)

f:id:ohguma:20180518013316p:image


同様にプログラム中でリアルタイムに平行移動の値と旋回用の値を足して制御することで、移動しながらの向きの制御もできる。この場合、足した結果がコントローラで受付可能範囲内の値になるよう注意する。

  • 100より大きな値は100に置換する、-100より小さな値は-100に置換する
  • 足しても100、-100を超えない値を使う(それぞれ絶対値が、平行移動が90・旋回用が10)

など。

向きの補正ができるようになると、モーターの個体差は気にしなくてすむ。



「A(Actuator) アクチュエータ」パートで移動方向を指定して動けるようになれば、「C(Computer) コンピュータ」パートでどのように移動方向を決定できれば、目的にあったロボットを作ることができる。4輪オムニと3輪オムニを切り替える場合でも、「A(Actuator) アクチュエータ」パートだけ直せば済む。

2018-05-14

[]C-Styleでオムニホイール制御(SCA導入 その2)


■「A(Actuator) アクチュエータパート拡張

コンピュータパート計算した変数「C」(行動変数)の内容を追加して平行移動以外の動作も追加する。

f:id:ohguma:20180515021040p:image

(略)

f:id:ohguma:20180515021037p:image

オムニホイール動作は、平行移動と停止と旋回ができれば、あとは平行移動できる方向を細かくぐらいと思う。sin,cosの三角関数を使えばifなしで細かく制御できる。


さらに計算動作できるよう、6CHボタン変数に置き換える。

f:id:ohguma:20180515022922p:image

(略)

f:id:ohguma:20180515022919p:image

2018-05-13

[]C-Styleでオムニホイール制御(SCA導入 その1)

いくつかの方向に動かせるようになったら、プログラムを三要素 S・C・Aに分けて組み立ててみる。

SCAの歌はこちらのScene7へ。S・C・A!S・C・A!


プログラムをする前に、ある程度コメントの書き方を共通化したり、使い回しするためのテンプレート(ひな形)を作っておくとよいと思う。白紙からプログラムせずに、テンプレートコピーしてからプログラムし始めれば、プログラムの体裁も整えやすい。

f:id:ohguma:20180513165357p:image

コメントは各行でも随時入力しておく。また、コメントが設定できない「else」ボタンなども考慮すると、空のC-Codeボタンコメント欄を使い、コメントだけの行を作るとよりプログラムが見やすくなると思う。

f:id:ohguma:20180513165503p:image


まずはセンサーなしで、3輪なら6角形、4輪なら8角形に移動し続けるプログラムを考えてみる。

仕様

  • 平行移動のスピードは一箇所で設定する
  • 平行移動の向きは最初前進し、1秒毎に時計回りに向きを変える。
  • 向き補正は次回以降で考える。今回は向き補正なし。

初期化パート

移動し続けるためには、「while」の無条件ループプログラムを動かし続ける必要がある。ループ内で利用する変数は、ループに入る前に初期化しておき、意図しない動作を防止する。

f:id:ohguma:20180513170938p:image

  • 変数「A」:平行移動のスピードを決めるモータ制御
  • 変数「C」:平行移動の向きを指示する変数。とりあえずここでは3輪オムニで6方向を何時方向で指示する(前進:0、右前:4、右後ろ:4、…)
    • 4輪オムニなら8方向を0〜7で指示してみる(前進:0、右前:1、右:2、…)
  • タイマー1:平行移動の向きの切り替え用

■「 S(Sensor) センサパート

センサーしなので何もしない。


■「C(Computer) コンピュータパート

タイマー1をチェックし、1秒ごとに変数「C」を変更する。

f:id:ohguma:20180513172127p:image

  • タイマーを使う場合、その初期化(Start)のタイミングに気をつける。下の例の3行目の「Timer1:Start」を忘れると、プログラム開始1秒後以降でループ毎に常に2行目の「if」が成立して進行方向が変わり、意図する動作ができない。
  • 進行方向は6方向を何時方向で指示する場合、0時方向の次は2時方向、次は4時方向と2づつ増え、10時の次はまた0時に戻る。変数「C」を2づつ足していき、「10」を超える値になっている場合(ここでは12を想定)には「0」を代入し直す。
  • 時刻や角度のように値が循環する数値を扱う場合は「0」始まりの数値(時刻:0〜11、0〜23時・角度:0〜359度)にすると、剰余「%」を使った計算ができてプログラムシンプルになることが多い。「剰余」は「あまり」を返す演算子で、上の図の「if C>10」〜「end if」の3行は

f:id:ohguma:20180513173031p:image

と置き換えることもできる。置き換えてあれば進行方向を逆回転にする場合「C = C + 2」を「C = C + 10」に直すだけで済む(if文のままで逆回転に直する方法も考えてみてほしい)。


■「A(Actuator) アクチュエータパート

コンピュータパート計算した変数「C」によって移動方向を切り替える。

f:id:ohguma:20180513175906p:image

(途中省略)

f:id:ohguma:20180513175903p:image


(続く)