🔧

普通のPCにもGPIOを生やせるみたい

2021/07/20に公開

先日こんな記事を書いたのですがそれの続きのような内容です

https://zenn.dev/tantan_tanuki/articles/c6276fdeb8af79

とりあえず作ったものは今の所問題もなくLXD上で稼働してます

Ubuntuベースなんでunattended-upgrades入れて定期的にセキュリティアップデートを自動で掛けようと思ってるんですが再起動を伴うアップデートの時には手動にしたいので何か通知する仕組みが欲しいなと考えていました

ヘッドレス運用で部屋の片隅に置いとこうと思ってるんでわざわざ通知用画面作るのも面倒だし多分作っても見ないだろうしスマホに通知送るような大掛かりな仕組みも作りたくないしLEDチカチカさせるだけで十分なんだよなぁ

よしGPIO生やす方法探そう!

ってなって探したらありました

[商品]
https://akizukidenshi.com/catalog/g/gM-08942/

[Linuxでの使い方]
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/linux

さすがadafruitさん痒いところに手が届く商品作ってはる

ふむふむ

libusb、udevルール、環境変数、pipでpyftdiとadafruit-blinka
って感じで追加すればLinuxでもpythonから制御できるようになるって感じですね

ピンアサインがType-c版の方が便利そうですね両側にGNDあるし3.3vの出力もある

これ繋げてLEDつないでシステムの状態を読み取れるようにすればいいか
I2CとかISPで液晶制御とか楽しそうやけどあそこらへん動かない時の時間の取られ方が半端じゃないしな。。。

後はスイッチ追加して押したらrebootコマンド実行するような仕組みもあれば便利だね

てかラズパイみたいに内部抵抗とか入ってんのかなこれ。。。

ってexample眺めてたらスイッチの例載ってた

altテキスト

ハードは専門外だから雰囲気しかわからないけど抵抗入れてるから必要そうだね
プルダウン抵抗ってやつだよね多分
茶、黒、橙、金の抵抗だから9〜11kΩの抵抗挟んでスイッチ押すとC0に5V印加される感じだと思う

pythonのsignal使ってスイッチ監視すれば割り込み的に処理できると思う
メインループでシステム状態確認のロジックまわしてLEDで状態表示しつつスイッチ監視を100ms位で動くようにする感じで行ける気がするなシステム状態確認の内容が全く決まってないけど

ピン余ってるしフルカラーLEDで色によってシステムの状態表そうかな
1色だと点滅パターンで判断する事になるしPWMしなくてもRGBあれば8色使えるしね

exampleのLEDの図にはGNDに1KΩの抵抗が入ってたけどフルカラーLED使った場合って同じでいいんやろか。。。

。。。てか中華PC以外にも出費が増えてくな🤣

サイバーマンデーで安く買えるといいなぁ。。。
海外通販とか慣れてる人だと安く部品調達できそうで羨ましい。。。

そんなわけで普通のPCにもGPIOを生やせる事がわかったので備忘録件報告でした

それでは良いDIYライフをー

しゃみしゃっきり〜

追記

もっと安いの見つけたんだけど業者が怪しい。。。

https://www.amazon.co.jp/新しいFT232H多機能高速USB-JTAG-UART-FIFO-SPI-I2Cモジュール/dp/B082HNGS6Y/ref=pd_lpo_2?pd_rd_i=B082HNGS6Y&psc=1

多分こいつの使い方だと思う

http://www.giuseppeparrello.it/en/hdw_embedded_devboards_ft232h.php

P.S.

安物キーボード分解して/sys/class/leds/使えばいいじゃないって話もあるんですが内部基盤の大きさも分からない上に想定外の挙動しまくりそうなんでやめました

しかしこの値段でGPIO増やせるとなるとPCある人ならLチカとかの基礎的な勉強にはラズパイ買うより値段的には良心的ですね

ラズパイは母艦とGPIOが一体な所と周辺機器が充実してて資料も豊富だからどっちが優れてるとかではないですが

でもPCでサクサク開発して終わったらラズパイに載せ替えるとか全然アリな気がします
pythonだからgitに上げといてcloneすればUSB繋ぎ変えるだけですんなりラズパイ側でも同じように動いてくれると思うしラズパイケースってそもそもGPIO塞いじゃうようなデザインも多いしね

Discussion