2005/01/31 |
せっかくなので、もうちょっと調査 昨日の、便利グッズを作ってて、電源LEDもつけれるじゃん!と思って調べていた時に気づきました。もし、同じようなことをやられる場合は、気をつけてください。
| |
2005/01/30 |
メカはだいたい組みあがりました。 新!H8/3664の便利グッズ これは、H8/3664の上に載せて使います。H8/3664の方、BOOTモード切替、リセットのピンが上面に出るようにつけてあり、この基板に接続できるようにしてあります。基板上にはリセットスイッチとBOOTモードの切り替え、さらに、電源LEDもつけてあります。 ちなみに、右の写真のAKI-H8/3664の下に移っている基板は、製作中の新型SIPHA COREです。え?見えませんか?かなり見づらいですが、右側に少しだけ写っています。そうです。縦方向は27mmなのです(AKI-H8/3664が、縦27mm)。ちなみに横幅は61mmの予定です。 ところで、これを作っていて気がついたのですが、AKI-H8/3664についている配線図って… JP2とJP3って逆じゃないでしょうか?
| |
2005/01/29 |
予算1万5千円ぐらいで 予算で考えると、ちょっとシュルツは無理ですが、もう1万円落として、KSチャージャDX PRO()か、スワローチャージャアドバンス(あたりなら買えそうです。どっちかな〜なんて思っているんですが、どっちがいいんでしょ〜、う〜ん。もし、こっちのここがいいよ〜なんて話があったら、教えてもらえるとありがたいのです。 PRS3401
| |
2005/01/27 |
Pirkus-R
Type-01 そうしている間に、I-Beeのホームページでマイクロサーボのスペック、値段が発表されていました。 サーボの写真はまだ載っていないのですが、すごく気になりますね〜。
| |
2005/01/26 |
KPIT環境でSIPHA
COREをビルド そしたら、あららっという感じで載せ換え完了してしまいました。最後にFDT3(これも、KPITのオススメ通り、英語版ですが)で書き込みをして、動作確認をちょっとしてみたのですが、ばっちりです。 変更したところ それから、GDLと違って、割り込みのベクターテーブルを自分で書かないといけないので、自動生成されたvects.cに変更を加えて、割り込み関数本体の方に"#pragma interrupt"を追加しました。 後は、EI、DI、_WORD、_BYTEの宣言を追加して、ついでにインクルードしまくっていたソースコードをちゃんと分割して、はいOK!という感じで、拍子抜けするほどでした。これで、Simulator上で変数Watch等が使えるようになるので、Action Script機能などのデバッグには効果絶大のハズ。よしよし。 でも、Simulated I/Oが動かないんですよね〜。HEW3+Renesasコンパイラですと、printf()を実行するとSimulated I/Oというウィンドウにメッセージを表示できるのですが、対応してないのかな?というわけで、現在、問い合わせ中です。なんとなく、対応してなさそうです。 コンパイル時間ですが、GDLと比較すると、分割コンパイルしている分だけ速いですが、もともと、そう大きなソースコードでも無いので、大きくは変わらないです。それにしても、変数ウォッチとブレークポイントは便利だな〜。
| |
2005/01/25 |
設計ミス
というわけで、3つめの「ケーブル横だし」の写真です。設計ミスでやむを得ず改造したのですが、よく考えてみると、これ、なかなかよさそうです。ヒザのサーボ取り付け位置をミスったので横だししたのですが、稼働範囲と照らし合わせると、標準位置よりケーブルに力がかからなくてよさそうです。 やるときですが、MICRO-MGは中に隙間が無いので、 ケーブルの被覆を気をつける必要がありました。最初、ケーブルの厚みだけ下のケースを削ったのですが、それだとケーブルの被覆に傷をつけてしまいました。で、結局、もともと開いている穴と同じ大きさにしました。
| |
2005/01/23 |
完成前から進化… なんとか今週末には…。
| |
2005/01/22 |
S03Tにも同じ問題がありました。 S03Tの中身です(このあとHG化されます)。ベアリングの上に載っているパーツがファイナルギアとポテンショをつなぐパーツです。よくみてみたのですが、固くはまっているということはないですが、ポテンショとこのパーツの間には隙間は無いようです。 これはファイナルギアの裏側で、先ほどのパーツをはめ込んだ状態です。ここが結構、ガタがあるのを発見!しばしどうしようか考えてみたのですが… 特に問題が無さそうだったので、接着してしまいました。ビニール系接着剤でつけたので、後で取ることもできそうです。 結果は、良好です。しかし、S03Tって、結構オーバーシュート大きいです。ロボット作り始めた頃は、サーボが動くだけでうれしかったもんですが、最近は、目が肥えてきたのかな〜。
| |
2005/01/20 |
今日からROBO-ONEエントリー開始ですね!うちの進捗は、メカは、まだ未完成ですが、部品加工はほとんど終わっているので、週末ぐらいには形ができるかな〜ぐらいです。最近まで、SIPHA TERMのソースコード復活をやっていたので、そのまま、SIPHA TERMを改良してたりします。最近、しばらくプログラム触っていないと、プログラムの作り方を忘れてしまうんで、一気に!という感じです。そんなわけで、その中から出てきたTOPICをおひとつ。 マウスボタンチェック これまた、結構簡単だったので、やり方を紹介します。 WideStudioでは、「最後に押したマウスボタンを取り出す」機能があります。これを普通にボタンが押された時に呼び出される処理に追加してやればOKです。 具体的には、WSDmouseというクラスを使用します。 まずは、マウスのグローバルインスタンスを取得します。「???」な感じですが、SISOもよくわかってないです。きっと、アプリケーション中に、マウスを管理しているインスタンスとやらがあり、そこにアクセスするためには、まずは取得するということだと思って使っています。 WSDmouse* mouse = WSGIappMouse(); はい。これでマウスのグローバルインスタンスが取得できます。そして、後は判定するだけです。状態の取得は、getTargetBtn()を使用しますが、この返り値は次のように定義されています。 WS_MOUSE_BTN1 左ボタン WS_MOUSE_BTN2 中ボタン(ホイール) WS_MOUSE_BTN3 右ボタン 後はこれをSWITCH文などで振るようにコーディングするだけですね!ボタンが押された時の結果を表示するラベルを、"vlabClickStatus"という名前で作ってそこのところをコーディングすると、次のような感じになります。 WSDmouse* mouse = WSGIappMouse(); switch( mouse->getTargetBtn()){ case WS_MOUSE_BTN1: // 左ボタン vlabClickStatus->setProperty( WSNlabelString, "左ボタン" ); break; case WS_MOUSE_BTN2: // 中ボタン vlabClickStatus->setProperty( WSNlabelString, "中ボタン" ); break; case WS_MOUSE_BTN3: // 右ボタン vlabClickStatus->setProperty( WSNlabelString, "右ボタン" ); break; } 最後に、ヘッダファイルのインクルードと、ラベル部品の外部宣言も忘れずにしておきます。これでばっちりです。 「これでいいのかな〜」なんてちょっと思ったりしますが、今のところ、大丈夫そうなので、きっと大丈夫でしょう。もし間違ってたら連絡お願いいたします。
| |
2005/01/18 |
Feedback reply from KPIT GNU
Tools ところで、2005/01/03不定期TOPICでKPITツールの話を書きましたが、最後に書いた「Provide
feedback」(「使用感とかご意見ください」とうダイアログの話)、実はあの時、ちょこっと意見を書いて送信したのですが、なんと、返事が返ってきました。びっくり! 今のところ、SIPHA COREを移植するには至ってはいませんが、メカの方が組みあがったら挑戦してみようかな〜と思っています。なんといっても、あのシミュレータ機能はとても魅力的ですので。いいツールなので、時間が取れたらプログラミング手順をぜひとも紹介したいと思っています。
| |
2005/01/11 |
リブレットL1は、画面サイズが1280x600 # 何気に勢いでやってしまいましたが、後で、どっちでもよかったかな?と思ったことはヒミツ。 背景画にあわせてウィンドウサイズを変更するには? さて、ざくっと要点解説ですが、TSC16もそうなんですが、画像データ、基本的にはウィンドウの背景画として読み込ませています。ウィンドウのプロパティで、「背景画」というのがありますが、これをプログラムで操作しています。TSC16の場合は直接ソースコードで指定していますが、この項目にsetProperty()すれば画像ファイルを動的に読み込むことができます(簡単〜♪)。 さて、WideStudio、ヘルプファイルを読むと、どうやら画像扱うためには「WSDimage」というクラスを通じて扱うようになっているようです。また、その画像元ネタは、「WSGIappImageSet」というプログラム内でグローバルに宣言されている(WideStudioでアプリケーションを作成すると、そのアプリケーションに自動的に引っ付いていると理解しておいてください)画像管理オブジェクト?から引っ張ってくるようです。 そんなわけで、まずはこんなコードで初期化されます。 WSDimage* pimgBasePic; // test.jpg のイメージインスタンスを取得。 pimgBasePic = WSGIappImageSet()->getImage( "test.jpg" ); これで、「イメージインスタンス」とやらが取得できますので、ここからサイズ情報を取り出し、自ウィンドウのウィンドウサイズを変更します。まずはサイズ取得です。サイズ取得用のメソッドが用意されていますので、以下のようなコードでさらっと読み出すことができます。 unsigned short usWidth, usHeight; usWidth = (unsigned short)pimgBasePic->getImageWidth(); // 画像横幅の取得 usHeight = (unsigned short)pimgBasePic->getImageHeight(); // 画像高さの取得 後は、この値を使って、自ウィンドウのプロパティを操作するだけです。 object->setProperty( WSNwidth, usWidth ); // ウィンドウサイズの設定 object->setProperty( WSNheight, usHeight ); // ウィンドウサイズの設定 object->setProperty( WSNbackPixmap, "test.jpg" ); // 背景画の設定 「object」というのは、自分自身のクラスポインタです…と書くとややこしいのですが、簡単に言うと、 WideStudioでイベントプロシージャを記述すると、自動的にこの「object」というポインタが渡されるコードが生成されるのですが、呼び出し元の情報(ポインタ)がセットされるようになっています。 そこで、呼び出し元を操作したい場合は、このポインタを使って操作します。「object」の型は「WSCbase」というクラスで、プロパティ操作等のメソッドを含んだクラスです。よって、プロパティ操作をする場合、このクラスポインタをそのまましようすればOKです。 このように、WideStudioの場合、ウィンドウに対する操作は、ほとんど「setProperty」を実行することで行うことができます。つまり、ビルダの「プロパティ」ウィンドウから手入力であれこれしていることを、そのままプログラムで「setProperty」と書いていくだけで、同じことをすることができます。 プログラムコードと操作が直感的につながりやすいので、WideStudioで「いいなぁ〜」と思っている点の1つです。ところで、このプログラム、なんとなく無駄に2回も画像ファイルにアクセスしている気がするので、本当は、もっと良いやり方がありそうな気がします。う〜ん。
| |
2005/01/09 |
WideStudio
v3.80-7 ちょっと前に、「Wide Studioで作ったアプリケーションって、どのDLLが必要なんだろう?」と思って少し調べていたんですが、これを使えば、WideStudioがインストールされていないWindowsにアプリを入れても動作できます。うちのLibretto L1は、Dual Bootにしてあって、何にも追加DLLが入ってない方のWindowsがあるので、そこで試してみたところ、バッチリ動作しました。 き、気づかなかった… これは、v3.80のリンクタブですが、リンク方式□「スタティックリンク(DLL無し)」と書いてありますこれにチェックを入れると、スタティックリンクのアプリケーションを作成することができます。じゃあ、V3.70の方はどうなっていたかといいますと 、 なんと、こういう表示になっています。この状態が「ダイナミックリンク設定」です。今思えば、試しに押してみてもよかったチェックボックスですが、ちと難しかったです…。でもチェックボックスって、「チェックするとその状態になる説明文が書いてある」のが多いと思うので、気が付きませんでした。ちなみに、ここの動き、なかなか凝ってまして、チェックすると… テキストが「スタティックリンク(DLL無し)」に変わります。 ダイナミックリンクライブラリについて 対して、スタティックリンクでアプリケーションを作成すると、アプリケーションのサイズは大きくなりますが、パソコン毎のライブラリインストール状態を気にしなくてよくなります。 気になる実行ファイルのサイズですが、SIPHA TERMで試してみたところ、380Byteのプログラムが3.6MByteになりました。実行ファイルのサイズが大きくなったとはいえ、実際に、小さいサイズのアプリを起動しても、恐らく同じだけWideStudioのDLL(ダイナミックリンクライブラリ)がロードされるわけなのでパフォーマンスに差は無いと思われます。ちなみにZIPで圧縮してみたら1.2MByteぐらいにはなりました。WideStudioでプログラムを作って人に配布する場合は、スタティックリンクにしておいた方が手堅そうですね。
| |
2005/01/07 |
メカを組み立てる前に、サーボのデータ取りでもしようかと思ったら…そうでした。SIPHA TERMは、前の外付けディスククラッシュで動かないことを思い出してしまいました。クラッシュと入っても、70%ぐらいは削除痕からソースを復活できたので、残りの分を書き足しています。書き出すと、いろいろ欲が出るもので、とりあえず、メインウインドウの表示イメージは、前よりシャープな感じにしてみました。なかなか快調で、あと数日ぐらいで復活できそうです。
| |
2005/01/05 |
今回使用予定のMICRO-MGのジョイントピースを、やっとZipponさんからのスペシャルパーツに入れ替えました。 いや〜、オリジナルのパーツを取り外すのに苦労しました。簡単に取れるもの、取れないものいろいろありまして、そのまま次にも使えそうな状態のものもあれば、こりゃダメだ〜なものまで、いろいろできました。(^_^; はずすのには、最初、精密ドライバでこじってたんですが、なかなか外れないヤツにあたったところから、写真右に写っている、普通サイズのドライバで、「うおりゃぁぁ」といわんばかりの力ではずしていました。 みなさんは、どうやってはずしていますか?
| |
2005/01/03 |
本年もよろしくお願いいたします。 書初め 結局、KPITのFAQを読んでいたら、ROMに書くにはWindowsの場合、RENESASのホームページ(英語)からFDTをダウンロードして使ってね!というのがあって(LINUXの場合は、ツールが用意されているようです)、ダウンロードして使いました。友達から、昔のトランジスタ技術も借りてきていたので、操作方法も難なくクリアできました。 これ、HEW3の画面なんですが、 この、「Configure Flash Project」というところをクリックすると、 いかにもFDTなプログラムが起動するんですが、今のところ、これで書き込めたためしは無いです。将来対応なのかな??? というわけで、割り込みの書き方もわかったというところで、次はSIPHA COREの移植をしようと思います。 まとめるにはちょっと時間がかかりそうなので、それは後ほどということにしますが、ネットで「プロジェクトを作ってROM焼きまでしてみました〜」という情報が意外に少ないので、とりあえずポイントだけ書いておきます。
あ、あと、使っていると、時々こういうダイアログが出ます(オフにもできますので、ご安心を)。 このダイアログで「Provide feedback」を押すと、ブラウザが起動して「使い勝手どうですか〜?」というアンケートのホームページが開きます。日本語もOKとのことなので、使用感とかを書いてあげると喜ばれるかも知れません。「Please don't ask me again」のチェックボックスを入れると開かないようですが、KPITの人って控えめなのかな???
|
2004 | Jan. | Feb. | Mar. | Apr. | May. | Jun. | Jul. | Aug. | Sep. | Oct. | Nov. | Dec. |
2003 | Jan. | Feb. | Mar. | Apr. | May. | Jun. | Jul. | Aug. | Sep. | Oct. | Nov. | Dec. |