タグ「RaspberryPi」を含む投稿[60件](2ページ目)
RaspberryPi4BのACT-LEDをGPIOに出力してみました。
/boot/config.txtに設定を追加します。
以下はGPIO24(18番ピン)に出力する設定です。他のピンでも動くと思います。
$ sudo vi /boot/config.txt
# 末尾[all]の後に次を加えます。
dtparam=act_led_gpio=24
再起動すると基板上の緑のLEDの挙動がGPIO24に出ます。
やりたいことはUSB電源の制御で、カーネルが読み込まれたらONにし、カーネルが落ちたらOFFにしたいのです。再起動においてUSBデバイスをリセットするためにUSB電源を一度落とすことが目的です。
更に設定を追加してACT-LEDを常時点灯にすると求める動作を得られるようです。
$ sudo vi /boot/config.txt
dtparam=act_led_gpio=24,act_led_trigger=default-on,act_led=on
起動後にカーネルが読み込まれるとGPIOがHになり、シャットダウンもしくは再起動でカーネルが落ちるとLになります。それぞれのタイミングも良さそうです。
今日はLEDで出力を見ただけですが、実際にリレーを動かすならプルダウンした上にトランジスタ等でバッファする必要があるでしょう。
RaspberryPiのUSB電源はスクリプトで制御可能ですし、リレーを動かすだけならGPIOを操作すればいいのですが、各種モジュールが読み込まれる前に電源を投入し、各種モジュールが落ちてから電源を切りたいので意味が違います。
カーネルが落ちたらUSB電源も落ちればいいのですが、RaspberryPiのUSB電源はPWR-LEDの標準動作と同じ挙動っぽいので、今回はACT-LEDを用いることにします。
#RaspberryPi
/boot/config.txtに設定を追加します。
以下はGPIO24(18番ピン)に出力する設定です。他のピンでも動くと思います。
$ sudo vi /boot/config.txt
# 末尾[all]の後に次を加えます。
dtparam=act_led_gpio=24
再起動すると基板上の緑のLEDの挙動がGPIO24に出ます。
やりたいことはUSB電源の制御で、カーネルが読み込まれたらONにし、カーネルが落ちたらOFFにしたいのです。再起動においてUSBデバイスをリセットするためにUSB電源を一度落とすことが目的です。
更に設定を追加してACT-LEDを常時点灯にすると求める動作を得られるようです。
$ sudo vi /boot/config.txt
dtparam=act_led_gpio=24,act_led_trigger=default-on,act_led=on
起動後にカーネルが読み込まれるとGPIOがHになり、シャットダウンもしくは再起動でカーネルが落ちるとLになります。それぞれのタイミングも良さそうです。
今日はLEDで出力を見ただけですが、実際にリレーを動かすならプルダウンした上にトランジスタ等でバッファする必要があるでしょう。
RaspberryPiのUSB電源はスクリプトで制御可能ですし、リレーを動かすだけならGPIOを操作すればいいのですが、各種モジュールが読み込まれる前に電源を投入し、各種モジュールが落ちてから電源を切りたいので意味が違います。
カーネルが落ちたらUSB電源も落ちればいいのですが、RaspberryPiのUSB電源はPWR-LEDの標準動作と同じ挙動っぽいので、今回はACT-LEDを用いることにします。
#RaspberryPi
RaspberryPiCM4は単体では動きません。なんらかのインターフェースボードが必要です。
ArtNet-Routerに使うのであればEtherポートが2個、HDMI、USB3.0が付いている物が良いなぁ~くらいの気持ちで買ったボードには「SIMカードスロット」が付いています。
お目当てではなかったのですが、どうせならLTEモデムも実験してみようかと。出先でIoT的に使うならネット回線も繋いでおきたいと思っていました。ネットに繋がりさえすればVPNでどうにもでもなります。
ちなみに、3割程安いすごく似たボードがありますが、こちらにはSIMカードスロットがありません。M.2スロットも安い方がEキーで今回のはBキーです。どちらが良いというより目的が違います。
モデムカードは「L850-GL」をオーダー。日本国内のプラチナバンドにも対応する数少ないM.2モデムです。価格は約3,500円(2023年2月現在)ですが、プラチナバンドに対応した外付けのwifiルーターよりも安価です。ドライバはOS標準に無いそうですが、チップメーカー純正のドライバがGitHubにあります。
設定は先達の情報を継ぎ接ぎしてどうにかしましょう。
#RaspberryPi
ArtNet-Routerに使うのであればEtherポートが2個、HDMI、USB3.0が付いている物が良いなぁ~くらいの気持ちで買ったボードには「SIMカードスロット」が付いています。
お目当てではなかったのですが、どうせならLTEモデムも実験してみようかと。出先でIoT的に使うならネット回線も繋いでおきたいと思っていました。ネットに繋がりさえすればVPNでどうにもでもなります。
ちなみに、3割程安いすごく似たボードがありますが、こちらにはSIMカードスロットがありません。M.2スロットも安い方がEキーで今回のはBキーです。どちらが良いというより目的が違います。
モデムカードは「L850-GL」をオーダー。日本国内のプラチナバンドにも対応する数少ないM.2モデムです。価格は約3,500円(2023年2月現在)ですが、プラチナバンドに対応した外付けのwifiルーターよりも安価です。ドライバはOS標準に無いそうですが、チップメーカー純正のドライバがGitHubにあります。
設定は先達の情報を継ぎ接ぎしてどうにかしましょう。
#RaspberryPi
ここ最近、中華電機からのお届け物が速い。
これまでは「お届け予定日」から数日以内に届けば良い方で、下手すりゃ数週間遅れることも珍しくありませんでした。
何がどう変わったのかわかりませんが、最近は予定日よりも早い。
数日前に届いた物は予定より半月も早い。好印象を持たせるためのふかした予定日だったとしても、DHLなどを使わずに1週間で届いたのですから間違いなく速い。
てなわけで、RaspberryPiCM4が入荷しました。小さいとは聞いていましたが、思った以上に小さい。
半導体不足で入手難でしたから現物を見るは初めてです。箱を見た瞬間、あまりの小ささにRaspberryPiのロゴが入ったノベルティが送られてきたのか?、やられたのか?と思ったくらいです。
灯を入れてチェックする時間はしばらく取れそうにありませんが、想像が広がる楽しい一品です。
#RaspberryPi #中華電機
これまでは「お届け予定日」から数日以内に届けば良い方で、下手すりゃ数週間遅れることも珍しくありませんでした。
何がどう変わったのかわかりませんが、最近は予定日よりも早い。
数日前に届いた物は予定より半月も早い。好印象を持たせるためのふかした予定日だったとしても、DHLなどを使わずに1週間で届いたのですから間違いなく速い。
てなわけで、RaspberryPiCM4が入荷しました。小さいとは聞いていましたが、思った以上に小さい。
半導体不足で入手難でしたから現物を見るは初めてです。箱を見た瞬間、あまりの小ささにRaspberryPiのロゴが入ったノベルティが送られてきたのか?、やられたのか?と思ったくらいです。
灯を入れてチェックする時間はしばらく取れそうにありませんが、想像が広がる楽しい一品です。
#RaspberryPi #中華電機
追い込まれる程ではありませんが、本業がジンワリと忙しくなってきました。開発はボチボチペースで進めます。
ANSIエスケープシーケンスを使った画面表示の試作をしています。フリッカーを起こさないコツがわかったので表示が安定しています。
ただ、罫線の表示で少し疑問。解決はしたのですが不思議。
罫線素片はASCIIコードに含まれていませんのでシステム標準のUTF-8を使います。文字列リテラル"\u2500"とすれば横線が表示されます。"\u"は続く数値がUTF-8の文字コードであることを示すエスケープで"2500"は文字コードです。
不思議なのは、同じ文字列リテラルを16進数で表すと"\xE2\x94\x80"となることです。最初の"\xE2"はエスケープ文字なのでヨシとしても、続く"\x94\x40"がよくわからない。何らかの理由でオフセットしているのは確かですが、オフセット値が中途半端です。また、この表記だとビッグエンディアンなのでリトルエンディアンのRaspberryPiでナゼ?という疑問もあります。罫線素片のコード領域の起点を0x2500から0x9480に置き換えればいいだけなのですが、どうしてこうしたのでしょう。Rasbianが動くRaspberryPiに限った話なのかはわかりませんが動くように使うしかありません。
ということで、テキストのコンソール画面に罫線表示も出来る様になりました。
試作プログラムは不器用なベタ書きですが、ウィンドウマネージャもどきの関数ライブラリにしてみようと思います。
#C言語 #RaspberryPi
ANSIエスケープシーケンスを使った画面表示の試作をしています。フリッカーを起こさないコツがわかったので表示が安定しています。
ただ、罫線の表示で少し疑問。解決はしたのですが不思議。
罫線素片はASCIIコードに含まれていませんのでシステム標準のUTF-8を使います。文字列リテラル"\u2500"とすれば横線が表示されます。"\u"は続く数値がUTF-8の文字コードであることを示すエスケープで"2500"は文字コードです。
不思議なのは、同じ文字列リテラルを16進数で表すと"\xE2\x94\x80"となることです。最初の"\xE2"はエスケープ文字なのでヨシとしても、続く"\x94\x40"がよくわからない。何らかの理由でオフセットしているのは確かですが、オフセット値が中途半端です。また、この表記だとビッグエンディアンなのでリトルエンディアンのRaspberryPiでナゼ?という疑問もあります。罫線素片のコード領域の起点を0x2500から0x9480に置き換えればいいだけなのですが、どうしてこうしたのでしょう。Rasbianが動くRaspberryPiに限った話なのかはわかりませんが動くように使うしかありません。
ということで、テキストのコンソール画面に罫線表示も出来る様になりました。
試作プログラムは不器用なベタ書きですが、ウィンドウマネージャもどきの関数ライブラリにしてみようと思います。
#C言語 #RaspberryPi
RaspberryPi4Bが正価で入手出来たと先日書きました。国内はまだの様ですが、中国からRaspberryPiCM4も正価で入手出来ました。
CM4は組込み用途に特化し過ぎているために単体では何も出来ませんが、用途に合わせてインターフェースボードを作ればコンパクトでスッキリしたハードウェアを構成出来ます。
いずれオリジナルのインターフェースを作ってみたいと思っていますが、とりあえずはEtherNetが2口付いた既製品と共にCM4をオーダー。
ArtNet-PatchはCM4を用いて作りたいのです。プログラミングには4Bを使っていますが、製品にするにはちょっと違うので。
#RaspberryPi #[Art-Net]
CM4は組込み用途に特化し過ぎているために単体では何も出来ませんが、用途に合わせてインターフェースボードを作ればコンパクトでスッキリしたハードウェアを構成出来ます。
いずれオリジナルのインターフェースを作ってみたいと思っていますが、とりあえずはEtherNetが2口付いた既製品と共にCM4をオーダー。
ArtNet-PatchはCM4を用いて作りたいのです。プログラミングには4Bを使っていますが、製品にするにはちょっと違うので。
#RaspberryPi #[Art-Net]
RTCを装着したRaspberryPiは正常のようです。
今後製作する装置にもRTCを装着したいのですが、電池切れをどうやって拾うか思案中です。
socketの実験は連休中に時間が取れず未対応です。
Art-Netの受信と送信を1台でこなすにはIPアドレス的には同じゾーンで装置は別という変な構成になります。その上、broadcastで受けてbroadcastで送るというこれもまた変な構成です。ですので、コピペで使える先例がありそうでありません。
RaspberryPiのPythonでは成功していることですから可能だと思いますが、C言語のsocketの方が設定すべきパラメータが多いため、Pythonには無かった設定をどうするかが難問なのです。難しいというより、「ネットワークデバイスを指定してbroadcastで通信する」という前提の先例が少なく、沢山のデータシートを継ぎハギしないと見えないことが多いために苦心しているところです。
#RaspberryPi #C言語 #[Art-Net]
今後製作する装置にもRTCを装着したいのですが、電池切れをどうやって拾うか思案中です。
socketの実験は連休中に時間が取れず未対応です。
Art-Netの受信と送信を1台でこなすにはIPアドレス的には同じゾーンで装置は別という変な構成になります。その上、broadcastで受けてbroadcastで送るというこれもまた変な構成です。ですので、コピペで使える先例がありそうでありません。
RaspberryPiのPythonでは成功していることですから可能だと思いますが、C言語のsocketの方が設定すべきパラメータが多いため、Pythonには無かった設定をどうするかが難問なのです。難しいというより、「ネットワークデバイスを指定してbroadcastで通信する」という前提の先例が少なく、沢山のデータシートを継ぎハギしないと見えないことが多いために苦心しているところです。
#RaspberryPi #C言語 #[Art-Net]
RaspberryPiにRTC(リアルタイムクロック)を入れているのに起動の度に時間がずれる。
チェックしたところRTCモジュールの電池がダメになっています。定格3.3vのところ0.6vしかない。
RTCのチップはDS3231ですが、電池には充電タイプのLIR2032(LRではなくLIR)を使えばいいらしい。
amazonにあったのでポチる。先ほど届いたので取り付けたところRTCの機能が回復。
Art-Netエンジンのテストプログラムを書いていて気持ち悪かったのでスッキリしました。
追記
時刻合わせは
$ sudo ntpdate ntp.nict.jp
ネットワーク経由で現在時を取得し、
$ sudo hwclock -w
DS3231に書き込みます。
この手順をした後、電源を完全に切ってから起動すると時刻が合っているハズです。
時刻が初期化されてしまうならDS3231の電池がNGかと。
#RaspberryPi
チェックしたところRTCモジュールの電池がダメになっています。定格3.3vのところ0.6vしかない。
RTCのチップはDS3231ですが、電池には充電タイプのLIR2032(LRではなくLIR)を使えばいいらしい。
amazonにあったのでポチる。先ほど届いたので取り付けたところRTCの機能が回復。
Art-Netエンジンのテストプログラムを書いていて気持ち悪かったのでスッキリしました。
追記
時刻合わせは
$ sudo ntpdate ntp.nict.jp
ネットワーク経由で現在時を取得し、
$ sudo hwclock -w
DS3231に書き込みます。
この手順をした後、電源を完全に切ってから起動すると時刻が合っているハズです。
時刻が初期化されてしまうならDS3231の電池がNGかと。
#RaspberryPi
秋月電子通商さんでRaspberryPi4Bが販売されていました。
特需ですぐに無くなってしまう?
お金は辛いですが、とりあえず3個発注しました。
#RaspberryPi
特需ですぐに無くなってしまう?
お金は辛いですが、とりあえず3個発注しました。
#RaspberryPi
RaspberryPiをアップデートしたらネットワーク関連が動かなくなった。
起動パレードを見ると「Failed to start DHCP Client Daemon.」と出る。
このサイトの通り手直ししたら治った。
抜粋すると次の通り。
$ sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
Change from:
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
To:
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpcd -q -w
wait.confを訂正するってことです。
#RaspberryPi
起動パレードを見ると「Failed to start DHCP Client Daemon.」と出る。
このサイトの通り手直ししたら治った。
抜粋すると次の通り。
$ sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
Change from:
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
To:
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpcd -q -w
wait.confを訂正するってことです。
#RaspberryPi
このところ現場続きで先の現場の準備もままならないところですが、気分転換で少しづつやってます。
GPIOに繋げたテスト用のLEDを目視した範囲なので確実とは言えませんが、act_ledはカーネルの動作中を表す信号として使えそうです。
pwr_ledとact_ledの挙動ですが、通電直後(再起動では一度終了した時)はデフォルト設定に戻っており電源パイロットとSDカードのアクセスランプとなっていますが、カーネルが起動して各種ドライバが読み込まれる前にcmdline.txtに書かれた設定がされます。GPIOも通電直後は初期化されており、Hi-ZかGNDになっているようでHは出力しません。
つまり、act_ledをdefault-onにしてGPIOにオーバーライトすればカーネルが起動している時に点灯するLED、すなわちカーネルが起動していることを表す信号となるようです。
電源が入った直後は端子の状態は不安定ですからワンショットが出るかもしれませんけどね。
ならば、この信号を受けてUSBポートの電源を入り切りするようにすればいい。
GPIOの信号を抵抗とコンデンサの時定数回路で受けて起動時ノイズの除去と遅延(0.5秒前後)を与え、シュミットトリガを通してヒステリンス特性とし、トランジスタを介してリレーを動かします。
USBポートの電源は、ケースからの出力にキーストーンモジュールを使っていますので、バラシてケーブルを割り込ませます。
懸念は、このオフ時間でUSBハブが再起動リセットされるかです。3-4秒はあるので行けると思いますが、確実なリセットになるかは試さないとわかりません。
#RaspberryPi
GPIOに繋げたテスト用のLEDを目視した範囲なので確実とは言えませんが、act_ledはカーネルの動作中を表す信号として使えそうです。
pwr_ledとact_ledの挙動ですが、通電直後(再起動では一度終了した時)はデフォルト設定に戻っており電源パイロットとSDカードのアクセスランプとなっていますが、カーネルが起動して各種ドライバが読み込まれる前にcmdline.txtに書かれた設定がされます。GPIOも通電直後は初期化されており、Hi-ZかGNDになっているようでHは出力しません。
つまり、act_ledをdefault-onにしてGPIOにオーバーライトすればカーネルが起動している時に点灯するLED、すなわちカーネルが起動していることを表す信号となるようです。
電源が入った直後は端子の状態は不安定ですからワンショットが出るかもしれませんけどね。
ならば、この信号を受けてUSBポートの電源を入り切りするようにすればいい。
GPIOの信号を抵抗とコンデンサの時定数回路で受けて起動時ノイズの除去と遅延(0.5秒前後)を与え、シュミットトリガを通してヒステリンス特性とし、トランジスタを介してリレーを動かします。
USBポートの電源は、ケースからの出力にキーストーンモジュールを使っていますので、バラシてケーブルを割り込ませます。
懸念は、このオフ時間でUSBハブが再起動リセットされるかです。3-4秒はあるので行けると思いますが、確実なリセットになるかは試さないとわかりません。
#RaspberryPi