スクリプト類とメニューボタン

トップ ソフト 雑記 日記 リンク

9月 12, 2020

ArduinoのSPIが上手く動かなかった話(解決?済)

結論:SPIの信号線を完全に分離しろ。

以前、Arduinoで二酸化炭素計を作ったのですが、最近どうも動きが怪しい。 PCに繋いだ状態で、シリアルモニタを有効にしていないと動かず、スタンドアロンでは動作しない状態でした。 シリアルモニタで状況を見ると動いて、状況を見ないと動かない・・・。まるで開発環境では動くのに、本番環境では動かないという良くあるアレです。
しかし、本当にこれでは困るので、なんとかしてスタンドアロンの状態で動作状況を確認したい。ということで、以前から購入していたものの使っていなかったLCDを追加して、状況表示をすることにしました。
使用するLCDは、PCD8544。Nokiaの携帯電話5110で使われていたディスプレイのため、5110という型番で呼ばれることも多いようです。
同じ液晶を使用している方のブログを参照してみると、液晶はだいたい同じなのですが、液晶が実装されている基板が異なるようで、ピンの番号や順番に違いがあるようです。このあたりは、手元にある部品のシルク印刷と照らし合わせながら合わせていきます。

そして実装。

これが、なぜか動いたり動かなかったりする。
正確には、最初は動くんだけど、すぐに動かなくなってしまう。
この症状には見覚えがあります。Arduinoのメモリが不足して処理が途中で転けているパターンです。
イーサネット&SDカードシールド、温度湿度気圧計、二酸化炭素計を搭載して既にライブラリでメモリがカツカツのところに、LCDのライブラリまで入ってきて、メモリが70%以上を消費しています。
LCDだけで動かすと問題が無いので、これはメモリ不足で間違いないと予測して、DHCP処理を外したり、ローカル変数で必要なメモリ量が動的になり後から必要になるメモリ量が読めない部分をグローバル変数にしてみたり、色々やってみたのですが、一向に解決しませんでした。

違う原因ではないかと、色々検索していたところ、別の機材とイーサネット&SDカードシールドの組み合わせで上手く動かないという現象と解決方法でした。
Arduinoのイーサネット&SDカードシールドと、PCD8544はSPI(Serial Peripheral Interface)という仕組みでArduino本体と通信をしています。
これは信号線とタイミング用のクロック線を共有し、相手先選択の線を利用して、通信相手を決定するというものです。

シリアル・ペリフェラル・インタフェース - Wikipediaより SPI three slavesen:User:Cburnett / CC BY-SA
  • MOSI(Master Out Slave In)
  • MISO(Master In Slave Out)
  • SCK(Serial Clock)
  • SS(SlaveSelect)
MOSI、MISO、SCKの3本を共有し、SSを機器別に1本ずつ用意してやれば、機械が一台増えるごとにSSを1本追加するだけでピンの数が節約できるというものです。
実際、イーサネット&SDカードシールドは、3本を共有し、残り2本のSSでSDカードとイーサネットの通信を切り替えているそうです。
ここで、PCD8544も同様に3本を共有し、PCD8544用のSSを1本追加して実装していたのですが、上手く動かないと書いていたブログでは、完全に信号線を分離したことで解決したと書かれていたので、こちらも分離してみることにしました。

あっさり稼働。
どうも、イーサネット&SDカードシールドのSPIに癖があるようです。
ということで、使用ピン数もだいぶギリギリの中、なんとか一台のArduinoの中に組み込むことができました。

ただ、シリアルモニタを開けないと動作しない点については、まだ何も解決していないのですが・・・。

6月 11, 2020

謎の上から目線なjp講評

 mstdn.jpがいよいよ終わってしまうのかというところで、劇的な逆転でしたね。多くの日本人がjpをきっかけにFediverseへ飛び出したということもあり、いつも騒ぎになりやすいところではありますが、何かしら思い入れがある場所なのだと思います。

 きぼうソフト、DSNOについては、次の運営者にバトンを渡すということで、とてもよく頑張ってくれたと思います。自らの身を削って支えるという姿勢は、日本的な姿として一方では大変美しく目に映りますが、先行きの不安感という空気に対しての会社ごっこのような収支表では、とてもそれを払拭できたとは思えませんでした。新しい運営者による管理指標などの不安に対して、言葉で丁寧に対応している姿勢を見ていると、こんな解決方法もあったのではないかなと感じました。

 分散SNSにおいて、よそのサーバーに移動できるということは、安心できるところにひとは集まりやすくなるものです。サーバの管理者というのは、そのサーバの一番目のユーザーでもあります。自分が安心できる場所作りたい、そして同じ場所を提供したいという気持ちで公開しているのではないでしょうか。例え引き継いだとしても、それは変わらないでしょう。

 管理者以外のユーザーは、そこが安心できる場所かどうか、管理者を見ているのです。先代の管理者が方針に迷っている時にそのことを投稿したところ、フラフラするなという怒りを表す人がいたのを見ました。そのため極力人間味を出さない方針になってしまったのかなとも思え、このあたりはとても難しいバランスだったのだと思います。

 管理者が利用者に媚びろとか、イエスマンを集めろと言いたいわけではありません。ただ普段の行動から、そのサーバーの空気感というものを作っていけるのではないかなと思いました。漏れ伝わってくるjpの運営に対するギスギスしたものが、どうにも悲しく感じていました。

 つぎにまた新しい遊び場を用意してくれることがあれば、そのあたりも少し考えてもらえたらいいなと思いました。あとまだ3週間ほどありますが、ひとまずお疲れ様でした。

