Posts Tagged ‘変な物達’

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

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

写真の写真を撮る-OmoidoriとiPhone SE 第2世代

プリントされた写真のスキャンにPFUのOmoidoriというキットを使っている。2017年に買って、そのあとiPhoneの機種変更(6s→8)に伴い、買い直した。今年の8月からiPhone SE(第2世代)への機種変更を考えていたが、そこでネックとなるのが、このOmoidoriの互換性だった。iPhone SE 第2世代が発売される直前にたまたまPFUからこのキットのサポート終了のアナウンスがあり、この時はすでにiPhone8とSE 第2世代の外形形状はカメラのレンズの位置まで同一であることは公知となっていたので、ダメもとでメーカに問い合わせてみたが、保障外とのこと

保障外でも、その可能性に賭けて機種変更して、今日動作確認して見た

結果はOKだった。同じ問題で逡巡している人がいたら参考にしてください

もちろんメーカは無保証だし、OSのアップデートでいつ動かなくなってもおかしくないので、当方は責任を負いません

以下はその記録

iPhone 8対応 PFU製Omoidori

iPhone SEをセットしてアプリ起動。OSはiOS14.2

動いた。

シャッターボタンを押して取り込んだ画像の表示

iPhoneの写真アプリでカメラロールを表示したところ。間違いなく取り込まれている

Omoidori一式。ケースと、手前の透明な板はカールした写真を押さえるためのカバー

先日写真集の写真を撮った時にもその難しさを痛感させられていたので、こんなに簡単に写真の写真を撮れることが、実はソフト・ハードが裏でいろいろなことをしてくれている(例えば顔認識、ホワイトバランス、2枚の写真を合成した際の照明の映り込み排除、さらに2L撮影時の画像合成)ということを改めて認識した

2020/11/22
んねぞう

ラズパイで人生ゲームのルーレットを作って見た

人生ゲームというゲームがある。我が家にも、子供たちが小さいときに買ったものがある。子供たちと遊びながら、人生の不条理についてしみじみ思いを致したものだ。このゲームは息が長く、時代に即していろいろなバリエーションがあるようだ、インターネットで調べて見ると「目指せインフルエンサー!」とかいうのもあった。今の子供たちのなりたい職業の上位にYou tuberがあるということなので、世相を映したものなのだろう。

変遷をたどって来たその人生ゲーム、而してその中で変わらざる要素にルーレットがある。如何にして希望の目を出すか、勢い込んで回すとかえって詰まってしまってポテンヒットみたいになったり、それでは、ということで自然体で、或いは天邪鬼は俺は他人とは別の道を歩むのだとばかりに逆に回してみたりとか、人それぞれにいろいろ工夫を凝らして人生を賭けて祈り、願望を込めて回していたのではないだろうか。(逆回しは私もかつてやってみたがこれがまたストッパーのヒゲがうまくできていて、回しても2,3コマで止まってしまう。やはりある程度回転が持続するほうが楽しい。あえて逆に回そうという人は、周りの人間もつまらなくさせてしまうので、そこまでやるのならばゲームをやめて自分から仲間外れになっていれば良い。)

しかしである、今日のデジタルトランスフォーメーション、IoT、AIが社会にいつの間にか浸透している時代、そのようなアナログなことで良いのだろうか。人生もデジタル化の波に洗われる中、いつまでも手先の力加減に人生の岐路の選択を任せていて良いものだろうか。

否。このような旧態依然とした姿では、世相の最前線も具現化せんとする人生ゲームのありかたとしておかしいだろう。ここでは、そのアンチテーゼとして、デジタル技術を応用したルーレットを作成して、これまでの人生ゲーム界に一石を投じたい。

…もっともらしい理屈を捏ねたが、実は暇なのでラズベリーパイで作って見たいというだけのことだ。

で、作って見た。Pythonでプログラムを組んでサーボモータを回す。本当は360°回転してほしいのだが、手持ちのモータは170°程度の可動範囲しかないので、その範囲で均等に割り振る。文字盤はExcelで良い塩梅に数字が割り振られるように円グラフを作り、これをPower Pointに持ち込んでお化粧を施して写真専用紙にプリントした。

プログラムは、ランダム関数で目の数値(1~10)を決定し、何回かの表示をさせて最終確定する。表示回数は10~16回の範囲で乱数的に選択するので、針の指し示す回数も異なって来る。具体的な動きは次の動画を見てほしい。

さあ、賽は投げられた(コマンドは発行された)

実は内部で出す目の数と、文字盤の数字が合っていない。どういうことかというと、プログラムで出した目の数が1の時は、文字盤は10、逆に目の数が10の時は、文字盤は1を指すということだ。サーボモーターに文字盤を合わせるときにはじめて気が付いた。良かろう、人生はこのように落とし穴だらけなのだ。ただしランダム性は損なわれていない(と思う。何方か数学の得意な方、証明をお願い致します)。

