宇宙

Java のお勉強室



その6.3次元グラフィックスの作成 2 ('10年04月10日〜20日)

   Android Java による「懐かしの3次元グラフィックス」の再現です。
 仕様は、「その2.3次元グラフィックスの作成 1」の場合と同様です。
 (参考文献: 雑誌 月刊ASCII '78 8月・10月号、'79 5月号
          何れも、3次元グラフィックス関連の記事より)
 (5) Android Java バージョン 実行結果 → [ Android Java サンプル2 ]

その5.JavaによるI/O制御機能サンプルプログラムの作成
     Windows 2000マシンでのシリアルポート出力
        ('02年02月20日〜03月15日)


 携帯電話からの遠隔制御により、おもちゃの扇風機を回転させるという実験です。

 ◆ 製作した回路と実験システムの全景(拡大写真)




 ◆ 携帯電話で遠隔制御させている様子(拡大写真)




 そして作成したプログラム。
 (1) コマンド送信用プログラム(HTML で作成)
 (2) ファイル書き込み用CGI
    これらは、前回(下記の その4.)のものをそのまま使用しています。

 (3) コマンド読み出し&シリアルポート出力プログラム(Java アプリケーション)
   シリアルポート(COM1:)の制御線を以下のように使用しています。
    ・DTRライン(ON:FAN ON OFF:FAN OFF)
    ・RTSライン(ON:逆転 OFF:正転)

   なお、今回もJNIを利用して、次のようなルートでシリアル制御を行っています。
   アプリ   →   シリアル制御用クラス → DLL.
   (Frame1.java) (SERIAL.java)      (SERIALJ.cpp)

   同一のプログラムで、Win2k、WinMe どちらでも動作することを確認しました。

 ===============================================================================
 なお、Java とJNIによるプログラミングのノウハウについては、「IT関連BBS」の
 16:【技術情報】Java によるI/O制御、JNI 関連技術 」 のコーナーで公開しています。
   ↓
  http://www3.biwako.ne.jp/~mirai954/bbs/bbs.cgi?id=2002031800



その4.JavaによるI/O制御機能サンプルプログラムの作成
     Windows Meマシンでのパラレルポート出力
        ('02年01月16日〜02月08日: 実験結果を記載)
        ('02年03月17日: PORT入出力用クラス、DLLのソースを追加)


 携帯電話からの遠隔制御により、おもちゃの扇風機を回転させるという実験です。

 ◆ 製作した回路と実験システムの全景(拡大写真)




 ◆ 携帯電話で遠隔制御させている様子(拡大写真)





  今回作成したのは、「その3.」のプログラムの応用編です。
 ニコチャン マークの表示を変更するのではなく、パソコンのパラレルポートに外部接続した機器を
 リモートコントロールさせてみようというもの。

 そのために作成したプログラム。
 (1) コマンド送信用プログラム(HTML で作成)
    ニコチャンのときのとほとんど同様です。 送信するデータは、停止=0、正転=1、逆転=3。

 (2) ファイル書き込み用CGI
    これもニコチャンのときと同様。書き込むファイル名を変えただけです。

 (3) コマンド読み出し&ポート出力プログラム(Java アプリケーション)
    パソコンのI/Oポートをコントロールするということで、ニコチャンの場合と大きく変わった部分が
   2点あります。
    ・Java アプレットではなく、Java アプリケーションで作成しています。
     (理由や違いについては、ご自分で勉強してくださいね)
    ・I/Oポート制御を行うために、JNI(Java Native Interface)の技術を導入しました。
   
   2点目について、ちょっと補足しておきます。
   Java はVM(Virtual Machine)という構造上、特定のプラットフォームに依存するような
   ハードに対する入出力機能を標準では装備していません。

   ならば、どうするか? というと
   ・シリアルポート、パラレルポート出力ならば、Sunの提供している拡張APIを利用する。
   ・JNI(Java Native Interface) つまりJavaの拡張機能により、マシン固有のデバイスドライバ
    (Windows ならばDLL)を作成してJavaプログラムから呼び出して使用する。

   の何れかの方法をとることになります。
   Mirai くん の場合も、当初この両方にチャレンジしてみたのですが、
   当初何れの方法も失敗しました。

   結局、約3週間後 VAIOノート → 東芝ノートに変更して動作することを確認しました。
   (原因の正解は、VAIO はWindows 2000、 東芝機は Win Me ということです。)
   (ホント、ケアレスミスもいいところで、「穴があったら入りたい」という心境です・・)


その3.インターネット通信機能サンプルプログラムの作成
     PC/iモード携帯電話共用版
        ('01年09月17日〜10月01日、10月08日、10月10日、10月14日)


   今回のプログラムは、携帯電話からの操作で、ノートパソコンのブラウザ上での表示内容を
 動的に変更させてみようというものです。将来的には、これを発展させれば、パソコンに接続した
 外部機器を コントロールさせることもできるかな?と構想しております。

 というわけで、実行手順です。
 (1) インターネット接続できるパソコン1台と、i モード携帯(i アプリ携帯でなくても可)を用意します。
    (お金持ちの方は、インターネット接続可能なパソコン2台でも構いません)
    (貧乏でパソコンが1台しか無いかたでも、工夫すれば何とかなります  )

 (2) パソコンの方でブラウザを起動して、右記のページを表示させます → [ Java サンプル3 ]



   ニコチャン マークが表示されて、時々、「送信中」の表示がされていればOKです。
   このとき、あまりにも頻繁に「送信中」の表示が行われるときは、1000(msec)の数値を
   2000 〜 3000 の範囲で適当に増やしてください。
  (逆にめったに「送信中」の表示が見れない場合は、この数値を、100 〜 200 のように
   減らしてください)

 (3) 次に、i モード携帯(または、もう一台のパソコン)で、下記のページを表示させます
                                      
                                    [ HTML サンプル3 ]

                             ( http://www3.biwako.ne.jp/~mirai954/PC_TX1.htm )



   パソコンが1台しか無いかたは、同じパソコン上で、さらにもうひとつブラウザを起動して、
   上記のHTMLを表示させます。

   表示された、4つの表情のどれかを選択して、[送信]ボタンを押してしばらくすると、
   パソコン上のニコチャン マークが変わったでしょう。。。。

   なお、ニコチャンの画面のほうは、構造上、無限ループになっていますので、
   [終了]ボタンを押してから、ブラウザの[戻る]ボタンを押してくださいね。

 ===============================================================================

 iアプリ版 ('01年10月08日)

  ・ iアプリ バージョン 実行結果 → [ iアプリ版 Java サンプル3 ]



   (503i での i アプリのダウンロードは、こちら)
                           ↓
    http://www3.biwako.ne.jp/~mirai954/iappli/Ntest1A.html

   (503i をお持ちのかたは、このURLを指定することにより、表情コマンド送信プログラムを)
   (ダウンロードして実行することができます。)

 ===============================================================================

 Palm版 ('01年10月10日)

  ・Palm バージョン 実行結果 → [ Palm版 Java サンプル3 ]
   但し、Mirai くんは、Palm では直接インターネットに接続するための環境を所有していませんので、
   CLIE 用の Palm OS Emulator(POSE) での実行結果です。




その2.3次元グラフィックスの作成 1 ('01年08月12日〜22日、9月17日)

  8月4日(土)でJavaスクールの入門講座を修了しました。
 スクールでは、特に課題制作はなかったので、自主的に作成してみました。
 PART1は、Java による「懐かしの3次元グラフィックス」の再現です。
 (参考文献: 雑誌 月刊ASCII '78 8月・10月号、'79 5月号
          何れも、3次元グラフィックス関連の記事より)

 同一仕様のプログラムを各種プラットフォームでのJavaに移植してみるという実験に挑んでみました。
 (Palm と iアプリのJavaについては、全て独学により習得しています)

 (1) Java アプレットバージョン 実行結果 → [ Java サンプル2 ]

 (2) Palm バージョン 実行結果 → [ Palm 版 Java サンプル2 ]

 (3) iアプリ バージョン 実行結果 → [ iアプリ版 Java サンプル2 ]

 ** 参考出品 ?? **
 (4) Visual Basic バージョン 実行結果(画面表示例) → [ VB サンプル2 ]

===============================================================================

 【3次元グラフィックスのソースファイルのダウンロードコーナー】

  (1) PC用 Java アプレット バージョンのダウンロードは、こちら → [Javaソース2]
    (Javaソース、HTMLをLZH圧縮してあります)

  (2) Palm バージョン
    ソースファイルのダウンロードは、こちら → [ Palm 版 Javaソース2]

  (3) iアプリ バージョン
    ソースファイルなどのダウンロードは、こちら → [iアプリ版 Javaソース2]
    (Javaソース、jam、jar ファイルをLZH圧縮してあります)

    (503i での i アプリのダウンロードは、こちら ↓)
      http://www3.biwako.ne.jp/~mirai954/iappli/graph.html

    (503i をお持ちのかたは、このURLを指定することにより、3Dグラフィックス表示プログラムを)
    (ダウンロードして実行することができます。)

 ** 参考出品 ?? **
  (4) Visual Basic バージョン
    ソースファイルなどのダウンロードは、こちら → [VBソース2]
    V6.0でのVBソース、プロジェクトファイルなどをLZH圧縮してあります。
    VBの開発環境は持っていないけど、実行してみたいというかたは、
    メールにて個別にご相談ください)


その1.Javaアプレットへの初挑戦 ('01年05月07日)


  このときは、スクールでの講座が開講していなかったため、
 独習(予習)していた内容です。

 Java アプレットの入門書で、いつも最初に出てくるような例題です。

  (1) Java ソースプログラム

    import java.applet.Applet;
    import java.awt.Graphics;

    public class aplt_test1 extends Applet {
    public void paint(Graphics g) {
      g.drawString("Mirai くんのアプレットテスト1です!", 50,30);
      }
    }

  (2) HTML ソースプログラム

   <applet code="aplt_test1.class" WIDTH=300 HEIGHT=50>
   </applet>

 実行結果は、こちらをクリックしてみて〜 → [ Java サンプル1 ]

   


メール アイコン
メール
トップ アイコン
トップ


宇宙