質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

解決済

ArduinoとProcessing連携によるファイル出力が白紙になります

sasada
sasada

総合スコア1

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

1回答

-1評価

0クリップ

199閲覧

投稿2022/01/17 06:50

実現したいこと

Arduino側で計算した数値(今回は実験のため1から100まで単純にカウントアップしています)をProccesing側で受け取ってcsvまたはtxtファイルに書き出し、保存を行いたい。

発生している問題

  • 下記のProcessingコード中println(Serial.list());部分にエラーが出てる。

通常コンソールにポートの表が出るらしいがarudinoをつないでいるcom5という表示が出るだけでポート番号やバージョン情報などが出てこない。
以下エラー文章
Type String[] of the last argument to method println(Object...) doesn't exactly match the vararg parameter type. Cast to Object[] to confirm the non-varargs invocation, or pass individual arguments of type Object for a varargs invocation.
イメージ説明

  • 出力したファイルが白紙になる

Processingのコンソール上にarduinoから送られてきたと思われる数字が表示されるが、保存されたファイルを確認すると中身は白紙になっている。
イメージ説明

使用したコード

aruduino

void setup() { Serial.begin(9600); } void loop() { for(int i=0; i<=100 ; i ++){ Serial.print(i); Serial.println(","); delay(100); } delay(100); }

Processing

import processing.serial.*; Serial myport; String datastr; PrintWriter output; int count = 1; void setup(){ println(Serial.list()); myport = new Serial(this, Serial.list()[0], 9600); myport.clear(); output = createWriter("test1.txt"); } void draw(){ if (count>100) { output.flush(); output.close(); exit(); } count++; if(myport.available() > 0){ delay(100); datastr = myport.readString(); println(datastr); } }

補足

Arduino ver1.8,16
Processing ver4.0b3
初心者のためProcessingのコードはarduino連携についての様々なページのコードを切り貼りして作成したものです。よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

thkana

2022/01/17 13:41

回答でもなんでもないのでとりあえずここに書いておきますけれど、 そのプログラムでは、processing側で拾ったdatastrが送信側と同じ区切りを保っている保証は無いことには注意してくださいね。 "123,[改行]1" "24[改行]1" みたいなことになる可能性は(あまりちゃんと考えてないけど)ありそうです。 今後受け取った「値」を使ってなにかしようと考えているのなら、Serial.readString()ではなく、Serial.readStringUntil()を使ったほうがよいかと思います。
sasada

2022/01/24 05:52

確かに値の改行が飛び飛びでなんでかなー?となっていたので大変助かりました。ありがとうございます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。