ラベル トラブル事例 の投稿を表示しています。 すべての投稿を表示
ラベル トラブル事例 の投稿を表示しています。 すべての投稿を表示

2018年6月6日水曜日

サーボモータハンチング対策

ポケモンGoBotシステムの問題点の一つはサーボモータへの負荷が大きすぎる点であった
以下はサーボに起きる問題とこの負荷を軽減する施策

スマホの揺らし台

サーボモータのハンチング

ハンチングとはサーボの停止角が定まらずに±1度の振動が発生する現象
経験則的にまとまった時間使い続けると発生する
Botシステムでは動作上は問題ないのだが、非常にうるさいし部品の摩耗も怖い

サーボモータの発熱

これはモータよりもシェル内の制御用ICの発熱
数時間単位の連続使用を行うとシェルよ溶けよ!と言わんばかりの高熱が発生
SG90ではこれでよくサーボが破損した

問題点の対策

長時間停止角を維持するようなシーケンスをやめればよい
ポケモンGoBotの例ではスイングする数秒のみアタッチして動作を行う
次にスイングするまでの数十秒間はデタッチしてフリーにしてしまう
この間は当然回転角維持のトルクは働かないのだが、それを許容する機構にすればいい

これでハンチングも発熱も解決
サーボモータを数時間連速動作させること自体がそもそも筋悪であった

追記:その他のハンチングについて

その後調べたハンチング関連の情報を追記する

・稼働後しばらくしてからハンチングが起きる理由
 →ギアの摩耗などが原因
  新品が一番精度がよく、摩耗により検知/制御精度が落ちる
  アタリが出て負荷が下がるのもハンチングの原因になり得る(後述)

・チューニングによる対策
 →ハンチングが起きるメカニズムは『オーバーラン』である

   目標角度まで回転→行き過ぎる→戻し方向に回転→行き過ぎる…

  制御パラメータのチューニングでオーバーラン対策となる(ゲイン調整)
  一番簡単な方法は回転速度を下げてしまうこと
  (簡易的な機構のサーボやその制御の場合は調整できない)

・回転軸への対策
 →オーバーラン対策として回転軸に摩擦や軽い負荷をかける対策
  ブレーキをかけてから実際に軸が停止するまでの制動距離(角)を短くする
  常に余計な力がかかるということなのでロスは増える
 

2017年7月25日火曜日

『GPSの信号をさがしています問題』の解決その2

iPodTouchでポケモンGOをする際に得られた知見のメモ

 参考:以前の知見/本体を振ることで再測位を誘発できる
久々にこの表示を見た
症状:
・2週間ほど前から『GPSの信号をさがしています』の表示が頻発
・変化点は不明
・以前のように本体を振っても解除されず
・APによる偽装を行わなくても症状に変化無し

当初はポケモンGOのアップデートが原因では?という予想だった
実際は本体側の問題で以下の方法で解決した

解決方法:
 iPodTouchのネットワーク設定を初期化
  設定→一般→リセット→ネットワーク設定をリセット
  (※保存済のwifiアクセスポイントのパスワード等はすべて消えるので注意)

理由は一切不明だが上記の方法で症状が劇的に改善された
位置情報を推定する処理で本体側にテンポラリデータが作られるのか?
直ったので良しとする

2016年12月3日土曜日

サーボモータSG90破損のメモ

ポケモンGoBotに使っていたサーボモータSG90が複数回破損しており原因を探っていた
以下その結果についてのメモ

サーボモータの使用状況

位置測定を誘発するため、スマホを置台ごと揺らすのに用いていた

バカバカしい装置だが今のところこれが最適
制御はArduinoを使用
30秒周期の間欠動作でスマホの置台を昇降させていた

デフォルトポジション(置台を降ろした状態)
置台を上げた状態

サーボモータの破損状況

制御信号を入れても全く無反応
このときサーボモータの筐体内にある制御用ICが酷く発熱する
(筐体ごしにはっきりとわかるレベル)
分解してもIC以外の破損や摩耗は確認できない

サーボモータ破損の原因

原因は装置の作りにあった

長時間動作を繰り返すうちにサーボモータの角度にズレが発生
→置台を降ろす動作の際、サーボホーンが置台にぶつかってそれ以上動けなくなる
→サーボは本来の降ろした角度を維持しようとするので負荷がかかり続ける
→許容範囲外の負荷が長時間かかることで発熱、ICが焼損する

サーボホーンは置台にぶつかってそれ以上動けない
停止時負荷を減らそうとサーボの角度を置台に接した状態で調整したのが裏目に出た
ズレを許容できる程度のクリアランスを設けて再調整を行った
(本来は誤動作を許容する作りにすべきだが技術不足で無理)

2015年7月23日木曜日

板金のネジ穴破壊について

