アナログ出力ジャイロセンサ

方位センサとして利用できるarduinoベースのアナログ出力ジャイロセンサが満足の行く仕上がりになったのでまとめておく。

f:id:ohguma:20211229020943j:plain

ハードウェア的には下記からさほど進歩がないが、今回ソフトウェア的に満足行くものができた。

ohguma.hatenablog.com

ここ数年使っていたプログラムは下記を参考に作成していたが起動時に自動キャリブレーションで数十秒の待ち時間があった。ロボット教室などでセンサを作成した場合でも、センサごとの調整は不要で作る手間はさほどでなかったが、時間制限のあるロボット大会などで使う場合に待ち時間が支障になることがあった。

github.com

今回、「 センサーの使い方(ジャイロ編) : Revolution_Include」の情報を参考にして、手動の任意タイミングでキャリブレーションできるようにすることで起動時の自動キャリブレーションの待ち時間をなくすことができ、より実用的になった。

詳細な情報(arduinoスケッチやFritzingデータ・ガーバーデータ)はgithubにまとめたのでそちらを参照のこと。 github.com

オムニホイールの設計(その2)

最初のスケッチでは、オムニホイールの外形46mmとメインホイールの外形を記載する。
データ量削減などを期待し、3D出力するパーツで円は使わずポリゴンを使う。
メインホイールは半径21mm、16角。
(以後のポリゴンは説明ない場合は外接ポリゴンを使用)
f:id:ohguma:20201226030802p:plain

サイドホイール

次にサイドホイール用の新しいスケッチを作成。
利用する燃料ホースのサイズとシャフト用のクリップの線径はそのままのサイズで一旦データ化する。
シャフトを通す穴のサイズは実際に3D出力して調整する。
利用した燃料ホースは若干の柔軟性はあったので、両端に抜け止めを設けても装着に問題はなかった。
両端の抜け止めだけではホースがずれる場合、ホース内側部分を太くするなどして対策する。
f:id:ohguma:20201226030821p:plain

先のスケッチから回転でサイドホイール用の各パーツのボディを1セット作成する。
ここでは全て新規ボディとして作成、それぞれ適当に素材も設定した。
今後、複製して利用するため、管理しやすいようグループ登録しておく。
f:id:ohguma:20201226030847p:plain

サイドホイールの1つを選択し、円形状パターンでZ軸回りに8つに複写。
1列分のサイドホイールの配置完了。
f:id:ohguma:20201226033730p:plain

その8つのサイドホイールをコピー・ペーストして、
 ・上に10mm移動
 ・Z軸回りに22.5度回転
して2列めのサイドホイールの配置完了。複製したサイドホイールも適宜グループで管理する。
f:id:ohguma:20201226034514p:plain

メインホイール

一旦サイドホイールのボディは非表示にし、1枚目のスケッチから押出でメインホイールを作成。
メインホイールの厚みは、2列のサイドホイールのシャフト間隔10mm+両側に2mmの合計14mmとした。
下の画像での実際の処理は、下に押出2mm、上に押出12mm、面取り1mm。
f:id:ohguma:20201226035408p:plain

サイドホイール用の溝

最初のサイドホイールの赤道面にスケッチを追加。
このスケッチでメインホイールに作成するサイドホイール用溝を作成する。
サポート無しで3D出力できるように底面に平行な天井は作らないようにする。
サイドホイールのシャフト用溝もここで準備する。
シャフト用溝の幅は実際に出力して調整する。
f:id:ohguma:20201226040632p:plain


メインホイールのボディは非表示にする。
サイドホイール用の溝は、それ用のボディを作成し、後でメインホイールのボディから切り抜く。
まずは、溝の主要素となるボディを両側に押出で作成。
サイドホイール長の8mmに両側の隙間合計1mmを足した9mm幅とする。
f:id:ohguma:20201226042344p:plain

サイドホイールの両端が当たる部分のボディを結合。
溝の側面とサイドホイール両端の接触部分を減らす。
f:id:ohguma:20201226042404p:plain

サイドホイール用シャフトを収容する溝用のボディを結合。
f:id:ohguma:20201226042434p:plain

サイドホイール用の溝の調整

先の形状のまま円形状パターンで配置すると角が干渉するため、スケッチを追加し、押出の交差を利用して角を落とす。
f:id:ohguma:20201226051127p:plainf:id:ohguma:20201226051140p:plain
f:id:ohguma:20201226051206p:plainf:id:ohguma:20201226051220p:plain

交差で処理した結果はこちら。
f:id:ohguma:20201226051251p:plain

さらに中央部分を面取りで調整。
f:id:ohguma:20201226051335p:plain

サイドホイール用溝の切り抜き

円形状パターンで1列分複製。
f:id:ohguma:20201226052928p:plain

それをサイドホイールと同様にコピーする。
サイドホイールと違って上下の形状が異るため、
 ・X軸で180度回転
 ・Z軸の上向きに10mm移動
 ・Z軸で22.5度回転
