2022年2月 この範囲を時系列順で読む この範囲をファイルに出力する
ANSIエスケープシーケンスのチラつきの原因がわかりました。
行削除です。コードは'\033[2K'。
上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
いやはや。
#RaspberryPi #Python
行削除です。コードは'\033[2K'。
上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
いやはや。
#RaspberryPi #Python
ANSIエスケープシーケンスですが、RaspberryPi上のPythonでは期待する動画が出来ないかもしれません。形にはなるのですがチラつきます。
開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
細かいことはともかく、これではダメです。
動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
基本的な動作だけに余裕を持って動いてくれないと困ります。
RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。
#RaspberryPi #Python
開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
細かいことはともかく、これではダメです。
動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
基本的な動作だけに余裕を持って動いてくれないと困ります。
RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。
#RaspberryPi #Python
ANSIエスケープシーケンスを研究中ですが表示がおかしい。
コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
さて・・・
どうやらバッファの挙動によるものでした。
printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。
単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。
pythonのprintですと、
print('表示したい文字列', end='')
とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。
print('表示したい文字列', end='', flush=True)
最後に flush=True を加えるのです。
こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。
自由度が広がりました。
#Python
コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
さて・・・
どうやらバッファの挙動によるものでした。
printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。
単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。
pythonのprintですと、
print('表示したい文字列', end='')
とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。
print('表示したい文字列', end='', flush=True)
最後に flush=True を加えるのです。
こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。
自由度が広がりました。
#Python
LED-BARのケースで使う受けを作っています。
3x6の合板を2枚使い切りの切り出し。
接着中で写真に入っていないのもありますが、切っても切っても終わらない。

