ArduinoとProcessingで複数のデータを双方向でシリアル通信を試してみた。
ArduinoIDEにあるシリアルモニターでもいいのですが、ちょっと凝ったことやりたいときにProcessingを利用してます。
送受信している情報は小数点を含む複数の数値データのみ。この記事内容とは関係ないですが一番右に映っているカルマンフィルターがおかしく見えるのはわざとです。
▼参考▼
上記参考にしてますが、全然ここに記載してあるスケッチとは内容が変わってます。
ArduinoとProcessingで複数のデータを双方向でシリアル通信を試してみた。
ArduinoIDEにあるシリアルモニターでもいいのですが、ちょっと凝ったことやりたいときにProcessingを利用してます。
送受信している情報は小数点を含む複数の数値データのみ。この記事内容とは関係ないですが一番右に映っているカルマンフィルターがおかしく見えるのはわざとです。
▼参考▼
上記参考にしてますが、全然ここに記載してあるスケッチとは内容が変わってます。
コメント
はじめまして
いつも当サイトの記事を非常に参考にさせて頂いてます.
現在MPU6050に関して勉強している者です.
角度算出に伴い,Madgwickフィルターを用いています.
算出した角度に関してもprocessing側に送信して最終的には,角度,角速度,加速度をテキストファイルに記録したいと考えています.
ArduinoのソースコードにおいてSerial.print()を用いて相対的な角度変化を確認できたのですが…
processing側に送信すると90度センサを傾けるまでに,相対的な角度変化過程で大きな値(1回転してしまう)となってしまい困っています.
シリアルモニターと同様な値を送信することは不可能なのでしょうか?
RHさん、サイト拝見下さり有難うございます。
さてご質問の件、Serial.print()でも情報送信は可能です。ただ、発生している現象の具体的解決方法はわかりませんが、Serial.print()の場合、文字列情報としてデータを送信するため今回の角度情報のようなものはその時々で送信データ量が変化してしまいます。そのため、受信側(Processing側)で受信情報の処理に少し工夫がいるかと思います。私の場合は、その工夫が面倒だったので本ページで紹介しているようなbyte情報でデータのやり取りしてます。
返信して頂きありがとうございます.
やはり解決方法はないのですかね…もう少し自分なりに工夫してみようかと思います.
シリアルモニターでは角度変化は正常でしたので,最悪そちらのデータをテキストファイルに写して記録したいと思います.