ID: PASSWORD:
夜な夜な暇なお兄ちゃんってゆーなー(←ネタ古い)

新続新たぶん駄文-2

[日記鯖][片桐速波][七瀬速波][茜速波][Ch.9][ぽぽぽ][湘南日記放送局][みさき][しのぶ][メイド部][ヒナノイ]

日記鯖システム管理者からのお知らせ

  • 2016年2月9日(火)13時過ぎ~同月10日(水)午前8時過ぎの間、日記鯖への接続ができない不具合が発生しておりました。利用者の皆様にはご迷惑をおかけしました。 ←New!
  • 日記鯖の仕様変更、不具合対応等については、こちらの記事もご覧ください。

謎な数値:19 / 3
注目度(笑):0(今日) / 0(昨日)
伝説度(爆):%

お知らせ(2008/05/11)

[駄目屋仙人堂] [はうンしすてムズ]
[C] 「コーヒーハウス あん」「じゅらく」「太閤湯」(箱根・宮ノ下)、「姫之湯」(箱根・大平台)で写真展示してるかも。 関係者が飽きるまで(汗笑)。
[C] 2007/05/04(祝)の東京のりもの学会(第10回・2007年会)に駄目屋仙人堂として参加しました(スペース・七5a)。 御来場くださった皆様、ありがとうございました。 さて今後の活動の場をどうしましょうかねぇ…。
[C] RSSはこちら。どもでし>しゃ
[C] JR線乗りつぶし状況(閲覧には乗りつぶしオンラインのアカウントが必要ぽ)
[C] 「ロースおじさんのとんかつ教室」を探している方は ここから辿るよろし。→

2016/04/15(金) 【RasPi】WaveShareのLCDの機種判別をしようとしてみた


[D] WaveShareの3.2インチLCDと3.5インチLCD(DeviceTree的にはwaveshare32bとかwaveshare35aとかいった名前にされてるアレら)を 取っ換えひっかえして使うことが多くなってきたので、 いちいち/boot/config.txtを書き換えるのがめどくなてきた。

[D] っつーワケで、まずはLCDの機種判別ができないものかと、 ぐぐって拾ったILI9340のデータシートを見ながらSPIをほげって実験。

[E] データシートによればコマンド04hを送れば何らかの識別情報が返ってくるようだったけど、結果的には返ってこないはずのオール0しか取得できてなくて惨敗。

