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

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
んねぞう

やる気のない信号機再来-完結編

前回のシステム再構築の後、基板が届いたので、早速基板上に作りつけた。配線が最もシンプルになるように考える。今回はクロスするようなところはなかったので幸いだった。ラズパイのピンソケットを付け、LED、抵抗を穴に差し込んで、足を折り曲げながらはんだ付けの順序を考えて行く

はんだ付けの後、どれ、と電源をつないでみたが、動かない。いろいろ調べてみたら、プログラム上のピン番号が違っていたのがわかり、はんだの付けなおし。また、Raspberry Pi Picoに接続するGPOIのピンが近接しすぎていてはんだの作業性が悪かったので、お互いに少し離したピンに接続。これでようやく動いた。(前の記事のプログラムは変更済)

さて、これをこれからどうしてくれよう。夜、寝室の暗がりの片隅でひたすら点滅している様子も、悪くはないかも知れない

2021/08/21
んねぞう

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)

Raspberry Pi Pico

Raspberry Pi Picoという、コンピュータというかコントローラが気になり、試しに一つ買って見た。プログラムの開発のためのプラットフォームではなく、開発したプログラムをロードして実行させるためのもので、安価でコンパクトだ。これまで作ったソフトとハードウェアを一体化して残しておくのにちょうど良いと思う。

大きさは昔の板ガムを短く太くした位の大きさで、この中にコンピューティングパワーを秘めていると思うと、すごい時代になったものだと思う。思い立ったらすぐ欲しくなる質なのでAmazonで860円で買ったが、安いところでは550円で買えるし。因みにピンヘッダは自分で付けた。この前に、Raspberry Pi Model 4B用の、GPIOとブレッドボード接続キットのピンヘッダのはんだ付けをやって失敗して駄目にしたり、不注意ではんだごてのこて先をキーボードに当ててしまい、一部溶かしてしまったことはあまり言いたくない。言いたくないが、万一この記事を見られた方がいたとすると、この写真のはんだの状態を見てコメントしたくなるだろうから、言い訳のために言っておくのだ

これを元にして、これまでブレッドボード上で作ってきたしょうもないものを専用機化して、保存しようという魂胆。そのために、基板やスイッチを買いそろえる計画である

2021/08/12
んねぞう

Raspberry piのタッチスクリーン化失敗

手持ちのRaspberry pi 4にタッチスクリーンをつければ、何か面白いことができるのではないかと考え、買ってみた。説明書が添付されているのだが、この説明書に従ってもタッチスクリーンが動作しない。何度もSDカードのフォーマットとOSのクリーンインストール、ドライバのインストールを繰り返しても動作しない。さらにWifiの固定アドレスの指定ができなくなって、Bluetoothのアイコンが表示されなくなってしまった。これで10日悩んでいる。説明書以外にもWebで調べたりYoutubeを見たりして試しているが、LCDでの画面表示はできるが、タッチスクリーンは頑として動こうとしない。もう何をどうやったか整理して書き記す気力もなくなった

本体と付属品。右手前の2つは、LCDディスプレイとRasbperry pi 3と4それぞれのHDMIジャックを連結するための基板。この他にドライバやドキュメントが入ったDVD、紙の説明書2枚

裸のRaspberry pi 4Bの基板に取り付けたところ

Physical Computing Lab社製の金属製のケースに入れても接続できる

画像がぼやけてわかりにくいかも知れないが、他の金属製のケースと違いケースにフィンがないため、本体とLCDの間に干渉物がなく、すっきりとTinyに収まってくれるのは気に入っている。本体とLCDはGPIOのソケット、HDMIの接続基板で固定され、またRaspberry piの基板上のUSBや有線LANのジャックとLCDの基板が接触する形になり、3点支持で結構安定している。ただし金属製の筐体のため、Wifiの電波が裸の時よりも弱くなって、今私が座っている場所ではほとんど使い物にならない。設計にあたっては開口部を大きく取るようにしたとのことだが、限界があるようだ

取り敢えず起動して、画面が映っているところ。Bluetoothのアイコンがタスクトレイからなくなっている