実際にゲームをやって見たかって?
誰もこんな面倒くさい物使いはしないって。

2020/07/19
んねぞう

私的ビデオミーティングシステム拡張計画

昨日のセットの反省に基づいて、今後のシステム拡張の計画。いろいろ妄想を膨らませ、Webで売られている製品を比べたりして一人で楽しんでいる。実行に移すかは別問題。

iPhoneを中心として、音声と画面はテレビに任せ、iPhoneはカメラとして被写体から少し離れたところに置くのと、テレビのスピーカーからできるだけ離してハウリングとエコーをなくすためにマイクはコード式の外付け式。iPhoneはLightning端子しがないので3.5mmジャック変換アダプタを介してマイクに接続。(iPhoneのカメラは画素数の多い背面カメラを使う)

iPhoneの代わりにiPadを使う場合には、iPadには3.5mmジャックがあるのでマイクはそこに接続、空いたLightningジャックには充電アダプタを接続。(iPadのカメラは画素数の多い背面カメラを使う)

2020/07/12
んねぞう

Illustrations : Courtesy of Silhouette Illust (www.silhouette-illust.com)

私的ビデオミーティングセット

プライベートでもオンラインで話をすることが多くなった。いろいろ必要に迫られて、小物を探して見た。

iPhone、 iPadで、こちらが複数で参加する場合、カメラの画角が狭くて一人しか画面に入れないため、探してみたら、やはりあった、コンバージョンレンズ。クリップでiPhoneを挟んでレンズの前に来るようにする。

表のレンズを外すとマクロレンズとして使えるそうな。

使ってみると、iPhone8のレンズは35mmフィルムカメラ換算で焦点距離が29mm相当のものだそうだが、コンバージョンレンズを使うことで私が持っているレンズのうち一番広角である17mmより画角が広くなった。ただし、樽型の歪曲がひどい。オンラインミーティングに使うので別に困らないが。

もう一つ、iPhoneを掴んで三脚座に固定できるアタッチメント。三脚で有名なManfrottoのもの。三脚は高くて買えないので、せめてもの贅沢。

全く同じに見える製品が、国産のブランドでも売られていたが、見栄を張って300円程度高いこちらを選んだ

底面と背面の2か所にねじ穴がついている。さすがにManfrottoを名乗るだけあって頑丈そうだ

背面にスタンドがあるので、簡易スタンドとしても使える。この付け根は華奢そうだ。上下の赤い柔らかいプラスチックの貼ってある顎を引っ張ってiPhoneを入れるのだが、バネが強くて、ここからiPhoneが外れて落ちる心配はまったくない代わりに油断すると顎と本体の間に指を挟んで、痛みのあまり体の動きが停止することになる。

これらをiPhone 8に付けてオンラインミーティングにセットアップして見た

カメラは画角が広くなったので、こちら側は二人が並んだ様子が十分写せるようになった。角度も三脚が使えるようになったので、好きな角度にセットすることができた。外付けスピーカで音質もグッド。問題は、画質だ。前面カメラの画素数が背面カメラに比較して少ないことと、レンズ自体の性能が良くないらしく、相手からはぼやけているとの指摘があった。レンズ自体の性能はもう仕方がないとして、今後は背面カメラを使った形を模索したい。

世の中には広角レンズを備えたり、また望遠レンズを備えたスマートフォンもいっぱいあるので、そういうスマートフォンにすれば、という意見も当然ある。しかし私はスマートフォンのカメラに対して多くを期待していない。私のブログを見て頂いている方は(いないだろうが)わかるように、私は写真を趣味としていて、いつも出掛ける時は最低でもRAWで撮影できるコンパクトデジカメを携行しているので、「写真」を撮る場合はこれを使う。スマートフォンのカメラはメモ代わりに、とか、ちょっとカメラを取り出すのが面倒だったり、カメラを取り出すと構えるような相手を撮るという時しか使わない(そもそもめったに人は撮らない)。シャッター音も嫌だ。なので、私はビデオミーティングだけのために広角レンズを備えたスマートフォンを買う必要も、理由も見出せないのです。

下は例によりSystem Diagram

2020/07/11
んねぞう

Illustrations : Courtesy of Silhouette Illust (www.silhouette-illust.com)

やる気のない信号機 – Raspi遊び

Raspberry piで、PythonのGPIOからPWM(Pulse Width Modulation)機能を使って、LEDの点滅の遊び。ただ単にチカチカさせるのでは芸がないので、ふわっと点滅させる。結果として、やる気のない信号機ができた

赤と青のやる気のなさよ
黄色だけ小さいのは注文を間違えたため

2020/05/24
んねぞう

あ、はい…

以前から気になっていた看板
まあ、そうだよな、家の中でドタバタ走り回って年寄にぶつかって転倒したら大変だしな、だけどそもそも我が家に限って言えば走り回るスペースなんてないし
とか色々考えさせられる

Tags: