256(ジゴロー)-Series 日記 


いつものように、次の大会にむけて再スタート(ということで、ホームページのリフレッシュ)。
前回大会の反省を活かすべくプランをしっかりと作らないといけないなぁ、って思ってます。
1年後くらいをターゲットにおいたロボット作りと、今の 256(ジゴロー)くんの完成度を高めるというものと、2つ走らせることにします。

大会後に行ったメンテナンスは、下記のとおり。

 ちょっとパワフルな方のWebがありましたので、紹介させていただきます。
 みすみロボット研究所 さんです。
 ジャイロPG03の動作など、きちんと波形をとられてます。 こういうデータ、ほんと良いですね。 これからも期待してます。
 他、2/14に書かれているアッパーケース交換時にOリングを忘れずに、ですが、私も1つやってしまってたみたいです。
 さて、どこのサーボなんだろう。。。 (壊れたサーボではないことは確認しました)
 出力軸が軸方向にブレるはずなので、結構わかりそうなんだけど。。。

(2005年3月27日)


「趣味の中での挑戦記」を更新しました。
「KO RedVersion のポジションキャプチャ」についてまとめてみました。

「趣味の中での挑戦記」に煙モクモク時の回路とソースを載せました。

(2005年4月2、3日)


「趣味の中での挑戦記」を更新しました。
 ・・・ 2日連続でオリジナルサーボに挑戦中!

直交軸の見直しをしました。 自作サーボにということで、「趣味の中での挑戦記」に写真をまず載せてみました。
さっそく、denno_ono さんのところでコメントいただき、ありがとうございました。 やる気が増すってものです! がんばります!

(2005年4月9,10日)


 SISOさんのところで DSUB 9pin の基板取り付け方法について書かれていたので、私の方法も紹介します。 安上がり&固定もしっかりできますよ。

表から 裏から

この方法を使えば、コネクタを固定する冶具費用分だけ浮きます。 また、基板の厚みとピンの隙間がぴったりで、グラグラしません。 お試しあれ。

(2005年4月12日)


「趣味の中での挑戦記」を更新しました。
 ・・・ またまた Power-MOSFET 関連と、Low-Side PWM 方式の私なりの解釈についてです。(16日)
 ・・・ 加えて、HEW4 による R5F21114FP のためのパソコン環境整備と TimerY/Z の使い方についてまとめてみました。(17日)

(2005年4月16,17日)


 サトー電気さんで Eジスpen なるものが販売開始されました。 これは、使えるかも。
 私のように、いつまでもユニバーサル基板で電子工作している方は、楽できそうです。
 近いうちに買いたい、一品です。

 「電子工作の実験室」の後閑さんは早速使っての感想が web 上に記載されてます。 ご参考まで。

(2005年4月18日)


 GWが始まりました。
 最近、断続的に続いていたロボットつくりですが、一気に前進させたいところです。
 まずは、256(ジゴロー)くんで遊べるようにしたい。 オリジナルサーボの制御基板を完成させたい、そういうところでしょうか。。。
 (256くんはソフト作りで終わり、基板作りはEagle の使い方マスターで終わってしまうような気もしてます)

 「趣味の中での挑戦記」を更新しました。 ・・・ まだまだ未熟ゆえの過ち。

 ところで、Yellowsoft さんから、Xilinx FPGA Spartan3 の小型ボードが発売されましたね。
 使ってみたいアイテムです。 以前、雑誌の付録でついていたのを買い忘れた私としては、1.5サーボと高いですけど、1つ欲しいです。

 また、秋月電子通商さんで廉価版加速度センサ(ADXL311)モジュールが@\800 で発売されてます。 在庫限りということなので、早い者勝ち?ですね。
 安くセンサーを取り入れたいという方、加速度センサーをADCで取り込んでいるという方にお勧めかと。

 あと、とっても困ってます。 誰か知っていたら教えてください。

 千石電商さんの2Fのカウンター前の棚にあった、表面実装型のNPN, PNP 型トランジスタを買ったのですが、型番を控えてくるのを忘れてしまいました。

 10個で100円ということで、衝動買いしてしまった代物なのです。

(しかも合計100個も買っている、 お馬鹿な状況)

(2005年4月29日)


 「思い立ったが吉日」の いしかわさん から情報提供いただきました。
 4月29日の上記にある型名がわからなかった表面実装型トランジスタですが、NPN が 2SC2712 で、PNP が 2SA1162 ではないですか?とのこと。 わざわざ店頭で調べていただけたみたいで、恐縮です。 ありがとうございます!

(2005年5月1日)


 最近、こちらより、「趣味の中での挑戦記」ばかり更新してますが、本日も同じです。 2泊ほど実家に帰っていたのですが、EAGLE によるアートワークにも慣れてきました。 帰ってみると、荷物が届いていて、やる気がドンドン増して来ました。 やっぱ、趣味はいいねぇ!

(2005年5月2,3日)


 ONOの電脳壁新聞 ( denno_ono ) さんのところの4月の「選り抜き」に選ばれました。 うれしいです!

 ロボット作っていて(作ってる途中で)うれしいことの1つには、自分の情報を使っていただけること、というものにもありますね。 はやく色んな場で自作ロボットがお披露目できればいいんですけどねぇ。。。どうも、技術屋っていうものは作ることの楽しさ、出来上がるまでの過程に喜びを感じてしまうところがあって、なかなか完成というところに行き着きませんね。 点取り学習を強いられてきた教育による悪影響かわかりませんが、「100点ではなくてもいいので、できるところまで」っていうのが、抵抗があるんですよね(大会前になると別ですけどね)。

 という、反省を踏まえて、GW(本当は最終日、だけど明日は有給休暇をとらせてもらったのであと4日ある)の過ごし方を決めちゃおうと思います。 第7回大会前3月13日のメモよりは大雑把ですけどね。

  1. EAGLE によるオリジナルサーボ基板作成(継続)
    • 20mm x 40mm 基板に部品並べを工夫して調整を続ける。
    • 裏面配線のところに抵抗、コンデンサを配置できないか、調べる(表面の領域確保のため)。
      • これはベンチマークしてわかったのですが、裏面に抵抗&コンデンサ系を配置しているものが多そう。
    • Reenesas Microcomputer Development System E8 の接続端子を設置。
      • ただし直結はしない(14ピンもあり、N.C.が多数含まれているため)
    • 入出力ピンは2.54mmピッチから2mmピッチへ変更。
  2. 256(ジゴロー)に方位センサー搭載
    • 精度向上を考えてみる(詳細はできてから公開)
  3. 256(ジゴロー) 足裏サイズ変更し、歩行訓練再開。
    • 次の大会からは足裏サイズが小さくなるという宣言があったような気がするので、再度調べてそのサイズにする(脚長さの50%かな?)
  4. RCプロポのトレーニング回路にキーパッドを接続(SISOさん情報をもとにがんばる)
    • 制御系は、何ら工夫をしていないので、大会前^H中に焦らなくても良い様に、やっておく。
  5. 色々なイベントをネットサーフィンして確認する(ROBO-ONE 以外の大会って何があるんだろう??)

 今日はこんな感じでメモを取りながらロボット作りをしてみよう!

 (9:40 記載)

 結局、今日はスケジュールの1番だけで終わってしまった。 というのも、ポカポカ陽気に誘われて4時間ほど昼寝をしてしまったのでした。。。
 予想以上に小さくまとめられたので、ピンヘッダの 2mm 化は見送りました。(詳細は、「趣味の中での挑戦記」 にて)

 あと、どうでもいいことですが、今日は、2005年5月5日の5が3つ並んだ日だったのですね。

 (24:45 記載)

 (2005年5月5日)


 今日も、朝5時から起きて、ゴソゴソやってます。
 まずは、先日の計画の5番、ネットサーフィンから。。。と思ったら、モデラの記事にハマッテしまいました。 電子回路系が終わってないのに、また、興味がアルミ加工へと逆戻りか?って感じです。 悪い癖ですね、ほんと。 今は 256(ジゴロー)くんがちゃんと出来上がってるのだから、アルミ加工は要らんはず! (けど、やっぱり、ほしい。。。)

 (2005年5月6日)

 今頃!という感じですが、i, ROBOT を観ました。 サーボ基板を作りながら観ていたのですが、完全にナガラ族状態で進捗が悪化しました。 観終わった17時ごろから基板作りの露光をスタート。 奮闘記?は「趣味の中での挑戦記」 にて。

 (2005年5月7日)

 のんびり過ごしてこれたGWも今日で終わり。
 久々にストレスから開放されての休み、ということでゆっくりできました。

 ロボットの方ですが、結局、基板作りに始まって、基板作りの途中でGWを終えてしまう、という形になりました。 256(ジゴロー)くんのソフトウェア面含め、スケジューリングをしないと着手すらできないかなぁ。。。と思ってしまうくらいノータッチでした。

 ということで、本日もオリジナルサーボ制御基板作りは、こちらにて。。。

 (2005年5月8日)


 まじめにロボットについて勉強を開始しようと思って、「ヒューマノイドロボット」なるものを購入しました7andY 配送ってもう少し速くできないものでしょうかねぇ。 GWが終わった後に届いても。。。)

 この本ですが、数学のお勉強が前半にあるのですが、これを読み飛ばしても、わかる内容になってるので、理屈の勉強にはよいですね。 一応、最後まで読みきったのですが、覚えてることはほとんどありません。 でも、よ〜くわかったのは、ある種のモデルをちゃんと作って歩行を実現しているということ。 そこが知りたかった、というところが書かれていたので、幾分かはスッキリしました。 「ROBO-ONE のための二足歩行ロボット製作ガイド」 がロボットそのものの工作ガイドだとすると、「ヒューマノイドロボット」は、ソフトウェア作りの基礎作りといったところでしょうか。 もっと勉強したい!っていう人には良いですね。

 (2005年5月9日)