結局今のところ何の収穫も得られていない。逆に今回の策動で、64GBのMicro SDカード1枚、そしてUSB有線接続の小型キーボードがなぜか増えてしまっている。Bluetooth、Wifiの電波が頼りなく、そして固定アドレス設定がうまく行かない状態では、SSHやVNC接続もままならず、有線接続のキーボードが命綱なので、デスクトップPCのキーボードを差し替えながらではやっていられなくなって買ってしまった

今回の課題

  • タッチスクリーンが動作しない(根本的問題)
  • なぜかBluetoothのアイコンが消えた
  • 固定IPアドレス設定ができない
  • HDMIジャックが2つあるのに2つ目のモニタが使えない

それでもこのLCD付きの本体、電源アダプタ、マウス、キーボード一式をちょっとしたポーチに入れて持ち歩き、ひょいと取り出してセットアップして使い出す、というシーンを想像すると、こんな小さな筐体でそれなりのコンピューティングパワーを発揮することに周りがどう反応するか楽しみになる。実用上はどうかわからないけど

もう何度目になるかわからないOSのクリーンインストールをして、セッティングした写真を撮って、気が向いて再挑戦するまでこのLCDは保管だ

7月に私の属している写真クラブの写真展が予定されていて、会場にもし偶然HDモニタがあったら、これを使ってサイネージを行ってみるのも面白いかなと思っている

2021/06/12
んねぞう

新種の恐竜

先日USB ハブが壊れたので、部品を取るために分解していじっていたら、たまたまできた造形

名付けてウソベハブザウルス、学名genus USoBeHubsaurusとした。

可愛いらしい動きをつけてGifアニメにでもしようかと思っていたが、USBプラグのケーブルの可撓性に難があり、なかなか思った角度に首が固定できないので投げ出している

2021/06/12
んねぞう

眠れぬ夜に

正確に言うと眠れないのではなく、眠りが浅く夜中に何度か目覚めてしまう。目が覚めたときは無理をせず、スマートフォンやタブレットを見て、いつの間にか寝ている、と言うことを繰り返す。そういう時には、宇宙論とか、これに関連する数学、物理の掲示板や記事を読む。いずれも到底私の入ってゆくことのできない、深い世界を伺うことのできるものだ。書いてあることを理解することや、関連項目をWebで調べるということもしない。わからないことはわからないなりにそのまま目で追って行く。そうしているうちに眠気が再び訪れて、次また目が覚めるまでは寝ていられる、ということを繰り返している。

これはよく言われる、難しい本を読んでいると眠くなる、という現象なのだろうが、わからないながら読んでいるうちに、宇宙論についての現在の進展状況などが時折頭に残っていたりしている。また、数理物理と宇宙論の関係についても、なんとなくイメージがつかめてきたりする。今の宇宙論や量子力学は、観測や実験と数学的な演繹が両輪となって進んできているが、時には数学的な議論が先行して未知の現象が予言され、それを観測が後追いしてノーベル賞もの(最近はブラックホールやヒッグス粒子)になったりしているが、逆に数学がはるか先に行ってしまい、もはや観測や検証のしようのないモデルがあるようにも思える。例えば、超弦理論のように、場の実現に人類の生み出せる以上のエネルギーを要したり、それでなくても11次元空間の存在など、もはや人間の物理的直観を超えてしまっているモデルが編み出されている。また、宇宙の起源を探るのに必要な力や質量のバランスを考えるのに、どうしても足りないものをダークエネルギーとかダークマターとか名付けて、実態はまだわかっていないのにその存在を仮定して議論を進め、そのダーク何とかの追及は別に進めているというような、直接観測できないものについての挑戦もあるようだ。

