So-net無料ブログ作成
Raspberry Pi ブログトップ
前の10件 | -

PiNub その3 [Raspberry Pi]

Raspberry Piの汎用GPIO制御サーバソフトウェアPiNubの設計の続き。ローカルネットワーク上に複数のPiNubサーバとクライアントが存在することになる。今日はクライアントが必要とするPiNubを探す方法について....

続きを読む


nice!(0)  コメント(0) 

PiNub その2 [Raspberry Pi]

仕事で使うRaspberry Piに汎用的なソフトウェアを乗せたいという話の続き。仕事用にはRaspberry PiをGPIOを経由して他のハードウェアと接続するのに使うのが多く、全く異なる用途を想定する必要は少ない。そこで共通のソフトウェアで、一気に対応してしまいたい、と考えた。他のハードウェアの機能と接続経路、それとその使い方を記述したファイルを格納しておいて、それを読み出してソフトウェアが自分自身を構成する。

そのソフトウェアをPiNubと名付けた。その構造を考える....

続きを読む


nice!(0)  コメント(0) 

PiNubの開発 [Raspberry Pi]

こないだちょっと書いたけど、Raspberry Piに書くソフトウェアをSwift化したい。まず真っ先に書きたいものがあるんだけど、まだ環境のSwift化ができていないので、そのベースとなるソフトウェアをCで今書きつつある。環境が整備できたらそれをSwift化するつもり。その真っ先に書きたいもので僕は何をしたいのか、をここでまとめておく。そのソフトウェアにPiNubという名前をつけた....

続きを読む


nice!(0)  コメント(0) 

Raspberry Pi開発をSwift化したい [Raspberry Pi]

今年OPIEでやったデモを来年のPhotonics Westでもやろうということになった。もうあと3ヶ月しかない。OPIEでやったデモのセットアップはデータ取り用のバラックをそのまま持ち込んだ。会場までの行き帰りは車で、僕が膝の上にバラックを抱いて運んだ。それでもしょせんは実験用なのでいろいろなところが壊れてしまった。

Photonics Westへはちゃんと梱包したとしても、航空貨物になるので開けたらバラバラで現地で組み立て直し、ということになりかねない。バラックの方は時間さえあれば組み立てられるけど、僕がはんだ付けした基板が壊れたら現地対応はほとんど不可能になってしまう。

そもそもデモでは合計6本の半導体レーザをアナログ変調しながら点灯させることになって、それぞれに汎用のレーザドライバ(例えばこんなの)を繋いでいたら大げさになってしまうので、僕が回路設計してはんだ付けした基板にRaspberry Piから制御するようにした。レーザドライバ基板ごとにRaspberry Piがついたのでそれでもけっこう大げさになった。OPIEでは裸の基板をスタックしてアクリルカバーを被せたんだけど、撤収のときに電源(+5Vと±12Vとレーザに注入するための±7V)が接触して基板2枚を壊してしまった....

続きを読む


nice!(0)  コメント(0) 

気圧の影響? [Raspberry Pi]

台風が夜中に通っていった。夜3時すぎぐらいに頭が痛くなって目が覚めた。左膝も痛くなっていた。この左膝は中学から高校にかけて膝関節炎を患ってから、低気圧が近づいてくると痛くなった。歳をくってから低気圧が来ると膝と一緒に頭が痛くなることが起こるようになった。仙台にいたときかかりつけの医者に、低気圧と関係があるのか訊いてみると
「たぶんそれは気のせいです」
と言われた。でもあきらかに思い当たる原因がないのに頭や左膝が痛くなると、低気圧が近づきつつあって雨が降りそうなことが多かった。

今回低気圧の影響を受けたのは僕だけではなかったらしい....

続きを読む


nice!(0)  コメント(0) 

Raspberry Pi 4Bだって [Raspberry Pi]

つい昨日、Raspberry Pi 4Bというのが発表された。それを知ったのでちょっと書かずにはいられない。

4Bは3B+から比べるとCPUコアがCortex-A53からA72に、クロックが1.4GHzから1.5GHzに、GigEがちゃんとギガビットのスループットに、4つのUSBのうちふたつがUSB3になった。4k30pディスプレイが2台も繋がるらしいけど、Raspberry Piユーザにそんな人っているのかな....