(ちょっと余談)
休養がてら沖縄へ旅行してました
大学の時に1度行ったのですが、全然観光してなかったので、今回は環境中心で。
梅雨の時期で雨を覚悟して行ったのですが、移動時以外は雨も上がって、晴れ間が出てくるほどでした。
関東と違って、とっても暑かったです。
ともあれ、リフレッシュできたので、また、明日から仕事、ロボット作り、がんばります!

(2005年5月15日)

(ちょっと余談)

頑張ります!宣言しての、この1週間はキツかった。

denno_onoさんの壁新聞を拝見してると、
皆さん順調に進んでるみたいで
励みになりますね(たまに凹みますが)。

旅行入れて3往復、飛行機に乗りました。
羽田空港には当分行きたくない気分。
今日、山口宇部空港から帰ってきたのですが、こんなもの発見。
懐かしくて買ってしまいました。
くじらのふるさとは下関だったのですね(ほんまかぁ?)
同じ年代の人たちは、学校給食でよく食べたと思います。

(2005年5月21日)

(ちょっと余談)

頑張りの2週目もキツかった。。。

NECエレクトロニクスも DIP パッケージマイコン
ところで、最近、1チップマイコンのリメイクが進んでいるように思いました。
いつ発売になったのかわかりませんが、Renesas に続いて NECエレクトロニクスからも
Sunhayato から 2.54mm DIP パッケージのマイコンを発売してますね。
導入用としては楽しめそうな値段設定ですし、
各社から、どんどん出てくると、日曜大工的に遊べて技術屋さん受けしそうですね。

基本は2005年4月のトラ技の広告ページにある78K0シリーズですね。
WDTと独自の高速クロック回路が入っているのが良いですね。

(2005年5月29日)


 寝不足ながらも趣味は続けたいですね。
 次回 ROBO-ONE に出場するしないにかかわらず、とりあえず宿は押さえるアクションを。 会社の保養所が近くにあるみたいなので、とりあえず、予約。 出れないでも、下呂温泉があるし、観光にはよいところですね。

 ジャイロセンサについて、色々と調べてみました。
 murata 製のジャイロですが、共立電子で扱ってるものがありますが、製品カタログをよく見ると2軸にする場合、タイプの違うものを使ってください、とある。 干渉を避けるためとあるので、コンパクトな2軸ジャイロを作ろうとした場合、気をつけないといけないです。

他、いろいろとノウハウが乗ってるので、ジャイロのコンパクト化を考えて基板作りをしてみようと思います。 直接、murata 製作所に web で購入を希望としてみたところ、個人購入も快く受け付けていただけるとのこと。 (しかも、共立電子より安い!) とりあえず、4個(MA版、MB版2個ずつ)発注!。

 PG-03G の時に、ドリフトがあったのですが、これは、上記の2に該当するのかな? 該当するハイパスフィルタも回路図まで描かれてるので、親切ですね。 4.7uF, 100kΩでよいそうな。 ふむふむ。。。 忙しいから現実逃避。 さっそく、ジャイロが届く前に基板を作ってみました。 回路的には、カタログ通り。 最適化するところは製品が届くまでに考えるとします。 何の工夫もしてないので、約25x28mm2 の基板サイズです。

(2005年6月2日)

(ご連絡)

家庭で使ってたプロバイダを変更することにした都合上、
ホームページの更新が止まってしまっております。
何日くらいで移行ができるのか、わからないのですが、
復活の折には、いろいろと書きたいことが溜まっていると思いますので、
また、見に来てください。

(2005年6月19日)


 サーバの調子が悪く、更新&閲覧ができず、ごめんなさい。

 ジャイロが届き、具体的に動かしてみました。 回路的には、先日のものとほぼ同じですが、少しコンパクト?にしてみました。 反応性もよく、2軸のブレがちゃんとADCで電圧として読み込めていることを確認できました。 製作費用的には、2軸で8,000円弱で仕上がってます。 OPAMP は1IC内に2個入ってる LM358M を選んでます。

 加速度センサですが、どうも手持ちのAPA300 が壊れてしまったみたいで、単純な増幅回路に繋げてもピクリとも反応がなかったため、ACB302 に切り替えて回路設計してみました。 ACB302 は内部で基準電位を入力Vccの半分に設定し、それを中心に+/-100mV/G の出力を出すので、10倍程度に増幅できれば、+/-1V/G の変動が得られることになります。 4つのOPAMPを使って、1つは基準電位作り、残り3つで X,Y,Z 3軸の増幅にします。 基準電位は1つで共用させる形にしましたが、特に干渉は無いみたいなので、これで良しとしておきます(実際にロボットに搭載すると他のノイズが乗ってくるとか激しい動きになった時は干渉しまくりかも知れませんが、ソフトウェアでフォローしたいと思います)。 GNDが1箇所結線できてませんが、ワイヤーでつなげる形にしました。

 第8回 ROBO-ONE 大会のことが詳しく発表されてますね。 「とにかく走る」がキーワード? 走るの定義は何なんだろう? 両足が空中に浮いている、ということでしょうか。

(2005年6月26日)

(ちょっと余談)

自宅で使っていたプロバイダを変更しました。
結構快適です。
そのタイミングで、Webサーバも復活したみたいです。
ほんと、ご無沙汰、という感じです。

ここで、一気にアップデートできると良かったのですが、
台湾行ったり、北国に行ったりしていたので、
休みの日は体を休めるので精一杯でした。。。

そんな中でも、denno_onoさんの選り抜きに選ばれて喜んでしました。
ジャイロですけど、6/26日記に実際に動いた基板を乗せておきましたのでご参考に。

(2005年7月7日)


 制御基板を新しく作ってみました。 前大会の前に購入したものなのですが、BestTech製 BTC080 (SH2/7145F) によるものです。 アートワークに意外と時間が掛かってしまって、まだ、加速度センサとジャイロ(6月26日を参照ください)を搭載してませんが、大きさ的にはロボット本体が大きいので入りそうです(80mm□)。 その他のセンサ系としては、CDSによる光感知は搭載しようと思います。 CPU能力が足りないので、今回も画像処理は見送りとします。

 次の ROBO-ONE 大会までそれほど余裕があるわけでもないので、そろそろ前回と同じことをしないようにするために、仕様を決めてきちんと仕上げてみようと思います。 一旦、オリジナルサーボ作りなどストップしておこうと思います(やれば、やるだけハマッテしまうので)。

