投稿

ラベル(Raspberry Pi)が付いた投稿を表示しています

Arsprout Piを使ってみた③ ーファームウエアのカストマイズ UECS Piとの相違点ー

イメージ
 今回はArsprout Piのファームウエアのカストマイズを行うときに、以前紹介したUECS Piファームウエアのカストマイズと変わっている点をご紹介します。 繰り返しますが、ファームウエアをカストマイズすると開発元のサポート対象外となりますので、その点はご承知おきください。 まず、Raspberry PiのOS、DebianにログインするときのユーザーやパスワードはUECS Piとは違いますので、開発元に問い合わせるなどして入手してください。 この記事で使用している画面イメージは、Windows 11からSSHでログインしたものを使用しています。SSHが使用できるようにする設定は変更ありませんので、以前の記事「 UECS Piファームウエアを自分用にカストマイズする④ 」を参照してください。 SSHにログインするときに、UECS Piのファームウエアと同じホスト名やIPアドレスを使用しているとHost key verification failedのエラーが出るかもしれません。そのときはこちらの記事を参考にして対処してください。 SSHで『Host key verification failed』と出てログインできない時の対処法 それでは、まずファームウエアのOSから確認していきましょう。 今回の使用報告ではArsprout Piファームウエアのarsprout-pi-1.8.2を使用しています。 OSはDebian 11 Debianのバージョンは/etc/debian_versionに書かれています。 Arsprout PiのファームウエアはDebian 11 (bullseye)です。UECS PiはDebian 9 (stretch) を使っていました。Debian 9の正式サポートはすでに終了しています。Debian 11は"old stable"で古い安定版でしょうか。最新の安定版は12です。詳細は Debian Releases https://www.debian.org/releases/index.en.html を確認してください。 (日本語ページの情報は古いので注意)  それを踏まえて。。 raspi-configのネットワーク構成設定に注意 raspi-configもDebianの新しいリリースで更新されていて、起動...

Arsprout Piを使ってみた② ー構成定義を中心にUECS Piとの違いを考えるー

イメージ
 前回はUECS PiとArsprout Piのセンサーを中心に比較しましたが、今回は定義を作成してみてUECS Piのときと違うところを紹介します。Arsprout Piは更新が随時行われていますので、詳細は最新版のマニュアルは確認するようにお願いします。 今回の使用報告はファームウエアはarsprout-pi-1.8.2。マニュアルはユーザーガイド[基本機能編]Ver.1.8.0を使用しています。 オブジェクト指向的に整理された? 図は、Arsopout Piのマニュアルの最初のほうにあるものですが、構成定義の考え方を理解するうえで重要な図になります。最初は定義を作成するときにメニューのどこで設定するのか見当をつけるのがむつかしかったのですが、最初にこの図をよく頭に入れておけばわかりやすかったと思います。画面の左側に表示されるメニューと定義の関係がこの図に表れています。 UECS Piではセンサーの定義をする画面が1画面に集約されていましたが、Arsprout Piでは(オブジェクト指向的に)分割されています。例えばCO2センサーを定義するときには下の図のように、まず「デバイス」として CO2センサー (ここではELT S-300)の定義をして、その次にコンポーネントとして CO2測定値 の属性を「センサー」の画面で定義します。 CO2測定値 には「デバイス」である CO2センサー を「データポート」という概念で関連付けすることになります。 (複雑な記述になってしまいますが、センサーというハードウエアの属性と測定値などの値の属性は別物なんだということ) マニュアルもメニューの順番に沿って「センサー」と「デバイス」が別項目になってますので最初は少し戸惑ってしまいました。この図を理解していれば迷子にならなくてよかったかもしれません。 GPIO番号がなくなった 次にUECS Piではアクチュエーターやデジタル入力センサーとして定義していたGPIOですが、「デバイス」の「RaspberryPi GPIO」のメニューから定義します。ここで注意しないといけないのは名称として以前使っていたGPIOの番号ではなく、まさに 「PIN番号」 が使われています。マニュアルをよく読まないと気が付きませんので、最初はUECS PiのGPIO番号と全く違うので焦りました。しかし、U...

Arsprout Piを使ってみた① ーUECS Piからの変更点を中心にー

