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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1891閲覧

pyserialでデータを送信したい。

mappys

総合スコア104

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/03 05:04

PyserialでPCと接続したモータードライバに以下の画像の赤で囲ったところのデータを送信したいと思い

イメージ説明

以下のコードを実行してみました。

python

1import serial 2 3senddata=[0x01,0x06,0x00,0x7D,0x00,0x08,0x18,0x14] 4#send_binary =bytes(senddata) 5 6with serial.Serial('/dev/tty.USBの名前',115200,timeout=None) as ser: 7 ser.write(senddata)

しかし、データ自体の送信はできてるみたいなのですがモータードライバ側でエラーが起きてしまいます。つまり送っているデータが間違っているということです。

WindowsPCのTera Termを用いて
「01 06 00 7D 00 08 18 14」
とだけ入力すると問題なくモーターは動きました。

snddata=[0x01,0x06,0x00,0x7D,0x00,0x08,0x18,0x14]
この0x~~という表記が正しくないということでしょうか?

詳しい方いらっしゃいましたらお力をお借りしたいです。

ちなみにモーターはオリエンタルモーターのRK2シリーズを使用しております。

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

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

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

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

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

mappys

2021/12/03 05:47

taront様 回答ありがとうございます。 はい、 send_binary =bytes(senddata)とし ser.write(send_binary) としてもダメでした。
guest

回答1

0

ベストアンサー

まずはそのモータドライバのマニュアルを読んで、バイナリで通信するのかテキストで通信するのかを確認しよう。
テキスト(文字列)で通信するところにバイナリデータを送信しても動きません

投稿2021/12/03 05:08

y_waiwai

総合スコア87800

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

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

mappys

2021/12/03 05:48

y_waiwai様 回答ありがとうございます。 テキストではなくバイナリでの通信です。ご指摘の通り ser.write() では文字列しか送信できないみたいですね。 バイナリで送信できる方法を探してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問