(2005年7月10日)

 3連休の初日は、やっぱりアートワークしてしまいました。 CPUボードにジャイロと加速度センサ、EEPROM をつけてみました。 ノイズなどどうなるのかわかりませんが、明日は実際に作ってみて動作チェックしてみたいと思います。 3連休、ソフトウェアの移植までできればいいなぁ。。。 仕様的には 3.3Vデバイスで統一することで、瞬間的な電源降下などにはマージンができるんじゃないかな?と期待してます。 あとは、趣味ならではの自己満足の追求、徹底的なオリジナル。
 あと、大失敗をしてました。 焼付けする両面基板のサイズが短辺 75mm だったので、80mm□ → 80x75mm2 に急遽変更しました。

  • 基板サイズ 80mm(横) x 75mm(縦)
    • 3.3V レギュレータ(Max 500mA)
    • Gyro : Murata ENC-03M 2軸搭載
    • g-Acc : Star ACB302(3軸) 搭載
    • EEPROM : AT24C1024 搭載可
    • CDS or 距離センサ : 搭載可

  • 24ch PWM方式双方向コントロール可
    • KO RedVersion 用 pull-up 抵抗搭載可
    • XC9572XL にて 4ch <-> 12ch 双方向実現

  • その他
    • 電源線強化(裏打ち配線あり)
    • Li-PO のバランシングセンサをモニタ
      △ 単なる抵抗分割でのADC入力モニタ
         (2005年8月14日訂正)

  • 両面プリント印刷用にアクセサリパターン追加
    • 切れチェックパターン
    • 目ズレチェックパターン
          (2005年8月14日追記)

 ANA&楽天スーパーポイントでロボット王国へちょこっとしたパーツを発注。 SISOさんとかが使おうとされている高屈曲ワイヤーってどういうものだろう?って思って、注文してみました。 スーパーポイントによる購入なので、気軽に買ってしまいましたけど、期待してます(→連絡がありました。同時に頼んだポテンショメータに在庫がなく2ヶ月入手待ちとのこと。注文できないようにちゃんとマスクして欲しかった。。。)

(2005年7月16日)

(ちょっと余談)

家中、風邪だらけ。。。
私もダウンして2日目。

次回の RoboOne @飛騨高山 ですが、
期待していた会社の保養所が外れてしまったため、宿がない!
さて、どうしよう。。。

(2005年7月22日)


 久しぶりの長期連休になりました。
 職場全体が引越しということもあって、この連休は出社しても仕事にならない、ということで、しっかりと休ませてもらおうと思います。

 初日は秋葉原へ買い物。 3軸加速度センサの予備とプリント基板の現像液。 どうも最近適当に実験をしてしまってる為か、壊れる部品が増えてきてしまいました。
 2日目(今日)は、BTC080(SH2/7145)にソフトの移植。

 BTC070 -> BTC080 へ移植されている方、きっと同じことにハマッてるんでしょうね。 BestTech さんのヘッダで割り込み関数の名前が変更になっていて、うまく割り込み処理が動かない、というもの(Renesusさんからの支給ヘッダが大元?)。 コンパイルはエラー、ワーニングなしなので、一見、ちゃんと動いているように見えるのが発見遅れの原因。 統一して欲しかった。。。

BTC070
SH2/7047用
#pragma	interrupt	int_tgia_0
void	int_tgia_0( void )	// MTU0.TGRA の割り込み発生
{
	// 割り込み処理
}
BTC080
SH2/7145用

BTC050
SH2/7045用
#pragma interrupt int_tgi0a
void    int_tgi0a( void )       // MTU0.TGRA の割り込み発生
{
    // 割り込み処理
}

非常に微妙な差なのですが、割り込み関数名が int_tgia_0() と int_tgi0a() 、つまり、末尾 a_0, 0a とが変わってます。
という難関?を突破でき、無事に24本の PWM 入出力が可能となりました。

(2005年8月13日)

(ちょっと余談)

7 / 16 の回路図面を最終版に入れ替えました。

 メモとして・・・
 3.3V ADC を使用している環境で、バッテリーの電圧を読みとるため、下記のとおり抵抗を2つ使うことにしました。

  • ADC への出力電圧は

    { R1 / ( R1 + R2 ) } * Vcc
  • 今回は、
    • R1 = 330kΩ
    • R2 = 1.0MΩ
    とした。 そうすると、ADCに3.3Vの入力があるとすると、
    • LiPo = 13.3V
    が許容値となる
     (7.4V使用だと満充電8.5V程度に対して十分)

 第8回 ROBO-ONE のエントリー完了。 エントリー番号 20 番。 今度は、ちゃんと予選資格審査くらいはパスしたいものです。

(2005年8月15日)


 今年の 3/6 に書いた PG-03 のオフセットですが、そのときに取ったデータを紹介していなかったので、示しておきます。 縦軸ですが24.576MHz の16分周でのカウンタでの値です。 KO KRS-2346ICS などに接続して使う場合だと、1度=13.6カウントに相当します。 このズレが大きいと思うか、無視してよい、と思うかはユーザー次第というところでしょうか。 赤、青の2つのグラフがあるのは、2軸分のデータということで、ちょっとした基板差(ゲイン調整など)で発生しているものと思われます。 ROBO-ONE の大会のように数分という時間であれば、約1度ズレる程度ということです。

自作するのなら、これ以上の性能を得るようにしないといけない、という努力目標が決まったところで、また、没頭することにします。。。

(2005年8月19日)


数値計算でお遊びしてました(1:00)。

テーブルを用いて三角関数を高速化させる方法がありますが、0.1度の角度まで精度を上げると、テーブルが膨れ上がってメモリを圧迫してしまう、ということで、sin関数は3次,関数 cos関数は4次関数で計算させることをしてみました。 SH2/7047F 50MHz の場合、BestTechさんから支給されてるライブラリとの比較でsin関数は 40%の時間で(60%短縮), cos関数は45%の時間で演算ができます。 興味のある方は、試してみてはいかがでしょうか。 (特記:cos関数はsin関数に比べて1.3倍演算時間がかかってしまいます。 また、gcc コンパイル時 -O2 最適化を実施し、演算は double 型で行ってます。) 補足ですが、sinf, cosf という float 型用の関数が用意されてますが、これは頑張ってます。 sin関数, cos関数に比べて、64%の時間(36%短縮)、62% の時間で演算を終えました。

sin(x) = 倍 (-1)n x2n+1 / (2n+1) ! } = x - x3/6
cos(x) = 倍 (-1)n x2n / (2n) ! } = 1 - x2/2 + x4/24

この展開ままだと、sin関数は37度以上, cos関数は53度以上で有効桁4桁を割り込みますので、sin(x)=cos(90度-x) を利用して変換すると良いでしょう。 あと、整数演算で行いたい場合は、誤差が生じない程度の 10000 倍の値で行うと見かけ上誤差が発生していないようにみえるのでよいかと思います。 (注: x の単位はラジアンです。 変換時のπの桁数を十分に上げないと精度が落ちます) さらに工夫をして16進数で演算しきれるようにすると、高速化ができるんでしょうね。

数値計算をさせて遊んでいて気がつきました。
上記実験は問題なしだったのですが、C 言語の仕様に引っかかってしまってました。

gcc DevLite だと関数の引数が double 型であっても、引数内の演算が int 型同士だと double に拡張するのは引数として関数に渡すときだけ変換されるみたいですね。
Microsoft C だと、double 型に変換した後、演算をして、演算結果を double 型のまま引数にしてるみたいです。
PC上で各サーボの角度を出力させてグラフにして問題なしだったのが、実機テストすると演算ミスしてるみたいだったので、わかるまで悩みました。。。

注) 例をあげると、f ( x / ( L - z ) ) で、x, L, z が int 型の場合、L-z は問題なし、x/(L-z) を演算したときに、小数点以下が int 型の場合無くなる、double だとちゃんと f()関数に渡される、ということでした。

