2003年7月の記録2003.07.31(木)夕方から京都。ベーシックマウス試験繰り返すが、なかなかうまく走れない。したずれで大きく数値が変動するので、アナログセンサは難しい。閾値を変えたりいろいろ試すが、うまくいかない。思い立って電池を元の12本ぐみに戻す。この日は京都に泊まった。昨日から引き続き京都。プログラムの解読が大体終わったので、実機での実験にうつる。ベーシックマウスは12本ぐみの電池を使っているので、12本でも充電できるように充電器を改造するが、ICが焼けてしまいうまくいかない。あきらめて今まで使っていた電池の口とのアダプタを作った。電池そのものも今までの6本ぐみ電池に改造した。不恰好にはなったが、なんとか動くようにはなった。今度量産するときは電池の口問題を解決しなければならない。※口がもうないので買いに行くこと。空いた教室に迷路出す。2003.07.29(火)夕方から京都。スピード調整は加速テーブルにしたがってやるわけだが、これを「秒速何パルス」という単位(ロボットのスピードそのもの)でつくっている。私が今までやっていた方法では「次のパルス発射まで何回数えるか」の表を作っていた。作っておくならこれでも変わりないが、このプログラムではスタート地点で新たに計算をすることができる。加速度を考えるときにスピードそのものを扱ったほうが簡単なのである。この辺物理の教科書をみながら読んだ。意味がわからんルーチンがあったのだが、よく見ると「二分法で平方根を求めるルーチン」だった。等加速度運動を考える。初速度0、t秒後のモータの速さV、加速度α、移動ステップ数XとするとV=αt、X=(1/2)αt^2。変形するとV=√(2Xα)となる。この計算をするとき√の演算が必要になる。これは時間がかかるのでスタート前にやる。試合のとき「あーちょっと速すぎましたね、遅くしてみましょうか」と言ってるのはこの計算を新たにさせていたのだ。ロボコンマガジン14号あたりにこの辺の解説は載っていたのだが、一回生のときに、いきなりサンプルです、と1000行もあるプログラムを見せられてもわかるわけがなかった。2003.07.28(月)書き忘れ。日曜はアボガドを一個食べて気持ち悪くなった。腹が減るとなぜかアボガドのことが頭に浮かぶ。一人が肺炎で入院して、結核の疑いもあるという(検査の結果結核ではなかったらしい)。ベーシックマウスプログラム解読進める。実にすばらしいテクニックがたくさん使われている。タイマ割り込みをモータの回転だけではなく、その他の処理(スピード調整など)でも使っているのである。センサも4つ同時に点灯させているわけではなく、一つつけては計測、それを消して次のを点灯、ということを行っている。これは消費電力も少なくてすむし、他のセンサからの光の影響も受けなくてすむ。タイマの数が足りないので、10個の処理を100マイクロ秒ごとに次々にやらせている(タイムシェアリング処理)。たとえ話で言うと、ガトリング砲みたいなものである。2003.07.27(日)朝寒い日が続いたので、風邪を引いたらしく、くしゃみが止まらなくなった。ダイソーに水を入れるダンベルを買いに行ったが、売っていなかった。今日は何もしていない。2003.07.26(土)神戸で花火大会をしていたので行った。今年はあんまりよくなかった。正面に眩しい照明が3個あってよく見えなかった。前のほうに行ったのだが、花火が始まると私が座っている前に(2ちゃんねる用語で言うと)DQNなやつらがぞろぞろとやってきて、しかも座らない。一人立ち上がると連鎖的に他の人も立ち上がるので、見えない。実にうっとうしかった。うしろで金髪男が花火を見ながら連れの女に向かって「でっかー。当たり前や」などというくだらんことをペラペラ喋っていて、痛々しかった。花火が上がるたびにいちいちアナウンスが入るのだが、そのたびに「音うるさい。音いらんって」といちいち言っていたが、俺は「お前がうるさいよ馬鹿」と思っていた。ところで、今年は「メッセージ花火」が、「メッセージ」だけが先にあって、花火とメッセージのコラボレーションはなかった。メッセージ花火とは、「天国の○○。(酔虎伝の親戚の居酒屋)に行くと、注文を全部間違えられた。他のグループも「こんなの頼んでないですけど」ということをしょっちゅう言っていたから、注文どりがなっていないようだ。他の居心伝ではこんなことはなかったのだが。あいかわらず安く、全部で1000円行かなかった。焼酎(300ミリリットルで300円)の水割りセット+バターコーン(180円)で、トウモロコシを一粒ずつつまみながら過ごすとすごく安くすむ。運がいいと、店先で「新メニューが一品ただになる券」がもらえることもある。安い割に食べ物はうまいので、実に良い。これだけ煽っておいてなんだが、残念ながら京都にはない。2003.07.25(金)朝のバスで(金曜日は洛北から駅前までバスが出ている)駅前に行く。前期中にしたTRONの研究についてまとめた。後のほうになるほど「...参照」といって何かを写したものばかりになるのはご愛嬌である。森永マウスのプログラム解読だいぶ進む。一部まだわからないところがあるので、そのうち注釈をつけてまとめたい。足立法のあたりの考え方は当たり前だが俺と同じだった。効率的な書きかたになっている。具体的に言うと、俺のだとビットフィールドを多用しているのだが、そうではなく、データ構造を工夫してシフト演算だけでいろんな操作をしている。「エキスパートCプログラミング」つづきを読む。この手の外国の本の文章はこんなに気持ち悪いのだろうか。「アーグググググググ!*1アーグブイ!アーグシー!」「ビンゴ!」「ブドウアメを作る人間はいない。カリフォルニア人がイカレててもね。」以前「ハッカーズ大事典」という本を読んだときに感じた気持ち悪さを思い出した。こいつは大した発明じゃないか:きっと君は世界一の金持ちのうちの一人になれるよ。この辺の感覚は、外人アーティストが吹き替えとか翻訳では「オレたちは、お上品ぶったやつらにガツンといわせたいってだけなんだぜ」などという、どこの地方の言葉だよという喋り方をしているのにも似ている。やつさ!このくそいまいましい引数......なにしろこいつはいまだに頭痛の種なんだ、ね、Arindam!......を持って、みんな地獄に行っちまえ!!2003.07.24(木)「3Dガンダム」という変なビデオを見た。相撲ロボット古賀のやつデバッグする。前進だけするプログラムを書く。右回り・左回りは正しい。後退にすると前進をはじめる。1・2を取り違えた上にドライバが左右が反対につながれているのだろう。センサの反応にあわせてモニタLEDがついたり消えたりするプログラムを書いて、5つともチェック。前左土俵センサが反応しない。ここで基板をはずしてチェックすると、やはりモータドライバに伸びている四本の線が左右反対になっていた。前後を取り違えて反対につけてしまったのだろう。正確に反対になっていた。センサのほうは、モニタLEDは470オームの抵抗をつけることとしているのに、47オームの抵抗がつけられていた。共に直すと正常動作するようになった。高橋が冷蔵庫の氷をハンマーで砕いていると、何かが壊れて冷媒のガスが吹き出し、冷蔵庫としてもう使えなくなってしまった。この際だからということで冷蔵庫の中に何ヶ月も置いてあった酒と干魚(桑原の土産)を公園で飲んだ。ツナギを着た金髪の男がライターで何か(魚)をあぶっているのは、端から見たらかなり怪しかったと思う。この日は京都に泊まった。覚悟を決めて森永マウス(ベーシックマウス)のプログラムの解読をはじめる。いままで全然進んでいなかったのは、コンパイラが違ってどうも勝手がわからなかったことと、スタートアップルーチンなどが何を書いているのか全然わからなかったのが原因であった。Liteでコンパイルできるように書き直す。LCDが表示できないという謎のバグに襲われるが、割り込みルーチンの名前が違っていた(ベステク版でははじめからそれらしい名前の関数を用意してくれているが、秋月版はそうではない)ことに起因していた。この辺のことがわかるのもゼミでリンカスクリプトについて調べていたからで、やっぱりあれは意味があったと思う。以下、方言の違いはこんな感じ。I/Oまわりは変わらなかった。main()intlong(一部)int_ok()(森永さん)EItimerW()(森永さん)int_timerw()(割り込みルーチンの名はh8rom.xで調べる)2003.07.23(水)C。コンソールでシューティングをつくっている奴までいて面白かった。ISという制度があって単位をかせげるよ、駅前ではあまり知られていないようだけど、とアドバイスしておいた。いう人たちをただ遊ばせておくのは人類の損失である。あと、他の生徒に2ちゃんねるのプログラム板ではやっているという「7行プログラム」を教えてもらった。(これは2ちゃんねるではないが)JavaScriptで7行のこの「7行テトリス」とかである。ソースコードを見ると本当に7行なので感動する。このひたむきな情熱を俺はどこに置いてきたのか。自分はプログラミングをはじめたのか?面白いからだろう。はじめのその気持ちを忘れていた。授業後梅田で散髪&本探し・注文。2003.07.22(火)ゼミ。「デザインウエイブ」届いたのでやってみる。シミュレータの使い方がようやくわかった。午後はゼミの発表会だった。考えてみたらこれで前期は終わりだ。形のある成果が残せなくて残念である。マイクロマウスをたくさん作ることになった。今年はもうやめようかとまで思っていたので、製作希望者が多いのは意外だった。作る人がいる以上は協力しよう。2003.07.21(月)海の日なので休み。寝てすごすうちに夜に。これが一番贅沢なのかもしれん。日曜は皆で武川の実家の店(料理屋)に行ったらしいが、しんどくて眠っていたので行けなかった。2003.07.20(日)「はじめて読む486」読み始める。マルチタスクの話になるので、「8086」と全然違う。途中眠ってしまい夕方まで何もできなかった。2003.07.19(土)新しい運動靴を買った。6000円で買えたのでラッキーだった。「はじめて読む486」やっと買えた。東急ハンズで手首を鍛える「ボールの中にコマが入ったもの」を探すが、5000円ぐらいする奴と1000円ぐらいのがあって、どっちを買ったらいいのかわからなかったので買わず。酸素がたくさん出る装置というのがあったので、しばらくそこから出るガスを吸ってみたが別に何も起こらなかった。それにしても「遠赤外線」「トルマリン」「マイナスイオン」のうさんくさい商品多すぎ。昔はやった「タキオン」とやっていることが全然変わらない。マカロニ」の謎が解けた(昔神戸にそういう看板がある場所があった。「スパゲチ」が気持ち悪くて小さい頃から気になっていた)。2003.07.18(金)2重いコマが入った玉のようなおもちゃがある。手首を振ると中身が高速回転して握力がつくらしい。握力云々はともかく、面白いので最近よくやっている。「UNIXプログラミング環境」読み終わるが、ほとんどわからなかった。エスケープシーケンスは下のほうに書いた方法で使えるパソコンとそうでないのがあるようだ。授業後四条のNTTドコモの施設でiアプリの講習会に出る。昨日から寝ていないので眠い。相撲ロボット二台目、どうも前進後退が反対らしいのでプログラムパート2を入れてテストし結果を連絡するように電話で古賀に伝えたのだが、全然連絡がないし、まわりの奴に電話をしても誰も出ない。FRAME_SIZE;}}ステッピングモータの回転も、「ニンジャハンティング」のニンジャの足の動きの表現も、これとほとんど同じである。2003.07.17(木)古賀の相撲ロボット製作につきあって、金曜の朝まで。京都に泊まるとどうしても朝まで起きてしまう。はじめは動かなかったのだが、デバッグを繰り返していくと動くようになった。回路図の意味を考えて作っていない(俺が作ったのをそのまま真似したらしい)ので、デバッグには苦労した。ハイリハイリフレ背後霊更新できず。2003.07.16(水)C。勝手にどんどん進む人たちとじっと黙って画面を見つめている人たちの差がますます開いている。文句を言うならまだしも、何も言わないのは困る。ゲームを作って盛り上がっている連中がいるので煽っておいた。その辺の連中はクラブSPに入っているがあまり活動がないといってもやもやしていた。昔はSPが最も強いクラブだったものだが。マニアックな質問多く、その場で答えられず。「画面のクリアをするエスケープシーケンス"\033[2J"がWinXPでうまく働かない」「ソフトタイマを使わずタイマを使いたい」の二つ。以下、調べたことの覚え書き。「はじめて読む486」売っていなかったので「Cプログラミング診察室」復刻版買って帰る。XPが2001年に発売され、じわりじわりと以前のWindowsと取って代わろうとしています。私の職場でもXPへの移行を控えています。HomeEditionがプリインストールされていました。TRTEXTの移行を行おうとファイルをディレクトリ(フォルダ)ごとコピーして、実行させたところ・・・プログラムは動いてはいるのですが、画面がぐちゃぐちゃです。画面制御用のエスケープシーケンスが全然動いていないようです。調べたところMS-WindowsNTシリーズでは皆同じ現象になるようで、有名な話なんだそうです。有名なので対処方法もわかりました。テキストエディタ(メモ帖でもOk)で、C:ドライブのwindowsフォルダの中のsystem32フォルダの中のconfig.ntというファイルを開きます。ここの中にはXPやNTでのコマンドプロンプトでのプログラム実行時の環境設定が書き込まれているようです。最初の方は説明がコメント(REM)として英語で記述されています。ここの最後にdevice=の指定がありますので、ここの最後に2行追加します。dosonlyこれです。これを上書き保存します。システムの環境設定ファイルを書き換えますから、この追加以外のところを変更・削除・余計な追加はしないようにして下さい。私のところではこの方法で動きましたが、この方法により私が動作を保証するものではありません。この変更によってどこかに不具合が発生しても、私は「大変でしたね。ごめんなさい」としか言えません。これを参考にして、あくまで、自己責任において行ってください。私のところではこれで動いています。バッチファイルの記述も今までのもののままでOkでした。何か不具合があれば、お知らせします。不具合や対処方法など何か情報をお持ちの方は私のほうへメールしていただければ、ここのページへ情報として載せることが出来ます。ご協力お願いいたします。XPは良く分からないのですが、NT系(2000含む)と同じような現象なので、NTでの解決方法をご紹介します。関連した問題ならば、参考になるかもしれません。NT系は、デフォルトではコンソールウインドウでエスケープシーケンスは使えません。これは、コンソール起動時にANSI.SYSが入らないためです。WINNTフォルダ(またはWindowsフォルダ、OSがインストールされている所)の中のSYSTEM32フォルダ内に"CONFIG.NT"というファイルが存在します。その中に以下の1行を追加してください。device=%SystemRoot%\system32\ANSI.SYShttp://f1.aaacafe.ne.jp/~pointc/log137.html※タイマの使い方(ソフトタイマではなく)これは簡単。WindowsのAPIを使う。&ltwindows.h>main(){while(1){printf("test");//printf("\033[2J");Sleep(500);}}画面のクリアもAPIを使う方法でできるが、長いので引用はしない。2003.07.15(火)ゼミ。武内にレーションもらう。「クランベリーバー」やたら甘いがまあまあ。ピーナッツバー、粘土の味。一回生によるとクレヨンの味。パイナップルのレトルト、沢庵みたいな変な色だが、味は缶詰と同じ。高橋と外国のまずいものについて語る。帰り、祇園祭のため大混雑。「はじめて読む8086」読み終わる。2003.07.14(月)「MASM5.1初級プログラミング入門」読み終わる。教科書だったのだが、初めて通しで読んだ。割り算のやり方とかしか見てなかったからなー。「はじめて読むMASM」読み終わる。一回生のとき買って、意味がわからなくて放っていたものだ。今読んだら面白いことがいっぱい書いてあった。その後昼から夕方まで相撲ロボットプログラム。このあいだ書いたのはうまく動かなかった。センサの誤作動が多すぎて、思ったように動かないのだ。たとえ話でいうと、真っ暗なところにろうそくの光が一つあると、10キロぐらい遠くからでも見えるが、真昼に暗い点があっても見えない、ということだ。黒地に白の線を検出するのは簡単だが、逆は難しいということである。論理を反対にすればいいというわけでもないらしい。悩んだ末、黒地に入って10カウントしてまだ黒地だったらそこを黒地と認める、とすることで解決。ついでに「三回体当たりしたら振り返る」も付け足す。これは金曜日に十分考えておいたのですぐできた。模擬土俵での実験もOK。2003.07.13(日)なぜかアセンブラの本を探す夢ばかり見るので、久しぶりに引っ張りだして読み返すことにした。考えてみたら全部通して読んだことがない。読まないといけない本がどんどんたまる。2003.07.12(土)「金日成のパレード」久しぶりに見る。見ているうちに脳内にじわじわとハイになる物質が分泌されてくる、すばらしい映画である。出ている人たち(人民)はそれどころではないかもしれないけど。「きむ・いる・そん・にむ・まんせー!!」「金日成将軍の歌」は、主義主張はともかく、かっこいい曲だと思う。前の携帯電話の着信メロディーにしていたのだが、韓国でなくしてしまった。「この石の上で、偉大な首領様金日成同志は小さい頃、抗日革命の構想を練られました」とガイドが説明してくれる場所を見ると、ご丁寧にそのときのイラストと説明文が石の横に置いてある。なんという親切さであろうか。「ああ、良い景色だなあ」と思って山を見ると、「はい、この山はナンバー1です」と書いてあるんだから親切じゃないか。)先週飲みすぎで死にそうになったので、この日はあまり飲まなかった。2003.07.11(金)アルゴリズム。相撲ロボットのプログラムを「三回押したら攻撃を中止して振り返る」に拡張する。洛北に行くと遅くなるので駅前で書く。「VPNで駅前でも洛北のサーバに入れるようになった」「ラウンジで本が読めるようになった」といってもありがたみがわからなかったのだが、最近は駅前にしょっちゅう来るので便利に使わせてもらっている。ラウンジに高橋がいた。なんとなく書いていてもプログラムは動くのだが、「なんでですか?」と質問されると困ってしまうことが多い。いうわけで、「プログラミング言語C」読み直し。例題を全部解こうとしているのだが、なかなか難しい。2003.07.10(木)久しぶりに調子が良くて、本もだいぶ読めた。久しぶりに武内と会話。「Javaで野球拳ゲームを作ろうかと思ってるんですよ」「じゃんけんなら簡単だろ。脱ぐのは止め絵?アニメ?」「アニメでいこうかと」「ならたくさん絵を描かないと。棒人間が脱衣するってのは?」「脱いでるかどうかわからないじゃないですか」「太い棒人間が細くなんねん」「描いててうれしくないじゃないですか」2003.07.10(木)夕方アシスタントの給料は体験入学のアルバイトのように「10日じめ」ではなくて「月ぎめ(1日から月末まで)」だったらしい。