Raspberry Pi でIoTなIT:preempt_rtが付いていない素のRaspbianの割り込み性能はWheezyとJessieで違いがあるのか
前日来実験している割り込みの性能テスト。Jessieの構築に成功したので、こちらでも実験してみました。Jessie [埋め込み: https://www.youtube.com/embed/Kcfzx9skA0s] Wheezy [埋め込み: https://www.youtube.com/embed/1FmXSB2xkmg] カーネルと基本パッケージが変わるだけでそれほど性能差は出ないだろうと思っていましたが、2割ぐらいレスポンスが違うように見えます。最適化されたということらしいので、そのあたりが影響しているのでしょうか。あと使っているJessieがLITEなので文字通り軽いのかもしれません。”””
You should also read:
Raspberry PiでIoTなシステム開発:Raspberry PiのI2C
http://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/Raspberry PiでI2Cを使う準備をします。とはいってもこちらの内容をそのまま実行するだけ。日本語の情報だとraspi-blacklist.confを編集して対象行をコメントアウトするという話しが多いのですが、今のディストリビューションの内容だと、そもそもそういったファイルがありませんし、特に変更をしなくても動作しました。あとI2Cはプルアップが必要という記載もありますが、Raspberry Piは基板上で既にプルアップされていますから、追加のプルアップは合成抵抗値と許容電流を確認して判断すべきです。基板の抵抗値はモデル・回路図で確認します。並列のプルアップがあると合成抵抗が下がり、ロー出力時の電流が増えます。ここで更にプルアップを追加すると抵抗値が更に下がって、Raspberry Pi の少ない許容電流量を更に圧迫します。本当はRaspberry Piの基板上からプルアップを外して外部に適正値の抵抗を付けるのがベストでしょう。ただそれはそれで外部回路がややこしくなりますから、とりあえずはオンボードのプルアップ抵抗を残して使うことにします。 “””
Continue reading...Raspberry PiでIoTなシステム開発: Raspberry Pi にバイナリでNode.jsをインストール
数年前にNode.jsをインストールした頃既に、公式でのRaspberry Pi 用バイナリの配布が終わっていました(正確には配布しているけれども古いバージョン)。今回改めてインストールしようとしたところ、状況は相変わらずで、その一方でNodeのバージョンは大分と進んでいます。公式で配布されているのはv0.10.26で同系の最新はv0.12.7。v0.10.26のリリースは2014年2月なので、流石に古すぎます。既にメジャーアップでv4になっていますが、こちらを使わないにしても、旧系統のできるだけ新しいものを使いたいところです。そこで公式バイナリを使うのは諦めて、新しいバージョンをインストールすることにします。とはいってもPiでコンパイルして数夜の時間をかけたり、クロスコンパイル環境を作る気合いは無いので、バイナリを探すことにしました。定番はhttp://node-arm.herokuapp.com/こちらのサイトのものを使うようですが、僕はひねくれ者なので、http://conoroneill.net/node-v01040-and-v0127-for-arm-v7-raspberry-pi-2-banana-pi-odroid-c1-available/ここのバイナリを使わせてもらいました。このページに書いてあるスクリプトの順番は間違っていますので、 mkdir nodetempcd nodetempwget http://conoroneill.net.s3.amazonaws.com/wp-content/uploads/2015/07/node-v0.10.40-linux-arm-v7.tar.gztar -zxvf node-v0.10.40-linux-arm-v7.tar.gzsudo cp -R * /usr/local/cd usr/local としてください。パスを通しておかないと面倒ですので、.bashrc export PATH=/usr/local/bin:$PATH を追加して、 source .bashrc で反映させます。後は””node -v””/””npm -v””でバージョン番号が出れば成功確認ですね。””” 本文はNode.js 0.10・0.12・4系の時代の導入記録です。これらはサポート終了済みです。現在は公式が提供する対応CPU・OS向けの配布とリリース状況を確認し、旧第三者配布サイトのバイナリを新規導入の標準手順にはしません。
Continue reading...Raspberry PiでIoTなシステム開発:Raspberry Piの組み込み的モクモク用開発環境
現在、自画自賛的にスマートだと思っているRaspberry Piの開発環境の構成は次のとおりです。Raspberry Piのeth0に固定IPを割り当て、同じサブネットのIPを割り振っているMacのイーサネットポートからクロスケーブルで接続し、SSH+SFTPします。これでハブが要らないので、スパゲッティ感を大分と減らすことができます。電源はモバイルバッテリーです。最近のモバイルバッテリーの出力は大分と安定しているので、そう問題は出ないと思います。ただ当たり外れがあるので数種類買う勢いで試したほうがいいでしょう。Raspberry Piとはできるだけ太いゲージの電源専用USBケーブルで接続します。内部の電線が本当に太いかどうかは分かりませんが、電源だけの2線でこの太さなら通常のケーブルの2倍ぐらいの断面積はあるはずです。切って確かめたいのですが、もったいないのでそこまではできていません。無線LANはTELECの事がありますので国産のドングルを使用しています。アクセスポイントの接続設定をwpa_suppicantに記述し、複数のnetworkブロックを記述して、自宅、職場、iPhoneテザリングをシームレスに切り替えます。Mac側はシステム標準のターミナルとAtomです。ターミナルエミュレータはいろいろ試してみましたが、OSX標準のものが一番安定していて、動作も好感触でした。ソースコードの編集は最近流行のAtomです。Remote-FTPを入れると、SFTP経由でRaspberry Pi側のファイルを直接編集できます。さらにterm2も入れると、上のペインでコード編集、下のペインでそのまま実行作業ができ、Emacs的な環境に近づきます。そのままUTF-8で記述できます。2年前にRaspberry Piで制作をやっていた頃は、Emacsだけでゴリゴリやっていたのですが、日曜プログラマなのですぐに操作コマンドを忘れちゃうんです。これで大分とスマートに開発できるようになりました。 “”” 本文はAtomと旧Raspbianで組んだ開発環境の記録です。Atomは2022年12月15日に公式に開発終了となっています。また、USBケーブルの外径だけでは導体の断面積や供給時の電圧降下は確定できません。電源の安定性は対象基板の要求と負荷時の電圧・電流で確認します。
Continue reading...