宇宙の起源はどうなっているのだろうか…ビッグバン、インフレーション、ふむふむ、そしたらその前は?とか、宇宙の大きさは…人類にとって観測可能な宇宙というものはあるが、その先はどうなの?とか、本当に優秀な頭脳がしのぎを削って探求しているテーマだが、私のようなボンクラにとっては「ロマン」と言う便利な言葉が用意されている。私は、学校では機械工学の専攻だったが、この学問が拠って立つのは「保存則」である。例えば、質量、エネルギー、運動量等。私が大学に入学したときに電気・電子系の学科を選択しなかった理由は 、それらが不可視だったからだ。回路の中をどれだけの電流、電子が流れるか、その保存則を直観できなかったせいだ(せいぜいキルヒホッフの法則まで、それも交流はダメ)。ここらへんがまたボンクラ程度を表すものだが、それは措いておいてだ、仕事を離れて、こういう無から何かが生まれたとか、一見理屈の通らない話を聞くのは面白い。無に見えているのだが、実はこういうことなのだよと教えられた時にへー、と感心するのも楽しい。例えば、昨日Youtubeで見たシュレディンガーの波動方程式の授業(もう授業と言って良いレベルだった)で、粒子の持つエネルギーレベルが周囲のこれより高いエネルギー障壁に囲まれていても、確率的にこれを飛び越えることは可能である、ということを波動方程式を展開しながら鮮やかに説明しているのを見て、わからないながらほー、へーと引き込まれていた。これをべたな例えでいうと、壁を通り抜けることができる、ということだ。ただし、マクロレベルで見るとこの確率は極々小さいので実現することは期待できないそうだが、こんな話をして周囲を煙に巻くことくらいはできそうだ。

ハッブル宇宙望遠鏡によって発見された星雲

↑嘘です、私が夜近所で撮った月と雲です

ここで話の急ハンドルを切らせてもらう。先日私の属する文芸同人誌の最新号ができた。同人の作品の感想を書く段になって、今回の主要な作品の一つについて、その構造が難解なので頭を捻った。物語を描写している「主体」が、主人公なのか、いや主人公ではないのは、最初は明らかなのだが、だとしたらはそれは誰、というか何?、生物or無生物? 物質的存在or霊的存在? という難解さから始まって、最後の方がまた不可思議な変容を遂げて、不可思議なまま終わるという流れになっている。これを読みながら、実は私は上のような宇宙論の在り方を考えるのに通じた感覚を覚えていた。文章の表面上に現れる記述をそのままなぞっていたのでは解き明かせない物語の実相は、実はこの紙面の属する多次元世界と繋がっていて、作者はそれを何とか2次元の紙上で表現しようとして苦心して、読者もそれ相応の素養を要求されているのだ、と。ただしここには数学的な素養等は必要なく、ただただ読み手の自由な想像力に委ねられているのだ、たまたま私は宇宙論等というがちがちの科学とロマンの詰め込まれた話を睡眠学習したおかげでこのような見方に至った、と。

実は明日同人の合評会が予定されているので、この話を披歴しようと、今書いて思った。

そうだ、文芸同人誌「澪」17号が発売されています。この記事を読んで興味を持たれた方は是非下記リンクより購入を!

文芸同人誌「澪」

2021/05/03
んねぞう


PC システムクラッシュ

4月下旬、何の気なしにいつも使っているデスクトップPCの電源ボタン押して、そのまま別の作業をしていて、ふと気が付いたらいつもはふつうに起動してログイン画面が表示されているはずの画面に異常があった。なになに「自動修復」だと? 何度も自動修復を試してみたがうまくいかず、初期化のオプションも試してみたが失敗続きで、もうどうしようもなく、OSを購入の状態にするしかないと思い定めてシステムの初期化を始めた。以下はその顛末

データのバックアップ

データのバックアップ始めた。システムドライブのC:だけがダメージを受けているとの期待をもって、さてどうやってデータをバックアップするか。他のドライブのドキュメントや写真のデータは別の外付けHDDにバックアップしているが、C:ドライブはほとんどバックアップされていない。特に大事なのはデスクトップに散らかっている作業中のデータとThunderbirdのMailデータだ。これらがなくなるとかなり痛い。

そしてもう一つの問題は、Windowsマシンは私はこの1台しか持っていないので、普通にドライブを取り出して他のWindowsマシンを使ってバックアップすることができないこと。そこで考えた。手持ちのRaspberry Piでバックアップすることを。バックアップドライブ用に使っていたSATA – USBのアダプタを、PiとC:ドライブのSSDの接続に使い、最初は手持ちのSDカードカードリーダを通じて差し込んでデータのバックアップを始めた。しかし途中でデータの書き込み速度が極端に遅くなった。そこで、今度は何年か前に買っていたUSB接続の2.5インチポータブルHDDをつないでバックアップのやり直し。電力を食うのでUSBプラグを2つ使用するタイプ。そのせいかわからないがPiの画面上でたびたび電源電圧低の警告が出るが、構わず進める。だが、ある程度進むとまた書き込み速度が遅くなり、埒があかないので、最後の方はGoogleDriveに退避することにした。その結果、下記のような接続状態での作業に。これで1日。