(2005年8月20日)


まだまだあきらめないで、がんばりたい。 気がつけばロボットを作り始めて2年が経ちました。
モーション補間を検討中です。 モーション計算を12msec.を1とした時間で計算する場合、演算が long では over-flow するので、long long (64bit) を使用することにしました。 12msec. は、サーボ制御周期だったのですが、結果的に CPU が逆運動学によるサーボ角度計算、補間計算が可能な時間でした。 逆に言えば、計算効率を上げない限り、現CPUでは他のことができない、という悲しい状況です。

1次線形補間より2次、2次より3次ということで、3次補間を行うことにしました。 実際、角度、位置という変数xに対して、速度、加速度を考慮してモーションを補間するわけですから、3次が妥当でしょう。 一応、起き上がりモーションを補間してみると、全サーボのPWM値の動きは上図のようになりました。最後の1/5程度の間は、起き上がった後の安定待ち時間というところです。

(2005年9月9日)


<サーバが不安定なため引越しをします。 〜 http://hw001.gate01.com/n-okada/ 〜 ブックマークの変更をお願いします。>

 諸事情により今回の ROBO-ONE は完全に棄権しました。 とりあえず、狭い机の上で思いっきり走らせて見ました。 一応、動歩行までリアルタイム計算でできるようになりました(ジャイロセンサ無し)。 題して、一人ぼっちで ROBO-ONE 予選。


<画像をクリックすると動画になります>

 祥雅(息子;もうじき2歳)が初めて高熱にうなされているので、看病第1で過ごします。。。 お蔭様で、完全回復しました。

(2005年9月19日)


 肩部分のパーツを作り直してみました。 威喝さが出ちゃいましたけど、まだまだモーションが弱っちいので、見た目だけです。 肩に直交系を持ってきたくてやったわけではないのですが、やってみると安定感がでました。 あと、腕のサーボを2つ取り、軽くしてみました。

 またまた、アルミ板を切って曲げてを、コッピングソーとテーブルミニドリル、万力で作ったのですが、ROBO-ONE をみて、始めよう!という方もいらっしゃると思いますので、ポイントだけ書いておきます(2004年2月28日にも書いてあります)。

 A5052 などの硬いアルミ板を曲げる場合、特に、リブを立てたい場合、万力で挟んでいる位置がずれたりして、曲がってしまった!とかいうことがあります。 その場合は、曲げたい線に対して、5mm間隔くらいで2mmφ以下のドリルを使って、板の半分から貫通するくらいまで穴を開けます。 局所的に板をやわらかくするということです。 穴をつないだ線に沿って、曲がるので、多少万力で抑える位置がずれても、ちゃんと曲がります。 貫通させてしまうと、バリがでて、それを処理するのが面倒になるので、次の方法をお勧めします。

 (ポイント)ミニドリルで穴を開けていくときに、ふっと軽くなる瞬間があります。 このとき、ドリルの先端が板を貫通する瞬間ですので、そこで止めます。  すると、貫通しないので、バリもでないので、後処理不要で楽ですよ。

(実は、256(ジゴロー)の足は、貫通させて作ったパーツが1つできてしまったので、見た目をそろえるために、全て穴を開けて曲げを行いました。 結構、バリ取りで時間を使ってしまいました。)

(2005年9月24日)


 昨日に続いて、アルミ加工。 今日はヒジ部分を作っていました。
 昨日言葉だけで書いていた、曲げのポイントの写真をつけておきますね。

左写真は、アルミ板に図面を印刷したシールを貼り付けたもの(右)、シールに従って穴あけしたもの(中央)、その裏面(左)です。 中央の写真は、穴あけの表裏になりますが、H型に曲げのための半開け穴があることがわかると思います。 裏からみたときに、ところどころ穴が開きかけているところがそれです。 そして、一番右側の写真が曲げを行った後になります。 半開け状態の穴は曲げることで反対側まで貫通することもありますが、最初っからあけておくよりも、バリの処理をしなくてすむ分だけ楽です。

 ところで、今日、腕の長さを決めようと思って(順序が逆ですよね、普通決めてから加工するのに・・・)、いろいろと見て回ったのですが、これ!といって腕の長さは、こうあるべき、というのがないですね。 標準的には、直立状態で、ヒザくらいまでの長さになっているものが多いかな?と思いました。 OmniStriker (前田さん)のは、伸び縮みするし、ARUMO-SiR (SISOさん)のは、手先から、ヒジの部分を延ばして肩あたりまであるし(盾代わりでしょうか)、ROBO-ONE 規定には、全長の何%以内とか書いてないし(と、いらんことを書いてしまうと規則に入っちゃうかな?)。 格闘するのなら、歩いたり、走ったり、腕を振り回したりすることで、自爆しなければ、いくらでも伸ばしてもよいような気がします。

 ということで、腕(手)の長さが決めれないので、いつもなら一体型でつくるのですが、上の写真のようにヒジ部分だけ作って、手先までの部分は交換できるようにパーツを細かくして作ることにしました。

(2005年9月25日)


 KO の新しいHVタイプのサーボについて。 結論は、欲しい! です。
 HV タイプのサーボは、全部交換してください、とあるのですが、これは、制御ボードの仕様次第なのかな?と思ってるんですが、どうなんでしょう?
 どこにもそういった詳細がないので、買った後、制御ボードまで作り変え、なんてことになったら大変。

 サーボ毎に印加電圧を変えられるのであれば、問題がないのか、制御信号そのものが何か特殊なのか、詳細に書いてあるドキュメントないかなぁ。。。

 「走る」をやって思うのが、ヒザのトルクとスピードが欲しい、というところでしょうか。 そこだけでも、HV仕様にしたいな、と思っていたりするのです。
 どなたか、情報をください!

(今日のロボット作成に関してのことを書こうと思ったのですが、デジカメがお出かけ中なので、来週に回します。)

(2005年10月2日)

 KOのHV仕様サーボについて情報を杉浦さんからいただきました。 ありがとうございます!
 キャラクタリスティングチェンジでのタイミングが従来の仕様製品より高速である、ということだそうです。 混在させる場合、注意したいですね。

(2005年10月5日)


 先週、撮れなかった画像です。 サーボの片持ちさせているヨー軸部分です。 ABS/プラスチックの重ね板で軸ブレを抑えてるのと、ネジの頭が回転する足に当たらないように、1枚の板(3mm厚)にネジ頭サイズ(約6mmφ)の穴を開けて、他方の板(ABS1mm)はネジ穴として3mmφの穴を開けるようにしてます。 CNCとかモデラーを持ってないので、こんな工夫で逃げてます。

 KOの Web を見ていて(今頃)気がついたのですが、KRS-2346ICS RedVersion と KRS-2350ICS RedVersion ではトルクが違ったんですね。 2350は10%増しの 22.0kgcm との記載がありました。 ずっと、王様のところでは 20.0kgcm と書いてあったので、同じと思ってました。 数個、バラで購入した 2350 があるので、ヒザとかのものは、こちらに置き換えしておこうかな。 何が変わったんだろう。。。

(2005年10月8日)

 半年前に買った GWS Micro 2BBMG に火を入れてみた。 アナログサーボ特有の PWM 周期にあわせてトルクが変わりますね。 けれど、すっごく気になったのが、異常に熱くなること。 KO のサーボも使い続けると熱くなりますけど、2BBMG は数秒で異常に熱くなりました。 これって、使い方を間違ってる??

(2005年10月10日)


 久しぶりに秋葉原へ。 KO HV仕様サーボを導入する前にLi-PO 11.1V仕様を調査してきました。 3セル仕様になるために、充電器が従来のものが使えないことがわかりました。 バランシングセンサーが2本必要になるわけです。 7.4V対応のものでは、手持ちのものは1本しかない。。。 充電器は?というと、2万円強する。 世の中、お金がかかる仕組みになっていますね。

