Archive for the ‘日記・コラム・つぶやき’Category

ひかり回線のGWとRaspberry Pi

連休が始まって間もなくネットワークの接続が不安定なので見ていたら、ひかり回線のGW(Gateway)機器が電源断-再起動を繰り返していた。サポートに電話したら、交換品を送ってきてくれた。これでネットワークは安定したが、nWFHS (nNEZOU Work From Home System)のStatus IndicatorのRaspberry Pi (Zero WH)がつながらなくなった。GWのせいかわからないが、ホストからいくらpingを打っても届かない。これで数日悩んでいる。Raspbrry Pi 4でRaspberry Piのお作法通りに固定IPの設定をして、このSDカードをRaspberry Pi Zero WHに差し込むと全くネットワークから見えなくなる。

2022/05/04
んねぞう

10年選手のCPU

私のパソコンは20世紀に自作したミニタワーを換骨脱胎、既に初めからのパーツはなく中身はケースも含め2~3回は完全に入れ代わっている代物だ。現在のCPUは第3世代Core i5だが、レスポンスについてはこれまであまり不満を感じていなかった。Officeソフトの起動では会社から支給されているCore i5の第7世代を積んだものよりも早いくらいだ。ただしデータはSSDではなくHDDにあるので回転が止まっている場合はSpin upに要する時間はあるが、既にアクセスして回転している場合は快適である。

最近YouTubeでいわゆる「癒し」の動画を見ることがある。例えば、雨の公園とか、清らかな水が流れている川をひたすら映しているものとか。ASMR(Autonomous Sensory Meridian Response)というものだそうだが、私も良く行く庭園公園を、機会があったらそういう動画を撮って見たいと思っていた。昨日、黄金週間の初日は午後から強めの雨が降り、良い機会だったので傘と三脚を携えて30分ほどの動画を撮影して来た。フルサイズ一眼レフの動画撮影機能を使い、比較のためにiPhoneSE(2)でも撮影した。撮影したは良いが、自宅に帰って動画編集ソフトを使ってそれなりに形を整えていざエンコードし始めたら、スピードが遅い遅い。10秒分のエンコードに22秒くらいかかっている。

ビデオのキャプチャ。こういう風景を定点から延々と流す訳だ

タスクマネージャで見るとCPU使用率は100%に張り付いているし、GPU(Geforce GTX 750Ti)は全然働いていないし、温度は全コア80℃超という、ベンチマークテスト以外今まで見たことのない温度になっているし。

このCPU(Core i5 3570K)はいつ発売されたんだっけ、と思ってWebで検索してみたら、価格比較サイトにはリテール版が2012年4月24日に登録されたとある。ちょうど10年になる訳だ。進歩の早いこの世界で10年現役というのはちょっとしたものではないか。

次のOSはWindows11で、今のシステムはこの移行の条件を満たしていないので、この1、2年の間に大きな入れ替えが必要になる。少なくともMother Board、Memory、そしてCPUは入れ替えが必要なので、費用を考えると、これからは自作ではなくてベアボーンか市販の製品のカスタマイズということにした方が安上がりなのかも知れないと思っている。

2022/04/30
んねぞう

以下は備忘のために、現在のCPUと、現時点での候補CPUのCinebench 23のスコアをいくつか残しておく(Multi/Single)
Core i5 3570K : 2645/735
Core i3 10110U : 2327/1028 (現在販売中でMultiのscoreで近しいもの…2019/8発売)
Ryzen 7 Pro 5750GE : 14350/1538
Ryzen 5 Pro 5650GE : 11196/1504
Celeron N4020 : 720/400 (2022/7購入のノートPC追記)
Core i 5 7200U : 1927/806
Core i 7 13700 : 27770/2107
N100 : 2906/924

芸能/芸術の発祥地について-津軽三味線に思う

私の所属する文芸同人誌「澪」の第19号(3月発刊予定)の原稿を先日提出した。第15号から連続して、津軽を題材としてフォトエッセーを発表させて頂いているが、その中で津軽三味線について触れることが多かった。