P.S.寄付窓口は結局無いままなんでしょうか。前に送ったメールに全く反応がなかったので、いきなりアマギフを送りつけるのもちょっと躊躇いがあります。

さらに追記:jp管理者による空気作りが、jpを踏み台にして別のサーバーへ進出していくために、あえて作られているのだとしたら、この記事は完全に的外れな恥ずかしい文章となります。

5月 15, 2020

notestock機能追加(検索条件追加)

いつも応援ありがとうございます。
今回はnotestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。
機能追加自体は少し前から行われていたのですが、案内をしていませんでした。

  • 検索機能の条件として「メディア付きのみ」「表示している年月日以前を対象」が追加されました
    「メディア付きのみ」はそのものズバリ、添付メディアが付いている投稿だけを対象とします。「同じような投稿を何度もしているけど、写真を付けていたあれだよ、あれ」というような時に絞り込みがしやすくなるなるかと思います。



    「表示している年月日以前を対象」は、日本で分散SNSが広まってから数年が経ち、データ量も多い中、「○年○月のいつだったか忘れたけど」というような時に、一番新しい日から検索するのではなく、途中の年月日から検索ができます。これで少しは早く目的の投稿にたどり着けるようになるかもしれません。

notestockの公開検索対象や各種検索サービスで、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。

 

4月 12, 2020

マイキーID作成・登録準備ソフトがインストールできない(解決済)

結論:作業用ディレクトリを指定するTMP・TEMP環境変数を元に戻せ

マイナンバーカード、使ってますか?
ていうか使うところがe-taxしかない。

いや、せっかく国が用意してくれた認証基盤ですし、使えるところが増えてくれば便利にはなると思うのですが、利用者が少ないものを使えるようにする予算はないということで、全て不況が悪いのです。

さて、マイナンバーカードがポイントカードになるというマイナポイントというサービスができました。
これを使うためには登録が必要とのことで、わたしも準備をしてみたのですが、インストーラーが途中で止まってしまって進まなくなります。

ここで止まる。

全くエラーなどは出ず、プログレスバーが100%まで進んだところから反応がなくなります。
タスクマネージャーを見ても暴走しているわけでは無く、全く負荷は掛かっていない。
キャンセルボタンを押しても反応しない。
タスクマネージャーから強制終了する必要があります。

InstallShieldを使っているので、どこかにログは出ていないか探してみたり、コマンドラインからログを出力するオプションを指定してみたり、圧縮されているexeファイルを分解して中のインストーラーを取り出して調べてみたりしたのですが原因が分からず、問い合わせ窓口に投げてみました。

まあ、Windowsを更新しろとか、ウイルスチェックを外せとか一般的な回答だったのですが、うちは素のWindows10環境だったので充分テストされている環境だろうと、一応言うとおりにしてみたものの全く効果はありませんでした。

ダメだったよーと返事を返しつつ、こっちでも他に調べてみた結果などを付けて「ただの素人では無い、分かっている人間」感を出してみたのですが、メールが行って返ってくるのに1ヶ月掛かり、3ヶ月(計6通)で解決に辿り着きました。

解決方法は最初に書いたとおり、どうやらインストーラーが展開する作業用ディレクトリと、実際に実行されるディレクトリが違うようで、これはインストーラースクリプトの不具合だよなぁと。
システムドライブが小さい、SSDを劣化させたくない、など色々な理由で作業用ディレクトリを変更している玄人はいると思います。今まであまりインストーラーで転けるという現象に出会ったことが無かったので、思わぬところでつまずいた感がありました。

この記事が誰かのお役に立てば、という思いで残しておきます。


2月 07, 2020

notestock機能追加(ウィジェット)

いつも応援ありがとうございます。
今回はnotestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。

  • ウィジェット機能が付きました
    ブログの横などに、Twitterの投稿を貼っていたような感じで、分散SNSの投稿を表示できます。
    サイトを持っている方で、メインの活動が分散SNSに移ってしまった方などでも、どんな感じでやっているかを見せることができます。


    詳しい使い方については、以下のページで解説しています。
    https://notestock.osa-p.net/widget.html
    ぜひお試し下さい。

    このページの左側が使用例です。

notestockの公開検索対象や各種検索サービスで、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。

1月 10, 2020

