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

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

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

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

Processing

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

Q&A

解決済

1回答

909閲覧

Processing Pythonのエラーについて

kyousukelin

総合スコア30

Python

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

Processing

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

0グッド

0クリップ

投稿2018/07/03 05:34

Processing3.3.5でPythonを用いて以下のようなプログラムを実行しました.

Python

1# シリアル通信ライブラリ追加 2add_library('serial') 3 4# 最低・最大温度 5min_temp = 20 / 0.25 6max_temp = 38 / 0.25 7 8def setup(): 9 # ウィンドウタイトルと画面サイズ設定 10 size(384 * 2, 384) 11 frame.setTitle("GridEye View") 12 13 14 # シリアルポート初期化 15 print Serial.list() 16 portIndex = 3 # 環境に合わせて変更してください 17 print "Connecting to", Serial.list()[portIndex] 18 global myPort 19 myPort = Serial(this, Serial.list()[portIndex], 115200) 20 21 # ピクセル温度データ初期化 22 global pixel_buffer 23 pixel_buffer = [0 for i in range(64)] 24 25 # 8x8イメージ作成 26 global pg 27 pg = createGraphics(8, 8) 28 29 # グラデーションテーブル作成 30 global gradient 31 gradient = [] 32 last_c = color(6, 3, 25) 33 base_c = [color(51, 24, 131), 34 color(163, 38, 135), 35 color(210, 38, 41), 36 color(239, 121, 37), 37 color(250, 216, 54), 38 color(254, 247, 210)] 39 for c in base_c: 40 for i in range(15): 41 # 中間色を追加 42 inter = lerpColor(last_c, c, .0625 * (i + 1)) 43 gradient.append(inter) 44 last_c = c 45 # print len(gradient) 46 # print gradient 47 48def draw(): 49 global pixel_buffer 50 # ピクセルデータ受信 51 while myPort.available() >= 130: 52 # ヘッダチェック1 53 if myPort.read() == 0x55: 54 # ヘッダチェック2 55 if myPort.read() == 0xaa: 56 # 128バイト分読み出し 57 for i in range(64): 58 # 1ピクセル2バイトの整数型で下位バイト、上位バイトの順で送られてくる 59 lo = myPort.read() 60 hi = myPort.read() 61 temp = (hi << 8) | lo 62 pixel_buffer[i] = temp 63 print pixel_buffer 64 break 65 # 8x8イメージ更新 66 pg.beginDraw() 67 for y in range(pg.height): 68 for x in range(pg.width): 69 # 温度を色に変換 70 c = temp2Color(pixel_buffer[((8 - y - 1) * 8) + (8 - x - 1)]) 71 # ピクセル設定 72 pg.set(x, y, c) 73 pg.endDraw() 74 75 # ウィンドウの左側に転送 76 half_width = width / 2 77 image(pg, 0, 0, half_width, height) 78 79 # ウィンドウの右側にグリッド状に描画 80 rw = half_width / 8 81 rh = height / 8 82 padding = 4 83 fill(15) 84 noStroke() 85 rect(half_width, 0, half_width, height) 86 for y in range(pg.height): 87 for x in range(pg.width): 88 fill(pg.get(x, y)) 89 rect(half_width + (rw * x) + padding, (rh * y) + padding, 90 rw - (padding * 2), rh - (padding * 2), 5) 91 92def temp2Color(temp): 93 i = map(constrain(temp, min_temp, max_temp), 94 min_temp, max_temp, 0, len(gradient) - 1) 95 return gradient[int(i)]

そうすると以下のようなエラーが発生しました.

processing.app.SketchException: AttributeError: 'NoneType' object has no attribute 'setTitle' at jycessing.mode.run.SketchRunner.convertPythonSketchError(SketchRunner.java:240) at jycessing.mode.run.SketchRunner.lambda$2(SketchRunner.java:119) at java.lang.Thread.run(Thread.java:748)

これはどのようにプログラムを直せば解決するのでしょうか?
ちなみにframe.setTitle("GridEye View")のframeをsurfaceに変えてみてもダメでした.

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

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

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

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

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

guest

回答1

0

ベストアンサー

以前には動いていた frame.setTitle()が動かなくなってるようですよ。

frame.setTitle(string) didn't work anymore

投稿2018/07/05 08:03

tatamyiwathy

総合スコア1039

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問