津軽三味線は津軽の風土、それが作り出した津軽人の独特な気質と相まって、「神原の仁太坊」という、津軽人としての気質を人一倍備えた人間が、失明という逆境に抗って、自身の芸術的才能によって創始したものを、彼に続く弟子達が辛辣な聴衆と火花を散らしながら、民謡の伴奏から独立したジャンルとして確立してきたものと理解している。それが、これまでと全く違う奏法、興行の仕方の三味線芸術成立の素となった。当然、その芸術は、「津軽」「津軽の気候風土」「津軽人」というものが色濃く投影されて成立しているものであり、特に津軽三味線は「楽しむ」ためではなく、「生きる」ためのものであり、盲人という、当時を生きる人間にとって強烈なハンディを持った人たちが生きて行く数少ない手段の一つであったということに注意しなければならない。冬の雪降るさ中、晴眼者、多くは妻、子供、あるいは弟子に手を引かれながら門付けをして少ない報酬を得て旅をする、また演芸会では聴衆の容赦ないヤジに耐えながら演奏をする、そうしてわずかな生活の糧を得て行く中で数えきれない人々が命を落としていったことだろう。津軽の三味線弾きは、「なりたくて」なったのではなく「それしかなかった」というDesparateな選択でしかなかった。そういう状況に追い込まれ、生きて行くことは、如何に演奏で聴衆(多くは農民)の度肝を抜いて、民謡の歌い手でなく伴奏とされている三味線に目を向けさせるかという「闘い」であった。

そのような経緯で成立した津軽三味線だが、現在は「……流」という流派が派生し、家元制度に基く津軽三味線教室も盛んだ。また、三味線の演奏者も多く輩出し、メディアへの露出も広がっており、中にはスター的な演奏者もいるようだ。しかし、そのような商業化と共に、その中心は東京に移りつつあり(もちろん、津軽三味線の本拠地である津軽に留まって活動をしている演奏家も多く存在すると思う)、だんだんソフィスティケートされつつあるように感じる。芸術の進化の形として、私はそれがいけないと言いたい訳ではない。芸術は聴衆を心地よくさせ、感動を与えるものであって、その求めるものが変わって来たら変わって当然だと思う。そうでなければその芸術は見捨てられてしまうから。しかし、私の中の「津軽三味線」は、長い地吹雪の冬、雪解けで花々が一斉に咲き乱れ、鳥々が鳴き交す春、収穫の喜びに村が湧きたつ秋、そういう自然と生活、津軽人が喜怒哀楽をぶつけ合う坩堝の中で、三味線で「生きる」こと、もっと生々しくいえば「食う」ことに、それこそ命をかけた三味線弾きの叩きだしたもの、というものである。だから、現代の津軽三味線は、私の中では「津軽三味線」ではなく、「第二次津軽三味線」という、明確な線が引かれている。私はこれを他人に押し付けるつもりはない。私の理解を披歴しているだけであり、第二次津軽三味線は堕落している等と言う積りもない。しかし一面、これは津軽三味線だけの問題ではなく、小島一郎の写真のように、津軽に根差した写真で中央に進出して活動した結果、その基盤となる津軽から乖離して行くという共通のジレンマがあるように思えるのだ。繰り返しになるが、津軽三味線が津軽の基盤から離れて行くのをいけないと言っているのではない。

これまで「澪」のフォトエッセーを書く度に津軽三味線について考えてきたが、このような経路を辿って来た帰結として、私は現代の津軽三味線とは多少の距離を置くことになるだろう。

津軽三味線の成り立ちについて数少ないながらも何冊かの書籍を読んで、上記のような結論を持つに至った。その中で私の知識の中核をなした本は,「 定本 弦魂津軽三味線」 第3刷, 大條 和雄,弘前市, 津軽三味線歴史文化研究所, 2009年7月である。

著者の大條氏は2020年4月に逝去されたと聞く。ご冥福をお祈り致します。

岩木川の神原の渡し跡を示す石碑と、大條氏の揮毫による仁太坊の石碑。今は神田橋という立派な橋がかかっている

「澪」の津軽編は、今号か、次の20号で終わりにして、次はインド物を計画している。

2022/02/02
んねぞう

澪 読後感

私の所属する文芸同人誌「澪」の第18号が9月に発行され、同人同士で読後感を交換することが行われている。本来はFace to Faceで合評会を行うのだが、新型コロナウイルス感染症の拡大以来、安全のために中止し、Mailでの交換となっているのが残念だ。私は2年前、加入した初回だけこの合評会に出席させて頂いたきりで、未だ一度もお会いしていない同人もいたりする。