zabbixの設定画面で、大量のグラフ項目を表示する

わたしは普段システムの監視にzabbixを使っているのですが、ずっと不満点がありました。

ディスカバリで生成される大量のグラフ項目のせいで、目的のグラフが見つけられないという問題です。


zabbixの管理画面では、アイテムやトリガーなどは絞り込み検索ができるのですが、グラフだけは絞り込みができず、表示される最大件数の1000件を超えてしまうことがありました。

この1000件制限を緩和したく調べてみたところ、データベースのconfigテーブルのsearch_limitカラムに記録されていました。


パフォーマンス的な理由で制限が掛けられているのだと思いますが、わたしのところでは増やしても問題は感じませんでした。

これWebUIから変更できないんですよね。
アカウントの設定画面にあった「ページあたりの表示行数」を増やしても、1ページの表示件数が増えるだけで1000件制限は変わらず最大ページ番号が縮むだけでした。

12月 09, 2019

換気、足りてますか?

わたしは季節に関係なく頭が痛くなったりする事があるのですが、そういうときは大抵乾燥が酷いときだったりします。部屋にぶら下がっている湿度計を見ると50%を下回っていて、慌てて加湿機を動かします。

冬場になると、 加湿をしても効果が無いときがあり、他になにがあるだろうかと考えたところ、換気が足りていないのではないかというのを思い出しました。
しかし、息苦しいとか頭がクラクラするとかいうのは感じたことがありません。実際にどのくらい換気が足りていないのか、測ってみないことには分からないということで、arduinoとCO2センサーを組み合わせて測ってみました。

使った部品は、arduino unoと、CO2センサー「MH-Z14A」、気温湿度気圧センサー「BME280」です。



結線とソースコードはググったら出てくるでしょう。
CO2センサーはMH-Z19が欲しかったのですが、Amazonでもどこも海外発送ばかりで、到着まで2週間掛かるということだったので、国内のAmazon倉庫から発送できると書かれていたMH-Z14Aにしました。

arduinoのEthernetライブラリを使って自宅のサーバに計測値を投げてファイルに保存し、zabbixからファイルを読み取るという仕組みにしています。2000ppmをトリガーにして、Slackへ通知を送信。
少しはまった部分としては、計測値を投げる処理を1分に一回にすると、なぜか処理が止まってしまうため、30秒に一回にしています。keepaliveあたりのなにかなのか、調べ切れていません。


二酸化炭素濃度は、自然界でだいたい400ppm、よく換気されている部屋で1000ppm以下、2000ppmからは換気が必要だそうです。
実際「建築物における衛生的環境の確保に関する法律」でも1000ppm以下にすることが求められています。

実際に測ってみて分かったこととしては、意外と簡単に2000ppmに達するということです。
私が普段作業をしている部屋は、 14畳ほどの広さのリビング・ダイニング・キッチン一室。古い建物で、外の風が強いときなどはドアの下から風が入ってきて寒いぐらいなのですが、穏やかな天気の時は意外と密封度は高いらしいです。

冬場は、この部屋で小型のガスファンヒーターをつけています。6畳用だったか、8畳用だったか忘れてしまいましたが、能力からすると不足気味の機械なのですが、2時間ぐらいで400ppmから2000ppmぐらいまで上がります。

冒頭で頭がクラクラしないなんて書きましたが、もっと高い濃度で発生するもので、それより前に作業の能力などにも影響が出てくるそうです。
よく見かける注意書きも、死亡事故なんていうぐらいだから「うっ、苦しい」みたいなことになるレベルを想定してしまいますが、じわじわと身体を蝕んで気が付いたときには手遅れということにならないよう、早め早めの換気が必要ですね。


1月30日 追記
arduino用ユニバーサル基板を買ってきて、組み立ててみました。
EthernetシールドのLAN端子がかなり大きくて、基板を切る必要がありましたが、これでブレッドボードと違って蹴飛ばしても配線が外れる心配が無くなりました。






12月 08, 2019

notestock機能追加(追記機能)

いつも応援ありがとうございます。
今回はnotestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。

  • 追記機能が付きました
    例えば「タグを付け忘れて投稿した」とか「表記揺れがあって検索に引っかけにくい」「誤字で投稿したので検索に引っかからないけど、反応が良くて消すのが忍びない」みたいなときに、タグなどを追記しておくと、検索で引っかけられるようになります。


    またこれは共有(いわゆるboostやrenote)に対しても付けることができ、他人の投稿に自分だけのわかりやすいタグを付けておくなんて事も可能です。

    投稿主の追記は、共有先からでも検索可能ですが、共有先の追記は共有した人だけが使えます。
    これは追記も表示・検索対象としていて、共有先の追記も共有元へ反映してしまうと、何でもありの状態になってしまうためです。いろいろ悪い方向にも使えてしまうので、ひとまず一旦は無しにしています。

notestockの公開検索対象や各種検索サービスで、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。

 

広告