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

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

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

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

Q&A

解決済

1回答

820閲覧

YDLIDAR(2Dレーザーセンサー)をProcessingから使う

mkoban

総合スコア11

Processing

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

0グッド

0クリップ

投稿2023/01/11 15:31

編集2023/01/11 15:36

前提

Processingのserialライブラリを使って、USBで接続したYDLIDAR X4 センサーの値を取得したいと考えています。
まず手始めにX4センサーにコマンド(0xA5と0x60の2バイト)を送信しようとしているのですが、応答がありません。
センサーがつながっているポートはCOM3で間違いありません。コマンド送信の方法を教えてください。
YDLIDAR X4のマニュアル
https://www.ydlidar.com/Public/upload/files/2022-06-28/YDLIDAR%20X4%20Development%20Manual%20V1.6(211230).pdf

実現したいこと

YDLIDAR X4にコマンドを送信し、動作させたい。
その後、センサーの返す値を取得したい。

発生している問題・エラーメッセージ

エラーは出ないが、応答がない(シリアルイベントが発生しない)。

該当のソースコード

Processing

1import processing.serial.*; 2 3Serial myPort; // Create object from Serial class 4int val; // Data received from the serial port 5 6void setup() { 7 size(200, 200); 8 myPort = new Serial(this, "COM3", 9600); 9} 10 11void draw(){ 12 background(255); 13 if (val == 0) { 14 fill(0); 15 } 16 else { 17 fill(204); 18 } 19 rect(50, 50, 100, 100); 20} 21void serialEvent(Serial myPort){ 22 String myString = myPort.readString(); 23 if(myString != null){ 24 println(val); 25 } 26 println("getEvent!"); 27} 28void mousePressed(){ 29 myPort.write(char(0xA5)); 30 myPort.write(char(0x60)); 31}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DataSheetでは、baud rateが128000となっているので、9600bpsでコマンドを送っても通信できるはずがないです。

投稿2023/01/11 22:21

編集2023/01/11 23:30
thkana

総合スコア7652

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkoban

2023/01/12 01:40

早々のご回答ありがとうございます! ご指摘の通りbaud rate変更したら、とりあえず値が帰ってきました! ここから初心者なりに位置情報を取り出すべく試行錯誤してみようと思います。 もし参考になるサイトや書籍などご存じでしたらご教授いただければ幸いです。 とにかくありがとうございました。
thkana

2023/01/12 13:24

先日Serial通信のパターンを集めたちょっとお役立ちな投稿をどこかで見つけたのですが、URLをメモってなくてわからなくなってしまいました...残念。 とりあえず、Serial通信でやりとりされるデータって何か? というのを強く意識しないとまともな通信はできないと思います。バイナリデータをSerial.readStringで受けるのは(この先の処理を考えた時に)いかがなものか...
mkoban

2023/01/18 02:35

返事遅くなってすいません。 参考ページありがとうございます。勉強してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問