先日、この18号の全員の読後感が纏められたものが編集長より全員に送られてきた。それを読んで今回思ったのは、私の、他の同人の作品の読みの浅さだ。ある人は他の同人の作品について、より深く、本質を突いた論評をしているのに対して、私は、その作品の構造、背景を理解したいと思うあまり、論理的な筋の追跡で終わってしまっている。演劇で言えば舞台の書割の良し悪しばかりに目が行って、役者の動きや、それで何を表現しようとしているか、それについて自分は何を思ったかという視点からの検討までに至っていないということだ。

やはりぽっと出の新入りの同人では底が知れている訳で、他の同人のやりようを見ながら自分も少しずつそういう態度を身に着けていくしかあるまいと思っている。しかしこれは、私の今までの生き方からしてなかなか身につかないできたもののひとつだ。形から入るタイプだが、その本質に到達できずに入り口辺りでうろうろしていると言う…

2021/10/23
んねぞう

んねぞう 在宅勤務システム(nWFHS)

システム図を改訂

改訂点

  1. Raspberry Pi 4を追加
  2. Status IndicatorをLCDに変更

2021/10/02
んねぞう

ラズパイキーボード

Raspberry Pi公認キーボードを買ってラズパイ 4Bに繋いだ。以前非常用と割り切って小さいキーボードを買って繋げていたが、nWFHSのコントロール用として常用し始めるとやはりキーピッチの小ささと配置になじめず(特にtabキーの異様な小ささとCtrlキーの場所)、他のキーボードを物色し始めていた。Raspberry Pi 400が欲しいなーと思って調べていた時に、公認のキーボードがあり、また今持っている小さいキーボードとほぼ同じ値段にもかかわらずUSB Hub機能もついていたりで、興味をそそられた。ひらがなが刻印されているのも助かる。色はRaspberry Piのトレードカラーの紅白と黒の2種類が出ていて、最後まで迷っていたが、机上の色のコーディネーション(?)上、メインのキーボード、モニタが黒を基調としているので、黒を選んだ

早速繋いでみたが、当然ながら全く問題なし。Windows PCに繋いでしばらく文章を入力してみたが、ストロークが浅くまあまあ値段なりのタッチだ。ただし、微小な筐体の歪みがあるのか、片隅が浮いて、キーを打つたびにかたかた振動がするのが気になる。ラズベリーパイが印刷してあるキーを押したらWindowsのスタートメニューが起動したので、Windowsキーと同じであることが確認できた。これでWindows PCに何か起きた時にも非常用、持ち運び用として使える

セットアップした状態。右の白い箱はRaspberry Pi Picoを入れたFliskのケースで、Mouse Jigglerを動かしている

2021/10/02
んねぞう

トラブルは続けてやってくる

  1. nWFHS

nWFHS (nNezou Work From Home System – んねぞう在宅勤務システム)の主要機能であるRaspberry Pi ZeroによるLED表示ができなくなった。止せば良いのに Pi Zero のアップデートをしたのが悪いらしく、これまでうまく行っていた環境が壊れてしまい、再インストールしても後の祭り。原因を究明する気力もないが、さりとて月曜日からの仕事にないと困るので、下記のように考えた。

LED表示はハードルが高いので、以前ギブアップして取っておいた3.5インチ液晶を表示用として使う。

方法 1 コントロールセンターであるRaspberry Pi 4からZeroにVNC接続して、「仕事中」、「会議中」の旨表示をしたmp4動画ファイルを作成して、vlcプレーヤーで表示させる。

表示できたは良いが、Zero側のCPU負荷が100%に張り付いていて、VNC接続したPi 4側からの停止コマンドを受け付けない。表示を切り替えるためにタスクマネージャーを呼び出してプロセスを停止させる、というなんともダサい恰好になる。→ 断念

方法 2 Windows PCのアニメーション付pptを作成し、Motion GIFで保存し、Zero側で表示させる。pptでGIFを書き出したが、Motion GIFではなかった… → 断念