させる。
各ボディが接触していないことを確認する。
接触がある場合は、サイドホイール用溝のボディをさらに削る。
f:id:ohguma:20201226052948p:plain

メインホイールのボディを表示し、それを結合のターゲットボディとする。
サイドホイール用溝ボディをツールボディにして、切り取り。
f:id:ohguma:20201226053003p:plain

ここまででメインホイールが概ね完成。
f:id:ohguma:20201226053021p:plain

最終工程

ダイセンモーター用のスプリングピン用の溝を切り抜き。
f:id:ohguma:20201226081009p:plain
f:id:ohguma:20201226081610p:plain

モーター軸用の穴を切り抜き。
f:id:ohguma:20201226082408p:plain
f:id:ohguma:20201226082422p:plain

固定用ナットのスペースはテーパ角度をつけて切り抜き。
f:id:ohguma:20201226082443p:plain

完成

必要に応じて面取りなどを追加する。
f:id:ohguma:20201226092742p:plain

枝豆オムニと比較すると、厚みがあり、サイドホイールがメインホイールから飛び出している関係でそのまま置き換えできない場合は、メインホイールの底面側の厚みを増すなどの対応をすればよいと思う。

その他

燃料ホースやクリップを切断する際に、長さを揃える治具も設計しておく。
クリップは伸ばして真っ直ぐな部分のみを利用して、次のような治具に当ててニッパーで切断して長さを揃える。
f:id:ohguma:20201226083240p:plain

3D出力してサイズに問題がある箇所があれば、履歴で問題箇所のスケッチやフィーチャー編集で寸法を直す。
Fusion360は履歴をさかのぼって修正した場合、以後の履歴に修正内容が反映するので大変便利に作業できる。

オムニホイールの設計

以前、なるべく安価に作成した下の写真のオムニホイールを改めて設計した。
当時は盛ったり削ったり苦労した覚えがあるが、比較的容易に作成できたので流れをまとめる。
f:id:ohguma:20201225213638j:plain

とりあえずの仕様はこちら。

  • Fusion 360で設計。3Dプリンタで出力する。
  • ダイセン枝豆オムニと同じ直径46mmとし、置き換えを容易にする。
  • メインホイールは3Dプリンタで一体成型。
  • サブホイールのシャフトにはクリップを利用する。
    • 入手先:100円ショップ
    • シャフトは一応はめ込み式を考慮するが、安価なのでハンダゴテでメインホイールに固定し使い捨て前提とする。
  • サブホイールのグリップ材に外径8mm内径5mmの燃料ホースを利用する。
    • 入手先:ホームセンター園芸コーナーなど、10cm10円程度

3Dデータの最終形はこんな感じ。
f:id:ohguma:20201225214956p:plain


サイドホイールは直径8mm、長さ8mm、グリップ材は長さ6mm、シャフトは12mmとして、それらが収まるように寸法を決めた。
サイドホイールの配置は1列8個の内側・外側の2列構成の合計16個。内側と外側のシャフト間隔は10mm。
f:id:ohguma:20201225215205p:plain


続きは後ほど。

基板ホルダーの設計

Thingiverse - Digital Designs for Physical Objects」で「PCB Holder」を検索した際に、自分でも簡単に作れそうな設計かつパーツのものがあり真似してみた。
材料は最寄りのダイソーでも購入可能な「ダイソーの超強力マグネット」を使う。

(1)全体の大きさをスケッチして押し出し。底に磁石が入る穴を設ける。
ロボ教室で小学生も使うことを考慮し、なるべく小型化してみた。このスケッチは30x30mm。押し出し量は磁石径に合わせて13mm。
f:id:ohguma:20191222220307p:plainf:id:ohguma:20191222220533p:plain

(2)底となる面にスケッチ作成。磁石の抜け止めを作り、合成で押し出し。斜めの線は、8角形の外径ポリゴンで作成。
f:id:ohguma:20191222220707p:plainf:id:ohguma:20191222220816p:plain

(3)上面に、基板を縦に支える溝と角で支える窪みのスケッチを作成して、切り取りで押し出し。
f:id:ohguma:20191222220839p:plainf:id:ohguma:20191222220953p:plainf:id:ohguma:20191222221056p:plain

(4)角で支える際の返し用のスケッチを窪みの2面で作成して、合成で押し出し。
f:id:ohguma:20191222221132p:plainf:id:ohguma:20191222221147p:plainf:id:ohguma:20191222221257p:plainf:id:ohguma:20191222221311p:plain

(5)出力したものの角は丸くなりがちなので、基板の角が収まる溝のスケッチを作成して切り取りで押し出し。
f:id:ohguma:20191222221341p:plain

(6)上面サイドに設けた斜めの面に、基板を45度で支えるための溝用のスケッチを作成して、切り取りで押し出し。
f:id:ohguma:20191222221514p:plainf:id:ohguma:20191222221634p:plain