システムのインストール

翌日、いよいよ意を決して、システムドライブ以外のHDDを外してOSの購入時に付いてきたUSBドングルをPCのUSBポートに接続してSwitch On! BIOSでシステムの起動順序の設定を変え忘れたので1回目は失敗。2回目、インストーラは起動したもののドライブ設定のところでまた先に進めなくなってしまった。Webで調べたら、HDDの予約パーティションも含めてすべて消去が必要だったのが、私は恐ろしくて予約パーティションの消去をしないままだったので怒られていたようだ。恐る恐るパーティションすべて消去して、インストール続行。進捗のバーの進み方が均一でなく20数%のところでずっと止まったままのことがあり、これまでの経験から、ひょっとして処理がうまく進まずリトライを繰り返していて、挙句の果てにこれまで同様「初期化に失敗しました」というメッセージの表示の不安におののきながら時間が経過するのを待つ。待っていたら何とか正常終了。

データのリストア

正常に起動できたので、さっそくあちこちにバックアップしたデータをリストア。ThunderbirdのMailデータのリストアに少し手間取ったが、何かやっているうちに何とか復元できた。振り分けフォルダが最初おかしかったが、何かやっているうちに直った(何かやっているうちに、と言うのがが多いですね、私は)。ソフトウェアについては、パッケージが残っているもの、Webからダウンロードできるものについてはオリジナルからインストールしなおしたが、ちよっと困ったのがAdove Lightroomのソフト。使っているのは今のCloudではなく、昔買った買い切りのもので、それも旧版からのアップグレード版で、このディスクを入れても、アップグレード前のシリアル番号の入力要求される。探したが見つからないので、半分あきらめてCloudのSubscription購入まで考えたが、このままで30日間試用できるのでその間に考えて決めることにしていたら、実は旧版のCDが床に落ちていたのを発見、事なきを得た。

クラッシュの原因

原因不明。起動時にデジカメのSDカードをカードリーダに入れたまま電源ボタンを押したせい? 商用AC100Vの電圧不足? – テーブルタップの電圧をテスターで測ってみたが100~101V指しているのだが…

以上、自分の記録として。これで週末の2日を費やした。データのバックアップにラズパイがいてくれて助かった

※ 後日デジカメのSDカードリーダに刺したまま起動することをやってしまったが、この時は正常に起動できたので、これが原因ではなさそうだ

2021/04/25
んねぞう

ある老夫婦の物語

二人とも認知症を患っている老夫婦

爺「婆さんや、ご飯はまだかのう」

婆「お爺さん、嫌ですよ、さっき食べたばかりでしょ」

爺「おお、そうじゃった」

そうして二人は餓死しましたとさ

2021/02/23
んねぞう

23

02 2021

四つ切、半切のサイズ

年末年始にかけて時間があったので、年明け後しばらくして、落ち着いたら開催が予定されるかもしれない写真展の写真のセレクト作業をしている。展示サイズは四つ切と半切の2種類ということで、サイズを実感するためにA4の手持ちの用紙を張り合わせてそれぞれのサイズの紙を作ってみたりしている。以下は検討のための心覚え

 縦(mm)横(mm)縦(in.)横(in.)面積(mm2)縦:横
四つ切254305101277,4701.20
半切3564321417153,7921.21

上記でわかること。
– 縦横のサイズはインチ系で設計されている
– 縦横比は1:1.2で共通
– 半切の面積は四つ切のちょうど2倍(=A4の約2.5倍)
– 従って理論的に必要な画素数も半切は四つ切の2倍必要である

半切は自分が今使っている27インチの4kモニタの液晶画面の上端から2~3cmはみ出す程度の感じである

2021/01/01
んねぞう

01

01 2021