方法3 方法2のpptで作ったものをjpeg化した静止画をZero備え付けのイメージビューワで全画面表示させる → 一番つまらないが、背に腹は代えられないので採用。下の写真参照。Pi 4からのVNC接続だけでは一定時間経過するとスクリーンセーバーが働いて画面が暗くなるので、Picoで作ったMouse JigglerをコントロールセンターのPi 4に接続して、定期的にマウスポインタを1pxずつ動かすことでスクリーンセーバが働かないようにした。こういう本筋でないところで頭を使うことも多い。なんだか電子工作から遠くなってしまったのが悲しい

2. 中華アンプ壊れた

これまで使っていた中華アンプがお亡くなりになった。調べてみたら2017年の8月に3,000円程度で買ったのが4年間保ったことになるので十分元は取れた。それまでの間、故障したと勘違いして買っていて、そのまま保管していた別のアンプLP-2040+というものがあったので交換した。

またいたずら心を出して分解を始めたのだが、前面と裏面のパネルの固定に特殊なねじが使われていて外せないので、本体とパネルの間にマイナスドライバをねじ込んで、パネルを破断させるという暴挙に出た結果が下の写真。

なぜこんなことをしたのかというと、部品を回収して電子工作に使えないかという下心から。基板を引き出してみた

簡素な基板。Lepyのロゴの上あたりの裏側にトランジスタ(FET?)が張り付けてあり、アルミの筐体と直接接触して放熱されるようになっていた

20kΩのボリュームが1個と100kΩのボリューム2個が、つまみ付きでゲットできた。何に使うか知らないが。また、ジャック類も何かに使えそう。コンデンサとコイルもあるが、これは私にはハードルが高そう

この破壊工作の際に金属の縁で指に小さな切り傷を作ってしまった

本日の教訓

  1. うまく動いているシステムには手を付けるな
  2. 金属をねじ切った後、ケガに注意

2021/09/26
んねぞう

Mouse Jiggler

パソコンで一定時間操作がないとスクリーンセーバーが作動して、いちいちパスワードを入れないと作業途中の画面に戻れないので面倒な思いをしている。YouTubeを見ていたら便利そうなツールの紹介があったので、Raspberry Pi Picoで作って見た。ソースは下記。社畜商会様に感謝

【ラズパイPico】マウス・キーボードを自動で操作してみた【Android対応】(社畜商会)

(上のリンクの文字列です) www.youtube.com/watch?v=19OxWjO6gqg

Raspberry Pi PicoをFliskのケースに入れた。中身を処理するのに10日かかった。お腹がおかしくなった

緩衝用、またやたら動かないようにエアキャップの切れ端で巻いてある。本当はグルーで固定すれば 良いのかもしれないが、生来の貧乏根性がそうさせない

例によりリスク回避のためにソースコードを掲載

Mouse Jiggler
# Raspy Picoを繋ぎ、ThonnyでCircuitPythonを選ぶ
# Firmware は https://circuitpython.org/board/raspberry_pi_pico/ から取得

import time
import usb_hid
from adafruit_hid.mouse import Mouse

m = Mouse(usb_hid.devices)

while True:
    m.move(x = 1)
    m.move(y = 1)
#    time.sleep(.04)
#    m.move(x = 1)
#    m.move(y = 1)
    time.sleep(3)
    m.move(x = -1)
    m.move(y = -1)
#    time.sleep(.04)
#    m.move(x = -1)
#    m.move(y = -1)
    time.sleep(3)

このプログラムはマウスポインタをx,y方向それぞれに1px移動して3秒待ち、そして元の位置に戻して3秒待つという動作を繰り返させる。実際のマウス操作には支障はない。微妙な位置にマウスがあってたまたま変なタイミングで押された場合はその限りではないが、あまり起こらないのではないかと思う

使うにあたっては、① PicoをPi 4に接続し、② Thonnyでプログラムを開いて実行させる必要がある。一度起動しておけばThonnyは終了しても大丈夫だが、C/C++で開発すれば実行ファイルを一回叩けば動くのだろうか…

2021/09/20
んねぞう

人生ゲームルーレット再来 – 再構築編

Raspberry Pi Picoによるしょうもないシステムの専用機化の第二弾として、Raspberry Pi 4Bで作った人生ゲームのルーレットを、専用機化するプロジェクト。前回より少し機能を追加してブレッドボード上に組み上げた

