また日記の間隔が空いてしまったのでTwitterのログを見ながら記憶を再生
---
☆ 8/9〜8/11あたり
Futaba RS30xとのシリアル通信の不安定さがプログラム側を色々と変えてみても直らないので、オシロを繋いでチェック。
デジタルで見るとそれなりの波形に見えるのだけど、アナログで見るとノコギリ状になっていました。1Wireシリアルのプルアップの容量が足りない感じ。
USB用の5Vを抵抗で分圧して3.3V作ってるのが良くないのだと推測。
※よくよく考えると、4月頃にオシロで波形見てダメダメなのは確認していたような…
ということで、uart2ppmモジュール用に買っておいた 3.3V出力のDC-DCレギュレータを使って3.3VDC-DCモジュールを作成。
これをμPX-1の60pin拡張ボードの裏側に貼り付けて、USB用の5Vから電気をとって、1Wireシリアルのプルアップに接続。
無事に通信が安定するようになったので、Futaba RS30xとの通信をロングパケットに変更する作業へ
---
☆ 8/11〜8/13あたり
ROBO-ONE公式サイトの更新があって、追加された情報の解釈や、不足する情報の確認やらで作業せず。
※そんなことほっといて開発作業に専念すればいいのに…
---
☆ 8/14〜8/17あたり
Futaba RS30xとのシリアル通信、物理要因での通信エラーが解消したので、通信のロングパケット化に着手。
「6個あるRS303のうち6番目のサーボだけロングパケットに反応しない」という謎現象に悩まされ、受信データ(1WireシリアルなのでTXDとRXDが繋がっている)を確認したり、並び順を変えたり、3つずつに分けたりしてもダメなので、「6番目だけもう一度ショートパケットを送る」という方法で暫定対処。
その後「7番目にダミーデータを加えたら?」と気づき、試してみると、6番目のサーボもちゃんと動きました。
サーボ側の問題ではなく、送信プログラム(ロボマガ連載に出ていたショートパケット用コードを流用)の問題だろうと推測。
---
☆ 8/17〜8/19あたり
ロングパケットのテスト中に何度も転んで顔をぶつけそうになったので、ROBO-ONEエントリー後にやるつもりだったヘッドギアの作成を前倒しすることに。
仮なんだから単純な形にしようと思いつつ、いまいち気に入った形にならなくて画用紙で型紙作って試行錯誤。発泡塩ビで最終版作るまでに2日も使ってしまった… orz
エンジェリックレイヤーとかプラレスラーをイメージしたのだけどどうでしょう。
フェイスガードは発泡塩ビ、ヘッドバンドとヘッドガードは暫定で画用紙、透明部分はゴーレムくんのヘルメットと同じくマイクロソフトマウスのパッケージを使っています。
---
これで転んでも大丈夫になったから歩行モーション作成に入れるかな…
でも、その前にロボマガ連載のコードを流用しているサーボ通信部分を書き換えたい気も…
3月の天保山ロボフェスに参加するとき、時間がなくてロボマガのコードをそのまま流用したのがそのままになってます。
そのコードのシリアル通信処理部が、ttySをNON_BLOCKモードで開いて、read()をbusyループにしているのと、write()で一気に書き込んでいるあたりが気になるのでselect()で書き直そうかな…と…(マルチスレッド化した意味ないじゃん!)
[
☆コメント]
[
△先頭へ]