MZ Platform Runtime for Raspberry Pi ver3.6のインストールについて

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 MZ Platform Runtime for Raspberry Pi ver3.6のインストールについて

10 件の投稿を閲覧中 - 1 ~ 10 件(全 18 件)
  • 著者
    投稿
  • #5891
    ORIteck CO., LTD
    一般参加者

    Raspberry Pi 3 Model BでMZを使用したく、ReadMe.txtの内容で設定をしています。

    『(2) MZ Platform Runtime for Raspberry Piのインストール』では、zipファイルの解凍/展開後に、to_jre_ext内のファイルをOS側のjavaに一式コピーするとありますが、ここでのコピー先についてお願いします。

    ReadMe.txtでは、Javaの配置場所の確認で$ ls -l /etc/alternatives/javaを実行すると、
    /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java この場所となり。
    この場合のコピー先を
    /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/ext/とされています。

    Javaのバージョンアップが原因だと思いますが、現在Javaの配置場所を確認すると、
    /usr/lib/jvm/java-11-openjdk-armhf/bin/java となります。
    この場合のコピー先ですが、
    /usr/lib/jvm/java-11-openjdk-armhf/lib/ext/
    ここでいいのでしょうか?  extディレクトリは現時点では存在していませんが、作成してそこにコピー。

    #5892
    MZPlatformユーザー会
    サイト管理者

    ご指摘の通り、最新のRaspbianでJavaがOpenJDK11になっているようで、現在のReadme.txtの手順で動作させることはできない状況です。

    お手数ですが、ひとつ前のバージョンのRaspbianでお試しいただけますでしょうか。下記リンク先からZIPファイルがダウンロード可能です。
    https://downloads.raspberrypi.org/raspbian/images/raspbian-2019-04-09/

    最新のRaspbianを使用した場合の手順については、これから確認しますので、少々お待ちください。

    #5893
    ORIteck CO., LTD
    一般参加者

    Raspbianの変更後『(3) MZアプリケーションの実行』まで正常に動作しました。

    自作のアプリケーションで(3)同様の実施をしましたが、『バイナリファイルからのアプリケーション情報ロードに失敗しました』のエラーダイアログが表示されます。

    自作アプリケーションは、フレームコンポーネントだけで、.mzaxです。
    アプリケーションの配置位置は、cmd.mzaxと同じ場所です。

    どのような問題があるのでしょうか?

    #5894
    ORIteck CO., LTD
    一般参加者

    アプリケーションのファイル名にスペースを入れていたのですが、スペースを無くすことで起動できました。これが問題と言うことでよろしいでしょうか?

    #5895
    MZPlatformユーザー会
    サイト管理者

    エラーメッセージに多少問題がありますが、「バイナリファイルからのアプリケーション情報ロードに失敗しました」は、ファイルが見つからない場合にも表示されます。

    実行対象のファイルを指定する際に、GUIのファイル選択ダイアログでファイルを指定する場合は問題になりませんが、今回のようにコマンドで指定する場合はファイル名やパス名の記述ミスでもエラーが出ます。

    注意点としては、コマンドの書式は半角スペースでコマンド本体と引数の間を区切りますので、指定したいファイル名やパス名に空白文字が含まれていると、コマンド実行が意図した内容になりません。基本的にコマンド実行が中心となるLinux(Raspberry Pi含む)では、ファイル名やパス名に空白文字を入れない方が良く、また日本語の使用も避けた方が良いです。Windowsでも、ファイル名やパス名に空白文字が含まれていると、ファイルをダブルクリックして実行することができませんので、やはり避けた方が良いです。

    #5896
    ORIteck CO., LTD
    一般参加者

    『(4)データベース接続』まで正常に動作できるようになりました。

    Raspberry PiとArduino NaNoをUSB接続している環境で自作アプリのテストをしています。MZIoTtoolkit-3.6-20181219のIoTEdgeApp.mzaxをRaspberry Piで使用するイメージです。

    Firmata通信コンポーネントの使用での送受信は問題ないのですが、シリアル通信コンポーネント使用時、ポートの開通はできているようなのですが送受信ができません。

    Arduinoのスケッチは、シリアルポートから’F’一文字を受信したとき、”Ftemp,hum”をシリアルポートに送信するです。
    void setup(){Serial.begin(115200); dalay(10);}
    void loop(){
    char start = Serial.read();
    if(start == ‘F’){Serial.print(“Ftemp”); Serial.print(“,”); erial.print(“hum”);}
    delay(100);
    }

    Windowsでは問題ありませんが、Raspberry Piでは動作しません。
    テストアプリ添付致します。

    添付ファイル:
    #5898
    MZPlatformユーザー会
    サイト管理者

    実際にどのような問題が生じているかわかりませんが、添付のMZアプリの内容を見る限り、これはWindowsでしか動かないと思います。

    シリアル通信コンポーネントのメソッド「指定されたポートに接続する(String)」で指定するポート名は、環境に依存します。Windowsであれば「COM(数字)」ですが、Raspberry Pi(Linux)では「/dev/tty***(数字)」という形式になります。

    シリアル通信コンポーネントでは、上記のような環境の違いを吸収するために、「ポートの一覧を取得する()」メソッドを提供します。これで得られるリストをコンボボックス等に設定して、選んだ項目の文字列を接続時に使用すれば、どの環境でも動作するアプリとなります。

    また、Linuxではシリアル通信のポートを使用する場合、ルート権限が必要です。
    MZアプリの実行時には、下記のようにsudoをつけて実行する必要があります。

    $ sudo /home/pi/MZPlatform/3.6/pfloader ***.mzax

    #5899
    MZPlatformユーザー会
    サイト管理者

    現在ダウンロード可能なMZ Platform 3.6 Raspberry Pi版実行環境は、シリアル通信コンポーネント機能に不具合が含まれていることがわかりました。後日修正版を公開しますが、それまでにご自身で修正したい場合は、下記の作業をお願いします。

    添付のZIPファイルを展開したJARファイルを、下記のフォルダに配置します。
    (元のファイルは事前に名前を変えておけばあとで元に戻せます)
    (MZインストール先)/MZPlatform/3.6/jars/rxtx/

    添付ファイル:
    #5903
    MZPlatformユーザー会
    サイト管理者

    ダウンロードサイトで修正版のMZ Platform 3.6 Raspberry Pi版実行環境を公開しましたのでお知らせします。

    #5904
    ORIteck CO., LTD
    一般参加者

    添付いただいたRXTXcomm.jarファイルの配置とsudoコマンドでの実行でも症状がかわりませんので、問題としている内容について説明します。

    接続ボタンのアクションイベントで、シリアル通信コンポーネントのメソッド「通信速度を設定する」でArduinoのスケッチ速度に設定後、シリアル通信コンポーネントのメソッド「指定されたポートに接続する」※私の環境では/dev/ttyUSB0に接続します。

    シリアル通信コンポーネントの処理完了イベントで、メッセージダイアログコンポーネントのメソッド「情報メッセージダイアログを表示する」※イベント番号0:ポートに接続したとき。この時、情報メッセージダイアログは表示されますので、ポートへの接続はできていると考えています。

    ここからが問題としているところです。
    送信ボタンのアクションイベントで、シリアル通信コンポーネントのメソッド「ポートに文字列データを出力する」で’F’の一文字を送信しています。Arduino側では、この文字を受信時Serial.read()に、’Ftemp,hum’の文字列を送信Serial.print()するスケッチです。これを、シリアル通信コンポーネントのデータ生成イベントで、テキストフィールドに設定しているのですが、設定(表示)されません。

    もう一つですが、
    $ sudo /home/pi/MZPlatform/3.6/pfloader ***.mzax
    このように実行した場合、エラーメッセージが表示され『バイナリファイルからのアプリケーション情報ロードに失敗しました』アプリは起動しません。
    カレントディレクトリを /MZPlatformで、$sudo 3.6/pfloader ***.mzaxの実行でアプリは起動します。なにか関係がありますでしょうか?

10 件の投稿を閲覧中 - 1 ~ 10 件(全 18 件)
  • このトピックに返信するには、ログインしてください。