イメージ
 UECS Piの後継であるArsprout Piのドキュメントが充実してきましたので、ようやく試してみようと思い立ちました。前回のブログで書いたようにUECS Piはもう更新されませんので、Raspberry Pi 4のような新しいハードウエアを使うためには、いずれ通らねばならない道ではあります。 手始めに今回はUECS Piの機能をどのくらい継承しているのかを比較してみたいと思います。すべて試したわけではなく、あくまでドキュメントベースの比較になります。 (個人的にはお金の都合もありすべて試す予定はないです。現時点で確認済みのものは記載します) 今回の使用報告はファームウエアはarsprout-pi-1.8.2。マニュアルはユーザーガイド[基本機能編]Ver.1.8.0を使用しています。 Arsprout Piの画面例 ユーザーインターフェースが拡張されて、データ保管の要件がなければクラウドサービスがなくても満足度は高いかもしれない。 センサーの比較 表は、UECS Piと比較したものです。Arsprout Piでは継続性を考慮しながら、おそらく使用頻度の低いセンサーを廃止し新しいセンサーを取り入れているようです。 UECS PiでサポートされていたセンサーとArsprout Piでサポートしているセンサーの比較。Arsprout Piのセンサーは他にもあるので、詳しくはマニュアルを参照してください。UECS Piデバイスの欄の太字は私が使用しているセンサー。Arsprout Piの欄の太字は現時点で稼働確認したものです。 I2Cの温湿度センサーや1-Wireの温度センサーはUECS Piのセンサーを継承しながら新しいものが追加されています。 電圧/電流センサーは、Arsprout PiのV1.9.0でINA226が追加されました。Arsprout Piの機能拡張は最近頻繁に行われていて、使用する前には最新マニュアルを確認したほうがよさそうです。 CO2センサーもUECS Piのセンサーをほぼ継承しています。CDM7160はネットでは販売されていないようです。それよりもArsprout Piで新しく追加されたSCD30は日本では9千円台で売られていますが、AliExpressでは3千円台で売られていて、試してみる価値がありそうです。私が使用しているELT...

Raspberry Piの値段がまともになってきた!

イメージ
長らくRaspberry Piの価格高騰が続いています。自動車用の半導体供給は安定に向かっている新聞記事は目にするのですが、5千円+αで購入できていた3Bが17千円とか。ターゲット価格が$14のPi Zero WHが9千円以上とか。格安でシステム構築を目指している筆者には厳しい限りです。いつRaspberry Piの手持ちがつきるか心配でなりません。 しかし最近少し希望が出てきました。 (上左)Raspberry Pi 4B  (上右)同3B  (下左)同3A+  (下中)同Zero2  (下右)同Zero WH Raspberry Pi 4Bが12000円 2GBモデルですが、アマゾンで12000円を切る価格で販売されているのを見つけました。4Bは持っていなかったのでさっそく購入しました。ターゲット価格($35)を考えるとまだ高いですが、一時期2万円以上していたのでかなり値段が下がっています。秋月電子通商でも11000円で販売してますので、流通量も増えているのでしょう。(秋月は11000円以上は送料無料なので、こっちのほうが安かった) しかし、Raspberry Pi 3Bはアマゾンでは相変わらず17000円以上になります。 (Yahooショッピングで11550円のものを見つけたが、注文していないので在庫があるかどうか不明)  ヤフオクやメルカリでは未使用品は数が少なくなっていて、中古品でも8500円ぐらいします。4Bと3Bで価格の逆転現象が起きています。もしかしたらRaspberry Pi 3Bはもう製造されなくなるのでしょうか。今後は4Bを中心に検討したほうがいいのかもしれません。 AliExpressでは、Raspberry Pi Zeroの価格が下がってきています。Zero Wでは4600円ぐらいに下がってきています。 (40%引きと書いているが、もとの価格が高いんじゃないか)  日本にも波及しないかなあと期待してるところです。 Raspberry Pi 3A+の可能性 有線LANポートやUSBをあまり使用しないのであればPi3A+も選択肢になります。 (実はあまり注目してなかったので、最近スペックを調べて使えそうだと気が付いた)  現在のところ最安値はKSYショップの4620円(税込)。アマゾンで4900円、秋月でも5800円...

水位センサーXKC-Y25とオープンコレクタ入力