続きを読む


nice!(0)  コメント(0) 

kernel4.19でのsysfs [Raspberry Pi]

先日、rpi-updateでRaspbianのkernelが4.14から4.19にアップデートされた。rpi-updateを起動するとこんな警告が出る。
#############################################################
WARNING: This update bumps to rpi-4.19.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=224931
##############################################################
Would you like to proceed? (y/N)
いいかと聞かれてもこの時点で判断のしようがないので「y」を入力することになる。このままいくと「4.19.30-v7+」とかになる。

ところがこれで動かなくなるのが出た。sysfs経由でgpioのBCM3を監視して変化があったら(具体的にはプッシュボタン長押し)シャットダウンするようにsystemdのサービスとして書いたのが
sh: echo: I/O error
で動かない。どこが問題かというと
    system("echo both > /sys/class/gpio/gpio3/edge");
が失敗している。system()はCユーティリティ関数で、processをforkしてshを起動して引数文字列をshのコマンドとして実行するというもの。stdlib.hにプロトタイプがあって、ランタイムの一部になっている。シンプルなんだけどシグナルや入出力の処理をちゃんとしてくれるので、僕はしょっちゅう使っている。

このコードはGPIOのBCM3ピンに変化があったら知らせてもらう、というもの。edgeファイルにraising、falling、bothを書き込むと、その変化があるとファイルシステム経由で検出できる。

ところが、edgeが書き換わらずに「none」のまま
$ uname -a
Linux vega 4.19.23+ #1203 Tue Feb 19 23:10:40 GMT 2019 armv6l GNU/Linux
$ cat /sys/class/gpio/gpio3/edge 
none
$  
になってしまう。他の単純なGPIOの読み書きは問題なさそうで、このedgeだけがうまくいかない。またsystem()ではなく、普通にedgeファイルをopen()してwrite()しても書き変わらない。

その前のkernelだと同じコードが動いて
$ uname -a
Linux sirius 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
$ cat /sys/class/gpio/gpio3/edge 
both
とちゃんと書き換わってる。rpi-updateの警告にあるurlを見てもそれらしい情報がない。ググってもこれだという情報に行きあたらない。

僕はこれが動かないと非常に困る、というようなものではないけど、少し不便なのと、せっかく書いたのが動かなくなるのはやっぱり面白くない。

誰かご存知ありませんか?
nice!(0)  コメント(0) 

また1日無駄にした [Raspberry Pi]

こないだのHiLetgoの降圧型DC-DCコンバータの電流源への改造が思っていたよりうまくいって、あのあともずっとDPSSレーザは機嫌よく動いているので、同じ伝(デン)でちょっとしたデモ用の電流源を追加作製しようと思った。ほぼ同じものを作るつもりであまり考えずにサクっとやろうと思った。ところがそこに落とし穴があって、丸一日無駄にすることになった。これを読んでくれてる人の反面教師として詳細を書くことにする....

続きを読む


nice!(0)  コメント(0) 

残りのHiLetgoを使う [Raspberry Pi]

こないだHiLetgoの降圧型DC-DCコンバータ電源をLEDドライブ用に使ってみた。今のところちゃんと動いている。光らせたいLEDはもうない。しかし光らせたい半導体レーザはある。532nmのいわゆるDPSS(Diode Pumped Solid State)レーザで、赤外の半導体レーザの光でNd:YVO4結晶を叩いて1064nmを発振させてその光をKTP結晶で半分の波長(倍のエネルギー)にするもの。最近はパッケージはすごく小さく扱いも簡単になってる。HiLetgo電源はまだ2個余っているので、それに使ってしまおうと思った。

532nmのDPSSレーザのうち最もシンプルなものは単体の半導体レーザのような光強度モニタ用のフォトダイオードを内蔵していない。そこで光出力を制御するためには出てきた光を少しだけ横取りしてその強度の値でフィードバックする必要がある。また、ポンプ用の赤外の半導体レーザは可視半導体レーザと同じように過電流に弱い。LEDなんかに比べると注意が必要になる。

