Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

何らかの事情でapt install/upgradeを中断したとき

実際のところ

$ sudo apt upgrade
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

dpkg を直接叩いてゴミを片付けないといけません。

$sudo dpkg --configure -a
Setting up libmono-system-servicemodel-internals0.0-cil (6.10.0.104-0xamarin16+raspbian10b1) ...
...

参考もと

  • man dpkg

RasPiにCmakeをいれる

OpenCV等々のツールは各環境のビルト環境あわせのためCmakeを使ってることがあります。
デフォのRasPiには入っていないので、

/bin/sh: 1: cmake: not found
make: *** [Makefile:18: all] Error 127

エラーで怒られたりすることがありますが、入れれば問題ありません。

単純に用を済ませたいだけなら

$ sudo apt install cmake

ただ、パッケージツールの常で最新版が入っているとは限りません。
また、パッケージによっては逆に古いバージョンで動作確認してることも。
そういう場合、公式から目当てのものを引っ張って自力でビルドするほかないです。


cmake.org

【読書メモ】私も電子回路のオタクになる: 初歩のデジタル回路から実践的回路設計へ

Kindle Unlimited にあったので登録。
タイトルの通り、デジタル回路の入門本です。

二進数の解説だったり74系の論理石があったりと、最初の方はよく見かける教科書的な内容。
半分くらい過ぎてから実際の回路で発生する事の説明と対策が出てきて実用味がでてきます。

チャタリングとか、クロック速度の話とか、3入力のNOTがないならNORで代用せい等々。
こういうのロボメカみたいな実践系サークルにいないと工業大学出でも知らない人いますからね。

私がこの本ではじめて知った概念として「ハザード」といのがありました。
AとBの入力があって、回路を噛ませてYを得る際にAとBが極々微妙にズレて*1一瞬だけゴミ信号が生じるという現象です。
普段はArduinoやAVRと市販のキットをつかって用をすます軟弱者なので、このあたりはマイコン内部でやってくれる事なんですよね……。
こういう知見の文章はありがたいです。

*1:伝搬遅延が生じて

【地獄のバッドノウハウ】シリアル通信でコマンド送るタイプの装置が急制動するような場合、「tail -f」で監視し続けると動くことがある

shuzo-kino.hateblo.jp
でやった事ですが、今日周辺で似たことがあったので。

シリアル通信でコマンド送るタイプの装置……たとえばシリアルサーボなんかがあります。
それまでArduino IDEやminicomではちゃんと動いてくれたのに、
echoで単発のコマンド叩いたりpySerialでつなぐと急激な動きをみせてしまう場合……
「tail -f」でttyへの接続を維持したままやると、うまく動く事があります。

なぜといわれても知りません。
コネクションはり続けてるからでしょうか。

実際のところ

ターゲットデバイスが"/dev/ttyUSB0"

$ tail -f /dev/ttyUSB0 &

この状態で

$ echo "command" > /dev/ttyUSB0


あまりにバッドノウハウすぎるので、納期がギリギリでとりあえず何とかしないといけないというときの緊急避難方法と考えてください。
いつまでもこの実装のままだと後日利息までいれて技術負債をかえすことになるかも……。

monoをつかってRaspberryPiでC#プロジェクトをやる その3:GTK#にRasPiの情報を表示

C#にシェルコマンドを実行するのがあるので、その結果を文字列に突っ込んでフォームに表示させると良い。

実際のところ

今書いてまs

monoをつかってRaspberryPiでC#プロジェクトをやる その2:GTK#でGUIやる

GTK#はその名の通り、GTKC#実装です。
イマドキなWEBネイティブUIと比較するとどうしても……なところがありますが。
しかしIDEのような、割と高機能なものもGTK#製だったりするので侮れません。
www.monodevelop.com


それほど重くなく世代を通じて*1直感的な画面が作りやすいと個人的に感じています。
タブレット風なUIだとそれだけで警戒する層がどうしてもいるんですよね……。


実際のところ

mono-develは入れている前提。

今書いてまs

参考もと

GtkSharp | Mono

*1:とくに自動化が必要そうな年いった方が多い現場では