(7)上面に基板を辺で支える溝用のスケッチを作成して、切り取りで押し出し。(8)の飛び出し部分もまとめて切り取る。
f:id:ohguma:20191222221800p:plainf:id:ohguma:20191222221829p:plain

(8)適当に面取り、フィレットをつけてデータ完成。
f:id:ohguma:20191222221933p:plainf:id:ohguma:20191222221950p:plain


ロボ教室でのリリース初日に半田ごてで何個かつぶされてしまったのは想定外だが、作業はしやすくなった(と思う)。
縦と斜めの溝を省略して、もっと低い背で作ってもよいかもしれない。
f:id:ohguma:20191214152033j:plain
f:id:ohguma:20191215171222j:plain

メカナムホイールの設計

Robomasterを見てメカナムホイールを使いたくなり設計してみた。
projectrm.niwakasoft.jp

とりあえず第一弾は、このような感じで完成した。

設計にあたり、以下に気をつけた。

  • なるべく、手持ちの3Dプリンタ(ANYCUBIC MEGA-S)と、近所のホームセンターで購入できるもので組む。
  • サブホイールのグリップ素材として、燃料ホース(10cmが20円程度)を利用する。近所では、内径x外形で 6x3・7x4・8x5・9x6・11x7・ 12x8・ 13x9・16x12といろいろ揃う。
  • サブホイールのシャフトとして、ステンレス棒(1mが数百円)を利用する。

復習も兼ねて、サブホイール部分の作り方をまとめておく。

メカナムホイールの設計方法 by ohguma

(1)まずホイール径を決める。
f:id:ohguma:20190819004758p:plain

(2)ホイール厚を決める。両端にオフセット平面を準備しておく。
f:id:ohguma:20190819004806p:plain

(3)サブホイール用の傾斜平面を準備する。原点の軸でなく、(1)のホイール径のスケッチの直径部分の直線を軸とすれば、作成した傾斜平面ともとの平面の原点が揃い、作業しやすくかった。角度は45度。
f:id:ohguma:20190819004656p:plain

(4)サブホイール径は、使用するグリップ素材に依存する。今回は外形x内径が9x6mmの燃料ホースを採用。サブホイールはホイール外形に合わせてラグビーボール状に径が変化するが、異なる径のホース(外形8mmと9mm)を使いそれを再現する(つもりだったが、ある程度伸びるので1種類のホースで実装した)。
f:id:ohguma:20190819004700p:plain

(5)ホイール径を越さないい程度に、押し出し量を目視で調整。
f:id:ohguma:20190819004703p:plain

(6)サブホイールの軸はホームセンターにある2mmのステンレス棒を使用。切断にはニッパーでなく、クリッパーを使用。

f:id:ohguma:20190819004712p:plain

(7)サブホイールの端を基準にオフセット平面作成。
f:id:ohguma:20190819004717p:plain

(8)サブホイールの支えを押し出し。
f:id:ohguma:20190819004721p:plain

(9)サブホイールと支えを、円状配置でコピー。
f:id:ohguma:20190819004725p:plain

(10)履歴を戻り、支え部分の形状を変え、各サブホイールごとの支えが重なり、結合できるようする。
f:id:ohguma:20190819004729p:plain

(11)支えのみを結合し、(2)のオフセット平面を使って、はみ出す部分を切り取り。
f:id:ohguma:20190819004734p:plain
(12)サブホイールを非表示にして、支えを結合
f:id:ohguma:20190819004738p:plain

(13)適当に面取り。印刷時に下側になる面は、面取りして天井を作らないようにする。斜めのオーバーハングする壁ならサポートなしで印刷できる。
f:id:ohguma:20190819004742p:plain

(14)適当に軸受等を作成。
f:id:ohguma:20190819004745p:plain

(15)コピーして、メインホイールの裏表を揃える
f:id:ohguma:20190819004751p:plain

(16)サブホイールを表示して全体を確認。
f:id:ohguma:20190819004754p:plain

反省

サブホイールのシャフトをサンドイッチして支えるようにしたが、ホイールの組み立てがとても面倒だった。
メインホイールの外側から長いネジを通して、反対側をナット等で固定する方式を推す。

micro:bitでサーモグラフィーを作ってみた(さらに更新)

見栄えのする表示デモは未だ思いつかないが、電源投入時にぼんやり明るくなるようにしてみた。

makecode.microbit.org

micro:bitでサーモグラフィーを作ってみた(更新)

温度の表現方法を思いつき、プログラムを更新した。
ohguma.hatenablog.com

これまでは、

  • 20~30度を青~赤で(色相の変化 240~0、彩度99、輝度10)

表現していたが、以下を追加し、表現の幅が広がった。

  • 30度超~30度を赤~白で(彩度の変化 99~0、輝度10)
  • 20度未満~10度を青~黒で(輝度の変化 10~0、彩度99)

makecode.microbit.org



あとは、電源投入時に見栄えのする表示デモを時間ができたら作る予定にしておく。