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

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

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

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

Q&A

0回答

866閲覧

タッチセンサを使用し動作の制御を行いたい。

1617028s

総合スコア5

Python

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

0グッド

0クリップ

投稿2020/10/02 05:53

ラズベリーパイを使用し,下記のタッチセンサのプログラムを動作させたいプログラムに加えて任意で起動と停止を行うようにしたいのですがうまくいきません。現在エラーは発生していないのですが任意での操作はできていません。どうプログラムを修正を行えばよろしいのでしょうか。

try: while True: accel_data = mpu.get_accel_data() #x_angle = util.get_x_rotation(accel_data['x'], accel_data['y'], accel_data['z']) y_angle = util.get_y_rotation(accel_data['x'], accel_data['y'], accel_data['z']) if y_angle < normalMin: motor.setDirection("stop") else: motor.setDirection("forward") if y_angle >= mediumMin and highMin > y_angle: motor.setPower("MEDIUM") elif y_angle >= highMin: motor.setPower("HIGH") if stopped and runtime > 0: sys.stdout.write(blanks) sys.stdout.write("Timer stopped: %i seconds\r" % runtime) sys.stdout.flush() elif stopped: sys.stdout.write(blanks) sys.stdout.write("Touch enter to start!\r") sys.stdout.flush() else: sys.stdout.write(blanks) sys.stdout.write("Timer running: %i seconds\r" % (runtime + (time.time() - start))) sys.stdout.flush() time.sleep(0.1) #sys.stdout = open("log.txt" , "w") #print("Y_ANGLE", y_angle) #and ("X_ANGLE", y_angle) #print("Y", y_angle) #print( now) #print(now.date()) now = datetime.datetime.now() print(now.strftime("\t %Y-%m-%d \t %H:%M:%S.%f")) #print ("%0.2d:%0.2d:%0.2d" % (now.hour, now.minute, now.millis)) #print(millis) #print(process_time) #print( x_angle) accel_data = mpu.get_accel_data() print("X", accel_data['x']) #print(accel_data['y']) print("Y", y_angle) print("Z", accel_data['z']) gyro_data = mpu.get_gyro_data() print("Gx", gyro_data['x']) print("Gy", gyro_data['y']) print("Gz", gyro_data['z']) # #print("Ax:{:.4f}\tAy:{:.4f}\tAz:{:.4f}\tGx:{:.4f}\tGy:{:.4f}\tGz:{:.4f} ".format(accel_data['x'], accel_data['y'], accel_data['z'], gyro_data['x'], gyro_data['y'], gyro_data['z'])) elif stopped: sys.stdout.write(blanks) sys.stdout.write("Touch enter to start!\r") sys.stdout.flush() else: sys.stdout.write(blanks) sys.stdout.write("Timer running: %i seconds\r" % (runtime + (time.time() - start))) sys.stdout.flush() time.sleep(0.1) finally: #self.stop() sys.stdout.close() motor.clean() time.sleep(0.5) atexit.register(exitHandler)

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

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

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

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

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

y_waiwai

2020/10/02 05:57

できない、とはどうなるんでしょうか
1617028s

2020/10/02 05:59

タッチセンサーでの任意での起動 停止ができておらず、タッチセンサーがただ反応しているだけという状況です。
y_waiwai

2020/10/02 06:04

このコードの中で、タッチセンサの検出はどの部分でしょうか
1617028s

2020/10/02 06:06

if stopped and runtime > 0: sys.stdout.write(blanks) sys.stdout.write("Timer stopped: %i seconds\r" % runtime) sys.stdout.flush() elif stopped: sys.stdout.write(blanks) sys.stdout.write("Touch enter to start!\r") sys.stdout.flush() else: sys.stdout.write(blanks) sys.stdout.write("Timer running: %i seconds\r" % (runtime + (time.time() - start))) sys.stdout.flush() time.sleep(0.1) この部分です。
y_waiwai

2020/10/02 06:08

そこはメッセージ出してるだけにみえますが。
1617028s

2020/10/02 06:10

import sys import time import touchphat stopped = True runtime = 0 @touchphat.on_touch("Enter") def start_stop(): global start global stopped global runtime if stopped: start = time.time() stopped = False else: stopped = True runtime += (time.time() - start) @touchphat.on_touch("Back") def reset(): global runtime runtime = 0 blanks = " " * 25 + "\r" try: while True: if stopped and runtime > 0: sys.stdout.write(blanks) sys.stdout.write("Timer stopped: %i seconds\r" % runtime) sys.stdout.flush() elif stopped: sys.stdout.write(blanks) sys.stdout.write("Touch enter to start!\r") sys.stdout.flush() else: sys.stdout.write(blanks) sys.stdout.write("Timer running: %i seconds\r" % (runtime + (time.time() - start))) sys.stdout.flush() time.sleep(0.1) except KeyboardInterrupt(): sys.exit() これがタッチセンサのプログラムです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問