5月シフト/C#/ラズパイ/連休。

Bar一般保護例外、令和元年5月のシフトが出ていました。
19時オープンではない日もあるので、最新情報は当日のBar一般保護例外Twitterでご確認ください。

春である。今回の冬は、ほぼ外に出かけなかったせいか、あんまり寒くなかった気がする。

毛虫も増えてきた。ちょうちょが飛んでいても「あっちいけ!」って思う。

アゲハ蝶がパセリに卵を産みに来る。イタリアンパセリはいくらでも生えてくるので食卓に青いものが足りないなと思ったときに便利なのであるが、イモムシが混ざっていると嫌だ。パセリを食べてる小さいイモムシなんざうっかり食べたとしてもパセリの味がするんだろうけども。

子供の頃から通うバーバーカワバタでサンパツした。

いまさらながらC#の本を1冊読んだ。もともとC言語は学校で本格的にやっていたし、このあいだ長いブランク明けでVBで業務システムを1本書いた。VBでサンプルコードをググってC#のサンプルしか出なくてもVBで読み替えて使えていたので、C#なんざCっぽい書き方をするVBかなと甘く見て読み始めた。実際、そんな感じのものではあったけど、仕様にボリュームがある。C言語とも割と違う。考えてみたらあたりまえだけどVBのほうに近い。

BASICは8ビットの頃から触っていたし、VisualBasicScriptで関西観劇ネットワークのシステムを書いたこともあったので、VisualBasic(VB)は、リファレンスと入門書を買ってきて、そのまま手探りで使ったら使えた。というか、リファレンスと入門書しか売っていなかった。VBの文法書って、Microsoftのトレーニングに申し込んだりしないと入手できないのかな。

VBはC#と同じことができるという。いまどきの言語の機能である、インターフェースとかデリゲートとかラムダ式とかもあるんだろうなと機能引き辞典の索引をみたらあった。Pythonかじったときにオライリーの文法書を読んだときにも出てきた。
文法書を頭から読んだら目に付くけど、VBを機能引き辞典で使おうとしたら目に付かなかったし、ちょっとしたもんを作るのにそんなライブラリを記述するとき用の機能は知らなくてもどうにかなる。VBってそんなツールなのかな。

いまはC系の言語が流行ってるのもあるし、C#のほうが人気らしい。

一応、紙のリファレンスも買った。同じ本で網羅している書き方のほうがネットで落ちてる雑多なサンプルより一貫性あるだろう。マイクロソフト公式サイトはわかりにくい。

プリント基板の新作もできたので。

でんでんタウン「ロボット連絡会」に自慢しに行った。

この日のテーマは「いま熱い!アナログシンセサイザー」。
私が得意とするデジタル制御回路と見た目は似ているが必要なセンスが割と違う世界である。

私の新作は「ラズパイの全GPIOを使い倒すボード」。自分で言うのもなんだが、これはよくできているぞ。小型コンピューター「Raspberry Pi (ラズベリーパイ:ラズパイ)」の、ちょっと足りないところをだいたい全部くらい補ってくれる装置である。
ラズパイにない起動ボタンと終了ボタンとアナログ入力とアナログ出力を追加、I2CとSPIと1-Wireの分岐、地味に使い勝手の広いEEP-ROMソケット。普通のケーブルが挿せるUART。安い大容量ACアダプタが挿せるDCジャック。
商品化に向けて、いまドキュメント整備をしている。

帰りは、いつもの店でひっかける。

ガンジャにも寄った。

手が回っていないが、「ベラボースイッチ」のジェネリックを作ろうともしている。もうそろそろ特許も切れていることだろう。

QIコネクタ(2550コネクタ)。私が好んで使う部品である。抜けやすいのがデメリットだが、抜きやすいのがメリットである。他の電子用の小型コネクタって「抜こうとしたら千切れる」くらい抜きにくいやつが多い。

電子基板設計CADの「DipTrace」も慣れてきて、いろいろ描きまくっている。
中国の1ドル基板メーカーが早くて便利。