板金で作られたフレームに対して基板がネジで固定してあるようなセットについて

評価等で基板の付け外しを頻繁に行う場合にネジ穴が壊れる場合がある
(スカスカになってどこまでも回ってしまう/固定されない)

これはネジが元々のネジ溝に入っていないのに強引に締めてしまったため
板金のネジ山は大した強度が無いため、ネジによって新たにタッピングされてしまう

元々のネジ溝に入れるにはネジをネジ穴に当てた状態で軽く『緩める方向に』回すこと
ネジ先がネジ溝に落ちる箇所があるのでそこを基点にねじ込む

2015年7月14日火曜日

フレキシブルフラットケーブルの(FFC)のTIPS

・フレキシブルフラットケーブル(FFC)とは
 帯状の銅箔をならべて絶縁フィルムでサンドイッチした形状のケーブル
 多数の配線を一括してソケット接続できる
 ソケット接続部に補強板としてPET素材などのプレートが付くタイプが多い

FFCの裏面/端子が並んでいるのがわかる


 基本的に組み立て時に一回挿したら挿しっぱなしなのだが
 開発ではこれを挿抜する機会が多い
 (そしてトラブル要因になる)


・FFCのトラブル:断線
 ソケットが基板に対して垂直に実装されているとFFCを補強板付近で折り曲げることが多い
 この状態で頻繁な挿抜を行うと折り目に負荷がかかって断線する
 目視では確認し辛いため原因がわかり辛い
 心当たりがある場合はテスターで全ピンの導通テストを

 普通のケーブルとは異なり補修は困難/原則交換すること


・FFCのトラブル:接続部のダメージ
 ソケットへの挿抜をくりかえすことで接続部の銅箔のへこみ/剥離によって導通しなくなる
 これも目視では気付けない

 これも原則交換すべき
 応急処置として接続部の端を1mmほど切断してやると接点が復活する(場合がある)
 (ソケットと銅箔の接触位置がズレるため)


・FFCのトラブル:補強板の剥離
 挿抜によって補強板の接着が剥がれる
 ソケットは補強板こみの厚さで設計されているため、挿入が困難になる

 薄い両面テープや接着剤で補修すればOK
 (絶縁性のものを使うこと)


・FFCのトラブル:ソケットの破損
 そもそも抜くことを考慮していないのでソケットは破損しやすい
 ストッパーが付いているタイプは特にやってしまいがち

 表面実装パーツであり破損した場合の修復は困難


・FFCから信号線の引き出し
 ソケット基板側から信号線が引き出せない場合の裏ワザ
 FFCの真ん中あたりから引き出したいピン上の絶縁フィルムを5mmほど削る
 フィルムを縦方向に折り曲げてカッターの刃を立てて削ると楽
 内部の銅箔が目視できれば十分
 あとは予備はんだをした線材を乗せてハンダごてでプレスしてやればOK
 線材はペンチなどで平たく潰しておくとよい
 上からグルーガンや接着剤などで絶縁体をコーティングすればなおよい




2015年5月20日水曜日

//**********↓このコメントを消すと何故か動かなくなる!絶対消すな!↓*********

以下は実際に遭遇したトラブル案件

症状:
 コメント行を消すとプログラムが正常に動作しなくなる

環境:
 言語はC
 IDEは存在せずエディタを使用
 組み込み用マイコンのコンパイラを用いてコマンドラインからビルド

原因:
 コメントに2バイト文字(日本語)を使用したため、コンパイラのバグでコメント行の改行記号が無視された

 ・エディタ上はこういう記述
   //**********↓このコメントを消すと何故か動かなくなる!絶対消すな!↓*********
        //※※ほげほげ関数※※
        ret = hogefunc(hoge1, hoge2);

 ・コンパイラの理解
   //**********↓このコメントを消すと何故か動かなくなる!絶対消すな!↓*********
        //※※ほげほげ関数※ 蝦ret = hogefunc(hoge1, hoge2);
 (※も蝦も実際には別の文字だが失念)

 蝦は※の2バイト目と改行記号\nが合体してしまった無意味な2バイト文字
  ・※の1バイト目が単体で有意な1バイト文字として解釈された
  ・※の2バイト目+改行文字(\n)が有意な2バイト文字(蝦)として解釈された

 コメント行の次の行で呼んでいるhogefunc()にバグがあり、この関数が呼ばれると正常動作しなかった
 コメント行に巻き込まれたことによってhogefunc()が呼ばれなくなり、表面上正常動作していた
 (実際は設計上の動作ではない/たまたまhogefunc()が重要度の低い処理であったので表面上わからなかっただけ)


備考:
 コンパイラのバグと設計のバグが重なって原因をわかりにくくした例
 デバッガが使えない環境だったので泥沼になった