イメージ
 水位センサーについては UECS Piで肥料管理機を作る③ で触れました。今回はXKC-Y25という非接触式液体レベルセンサを入手しましたので検証結果を報告します。 非接触式液体レベルセンサー XKC-Y25-V(左)とXKC-Y25-PNP(右) このセンサーを使用すると下の図のように水槽の壁面に貼り付けて液体に接触せずに水位を検知出来ます。(金属の水槽はだめ) 機械式に比べて設置が簡単だし、水漏れ、腐食の心配もないので便利だと思います。 XKC-Y25取付例  データシート より ネットショップの商品説明 https://ja.aliexpress.com/item/32623722632.html さて、XKC-Y25ですがネットで検索すると3種類あることがわかります。XKC-Y25-V、PNP、NPNです。(データシートのT12VはVではないかと思います) 詳しい説明が書いていませんので今回は2種類(VとPNP)を買って試してみました。ポイントはオープンコレクタという接続方式で、PNPとかNPNとかのモデルの違いで差があるのかということです。 オープンコレクタって何? 簡単にいうとトランジスタを使ったスイッチ回路で、アウトプットがトランジスタのコレクタに接続されているのでそのような名称です。 詳しくはこちらを参照→オープンコレクタとは?接続方法とNPNとPNPの違いについて https://ana-dig.com/open_collector/  これは概念図であり、実際のセンサーの回路とは異なります トランジスタは、上の図でB(ベース)に電圧がかかるとC(コレクタ)とE(エミッタ)が接続された(スイッチが入った)状態になります。スイッチが入った状態のとき、NPN型ではOUTの端子はGNDと同じ電位になり、PNP型ではVccと同じ電位になります。OUTをRaspberry PiなどのGPIOに接続すればセンサーのスイッチがオンになっているのかオフになっているのかがわかるという仕組みです。 XKC-Y25-PNPの場合 PNP型からテストしてみましょう。ケーブルは4本あり、VCCには電源5V~12Vを入力します。 (T12Vのデータシートでは5~24Vになっている?)   Raspberry Piでは5V電源に接続すればいいでしょ...

UECS PiにLCD(デイスプレイ)を接続する

イメージ
UECS PiユーザーマニュアルにはLCDモジュールの接続方法が記載されています。LCDを使用すれば、センサーで測定した値を表示できます、写真は温度、湿度、CO2濃度を表示したものです。 LCDはACM1602NIをモジュールにしたものを秋月電子通商で販売していますのでこれを使用します。  ACM1602NI→ https://akizukidenshi.com/catalog/g/gP-05693/ しかし、ここに超えないといけない山があります。マニュアル曰く、 モジュールの初期状態ではI2C通信速度が100kHzに対応していないためそのままでは動作しません。以下のHP情報を参考にモジュールのファームウェアを100kHz対応版に書き換えてください。 要するにLCDはI2Cで接続されますが、通信スピードをRaspberry Piと合わせないと接続できないということです。そのためにLCDのファームウエアを書き換えろと言っているのですが、これがなかなかむつかしいのです。ファーム書き換え用のツールである PICkit3(ネットで5千円~6千円する)を買ってきて、PCに開発環境を作ってサンプルプログラムをダウンロードして、ファームを書き換える。やってみましたがうまくいかず挫折しました。これはよほど慣れた人でないとできないと思います。 そこで下記のブログに書いてあるようにRaspberry Pi側のI2C通信スピードをLCDに合わせます。結果的にこちらの方がはるかに簡単でした。 参照) 秋月の I2C接続キャラクタLCD を Raspberry Pi に接続 Raspberry Pi ZeroにLCDと温湿度センサーSHT21とCO2センサーS-300を接続した。 LCDの表示は月日、時刻、温度、湿度、CO2濃度。 Raspbery Piは、自作のスタッキング基板の裏に隠れている。 青い可変抵抗はLCDのコントラストとバックライトの調整用。 Raspberry PiのI2C通信スピードを変える ブログにあるようにI2Cのbaudrate(ボーレート)を100KHzから50KHzに落とします。 「ボー」なんて大昔の通信モデムを使ってた方しかご存知ないと思いますが、bpsの類の言葉です。正確には1秒間の変調回数をいうもので50KHzは1秒間に50000回変調するということ。アナロ...

UECS Piファームウエアを自分用にカストマイズする④

イメージ
UECS Piのカストマイズシリーズの最後にSSHを使えるようにする方法を紹介します。 SSHは分散系システムのエンジニアでないとなじみがないかもしれませんが、分散系開発ではよく使われるツールです。Raspberry Piは個人で使うことが多いと思いますが、UNIX OSは本来サーバーとしても使われるので複数ユーザーで別の端末から操作できるようになっています。SSHを使えば自分がいつも使っているPCからRaspberry Piを操作することができます。 これまで紹介したUECS Piファームウエアのカストマイズでは、ネットワーク構成のファイルなどをテキストエディタで編集しました。複数の環境でUECS Piを運用する場合に何かの理由でSDカードを交換することがあると思いますが、いちいちネットワーク定義ファイルを手で書き換えるのは面倒ですし、間違いも起こりがちです。実績のあるファイルをPCに保管して必要な都度置き換える手順をとれば運用しやすくなります。 SSHのクライアントソフトを使えば、Raspberry PiのSDカードの中身をPCの1つのドライブのようなイメージで操作することができます。 なお、この記事ではPCで使用するOSはWindowsを前提にしています。MACの方はPC側のソフトをそれようにしてください。 何ができるようになるか 下記の写真はWinSCPというクライアントソフトを使ってRaspberry PiのSDカードの/etc/networkディレクトリを表示したものです。右がRaspberry Piのディレクトリで左がPC側のフォルダーです。 WindowsのWinSCPでRaspberry Piのディレクトリーを表示 上の画面でファイルを選択して右のRaspberry Piから左のWindows側にドラッグアンドドロップすればファイルをコピーできます。画面では左のPCのフォルダーにすでにネットワークファイルをコピーしています。Windows側からRaspberry Pi側にも左から右のドラッグアンドドロップでコピーできます。 また、ファイルをダブルクリックするとWindowsのエディターでファイルを編集できます。ネットワークで検索したプログラムや定義内容もコピペで編集できるので便利です。エディターはWinSCPの設定で好きなものを追加できます。 De...