上に乗っているようなのを12個作ります。
一見少なく感じますが、この量で合板1枚分。
切ってはバリ取り、切ってはバリ取りの繰り返し。
小さい短冊でも60枚ですから、そう簡単には終わらない。
今日はここまで。
日中は切った貼った。
陽が暮れたらソースコードを書き書き。
アホですわ(笑
#ガチ工作
3x6の合板を2枚使い切りの切り出し。
接着中で写真に入っていないのもありますが、切っても切っても終わらない。

上に乗っているようなのを12個作ります。
一見少なく感じますが、この量で合板1枚分。
切ってはバリ取り、切ってはバリ取りの繰り返し。
小さい短冊でも60枚ですから、そう簡単には終わらない。
今日はここまで。
日中は切った貼った。
陽が暮れたらソースコードを書き書き。
アホですわ(笑
#ガチ工作
ANSIエスケープシーケンスを組んでて思ったのですが、大昔のN-BASICみたいだなと。書式こそ違いますが、COLOR命令やLOCATE命令を思い出す風味です。N-BASICリアル世代。
ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。
#RaspberryPi
ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。
#RaspberryPi
またしても現場にて長い待ち時間。
DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。
#[RaspberryPi] #[Python]
DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。
#[RaspberryPi] #[Python]
2つ目のNICも動作OKと思われます。
将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。
#[RaspberryPi]
将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。
#[RaspberryPi]
現場での長い待ち時間でArt-Netのアドレスを自動設定するスクリプトを書いてみました。動作確認は自宅でないと出来ませんが、設定ファイルには適切に書き込みがされていると思います。OEMコードは聞き馴染みがないメーカーさんのを拝借してテストを進めます。
RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。
追記
自宅で動作試験とバグ取り。問題なし。
Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。
#[RaspberryPi]
RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。
追記
自宅で動作試験とバグ取り。問題なし。
Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。
#[RaspberryPi]
2022年1月 この範囲を時系列順で読む この範囲をファイルに出力する
Art-Netを扱うためにはNICのアドレスを設定しなければなりません。
手計算した値をOSに手打ち設定をしてもいいのですが、どうせなら自動設定にしたい。NICのMACアドレスとArt-NetのOEMコードがわかれば人が判断する要素は無く計算も単純なのですから。
アプリケーションはPythonで書くつもりですが、OSの自動設定はbashスクリプトで書くのが自分流です。なぜなら、PythonでOS設定を変更すると結局はbashコマンドを発行するのですから同じ事です。なんでもかんでも高級言語を使えばいいってもんでもないんです。
やることは、MACアドレスを文字列で取得し、必要な部分を切り出し、一部の文字列を数値に変換して計算し、IPアドレス起こしてコマンド文字列を作って実行するだけです。Linux(UNIX)は標準コマンドだけでこういったスクリプトを簡単に作れます。
わたしはググってコピペするだけですけどね。
#[Art-Net] #[RaspberryPi]
手計算した値をOSに手打ち設定をしてもいいのですが、どうせなら自動設定にしたい。NICのMACアドレスとArt-NetのOEMコードがわかれば人が判断する要素は無く計算も単純なのですから。
アプリケーションはPythonで書くつもりですが、OSの自動設定はbashスクリプトで書くのが自分流です。なぜなら、PythonでOS設定を変更すると結局はbashコマンドを発行するのですから同じ事です。なんでもかんでも高級言語を使えばいいってもんでもないんです。
やることは、MACアドレスを文字列で取得し、必要な部分を切り出し、一部の文字列を数値に変換して計算し、IPアドレス起こしてコマンド文字列を作って実行するだけです。Linux(UNIX)は標準コマンドだけでこういったスクリプトを簡単に作れます。
わたしはググってコピペするだけですけどね。
#[Art-Net] #[RaspberryPi]
本業も工作も取り急ぎの課題が無い状況です。精神的に追われる感覚が無いのは久しぶりです。
Art-NetをRaspberryPiで扱う研究の準備は進めていますが、気持ちとしてはユッタリしております。
ヒマってことは稼ぎが無いことでもあるので、あまり良い状況でもないのですが・・・
Art-Netを扱うRaspberryPiでは同一ゼグメントのIPアドレスを振った2つ以上のNICを別ゾーンとして扱うことが肝になります。入力のArt-Netと出力のArt-Netを1つのRaspberryPiで扱うには必要条件です。
この状態はサーバーやネットワークを複雑に組むと発生し得ることなので可能だと思うのですが、私が適切な設定やプログラミングを出来るかは別問題なので、その研究というか勉強をするワケです。
となると、実験用に複数のRaspberryPiが必要です。
1台は公式7吋モニタで組んだ方が後々の表示作りで都合が良いと思いますが、他はモニタを持たずにSSHでアクセス出来れば済むので、数台をまとめられる箱もあるといいですね。
この様な箱は既製品にもあるにはありますが、RaspberryPiを束に出来るだけで、電源が考慮されいないだけでなく組んでしまうとGIPOに触りにくい状態になります。これじゃダメです。
作るのも面倒なので改めて探してはみますが、キレイにカットしてキレイに塗装した1枚板に必要な物を取り付ければそれでもいいのかな?とも思っております。
#[Art-Net] #[RaspberryPi]
Art-NetをRaspberryPiで扱う研究の準備は進めていますが、気持ちとしてはユッタリしております。
ヒマってことは稼ぎが無いことでもあるので、あまり良い状況でもないのですが・・・
Art-Netを扱うRaspberryPiでは同一ゼグメントのIPアドレスを振った2つ以上のNICを別ゾーンとして扱うことが肝になります。入力のArt-Netと出力のArt-Netを1つのRaspberryPiで扱うには必要条件です。
この状態はサーバーやネットワークを複雑に組むと発生し得ることなので可能だと思うのですが、私が適切な設定やプログラミングを出来るかは別問題なので、その研究というか勉強をするワケです。
となると、実験用に複数のRaspberryPiが必要です。
1台は公式7吋モニタで組んだ方が後々の表示作りで都合が良いと思いますが、他はモニタを持たずにSSHでアクセス出来れば済むので、数台をまとめられる箱もあるといいですね。
この様な箱は既製品にもあるにはありますが、RaspberryPiを束に出来るだけで、電源が考慮されいないだけでなく組んでしまうとGIPOに触りにくい状態になります。これじゃダメです。
作るのも面倒なので改めて探してはみますが、キレイにカットしてキレイに塗装した1枚板に必要な物を取り付ければそれでもいいのかな?とも思っております。
#[Art-Net] #[RaspberryPi]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108