そんなことから、赤外のレーザは定電流駆動して、さらに外側のループで緑光出力を制御するためにその電流値を増減させるというドライブの仕方が普通だろう。僕が使おうとしているレーザのポンプ用赤外レーザは定格が300mAでそのときの電圧降下が2.0Vぐらいのものである。

このレーザを例によってRaspberry Piから制御することを考えた。そのために余ったHiLetgoの電源を定電流ドライブに改造する(改造といっても、人間で言えば本郷猛を仮面ライダーに、と言うよりは性転換手術のようなものである)。レーザそのものは2万円以上するもので、それを1個300円しない、どこまで性能があって信頼性があるのかわからないHiLetgoの電源でドライブしようと言うのは、かなり大胆な勇気のいることである(特に僕みたいな貧乏人にとっては)。まあしかし、この付近の波長で直接発振する半導体レーザはあるけどハイパワーのものを一個だけくださいというと数十万円取られる。それを考えるとかわいいものである。

それに綺麗で立派な箱に入ったいかにもエラそうな専用電源も、中を開けてみれば似たようなチャチい部品が並んでいることが多い。ハイエンドオーディオなんかでも似たようなことがあるらしい。とりあえず僕の場合、長期信頼性は必要ないので試してみることにする。今回は破壊的な(非可逆の)改造になる....

続きを読む


nice!(0)  コメント(0) 

HiLetgoってなんだ? [Raspberry Pi]

知ってる人は知ってるんだろうけど、中国のメーカでHiLetgoというところがある。最近Amazonの例の頓珍漢な「おすすめ」にときどき現れるようになって僕は知った。

最初僕は中国の昔ながらのパチモンメーカだと思って敬遠してたんだけど、製品の多くがボードレベルの部品で、トップページを見て、あ、これはAdafruitのパクリだ、と思った(Digi-KeyMouserといった似たような、より古いブランドもあるけど、まず頭に浮かんだのがAdafruitだった)。主力のボード製品はAdafruitとそっくりに、その昔トラ技に載っていたような「ちょっとしたお役立ち回路」的なものが大量にある。ボード製品はArduinoを初めから想定していたり、そうでなくても比較的簡単に繋ぐことができるようなものがたくさんあったりする(言及はないけど、多くはI2C接続なので、仕様さえわかればRaspberry Piにも繋がるはずである)。それ以外にも単なるユニバーサル基板やケーブルから、USB接続のロジアナ、はてはなぜかカプトンテープまである(おっとそれはAdafruitにもあった。こんなとこまでパクってるということか)。

Adafruitが教育にも配慮されていて、子供達に楽しみながら勉強してもらおうという姿勢を持っている(それがときどきウザかったりする)けど、HiLetgoにはそういう構えた考えは微塵もなさそうである。Adafruitが素人にも親切なのと対称的に、HiLetgoのほうは製品ページによっては仕様がはっきりしなかったり、ピン配置はおろかピンに何の信号が出てるのかもわからなかったりして、知ってる人なら見りゃわかるだろ、という姿勢がありありとしている。

しかし、それよりもなによりも、とにかくめちゃくちゃ安い。Adafruitでは面白そうなボードがあっても日本から手配しようとすると案外高価になってしまって、部品だけ集めて手ハンダするかという気になってしまうけど(以前のPCM5102Aを積んだRaspberry Pi用オーディオ出力ボードAdafruitにもある。最近は個人輸入でなくても手に入るようになったけど、ちょっと前までは部品を集めるのに比べてかなり割高感があった)、HiLetgo製品は全く違う。Amazonで出てくるのだけ見ても、似たような部品を使った同じような仕様の他社製品と比べると、ヘタをすると一桁安いんではないか、と疑ってしまって、使われている半導体の型番を調べたりしてしまいそうになる。日本で部品を小売から集めたら、同じ部品を使ったHiLetgoボードの方がたいてい安くなるだろう。どうやって作ってるんだろうか。

ということで、僕も試しに使ってみることにした....

続きを読む


nice!(0)  コメント(0) 
前の10件 | - Raspberry Pi ブログトップ