質問編集履歴

3

わかりやすく

2019/08/18 03:26

投稿

HiroPokeHero
HiroPokeHero

スコア45

test CHANGED
@@ -1 +1 @@
1
- tkinterを使って、root.after(10, readSerial)によってシリアル信号を受け取る
1
+ tkinterを使って、root.after(10, readSerial)によってシリアル信号をサイクリックに受け取る
test CHANGED
File without changes

2

進捗更新

2019/08/18 03:26

投稿

HiroPokeHero
HiroPokeHero

スコア45

test CHANGED
File without changes
test CHANGED
@@ -519,3 +519,107 @@
519
519
  Arduino1.8.9
520
520
 
521
521
  Python.Python.3.7.4
522
+
523
+
524
+
525
+ ### **追記8/17**
526
+
527
+ 現在のスクリプトを記載します。
528
+
529
+ ボタンが2つあって、
530
+
531
+ 1つがstartSerial()とstopSerial()を割り当てています。
532
+
533
+ startSerial()によって受信開始(とうより読み込み開始?)して、
534
+
535
+ 出力。
536
+
537
+ その途中にstopSerial()のボタンを押すと中断するようにしたい。
538
+
539
+
540
+
541
+ しかし、現状では受信開始してしまうとコントロールができなくなり、
542
+
543
+ ボタンを押すことができません。
544
+
545
+
546
+
547
+ ```ここに言語を入力
548
+
549
+ ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
550
+
551
+
552
+
553
+ def readSerial(figS):
554
+
555
+ global ser, fig
556
+
557
+ print("a")
558
+
559
+ '''
560
+
561
+ i = 0
562
+
563
+ b = True
564
+
565
+ ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
566
+
567
+ while b == True:
568
+
569
+ data = ser.readall()
570
+
571
+ print(data)
572
+
573
+ i = i + 1
574
+
575
+ if (i>100):
576
+
577
+ b = False
578
+
579
+ ser.close()
580
+
581
+ '''
582
+
583
+ #ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
584
+
585
+ if flgS == True:
586
+
587
+ while True:
588
+
589
+ rxData = ser.readall()
590
+
591
+ rxData2 = rxData.strip().decode('utf-8')
592
+
593
+ print(rxData)
594
+
595
+ if len(rxData) > 0:
596
+
597
+ txt.insert('end', rxData2)
598
+
599
+ break
600
+
601
+ root.after(10, readSerial(True))
602
+
603
+
604
+
605
+
606
+
607
+ def startSerial():
608
+
609
+ print("Start serial")
610
+
611
+ #ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
612
+
613
+ readSerial(True)
614
+
615
+
616
+
617
+ def stopSerial():
618
+
619
+ print("Stop serial")
620
+
621
+ #ser.close()
622
+
623
+ readSerial(False)
624
+
625
+ ```

1

改善

2019/08/17 02:37

投稿

HiroPokeHero
HiroPokeHero

スコア45

test CHANGED
File without changes
test CHANGED
@@ -462,6 +462,38 @@
462
462
 
463
463
 
464
464
 
465
+ ただ、シェルに文字が出てきません。
466
+
467
+ ただ、改行はしているみたいです。
468
+
469
+ 上記のプログラムでは画面がスクロールされている状態です。
470
+
471
+
472
+
473
+ スクリプト内部の出力を、print(rxData2)からprint(rxData)にすると
474
+
475
+ バイナリの何かしらを受信していることはわかります。
476
+
477
+ 送信と受信のタイミングでしょうか?
478
+
479
+ ※ちなみにシリアルのボーレートはすべて9600に統一していますので、
480
+
481
+  スクリプトの書き方が悪いように推測しています。
482
+
483
+ ```ここに言語を入力
484
+
485
+ b''
486
+
487
+ b''
488
+
489
+ b''
490
+
491
+ b''
492
+
493
+ b''
494
+
495
+ ```
496
+
465
497
 
466
498
 
467
499
  ### **試したこと**