[E] LCDコントローラのつつき方がうまくいってない可能性もなくもないけど、 もしやと思ってWaveShareのサイトでLCDユニットの方のデータを見直してみたら、 どうもそもそもコントローラからの出力がコネクタに結線されてなさげなふいんき(ry

[D] ちうことは、LCDユニットに細工をして識別可能にするしかないか…。 32bでKEY1やKEY2にアサインされてるピンは35aではNCになっているから、 KEY1かKEY2をショートさせちまって、オープンなら35a、Lowレベルなら32bと判定するってことにでもしてみるかねえ。

[D] といいつつ、続きはまたそのうちやってみることにして、いったんここまで。

2016/04/12(火) 【RasPi】kernelを4.4.6にした


[D] sudo rpi-updateしようとしてみたら、 今回からカーネルが4.4.xになるけどええんか? と言われてしまったので、やヴぁくはないかを ざっくりと予習してみてから更新承認。

[D] WaveShareのTFTディスプレイとかいった非公式なデバイスが 使用できなくなった場合は (今までDeviceTreeで使っていたのであれば)、 /boot/overlaysを見て、dtboファイルが存在しないことを確認。 今まで使っていたdtbファイルの拡張子をdtboに変更して再起動すれば、 たぶん大抵は使えるようになる(註:この方法はすぐに使えなくなったが、後述の通りにリネームの仕方を変えれば解決する)。 とにかくwaveshare32bはこの方法で使えた。 未確認だけどwaveshare35aでもいけると思う。 ちうかそろそろ3.5インチモデルも欲しいのう。 本体増えたし。
※夜になってまたsudo rpi-updateしてみたら また更新がかかったが、この版ではまたwaveshare32bが使えなくなった。 しかし、waveshare32b-overlay.dtboをさらにwaveshare32b.dtboにリネームしたら使えるようになった。

[D] ちなみに↑このアフィのTFTディスプレイ、現物は未確認だけど DropBoxから取ってきたドキュメントを見てみた限りでは、 どうやら中身はやっぱりWaveShareのアレぽいですな。 せっかくだから3.5のやつぽちってみるかねえ。
※ぽちってみたら、届いたのはやっぱりWaveShareのアレだった。

[D] しかし付属ドキュメントの情報量がこんなもんだと、 正体がWaveShareのアレであることが見抜けたり、 WaveShareのアレの使い方をわかってたりしてる人でないと (非X環境で)使いこなすのは難しいんでないかねえこれ。 他所で買ってもこんなもんだろうけど。 ちうか前に他所で買ったやつ、取説一切無しってのも確かあったなそーいやw。

[D] そいやWaveShareのアレをDeviceTreeで使う方法とか、 表示速度を向上する方法とか、 ここにはまだ書いてなかったな。 そのうち気が向いたら書く。

2016/04/05(火) 【RasPi】 RasPi 3の内蔵WLANを使う


[D] 先日RasPi 3を入手したもののずっと内蔵WLANが使えずにいたけど、ようやく勝利すた。 Raspbian(Jessie)でwlan*が出現するようにするまでの手順は以下の通り。 その後の設定については外付けの場合と同様なので略。
  1. https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/base/から brcmfmac43430-firmware-sdio_1_ar71xx.ipk を入手。
  2. ipkファイルの正体はtar+gzipなので、 tar xzvf brcmfmac43430-firmware-sdio_1_ar71xx.ipk する。
  3. 続いてtar xzvf data.tar.gz
  4. cp -p ./lib/firmware/brcm/brcmfmac43430-sdio.* /lib/firmware/brcm/
  5. sudo reboot
これでwlan(他にWLANアダプタが接続されていない状態であればwlan0)が出現する…はず。(他にも試行錯誤している間に行った操作で必要なのがあったりはしたかも

2014/12/23(火) RasPiの無線LANアダプタをスリープさせない


[D] RasPi導入してからずっと、しばらく放っておくと WLANアダプタがスリープしてるっぽい状態になってしまって ifconfigで見ると「インターフェース自体はUPしてはいるけどIPアドレスが放棄されている」 ことになっている (そして、ifupし直せば復活できるにはできるけど、そもそも繋がっていないのでWLAN経由では起こせず別経路での操作が必要になる)現象に悩まされていて、 ぐぐってみても似たようなお悩み情報はたくさん見つかるが、 真似っこしてみてもどうもこれまでうまくいかなかった罠。

[D] んがしかし、現在の方法がどうやら いい具合に安定しているようなので対処方法をメモっとく。
  1. /etc/networks/interfacesの(アダプタが例えばwlan0であれば) wlan0関係の設定内容にwireless-power offを 追加しておく。
  2. /etc/default/ifplugdのSUSPEND_ACTIONの設定値を stopでなくsuspendにしておく (たぶんnoneでもいい)。
ポイントは、これを片方だけでなく両方やっておくってことですな。 片方だけだとうまくいかない。 あと他所の情報だとWLANアダプタのチップに依存する方法が あったりもしてたけど(カーネルドライバにオプション指定するタイプね)、 この方法は原理的にWLANアダプタの機種によらず通用する…はず。

[D] あとついで。 /etc/default/ifplugdに ARGS_wlan0="-q -f -u0 -d600 -w -I" を追加しておくと、電波届かなぁい状態になっても 600秒は切断処理をしないようになるので、 例えば家で無線使ってて電子レンジ使うと切断されてしまうとか、 そういう現象の対策に有効。

2014/12/12(金) RasPi用3.2インチQVGAタッチパネルディスプレイが届いた


[E] 配送経路上で何らかの手違いがあったようで、 受け取り場所に指定したコンビニには一昨日朝の時点で届いていながら こちらに通知が来ず、ヤマトの諸君に問い合わせて ようやくさっき物件を受領できた…。ううむ。

[C] まーとにかく、そんなワケで、RasPi用を謳っている 3.2インチLCDディスプレイ(タッチパネルつき)を開封。

[D] …予想通り、見事に取説、データシートの類は無し。 別の業者から調達すれば 何らかの資料が付属してたりするんかもだけど、まあいい。 とにかく、この時点でハードルは高いですな。 尼レビューとか見てても、このテの商品はこれに限らず、 「資料が全然無いから届いたけど動作確認もできねえよ!」 ってな怒りの声が多いけど、そんなことでお怒りになってしまうレベルでは 手を出してはいけません。

[D] とはいえ資料が無いことにはわしも手が出せんので、 まずは調査。 …尼の商品情報をよく見ると、DropBox経由で資料が調達できるっぽいリンクがあったけど、 現物の基板に「WaveShare」ってシルク印刷されとるのに気がついたので、 これをキーワードにぐぐって、調査自体も楽しむことにw。

[D] なるほろどうやら、こいつの正体はこの WaveShare 3.2inch RPi LCD (B) ってやつか。 リンク先にピンアサイン等、仕様情報あり。 予想してはいたけど、バックライトは常時点灯であってGPIOから制御できたりはしないっぽいな。

[D] で、現状のRaspbianではドライバが付属していないので、 何らかのドライバを調達する必要あり。 fbtftちうフレームバッファドライバ(これはAdafruit系LCDとかいろいろ対応しているらすい)を組み込んで、 設定を頑張ればまず出力系は何とかなるっぽい。 (結果的には設定で頑張る必要はそれほどなかったw)

[D] そしてfbtftドライバについてあれこれ調べていたら、 ちょうど数日前からドライバがこのデバイスにも対応していて、 カスタム設定をゴリゴリする必要はなくなっていたこととか、 fbtft導入キットに付属するドライバでタッチパネルも使用できるらすいこととか判明。

[C] っつーワケで、ドライバと対応カーネルを突っ込んで、試行錯誤しつつ設定&再起動して、LCDは/dev/fb1として、タッチパネルは/dev/input/mouse1として 認識されるようになったことを確認。 fbiでの静止画表示にも成功。 結局のところ、ドライバ導入と設定の方法は以下の通りであった。 (この手順の場合はカーネルも更新される。 ドライバのみの導入も可能だがカーネルとの不整合を起こすおそれに注意。 詳細はfbtft公式wiki参照のこと)
  1. /usr/share/X11/xorg.conf.d/99-fbturbo.confを他のディレクトリに退避させ無効化するか、 当該ファイル内のfb0fb1に変更する。 (Xを使わないなら放置でもいい)
  2. /etc/modprobe.d/raspi-blacklist.confのblacklist spi-bcm2708行を コメントアウトするなり削除するなりで無効化する。(SPIドライバの無効化を無効化することでSPIドライバを有効にする)
  3. sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-updateでドライバ導入&カーネル更新。
  4. /etc/modulesにfbtft_device name=waveshare32b rotate=90行を追加する。 rotateオプションはお好みで(値は0,90,180,270が使用可能らすい)。
  5. さらにads7846_device model=7846 cs=1 gpio_pendown=17 speed=1000000 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900行も /etc/modulesに追加する。こっちはタッチパネルドライバ。後半部の設定値をあれこれ弄ることでキャリブレーションになるんかな。今んとこはこのままにしてる。
  6. 再起動後にはfb1やmouse1が有効になる…はず。
なお試していないのでXやコンソールをこのデバイスで使う手順は略。ぐぐれば情報はある(基本的にはfb1として認識される他のデバイスと同じでいいはず)。
※追記:fbtft側のrotate設定に合わせて、ads7846側のswap_xyも適宜設定(値は0または1)すること。またタッチパネルから取得できる座標はどう設定しても画面側の座標系と反対向きになってしまう場合があり、これについてはアプリ側での対応が必要となる。根本的な解決をするには現状ではタッチパネルドライバのads7846.cを修正するしかなさげ。

[D] 後日、Perl用SDLモジュール(sudo apt-get install libsdl-perlで入れられる)を使ってLCDに表示を行ったり ($ENV{SDL_VIDEODRIVER} = 'fbcon'; $ENV{SDL_FBDEV} = '/dev/fb1'; すればSDLからfb1を扱うことができる)、 タッチパネルからの入力を受け取ったりできる (普通にSDL_MOUSE系イベントが発行されるが、前述のとおり座標系に注意。無改造のads7846ドライバとの組み合わせでは、SDL内蔵のマウスカーソル表示機能は使い物にならないため、show_cursor(SDL_DISABLE)し、必要があればさらにマウスカーソル表示を自前で実装することになる)ことも確認できた。 まあ、ちょっと高度なアプリケーションを組もうとすると、 むしろSDLモジュールの癖が強いってのにやられるワケですがががw。 特にSDLモジュールがithreads safeでないのか、 ithreadsは使い物にならない(子スレッドのjoinやdetachをすると暗黙的にSDL_quit()されてしまうっぽい)。 といいつつ、ithreads自体オーバーヘッドがかなり大きかったりもして(噂に聞いてはいたが今回使ってみてよくわかったw)、 Perlで並行処理をするならithreadsよりSysV共有メモリとforkを使った方がどのみち応答はずっとマシである。

[D] ちなみにこのfbtftキットに付属するrpi-power-switchドライバも組み込むと、 お手軽にGPIO経由でシャットダウンやリブートを発動させることができる。 例えば、/etc/modulesに rpi_power_switch gpio_pin=18 mode=0行を追加すれば ディスプレイ横のK1スイッチでシャットダウンができる。mode値を1にすればリブート動作となる。 gpio_pinの値を23にすればK2、24にすればK3に対応する。 なお複数のポートをアサインすることはできないっぽい。

[D] 残念なのは、今まで使っていたケースが閉められなくなったことだなw。 まあ将来的には別の筐体に組み込む予定でいるから別にいいけど。

たぶだぶ名場面集(笑)

サンモール洋光台




あわせて読みたい









備忘録

[A]98/09/25 ジェ箱(謎汗)
[C]98/10/30 TOMIX 489系(白山)
[A]98/11/7〜8 壊れるのは一瞬だった(謎)
[A]98/11/12 謎
[C]98/11/15 浜松基地視察
[A]98/11/23 爆弾処理(笑)
[C]98/12/26 速波忘年会
[C]98/12/30 CM55/
[C]98/12/31 ZEUS絲丈浦
[C]99/01/02 ツレ実家
[C]99/01/03 実在義妹他迎撃
[C]99/01/23 ツレ実家イベント
[D]99/01/26〜01/29 SCIS'99
[D]99/02/20 家イベント
[A]99/02/21 房総方面視察
[C]99/03/18 電車でGO!2(PS)
[B]99/05/04 めいくおーる@京都 …轟天號メンバ(わし除き定員3〜4):タマ(往復)、は(復)、X(詳細未定)
[C]99/05/23 静浜基地視察
[C]99/06/12 ネタ輸出会
[C]99/07/10 墓地視察
[C]99/07/17 バレエ鑑賞
[C]99/07/24 おかん埋葬
[E]99/07/25 松島基地視察
[C]99/08/29 ツレ家
[C]99/09/12 華麗
[C]2000/01/02,03 ツレ実家イベント
[C]2000/01/07〜10 はうンスキー2000
[C]2000/01/15 江口イベント
[A]2000/05/03 帝國メイド倶楽部@都産貿
[D]2000/08/11〜13 CM58
[D]2000/08/12〜14 家イベント@西宮
[C]2000/08/15 三崎港花火大会
[C]2000/09/23 横浜室内アンサンブル
[C]2001/01/03 ツレ実家イベント
[C]2001/01/06 GS新年会

謎ゲージ(汗)

1998/11/08:
1997/11/29:ママレマ×マ
1997/09/04:フフ×フマサロ
1996/11/18:フ鐘
1998/07/10:××繭澪澪澪澪澪××七七七七×
2000/05/13:××
2001/05/29:未未