(2005年10月22日)


 理由あって、mips 用のクロスコンパイル環境を作ってみました。 以下、覚え書き。 久々に unix 環境で戸惑いいっぱいでした。

 今日は、コンパイルまで。 実際に動くかは後日。

(2005年11月1日)

 mips用のコンパイル環境整備完了。 ちゃんとできたみたい。 だけど、まだ、テスト対象となる開発中のボードがない。。。(0次完成目標は年末)
 一部、11月1日の記載に誤りがあったので、訂正しておきました。 gcc の configure で苦労しましたけど、何とかできました。 あと、gcc のフルセットだと何故か make が完全に終わらなかったです。 c++ はうまくコンパイルできませんでした。

(ちょっと余談)

KRS-4024HV の図面が KO Web に公開されてますね。

年内発売が予告されている 40kg・cmのサーボも同じサイズなのでしょうか。
見切りでフレームを作りはじめて年末には購入、組み上げ、開発中のボードを
組み合わせてみたいなぁ。
けれど、寸法が違ったら、と考えると、無駄な時間が取られるだけだしなぁ。
KO さん、事前に次期サーボの外寸とか公開してくれないかなぁ。

と、次期サーボを買う資金も無いのに考えてしまってるのでした。。。

(2005年11月3日)


 BestTechnologyさんのところで GCC Developer Liet がバージョンアップされたので、ダウンロードして使ってみました。 7145.h が以下のところで不具合がありましたので、書き換えをしました。 変換前ファイルと変換後ファイルの diff を取ったのを記しておきます。

1:      2004c2004
2:      < #ifndef SYSCLOCK32M
3:      ---
4:      > #ifdef SYSCLOCK32M 

7145.h の 2004行目を上記2行目から、4行目のように、#ifndef と #ifdef を入れ替える形で修正です。
最初、コンパイルしていつものように通信させていたのですが、何か文字化けし続けていたので、ハードが壊れたのかと思ってしまいました。

今回のバージョンからデュアルディスプレイ対応してくれているのは、とっても助かります(そのキーワードだけでアップデートしてしまいました)。

つづいてハードウェア関連。 11月号のトランジスタ技術 p.128 にあるテクニックを使って、1電源でロボットを動かせないかな?と思って、挑戦してみました。 結果、あきらめて2電源式に戻しました。

挑戦した内容をメモとして残しておきます。 同じことをしてしまいそうなので。

(2005年11月6日)

 BestTech さんのところで上記 GCC Developer Lite の7145.h ファイル変更が行われましたね。 denno_ono さんのところに取り上げて頂けた効果でしょうかね。 直ることは良いことです。 ただ、どうせ直してくれるなら、BestTech さんのトップページも rev.12 → rev.14 にしてほしかった、と思うのは私だけぇ?

(2005年11月8日)


情報求む!) ロボット送受信用の X'tal ですが、何故か 40.770MHz だとちゃんと受信してくれないのです。 何故でしょう。 40.810MHz, 40.850MHz はOKです。 どなたかご存知ありませんでしょうか? CPU の周波数と関係があるのかなぁ。。。基板ノイズ?(ちなみに、クリスタルは、どれもノーマル。 デュアルコンバージョンというのもあるんですよね。 これって何が違うんでしょ)

(2005年11月13日)

久しぶりの連休。 連休前にしてちょこっと前進。 サーボのスピードアップ!
写真で白い色のケースに入ってるのが、オリジナル品。 右がKRS-2350。 動作角度は±90度です。 バッテリーは6.2V程度でしたので、7.4Vにすれば、もう少し早くなるはず。 比較で見て欲しいところです(画像圧縮のやり方がいまいちコツがつかめずで、残像が残ってしまってます→画像なおしました。 きびきび感が伝わるでしょうか。)。


<画像をクリックすると動画になります>

(2005年11月18日)

 両ヒザ部サーボ(2つ)をオリジナル品に置き換え。 トコトコ丸のROBO-ONE大会中のアクシデントが気になっていたので、モモ部分のパーツを補強&交換。 そのとき手元が狂って、ドライバーで手を刺してしまいました。 結局、手が痛くて、組み上げて(しかも下半身だけで)終了。 先日のサーボの画像データを入れ替えしておきました。

  • 左写真は、屈伸状態です(下半身のみ)。
    一番手前のサーボがオリジナル品。 外見は他のサーボと同じ。
  • モモ部分の拡大が右写真。
    90度曲げのところを横から補強。

(2005年11月20日)


 40kg・cm のサーボについて、王さまからメールが来ました。 12月中旬以降に予約ができるようになるとか。 
   ・KRS-4014HV ICS Red Version の仕様
    ●電源電圧:9V〜12V ●トルク:40.8kg・cm ●スピード:0.19sec/60°
    ●最大動作角度:270° ●サイズ/重量:43×32×32.5mm/65g
    ●予価 \16,800(税込)ぐらい
 動作角度が広いのは楽しい動きになりそうなんですけど、スピードが何故か速くなってませんよね。 スピード、欲しいという声がちいさいのかなぁ。

 勤労感謝の日。 久々にゆっくりとディズニーランドへ。

 あとは、忘れず、StarWars EpisodeV のDVDを買う。

(2005年11月23日)

またまた、脱線しそう。
ゲーム機のコントローラを衝動買いしてしまいました。 4k円也。

  • ちっちゃなコントローラに、小さな受信機。
  • 受信機の端子が PS用なので結線しづらい
    → 溝をみつけカッターでグリグリやってみる
  • あらら。 簡単に解体できました。
    → ケーブルは直付けといきましょうかね。
     (良い子は真似しないように)

PSコントローラの仕様については、下記が代表的なサイトのようですね。

実際に、ロボットへの搭載というのは、のんさやさんのサイトのココが良いです。 ここの通信方法のはじめに SCI で行う、というのが紹介されてるので、こちらの方をトライしてみようと思います。

(2005年11月27日)


加速度センサ(ACB302) の「動的」加速度と「静的」加速度について調べてみました(単にADCの値をグラフにしてみただけ)。 縦軸はADC値、横軸は時間と考えてください(単位は適当です)。

3軸分グラフにしてますが、中央のピンクが地面に垂直方向になります。 平滑化フィルタとか特に入れてない実験用基板で評価したので、ノイズがあるのは無視してください。

始めに2回ほど、縦に振って、次は横に。 これで分ることですが、ジャイロセンサを使わなくても、3軸加速度センサで、「動的」加速度というのを取り込んで処理するようにすれば、胴体がブレた場合、たとえば、ジャンプした時に、ヒザを曲げるとかでサーボへの負担を減らせるんじゃないかって思えました(実は、逆にジャンプしてヒザを曲げる、というのを足裏センサではなくて、加速度でできないか?と考えて評価したものが、これです)。

あとは、問題は、今のサーボで、ロボットのジャンプができるか?ですね。 (順序が逆かな?? まぁ、趣味だから良いでしょう。)
HV仕様のサーボを持ってる人で、ピョンピョン跳ねることができるロボットをお持ちの方、トライしてみてレポートしてもらえると、うれしいなぁ。

(2005年11月29日)

ゲームコントローラのデータ受信ができるようになりました。 プログラム、配線を色々と確認していたのですが、単にプルアップ抵抗を入れていなかったために動作しない、というものでした。

(2005年12月1日)


いろいろと試しすぎたせいか、ゲームコントローラの CLK 信号が壊れた。 CPU 側も壊れてしまったみたい。 最悪。。。

気を取り直して、別ピンでトライ。 どうせ、壊れた CPU だし。。。(って、結構高いんですけど、7145F)。
オシロで見て、ちゃんと CLK が出ているのを確認。 よし。 ちゃんと通信できたかな? ボタンを押しても、帰ってくるデータが同じ。 おかしい。 リセット。 あれれ? 全部ビットが1に。 あ、また、壊れた。。。 CLK端子って、結構電流を必要としてるのかな? 直結はやめたほうがよさそう(って、今頃。。。)。 

