こんにちは。
Processingで書いたコードを実行すると、以下の画像のようにNullPointerExceptionというエラーが出てしまい、困っています。
対処の方法や方向性などをアドバイスいただけないでしょうか。
エラーメッセージ、ソースコードは以下の通りです。
エラーの様子
コンソールの上にこのように表示されるだけです。
このエラーが出るとき、ar = new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
(下記コードのsetup内5行目)に黄色いマーカーがひかれるので、このあたりが原因かと探っています。
該当のソースコード
ProcessingとArduino(Firmata)を使い、Arduinoに接続したLEDをマウスクリックで点灯させるプログラムを書きました。
processing
1import jp.nyatla.nyar4psg.*; // ARライブラリ 2import processing.video.*; // ビデオライブラリ 3import processing.serial.*; // シリアル通信ライブラリ 4import cc.arduino.*; // Arduinoライブラリ 5import picking.*; 6 7Capture cam; 8MultiMarker ar; 9Arduino arduino; 10Picker picker; 11 12// 使用するピン 13int ledPin = 13; 14 15// マーカに対するLEDの相対位置 (自分で作ったものに合わせて変更してください) 16float[] offset = {19.0, 27.0 ,32.0}; 17 18// 選択されているオブジェクトのID 19int selected_id = 0; 20 21void setup() { 22// 画面サイズとキャプチャの設定 23 size(800,600,P3D); 24 cam = new Capture(this,width,height); 25 26 ar = new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);//エラーでマーカーされる個所 27 ar.addNyIdMarker(0,30); // 30mmのIDマーカを登録(NyId=0) 28 29// Arduinoの準備(ポート番号は自分の環境に合わせて設定してください) 30 arduino = new Arduino(this, Arduino.list()[0], 57600); 31 arduino.pinMode( ledPin, Arduino.OUTPUT ); 32 33// ピッキングの準備 34 picker = new Picker(this); 35} 36 37void draw() { 38 if (cam.available()==false) return; // カメラの用意ができていないときは処理をしない 39 cam.read(); // カメラ画像の読み込み 40 background(0); // 画面の初期化 41 ar.drawBackground(cam); // 背景画像の描画 42 ar.detect(cam); // マーカ認識 43 44 // マーカが認識されていたらピッキング用のオブジェクトを描画する 45 if ( ar.isExistMarker(0) ) { 46 ar.beginTransform(0); 47 picker.start(0); // ピッキング用のIDを付与 48 pushMatrix(); 49 50 // 選択されていたら枠線を描画する 51 if ( 0==selected_id ) { stroke(0,0,0); }//なおす 52 else { noStroke(); } 53 54 // オブジェクトの色を無色透明にする 55 fill(0,0,0,0); 56 57 // LEDのある場所までずらして直方体を描画 58 translate(19.0, 27.0 ,32.0);//上のoffsetけす 59 box(5,5,18); 60 popMatrix(); 61 ar.endTransform(); 62 picker.stop(); 63 } 64 65 // マウスカーソルの下にあるオブジェクトを判定 66 selected_id = picker.get(mouseX, mouseY); 67 mouseClicked(); 68 69} 70 71// オブジェクトの上で左クリックされたらLED点灯 72void mouseClicked() { 73 if ( mouseButton == LEFT && selected_id == 0 ) { 74 arduino.digitalWrite( ledPin, Arduino.HIGH ); 75 }else if( mouseButton == LEFT && selected_id == 0 && ledPin == Arduino.HIGH){ 76 arduino.digitalWrite( ledPin, Arduino.LOW ); 77 } 78}
試したこと
・全角スペースが入っていないかチェックするため、新規で書き直したりもしましたが同じでした。
補足情報(FW/ツールのバージョンなど)
PC環境:windows10です。
Processingバージョン:3.4.0
ご回答いただけたら幸いです。よろしくお願いいたします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。