起動ボタンを追加した。予め参加者が好きな色を決めて専用に使うも良し、そういう取り決めもなく自由にその時の気分で押しても良し。サーボモータが動いている間はLEDが点灯するようにもした。以前買っていたRGB LEDを使って押されたボタンの色で光るようにしようと思ったが、見つからないのでおとなしく手持ちの黄色のLEDにした

ゲームを始めるにあたって、それぞれのボタンには秘密の隠し味が仕込んであって目の出方が微妙に違い、参加者がどのようなコースを選んだか、また何を狙うかによってその結果に差が出て来るかもしれない等と能書きをコクのも趣が増して良いかも知れない(プログラムを見れば内部のロジックは全く同じなのは一目瞭然だけどな)

リード線が林立して非常に複雑そうに見え、自分にして見れば大したことをやったという感覚を覚える。それは良い、達成感を持つのは精神衛生上非常に良いことである。しかし、しみじみと考えると、PicoのGPIO端子とGNDをプルアップ(ダウン?)抵抗で繋いで → 電源と繋げるスイッチ → GNDの回路を4つと、GPIO → 電流制限抵抗 → LED → GNDの回路があるだけで、使っている抵抗もちゃんと計算したものではなく、とりあえず唸るほどある330Ωの抵抗を場当たり的に使っていたり、実はそれほど大した回路ではないということに思いを致すことも人生で大切なことである。

※(ここまで書いてきて、ソースコードでGPIOピンの定義でPULL-UPオプションを指定していることに気がついて混乱して来た。本当にこのままで良いのだろうか…動いているからこの場では良しとすることにする)

以下はリスク対策のためのソース(Micropython)

# ボタンを押すとサーボーモータがランダムな値を示し、作動中はLEDが点灯
# Raspberry Pi Picoで作動
# MycroPython上で稼働
# Servo Motor GP0
# 緑GP3 赤GP7 黄GP11 青GP15
# LED GP28

from machine import Pin
import time
import math
import random

pin28 = machine.Pin(28, machine.Pin.OUT)

def servorandom_dice_Pico():
    # 可動範囲は0°~約120°(Duty比で2300~7530)
    # 1~10のサイコロの目をサーボモータで表示する

    pin0 = machine.Pin(0, machine.Pin.OUT)
    servo = machine.PWM(pin0)
    servo.freq(50)

    m = random.randint (6, 10)
    n = 1
    while n <= m:
        dice = random.randint (0, 9)
        pulse = (523 * dice + 2300)
        servo.duty_u16(pulse)
        time.sleep (0.3)
        n += 1

n = 1
while True:
    pin = machine.Pin(3)
    pin = machine.Pin(3, machine.Pin.IN,machine.Pin.PULL_UP)
    if pin.value():
        pin28.value(1)
        servorandom_dice_Pico()
        pin28.value(0)

    pin = machine.Pin(7)
    pin = machine.Pin(7, machine.Pin.IN,machine.Pin.PULL_UP)
    print ("Pin5 (R) : ", pin.value())
    if pin.value():
        pin28.value(1)
        servorandom_dice_Pico()
        pin28.value(0)

    pin = machine.Pin(11)
    pin = machine.Pin(11, machine.Pin.IN,machine.Pin.PULL_UP)
    print ("Pin10(Y) : ", pin.value())
    if pin.value():
        pin28.value(1)
        servorandom_dice_Pico()
        pin28.value(0)

    pin = machine.Pin(15)
    pin = machine.Pin(15, machine.Pin.IN,machine.Pin.PULL_UP)
    print ("Pin15(B) : ", pin.value())
    if pin.value():
        pin28.value(1)
        servorandom_dice_Pico()
        pin28.value(0)

    print (n ,"---- ")
    n += 1
    time.sleep (.2)

MicropythonとPythonではライブラリの提供の内容が違うのか?よくわからないながらコーディングをした。途中で関数の定義と言う、私にとっては大きな飛躍を遂げた(すぐ忘れるけどな)。電子回路でプルアップという考え方にも触れた。これで一つの山を越えた。あとは使い方を考えて基板と筐体をどうやって作るかだ