Raspberry Pi Zero WでUECS Piを動かしてみる

イメージ
 AmazonでRaspberry Pi Zero Wが3300円(送料別)で売られているのを見つけて衝動買いしてしまいました。半導体不足前は1800円ぐらいで売られてたのですが、今となっては他では1万円とか2万円とかで売られているものもあり、3千円台は非常に良心的だななあと思います。 これでUECS Piが動くならRaspberry Piの価格高騰、品不足問題を緩和できると思い、試してみることにしました。 (当然のことながら、Raspberry Pi ZeroはUECS Piのサポート対象外なので、使う時は自己責任にてお願いします) スペック比較 まずは仕様を比較しておきましょう。Raspberry Pi Model BはUECS Piがサポートする最下位モデル。Raspberry Pi 3Bは私がいつも使っているモデルです。 Raspberry Piの仕様比較 ( Wikipediaから抜粋 ) 追記)Pi Zero WのCPUの表記が適切でなかったので訂正しました。 Pi Zero WのCPU、メモリはModel Bと同等以上になっていますのでPECS Piを動かすキャパシティはあるんじゃないかと思います。ただし、有線LANのコネクタがないので、その点は考慮が必要です。 とりあえず動かしてみる UECS Piのファーム(無線LAN対応済み)のmicroSDカードで起動してみた。 ピンヘッダの向きの関係でボードの裏側が写っている。 温湿度センサーはSHT-21。CO2センサーはELT S-300。 先週のブログで紹介した無線LAN対応済みのUECS PiファームウエアのmicroSDカードがあったので、とりあえずそれで起動してみました。 無線LANで接続し、UECS PiのWEB画面からログインできました。Pi3に比べて少し反応が遅いですが、稼働に問題ないようです。(あっけなかった) ログインや起動後新たな画面表示に時間がかかるようで、CPUとかメモリの大きさよりもSDカードの読み込みに時間がかかるような気がします。boot時のCUIのメッセージ表示のスピードも遅いですね。そもそもPi3と比べるのはかわいそうか? ピンの配置もRaspberry piの40ピンの配置と同じなので UECS Piに接続できるセンサー入門② で紹介した自作のスタッキングボード...

UECS Piファームウエアを自分用にカストマイズする③

イメージ
今回は、UECS PiをWiFi(無縁LAN)で接続する方法を紹介します。 UECS PiがサポートするRaspberry Pi 2では無線LANは実装されませんが、Raspberry Pi 3以上では無線LANは標準装備です。無線LANを使えばLANケーブルの配線が不要になり設置の自由度が高くなります。もちろん有線LANの方が安心という考え方もありますが。まだテストはしていませんが、Raspbery Pi Zeroでも無線LAN付きモデルがあるので、使えるようになれば選択肢が増える可能性があります。 UECS Piファームウエアを自分用にカストマイズする① で紹介したように、UECS Piの画面では無線LANのIPアドレス設定はできません。また、無線LAN用のSSIDの定義も追加する必要がありますので、ここはRaspberry Piに直接ログインしてCUIで設定します。ステップとしては2つです。 無線LAN用のインターフェース定義をする(/etc/network/interfacesを編集) WiFiアクセスポイントの定義をする(/etc/wpa_supplicant/wpa_supplicant.confの編集) 始める前に。ネットでRaspberry Piの無線LAN接続の記事を調べるとdhcpcd.confに定義する方法が紹介されています。しかし、UECS PiのファームウエアではDHCPクライアント(dhcpcd)のサービスが使用されてないためか、dhcpcd.confに定義しても無線LANに接続できません。いろいろ試しましたがうまくいかないので/etc/network/interfacesに定義する方法をとりました。しかし、dhcpcd.confに定義する方法が推奨されているので、いずれそちらに移行する必要があるでしょう。 無線LANインターフェースの定義 /etc/network/interfaces それでは、/etc/network/interfacesに無線LANインターフェースの定義をしましょう。 編集の仕方は UECS Piファームウエアを自分用にカストマイズする① で紹介したようにエディターのnanoで編集します。 /etc/network/interfacesの無線LAN用定義例 画面はWindowsのPCにファイル転送してサクラエディタ...