これはラズパイのGPIOを、番号順に並べなおすだけのボード。便利グッズである。

動作テストは、Node-REDでやった。

これは、ラズパイのGPIOを番号順に並べなおしてトランジスタとLEDをつけたボード。
「入出力両対応ラズパイGPIOのLED式レベルモニター」である。信号がHighになっているかLowになっているか見た目でわかるので、信号が出ていなかったり間違えて隣のピンに信号だしちゃったりしているバグなんかを見つけやすい。
出力を順番にHighにするプログラムを書いたら、こんなふうにナイトライダーごっこもできる。基板の出力テスト用にPythonで書いた。

他のボードに重ねてデバッグに使ったりするのを想定している。思いのほか便利である。
難点は、はんだ付けが相当たいへんなこと。LED26コまっすぐつける作業が果てしない。


使い倒しボードで文字化けが発生。買ったときから少々調子が悪いWindiws10機のシリアルも挙動がおかしいのでシリアルポート内蔵のXP機を出してきたけど、やはり化けてる。

USB-シリアル変換機は、古すぎてWindows10に対応していなかったので新しいのを発注した。

Amazonで安く売ってたケーブルは、コピー品対策で動かない。ネットで見つけたハッキングツールで動かす。あれ、これなら文字化けしなかった。

ミニマムな構成でも動かない。これは回路がおかしいと回路図にさかのぼって調べたら、原因は、いったん動作していた元の回路の清書ミスでGND線を1本消しちゃってコンデンサが効いてなかったことだった。凡ミスである。
次バージョンで修正する。

1-Wire温度センサIC(DS18B20)。ネットで拾ったコードで動かしたら動いた。売るのはハードだけだから、回路が正しいのが確認されたらそれでよし。どうせ入手しやすいのはこの石くらいしかない。ドランジスタアレイ温度用と筐体内温度用の2つ載せられるように設計している。

アナログ入力の確認。可変電圧電源器の電圧を測らせてみている。それっぽい数字は出ている。

アナログ出力の確認。簡易オシロで見る。割とガタガタだけど、ICか測定機器が安物だからかな。実用的に高精度な感じはしないけど、回路としては動作してるので良いか。
ADCとDACって、端子2コそのまま出してるけど、それでいいのかな。先に何かつなぐ用にプラスマイナス出しといたほうが便利だったりするのか。とりあえず世に出して要望が出てから考えようか。

SPIは苦労した。基板側の回路はいたってシンプルなので間違ってないはずだけど、動作しない。IC側かな。IC側もシンプルだけどなぁ。ジャンパーワイヤーだと確認しづらいのでコネクタをハンダづけする。

簡易オシロをつないでも見えない。LEDモニターボードを挿しても動作している様子はない。回路じゃなくて環境の問題だろう。どうやら最近ラズパイのPythonで「spidev」が動かなくなったっぽい。対処法はあるんだろうけど日本語では見つからなかった。「WiringPi」を使ったコードなら動いた。「WiringPi」を使ったサンプルならLEDがチカチカしているのも見えるし、SPIのADコンバーダーIC(MCP3002)をつないだら値が読めた。動くサンプルがあるならハードの回路は合ってるとしていいだろう。SPIのライブラリって、「spidev」も「WiringPi」も、通信できなくても例外を出さずに0を返す仕様っぽい。故障とゼロ値が区別できないことになるんだけど、例外機能のない言語との互換性のためかな。

GPIOのテストも「Node-RED」で。リレーをカチカチできるのは確認済み。これ、使いこなしたらかなりいろんなことできそうなんだけど、まだJavaScriptの文法書を読みかけている段階である。

オレガノも伸びてきた。タイムとセージには花が咲いた。

連休中に、基板のテストと取説の作成と、事務作業を片づけちゃう予定だったけど、一歩も家から出ないまま基板のテストだけで終わっちゃった。
今月半ばまでかかるかも。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントの入力は終了しました。