74HC08を通してみた。 安定している。 が! コントローラの MODE スイッチを押して、アナログモード、もう1回押して・・・ あれ? 入力がHi状態が続く。。。 また、お亡くなりになってしまった。。。 CPU の方が駄目になってる。 何が悪いんだ?

(2005年12月4日)

ゲームコントローラの CLK は壊れていなかったようです。

気を改めて別CPUにつなげてプログラミングしたら、問題なく動作。 今回の CPU は R8C/11-21114FP で行ってみました。 これ、3.3V動作するし、全端子に対してプルアップ抵抗を内臓してるしと、ハード作成は楽でした(オリジナルサーボ用にと思っていたのですが、汎用性高いので、重宝しそうです)。 のんさやさんのところのをまねて作ってます。 CPUのI/O設定などは省略してます。

1:      #define MAX_RECIVE_DATA         (21)
2:      #define DSC2_LOOP               (4)
3:
4:      unsigned char   ReciveData[ MAX_RECIVE_DATA ] = {0};
5:
6:      unsigned char   CONFIG_MODE_ENTER[]     = { 0x01,0x43,0x00,0x01,0x00,0x00,0x00,0x00,0x00 };
7:      unsigned char   QUERY_MODEL_AND_MODE[]  = { 0x01,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
8:      unsigned char   SET_MODE_AND_LOCK[]     = { 0x01,0x44,0x00,0x01,0x03,0x00,0x00,0x00,0x00 };
9:      unsigned char   CONFIG_MODE_EXIT[]      = { 0x01,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
10:     unsigned char   VIBRATION_ENABLE[]      = { 0x01,0x4D,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF };
11:     unsigned char   READ_DATA[]             = { 0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
12:
13:     unsigned char   DSC2_rw(
14:             unsigned char   cmd
15:     ) {
16:             volatile int    i;
17:             unsigned char   data = 0, clk_cnt = 0;
18:
19:             for( i = 0; i < 8; i++ ) {
20:                     unsigned char   d;
21:
22:                     _port_dsc2_cmd = ( cmd & 0x01 );
23:                     _port_dsc2_clk = 0;
24:                     cmd >>= 1;
25:                     for( d = 0; d < DSC2_LOOP; d++ ) nop();
26:                     _port_dsc2_clk = 1;
27:                     d = _port_dsc2_dat;
28:                     data |= ( d << clk_cnt );
29:                     clk_cnt++;
30:                     nop();
31:             }
32:             return data;
33:     }
34:     void            DSC2_send_command(
35:             unsigned char   *src,
36:             int             len,
37:             unsigned char   *des
38:     )
39:     {
40:             int             i;
41:
42:             _port_dsc2_clk = 1;
43:             _port_dsc2_cmd = ( src[0] & 0x01 );
44:             _port_dsc2_sel = 0;
45:             for( i = 0; i < len; i++ ) {
46:                     des[ i ] = DSC2_rw( src[ i ] );
47:             }
48:             _port_dsc2_sel = 1;
49:             _port_dsc2_cmd = 1;
50:             _port_dsc2_clk = 1;
51:     }
52:     void            INIT_DSC2( void )
53:     {
54:             DSC2_send_command( CONFIG_MODE_ENTER, sizeof(CONFIG_MODE_ENTER), ReciveData );
55:             DSC2_send_command( QUERY_MODEL_AND_MODE, sizeof(QUERY_MODEL_AND_MODE), ReciveData );
56:             DSC2_send_command( SET_MODE_AND_LOCK, sizeof(SET_MODE_AND_LOCK), ReciveData );
57:             DSC2_send_command( CONFIG_MODE_EXIT, sizeof(CONFIG_MODE_EXIT), ReciveData );
58:     }

INIT_DSC2() を初期化として呼び出した後、必要に応じて、DSC2_send_command( READ_DATA, sizeof( READ_DATA ), ReciveData ); とすれば、ReciveData にデータが格納されて帰ってきます。 INIT_DSC2() でアナログモードに切り替えを入れておけば、アナログスティックもちゃんと使えます。 もちろん、コントローラの MODE スイッチで切り替えも可能です。 たくさんボタンがあるし、従来のRCプロポ同様、アナログコントロールもできるので、かなり遊べそうです。(メール等いただければ、全ソースを差し上げます(が、あまりきれいなコードではないので期待しないでくださいね))→久しぶりにマトメのページに公開することにします(意外と希望者が多かったので 12/10)。

(2005年12月9日)


ONOの電脳壁新聞」の不定期日記のトップに先日の予告「ゲームコントローラのまとめを行う」というのが載りました。 ありがとうございます。 気合が入りますね。 これは、急がねば。。。(とはいいつつも、クリスマスくらいまでにできればいいかな?と思ってたりしてます)。

Xilinx の CPLD には、Vccio の電位にあわせて I/O の出力電圧を決めることができるんですね。 逆に、入力は Vcc +0.5V なので、安心。 ずっと、I/O共にVcc と同じと思い込んで使ってました。 また、内部 3.3V(=Vcc) 版には、5Vトレラントがあって入力が5Vでも大丈夫な仕様になってるし。 つまり、5V系と3.3V系のデータ転送を CPLD を通せば、簡単にできちゃう、ということになります。 以下、XC9572 の電気特性仕様の関係しそうなところだけをメモとして残しておきます(参考まで)。

Symbol Parameter Value
Vin DC input voltage relative to GND -0.5V to Vcc+0.5V
Vccio Supply voltage for output driver for 5.0V operation 4.75V to 5.25V
Supply voltage for output driver for 3.3V operation 3.0V to 3.6V
Vih High-level input voltage 0V to Vcc+0.5V
Vo Output voltage 0V to Vccio

突然このメモを残したのは、ゲームコントローラが使えるようになったのですが、肝心のメインCPU 7145F が壊れてしまったポートがあるので、ちょっと使うのが怖くなってしまい、コントローラ専用 CPU を用意しようと思ったことがきっかけです。 一方で、予備のメイン CPU は 7047F と 5.0V 仕様なので、コントローラ系の3.3V 仕様との通信がうまく行きそうにありません。 そこで、目に留まったのが CPLDの空きポートが5つあるということです。 RS232Cレベル変換ICを1つ用意すればよいのですが、基板サイズが大きくなるので、使えるものを使おう、ということで考えていました。 また、せっかく、サブCPUを使うのですから、多少はそちらに仕事を回してもいいかな?と考えたのですが、またまた横道に逸れそうなので、止めておきました。

23:00追記) 先日のDSC2の制御ですが、CPUを3664Fの場合はどうしたら良いのですか?という問い合わせが多いので、まとめページ前に一度、挙げておきます。 が、動作チェックをしてませんので、間違えていたらごめんなさい(指摘いれていただけると助かります)。 ハード構成は、のんさやさんの紹介頂いているものとします。

1:	#define _port_dsc2_cmd  IO.PDR5.BIT.B1
2:	#define _port_dsc2_clk  IO.PDR5.BIT.B3
3:	#define _port_dsc2_dat  IO.PDR5.BIT.B0
4:	#define _port_dsc2_sel  IO.PDR5.BIT.B2
5:
6:	void    INIT_PORT( void )
7:	{
8:	    IO.PMR5.BIT.BIT.0 = 0;  // P50 汎用ポートとして定義
9:	    IO.PMR5.BIT.BIT.1 = 0;  // P51 汎用ポートとして定義
10:	    IO.PMR5.BIT.BIT.2 = 0;  // P52 汎用ポートとして定義
11:	    IO.PMR5.BIT.BIT.3 = 0;  // P53 汎用ポートとして定義
12:
13:	    IO.PCR5.BIT.BIT.0 = 0;  // P50 (DAT) を入力ポートとして使用
14:	    IO.PCR5.BIT.BIT.1 = 1;  // P51 (CMD) を出力ポートとして使用
15:	    IO.PCR5.BIT.BIT.2 = 1;  // P52 (SEL) を出力ポートとして使用
16:	    IO.PCR5.BIT.BIT.3 = 1;  // P53 (CLK) を出力ポートとして使用
17:	}

これを付け加えて頂いて、プログラム最初の初期化の時に、INIT_PORT() 部分を呼び出してもらえればよいと思います。

(2005年12月11日)


 次の ROBO-ONE 日程(3/18-19) と、規定が公開されてますね。 くわしくは、ROBO-ONE 公式ページで。 ポイントは、

(2005年12月12日)


 何気に acrobar reader を開いて pdf の document を色々と読んでいると、74LCXシリーズに目が留まりました。 先日 12/11 に書いた CPLD と同じく 5V トレラントがある、との記載があるではないですか。 これは、知らなかった(気づかなかった)とはいえ、もったいないこと。 手もとに欲しい 74LCX125 が無いので近くのサトー電気に買いに行くとして、今の制御ボード(main CPU : SH2/7047F)から直接受信機を接続することにします。

(2005年12月24日)



 ・ 余っていた 3.3Vレギュレータも載せてみました。

 EAGLE がバージョンアップされていたので、v4.16 にしました(これと言って不満だったわけではないのですが)。 で、気がついたら、DSC2 の変換ボードを作ってしまってました。 これから、焼付けします。 DSC2 の受信ボードに直接くっつける形にしました。 ついでに余っていた 3.3V レギュレータ(500mA対応だとデカイですね)もつけて・・・。

 何やら嫌な予感。。。 設計だけしてそのままにしていた図面(俺サーボ用とセンサボード)まで一緒に焼くことにしました。 ついでに量産体制に。。。

(2005年12月25日)

 皆さんに習って? Alibre Design Xpress (Plus) をインストールしたのは良いのですが、これってどのように使うんだろう?で止まってしまいました。 3D イメージを作って、グルグル動かしてみたい! *.DXF ファイルでは展開図しか出てこないし。。。

 ということで、Alibre Design Xpress はおいておいて、昨日の続きで DSC2 などの基板を作ってました。 これで何回目の基板作りなのか数えてませんが、手馴れてきました。 適度な感覚というのがあると楽に作れますね。 以下、その感覚を言葉で。。。 ちびライトで露光(距離 5cm)で10分、現像はちょっと長め(ここの感覚が一番養っておきたい)、エッチングは一番小さい clearance のところが切れればOK。 ただし、エッチング斑があるので、四隅で判断すると中央が切れすぎる場合もある。 エッチングは、とにかく温度が重要。 液がヘタるというより、処理してる間に温度が下がっていてレートが落ちる。 2,3枚連続でエッチングをする場合は、1枚ごとに、温度を調整することが望ましい。 エッチング初期は60℃の温水にエッチング液の入ったケースを入れても大丈夫(すぐ冷めるし、エッチング液に熱が移動すると結果として温度が下がる)。

(2005年12月26日)

 4日間、斑尾高原スキー場へスキーに行ってきました。 帰る日だけ快晴。。。

(2005年12月27−30日)

 先日作っていた基板の1つを仕上げてみました。 5V I/O のマイコンから 3.3V の DSC2 の受信をするというものです。 ソフトウェアは前日公開分。 ハードは、74LCX125 と 10kΩのプルアップ抵抗。 DAT 信号はプルアップのみで直接接続しています。

受信機の基板と直結することで小さくまとめました。 図面などは、12/25の記載を参考ください。

 今年1年も結局、どこの大会にも出場できませんでしたが、ROBO-ONE 会場までは足を運べたので、来年こそは予選(運よければ本戦)も出てみたいなぁ。 それでは、良いお年を。。。

(2005年12月31日)


謹賀新年

  今年も、よろしくお願いします。

CPUを壊してまで何とか使えるようになったDSC2のまとめをしてみました。 ココです。 ほとんど、このページからの引用ですが、補足説明など入れておきました。

(2006年1月2日)


 ROBO-ONE サイトに何の記載もない。。。
 昨日が ROBO-ONE エントリー初日なのに、いつもの書類などの開示がないので、メールで問い合わせ。

 今日は帰宅が早かったので、ROBO-ONE サイトを覗くと。。。ROBO-ONEのエントリー方法が変わりました、の告知。
 書類審査がなくなり、全て Web で行う方式になりました。 締め切り直前のエントリーもこれで大会関係者の方も楽になるでしょうね。
 とても簡単でしたので、とりあえず、エントリーだけしておきました。

(2006年1月16日)

 ちょこっとココを更新。 DAT信号にもLCX125を介した場合の例です。

(2006年1月20日)

 新年会、とても楽しかったです。 主催頂いた いしかわさん、参加された皆さん、ありがとうございました。
 最近、更新がないこのサイトのことを皆さん、よくご存知で、驚きました。 私の名前は結構広まってるのですね(笑)。
 今回は、紙に印刷したものだけ持参でしたが、次回のイベントには、ちゃんと「動く」ロボットを持参したいと思います。 いしかわさん、denno_onoさん、JinSATOさん、一緒に「動くロボット作り」をがんばりましょう。

 あるば〜とさん、操縦させていただきまして、ありがとうございました。 とても参考になりました。 実際に、自分のロボット以外を動かすと言うのは良い体験になりますね。 微妙な動きまで、頭に入れさせていただきました。 親子で遊べる操作系、参考になりました。 ねじあさいさん、お話しできませんでしたが、たくさん、ネジは頂きました(なんか、どろぼーみたい)。 欲しかったネジが手に入ってうれしかったです。 ありがとうございました。 denno_onoさん、意外と家が近いのには驚きましたね。 今度は、近場で情報交換させてください。 いしかわさん、色々とお気遣い、ありがとうございました。 お蔭様で楽しく参加できました。 まさゆきさん、ペーパースーツのpdf頂きました。 今度は、顔の方も。。。 私の野望話しに参加頂いた方々、特に、JinSATOさん、中川さん、斎藤さん、今後ともよろしくお願い致します。 皆さん非常に興味を持たれたみたいで、基本コンセプトは良く、行けるな!という印象を強く持つことができました。 ロボットビリヤード(でしたっけ?)で優勝したらKOの40kgcmサーボ6個もらえたとは・・・。。。(私も欲しい。。。) 最後ですが、初日と言うことで、お名前がわからずのまま話しをさせていただきましたが、同世代の同じ匂いのする人たちだなぁ、と感じました。

 皆さんからパワーを頂きましたので、今日も気合いを入れて・・・というところなのですが、明後日、TOEICの試験があるので、今日は英語の勉強にします。
 (気分転換に半田付けするくらいでしょうか。。。気分転換に英語の勉強かもしれませんが。。。)

(2006年1月22日)


 バッテリー監視のための回路変更とADC値の調査をしなおしました。 バッテリー電圧を 10kΩ, 330Ωの抵抗分割で ADC (Vref=3.3V) に入力。 計算値とはズレているが、リニアリティもあり、ADC値を 1/10 すれば電圧になるので、調整はしないで様子を見ることにしました。

(2006年1月28日)

 思い込みは怖いもの。 以前は動いていたプログラムを移植して使っていたのですが、何故か動作が変。
 我流で勉強しただけなので、あちらこちらで自身がない。。。 以下をその例として挙げておき、今回の対策方法をメモ残しておきます。

1:	void   sub( void )
2:	{
3:		static int c = 0;
4:
5:		switch( c ) {
6:		case 0:		// 何か処理させる
7:			c++;
8:			break;
9:		case 1:		// 何か処理させる
10:			c++;
11:			break;
12:		default:	// 何か処理させる
13:			c = 0;
14:			break;
15:		}
16:	}

ポイントは変数 c の値です。 sub() を呼び出す度にインクリメントしていき、この例では c=2 の次は c=0 になり、繰り返すだけ。

しかし、3行目で変数定義と初期値設定をしているのですが、初期値 0 が正しく入らないということです。 必ず default のところからスタートしてる挙動を示していたので、調査していました。 対策としては、以下の通りです。
  ・ 3行目を関数の外に出して、呼び出す前に変数 c 含め初期化の必要な変数に対して値を入れなおす。
一見、これで解決と思えるのですが、サーボの角度初期値などをテーブルとして持たせる、というのができないと言っていないか?と、とっても不安に陥ってます。
試したところでわかってきたのは、0 で初期化だけがうまく動いていないような挙動を示してます。 gcc の仕様?

 あと、(今更)気がついたのですが、組み込みで、かつ、RAMに対してバックアップ電池などがついているということは、こういった変数の値が前回の終了値が残っている可能性があるため、最低限のマナーとして上記のように初期化は自分で書いた方がよいということです。 サーボの初期値とか、三角関数のテーブルとか書き換えないテーブルについては、const をつけて定義を今まで行っていたのですが、書き換わる変数に対しては、ケアが足りなかったと、反省。

 と、わかってきたところで、やっぱり納得がいかないです。 プログラムを作り直して、CPUボードへ読み込ませた直後でも、上のソースの通り書いてある場合、c が 0 になりません。。。 誰か教えていただけると助かります。

(2006年1月29日)


防忘録) KO の RedVersion は定格以下の電圧がサーボに与えられた状態の場合、ポジションキャプチャが正しく動作しない場合がある。 特に複数サーボをつなげてポジションキャプチャによるモーション作成をしている場合は、要注意です。

256 ( JiGoRo ) のプロフィール(写真集)を作ってみました。 何かロボット作りに集中できない日々。 またまた ROBO-ONE が遠くに思えてきました。

 256 ( JiGoRo ) 5th Feb., 2006 プロフィール写真集
  • エコモード健在(電源を入れなくても直立静止できる) ・・・ 両手を前後させて安定するところを探す。 ここを「待て」の姿勢とする。
  • 配線は特に細いケーブルを使わず。 ・・・ 高伸縮ケーブルは細いため HV仕様のサーボでない 256 は発熱を気にして太いものを使用。
  • 両脇部はモード変更のディップスイッチ、CPU用バッテリー(蓋装着前)、CPUメインスイッチ(バッテリー上)
  • 見えない部分は・・・
    • CPU ボードは BTC080 (7145F)
    • 自作マザーボード( Gyro*2, 3軸加速度センサ, 上腕部サーボ入出力信号分配 CPLD, 電源系, EEPROM, DSC2 通信用回路 )
    • 頭部分は CDS と青色発光ダイオードのみ。
    • 空きスペースに DSC2 の受信機 (サーボを思いっきり動かしても、ノイズなく読み込めてるみたいです。)
    • バッテリー サーボ用 7.4V 2,200mA Li-Po, CPU用 7.4V 360mA Li-Po
  • 最後に、身長、体重など・・・(全て表示数値で丸めあり)
    • 身長 34cm
    • 体重 2140g ( バッテリー含む )
    • 肩幅 26cm
    • 足長 21cm
    • 股間 5cm
今回はこれでメカ部分は終了とする。 あと、1ヶ月、できるところまでがんばる。
(ちょこちょこ治してきたので、きれいに出来たかなぁ、と思ってます。 が、最近の皆さんのロボットは外見がすっごく綺麗にできてますねぇ。
 簡単に出来そうなところで、MARUさんらが紹介されているバキュームフォームというのがありますね。 余裕ができたら挑戦してみたいと思います)

(余談)
2月中旬から職場も移る(1年から1.5年ほどの長期外出(出張))ので、それも気になるところ。 なんといっても、引継ぎが大変。
今週の成果といえば、来年度会社案内パンフレットに(写真とプロジェクトの裏話などが数ページに渡って)載ったことと、TOEIC の点数が 170点も上がったことくらいかなぁ。。。(半年も英語研修を土曜日受けてきたので、それなりの成果が出てほっとしてます)。

(2006年2月5日)


 先週はいろいろとあった1週間でした。 とある大学に例のもの(新年会披露の実物)をもって訪問したり、新しい職場の人たちとディスカッションしたり、半年間受けてきた英語研修が週末で終わったり。。。 始まるものもあれば、終わるものもありました。
 今日は、携帯電話を新調してみました。 ずっと au なので今回も au の W41CA にしてみました。 画面が大きいということで選びました。 最近のは 2.6Mも通信速度が出るんですね。 しかも、家の中は今まで電波が届きづらかったのですが、ばっちり入るし。 パソコンと繋げたりしていたら、あっという間に夜になってしまいました。 web も見れちゃうんですね。 これからは通勤帰りに電車で web みて帰る、ということになりそうです。

 ということで、そろそろ気合いを入れて ROBO-ONE 向けモーション作成に入ろうかと思います(と、先週末も思っていたような。。。)。

(2006年2月12日)


 今回も ROBO-ONE は駄目かもしれない。。。 と、思っていても、時間が経つだけ。 ということで、楽しくロボットで遊んでみました。

 今日は、安定静歩行を心がけてチューニング。 当たり前ですが、直立させた状態の安定したところを探してからのことになります。
 直立安定のところ、というのは、ブルブルが生じないところ、という見方もできますが、非常に感覚的なところ。 私はいつも電流計をみて、消費電流が小さくなるところを探してます。
 直立安定位置が決まったところで、静歩行。 ジャイロONだと、計算による歩行の時に、重心が右、左に振れるのを打ち消そうとして動作してしまうため、安定して歩けない。 不整地を歩かせようとすると、ジャイロを入れないといけないし、どうしたものか。。。(以前、動歩行を行ったときも、ジャイロOFFの方が安定している) このあたり、ヒントが欲しいなぁ。。。

 これから、方向転換、サイドステップを計算で解かせようと、計算式を考えてみます(が、こんなことをしていて間に合うんだろうか?)。 このあたりも、ヒントが欲しいなぁ。。。

(2006年2月26日)


 あんまり更新していないのも味気ないので、動画特集を。 静歩行と動歩行(ジャイロあり・なし)です。 基本に忠実?にビシビシ計算させて歩かせてます。
 全て、非HV仕様サーボ。 投資が追いつけない状況でがんばる。 1つでもステップが次に進まなければ、投資を控えようと決めた。
 ジャイロのON/OFFではモーション安定性が変わりません。 ちゃんとやれば、外的な作用がない場合、ジャイロは要らない「はず」。

 しかし・・・いつも同じなのですが、横歩行ができません。。。(涙)
 どなたか同じような軸を使っている方で、モーションデータ(角度&時間データ)を送っていただけませんでしょうか?


<静歩行・画像をクリックすると動画になります(12M)>

<動歩行・画像をクリックすると動画になります(2.4M)>

<動歩行・画像をクリックすると動画になります(2.4M>

(2006年3月13日)

 よっしゃー! 横歩きができました!! ジャイロをONにしていたのですが、どうもゲインが強すぎたみたいでうまく横歩きできなかったみたいです。 (23:45)
 うれしくなって、早速画像撮影(とりあえず一方方向のみ) (0:40)


<横歩行・画像をクリックすると動画になります(3.0M>

(2006年3月14日)

 きたきたきたー! 起き上がりできたーっ!!あとは、直立体勢から、寝そべるということと、連続して演技ができれば・・・。 まてよ。 バッテリー動作、かつ、FLASH−ROM書き込みでの動作って、まだやってないぞ。 油断は禁物。 もちろん、予選用の自由演技モーションも未だ。。。(笑うしかないですね)


<起上り・画像をクリックすると動画になります(3.0M>

 ひさしぶりに、ゆっくりとWebを見て回ってました。
 吉村さんのところで、横歩きなどの「歩行」の基本が書かれているではないですか! これは、遣り残してしまった横歩きの計算歩行化の答え。 う〜ん、悩ましい。。。 まずは、ちゃんと出場することを第1にするべきか。。。JinSatoさんもちゃんと横歩きアルゴリズムを入れ込んだ、とあるし。。。 悩ましい。。。 まずは、JinSatoさんの「バッテリー電圧が落ちても立ち上がれるようにする」のコメントを自分でもやってみた。 確かに、動きの危なそうなところがよくわかる。 チューニング完了。 コツがわかってきた感じがする。

(2006年3月17日;ROBO−ONE大会前日)


 256(JiGoRo)-Series日記(2)へ

 ロボット製作のページへ

 トップページへ