2021/09/12
んねぞう

Raspberry Pi Picoとやる気のない信号機再来

Raspberry Pi Picoによるしょうもないシステムの専用機化、その第一弾「やる気のない信号機」。

昔作ったPythonのソースコードは、先日のデスクトップパソコンのシステムのクラッシュと共に失われ、またRaspberry Pi model 4Bの中にもあったはずだが、タッチディスプレイを試してうまく行かなかったときに、システムのクリーンインストールを何回もしていて跡形もないので、仕方なく作り直した。他人の参考にはまったくならないが、今後こういったことのないよう、自分の安全のために末尾に置いておく。何となく前回とGPIOだかPWM(Pulse Width Modulation)のコーディングのお作法が違っているような気がするが、動けば良い。今回は、専用機化に向けて、ブレッドボード上でのシステムの復旧まで。基板が届いた後本格的に作業したい

こうして作って見たが、各色の輝度を合わせるためLED毎に電流制限抵抗の数とつなぎ方に見事なバラエティができた。私は今330Ωの抵抗しか持っていないので、緑は2本並列(165Ω)、黄色は2本直列(660Ω)、赤は3本直列(1kΩ)という組み合わせになった。上の絵を見てもらえば何となくわかるだろうか。誠に趣深いものがある。黄色いLEDのサイズが他と異なっていることと併せ、こうなると詫び寂びの世界と言っても過言ではないだろう(過言だろう)

この動画の場合、青(緑)はいやいやながら徐々に点灯するが、それなりに持続して(短いが)すっと消える。続く黄色は小粒だがぴりりと点灯して、青より頑張っていることをアピールする。最低なのが赤で、黄色が消灯するや否や嫌なことはさっさと片づけて、と一応立ち上がりはするが、最低限保持したら後はぴしゃりと消灯してできるだけエネルギーを温存しようとする。その後、青はもう自分の番が来たのかとばかりに面倒臭そうに少し間をおいてよっこいしょ、と腰を上げる…というイメージ

ソースコード中、dutyサイクルの範囲と増減の刻み値(iの値 – 明るくなったり暗くなったりの幅と増減の刻み幅)、sleepの時間設定( 明るくなったり暗くなったりの増減の刻みの保持時間や、青 – 黄 – 赤の移り変わりの間の取り方)で、いろいろなパターンを実現できる。ここでは赤色のLEDの処理の部分は徐々に減光する部分をあえて無効にしてあるが、コメントアウトしてあるだけなので必要であれば復活させられる

人それぞれのやる気のなさの表現に使えるかも知れない。やる気のなさコンテストでもやるか

専用機化にあたって、基板を注文して届くまでの間に本人のやる気が失せないかが問題だ

2021/08/14
んねぞう

from machine import PWM, Pin
import time

# Pin 7:Green 9:Yellow 10:Red (in GPIO nomenclature)

Green = PWM(Pin(7))
Yellow = PWM(Pin(9))
Red = PWM(Pin(10))

max_duty = 65025

while True:
    i=0
    while i<25:
        Green.duty_u16(int(max_duty*i/100))
        time.sleep(0.03)
        i+=0.4
    time.sleep(0.1)
    while i>=0:
        Green.duty_u16(int(max_duty*i/100))
        time.sleep(0.005)
        i-=0.5
#    Green.duty_u16(int(0))
    time.sleep(0.8)

    i=0
    while i<100:
        Yellow.duty_u16(int(max_duty*i/100))
        time.sleep(0.03)
        i+=2
    time.sleep(1)
    while i>=0:
        Yellow.duty_u16(int(max_duty*i/100))
        time.sleep(0.001)
        i-=1
#    Yellow.duty_u16(int(0))
#    time.sleep(0.3)

    i=0
    while i<=100:
        Red.duty_u16(int(max_duty*i/100))
        time.sleep(0.005)
        i+=2
    time.sleep(0.05)
    Red.duty_u16(0)
#    while i>=0:
#        Red.duty_u16(int(max_duty*i/100))
#        time.sleep(0.001)
#        i-=2
#    Red.duty_u16(int(0))
    time.sleep(1)

GPIO.cleanup(Red)
GPIO.cleanup(Yellow)
GPIO.cleanup(Green)