Pi Color Classicとでも名付けようかな

子供の頃から憧れてたパソコンを、今こそ作るのだ(という意気込み)

f:id:else-something:20210215231235j:plain

ずっと前に記事で読んだMachintosh SE/30

かなり前のことなんだけど、GigazineでSE/30を作った人の記事が出てて、自分だったらColor Classicをつくるなぁ。。。と思ったのを、ふと思い出した。

Color Classicって、当時のEYE-COM(今の週アス)って雑誌とかMac Fanとかで”犬みたい”って評価されてた記憶があるんだけど、めちゃんこかわいい筐体だと感じたんだよね。

でも、当時の自分は子供で、全く買えるわけもなく、憧れだけが残ったのでした。

ピザボックス型のMacも憧れたんだけどなーーー。
Quadraとかとかのほうがむしろありきたりな形に思えて、憧れなかったな。。。

Raspberry Pi で再現しちゃえ

Raspberry Piで昔のパソコンよりもパワーのある環境が手に入り、
3D プリンタを使ってケースの製作が容易になってる。
液晶モニタだってAmazonで簡単に手に入っちゃう。

Raspberry Pi用のMac OSのエミュレーターとかもあるみたいだけど、RaspiOSの見た目を調整して、当時のSystem 7っぽくすれば雰囲気出るんじゃないかと。

今のRasberry Pi 4なら、デュアルディスプレイの出力もできるみたいだから、モニタサイズが小さい筐体を作っても、実際使うときと外部ディスプレイに接続したら、実用的になるんじゃないかと妄想したり。。。。

ざくっとケースのモデリングを作ってみた

ネット上を探してみたんだけど、適当なColor Classicの3Dデータは有料販売されてるものだけみたい。

だけど、筐体の写真はいっぱい上がってるから、見た目に揃える感じでモデルデータを作ってみた。
それが、トップの写真。

色々気に入らないところがあるから、これをベースにRaspberry Piとモニターを内蔵できるように調整していってみよう。

久しぶりに、プロジェクトだー

raspbianで日本語入力ができないときに入れるもの

日本語入力できます!

f:id:else-something:20190206002830p:plain
日本語入力スクリーンショット

色々便利に使わせてもらってるraspbian。

所用があってNovember 2018バージョンを新規インストールしたら、日本語は表示されるのに、日本語入力がうまくできない。

原因はipafontが入っていないから?!

まぁ、mozc入れればいいんでしょと、たかをくくっていたものの、入れても入力できない。

そもそも、上部のパネルにfcitxのキーボードのアイコンが表示されない。

あれ?fcitx入ってるよね? って、再インストールしてもダメ。

結局、ipafontをインストールすると、すべて解決しました……

ということで、コマンド的にはこんな感じ。

sudo apt install fonts-ipafont fonts-ipaexfont
sudo apt install fcitx-mozc

インストールすんだら再起動。

その後、メニューの「設定」「入力メソッド」「fcitx設定」で、日本語キーボードを追加してください。

raspberry pi 公式ディスプレイとraspbian jessie Pixelで、画面の90°回転ができない!!を解決。

lcd_rotate=1,3が効かない! 2は効くのに!!

やりたいことは、画面の90°回転。もしくは270°回転。タッチパネルもあわせてね。

ひょんなことで、Raspberry Pi公式ディスプレイを縦位置で画面表示する必要に迫られまして。

lcd_rotate=1

この設定を/boot/config.txtに追記してあげればすぐに変更できると思ってたのに、そうじゃなかったので、解決策をメモ。
以下の内容は、次のスレッドの議論を元に設定変更を行い、手元の環境で動作を確認しました。 (手元環境: raspberry pi3, raspbian jessie with pixel(どのリリースかわすれた。。。), raspberry pi公式ディスプレイ(たぶん、element14のやつ))

画面を回転させる設定

/boot/config.txt
に、以下の呪文を追記します。

display_rotate=1

再起動後、画面が時計回りに90°回転するはず。
反時計回りに90°(つまり時計回りに270°)回転させる場合は、設定値を3に。

タッチパネルのx,yを回転させる設定

上記ディスプレイの回転では、画面しか回転しないため、タッチパネルがおかしなことになります。
なので、以下のコマンドで、タッチパネルのx,yの軸を変更します。

xinput --set-prop 'FT5406 memory based driver' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
xinput --set-prop 'FT5406 memory based driver' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1

コマンドラインで上のコマンドを実行すると、すぐに反映されるはず。

起動時に実行するように、スクリプトファイルにして、ログイン時に実行させる

上記コマンドを毎回打つのもアレなので、ホームフォルダにシェルスクリプトファイルを作ります。

#!/bin/sh
xinput --set-prop 'FT5406 memory based driver' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

(display_rotate=3の場合は、そちらのスクリプトを)

で、

chmod 777 rotatetouch.sh で実行権限をつけて、LXDEの自動実行に追記。

/home/pi/rotatetouch.sh

これで、自動的にタッチパネルも入力が正しく行われるようになるはず。

ハマったところ

ネットをさまよっていると、下記コマンドでタッチパネルが回転できる記述が多くありました。

xinput --set-prop 'FT5406 memory based driver' 'Evdev Axis Inversion' 0 1
xinput --set-prop 'FT5406 memory based driver' 'Evdev Axes Swap' 1

が、そんな設定ないよ、と怒られて設定できない模様。

“Coordinate Transformation Matrix”

これで、設定する必要があるみたい。

 I can run
xinput list
and see
'FT5406 memory based driver'
in the list and I can
xinput list-props 'FT5406 memory based driver' | grep "Coordinate Transformation Matrix"
and see the identity matrix I just can't seem to set it with --set-prop

ロゴス アクションクーラー50の改造(追加改造後計測編)

悔しいから、さらにアルミシートを追加施工

温度を測ってみました!

f:id:else-something:20170908000830p:plain

アルミシートを追加施工した温度をグラフに追加しました。
やっぱり、温度上昇の波形が緩やかになっているので、2枚張りは効果があるのだな、と。

そもそも、内向きにアルミシートを貼ったほうが効果が高いのか、外向きにアルミシートを貼ったほうが効果が高いのか、よくわからないなぁ。。。。

謎なのは、(おそらく氷が溶けきって)温度が上昇し始めるタイミングが、無改造と追加工したのと同じぐらい。。。。
同じ氷の量をつかってるのだけど、冷え方が違ったのか。。。。

使うときには食材も入るし、保冷剤ももっと入るから、保温力もあがるかなー。
でも、蓋の開け閉めもあるしなーーーー。

ということで、しばらくこれで使ってみて、保冷力が気になるなら、発泡ウレタンに手を染めるか、クーラーボックス内にアルミマットで仕切りでもつくるかなぁ。。。

ロゴス アクションクーラー50の改造(改造後計測編)

改造した効果があるのか計測するのだ

こ、効果……??

という訳で、計測結果がこちら。

f:id:else-something:20170829171439p:plain

そもそも、環境が違いすぎるのか……
冷却用の氷等の環境は同じだけど、最低温度がアルミマットを貼った後の方が高いという……

前向きにとらえると、x軸の76の辺り(x軸は、最低温度到達からの10分毎のカウントアップなので、760分=約12時間半後)までの温度上昇の波形が、無改造の時よりも緩やかなので、すこしは効果があったのかな、と。

改造後の方が室温が高く感じられたため、その影響も考えられる。

76以降は、急に温度が上がってるので、室温に引っ張られたかなー。

今度は、発泡スチロールの外側にも、アルミシートを貼ってみようかな。
遮熱効果を狙って。

改造は続く。。。

ロゴス アクションクーラー50の改造(改造編)

まずは、分解して一番内側にアルミの保温シートを貼るのだ

これで効果が有るのかしら……

f:id:else-something:20170720215733j:plain

分解するのはとても簡単

アクションクーラーは、ネジはほとんど使われておらず、唯一水抜きの穴がネジの役割をして、全体がバラバラになるのを防いでいます。

なので、水抜を外して、

f:id:else-something:20170720220100j:plain

分解。

f:id:else-something:20170720220124j:plain

発泡スチロールは、場所によって厚みが違いますが、1cm程度。
場所によってはそれ以下。
そら保温力ないわな。

f:id:else-something:20170720220428j:plain

100均で買ったアルミ保温シートを貼っていきます

f:id:else-something:20170720220658j:plain

この保温シートでは、断熱効果の向上を狙ってます。なので、アルミはほとんど意味がないと思いつつ、アルミ面を内側に向けて貼ってみました。

これは、今思えば、逆の方がよかったかも……

f:id:else-something:20170720221434j:plain

蓋も開いて、同じようにアルミ保温シートを挟んでます。

さて、これで効果があるのか……

計測してみよう。

ロゴス アクションクーラー50の改造(改造前計測編)

まずは、改造前のデータを取得するのだ。

f:id:else-something:20170720214622j:plain

中がスカスカだけど、これで計測

2リッターのペットボトルを凍らせたものと、アイスノンがあったので、この2つだけを冷却材にして、温度変化を計っていきます。

計測は、前回作ったラズパイ温度計。

外から見るとこんな感じ。

f:id:else-something:20170720214625j:plain

結果

冷却材が少なく、何にも入ってない状態だから、すぐに冷えて、すぐに温度が上昇していきます。
ほぼ外気温と同じになった辺りでストップ。
f:id:else-something:20170829170656p:plain 結果はこんな感じでした。

これを元に比較するとして、次は、改造だっ!

ロゴス アクションクーラー50の改造(準備編)

ラズパイで定期的に温度測って、庫内温度の推移をグラフ化してやるぜっ!

LOGOSのアクションクーラーボックス50を改良するための準備をしよう

キャンプに持ってくクーラーボックス。
なるべくお手軽なもので、大は小を兼ねるとLOGOSのアクションクーラーボックス50を買いました。

ロゴス クーラーボックス アクションクーラー50グレー 81448011

ロゴス クーラーボックス アクションクーラー50グレー 81448011

がっ!
これがなかなか保温力がない。
初日朝まで凍らせたペットボトルで予冷している状態から、もろもろ詰めて、翌日朝には冷却能力がほとんどなくやってる感じ。

調べると、クーラーボックスはいろいろ改造している方々がいらっしゃるので、それにならって改良したいと思うものの、効果があったのかどうか感覚だけだとわからないなぁ、と思って。

ふと、もろもろ実験に使ってるラズパイ zero wが目に入ったので、これで温度変化を定期的にとってやろうという魂胆です。

ラズパイで温度を測るための仕組み

まず、ラズパイと温度センサーが必要です。

調べてみると、いろいろなセンサーがあるようなので、ログ取得のスクリプトまであげてくれていたからあげさんの記事を参考に、センサーを選定。

システム的には、上記記事のまんまです。

で、ブレッドボードとモバイルバッテリーで、クーラーボックス内に設置して計測、、、でもよかったのだけど、結露とかで壊れてもやなので50cm程度のジャンパワイヤーを作成。

かくして、こんな感じで計測できるようになりました。

f:id:else-something:20170705204401j:plain

f:id:else-something:20170705204718j:plain

次は、改造前のデータ取得だっ!

raspberry piでHDMIをOffにしているのに、バックライトが消えない問題への対応②

raspberry piでHDMIをOffにしているのに、バックライトが消えない問題への対応②

前回はこちら

とりあえず、単純なコマンドだとバックライトは消えないので、MOS FETを使ってモニターへの給電をコントロールする作戦。

やってみたけど、何故か失敗でしたー

ブレットボードで回路を組んでみる。

f:id:else-something:20170606231705j:plain

2SK4017を使って、ゲートにGPIO 23番を接続。
ソースをGNDに接続しつつ、ACアダプタからの12v+をモニターの電源に接続して、12v-をドレインへ。
ソースをそのままACアダプタの-に繋いだら、回路は完成。

ためしに、ラズパイのコンソールでpythonからGPIO 23をLOW/HIGHにしてみてテスターでチェックすると、ACアダプタからの通電が通ったり、切られたり。

これは期待通りの動きだと、ワクワクでテスターを外してモニターにつないでみるものの……

なんか、ずっと通電してる……

GPIOの状態関係なし……

HDMIケーブルを通じて、GNDがつなかった状態になったゃった?

あまりにも不可思議なので、色々ケーブル抜き差ししてみたりしたところ、何故かHDMIケーブルをはずした状態だと、電気的には期待した動きをする様子。

しかし、それでは映像が出なくて本末転倒虫……

考察としては、HDMIのGNDが、ラズパイのGPIOのGNDと繋がってるので、MOS FETを経由せずにぐるりと通電しちゃったのかな、と。

ラズパイ、壊れなくてよかった。。。

しかし、悔しい。

次はリレースイッチを手に入れて、試してやる。

rasbian でVNCサーバーを立ち上げたのに、ログインできない時の対処法

クライアントがデフォルトの認証方法をサポートしてないみたい。

原因は、デフォルトの認証方法であるUNIX認証をサポートしていないから。(remminaの場合)
認証方法を変えればよいのだけれど、それをするためにはコンソールにアクセスし、X上で設定変更する必要があるみたい。

Xにログインするためには、モニタやらキーボード・マウスを接続する必要があり、それが嫌でVNCなんだけど。。。。

まずは、RealVNC提供のViewerで、接続してみる。

一番簡単だったのが、この方法。
接続できるクライアントアプリを使う。

www.realvnc.com

RealVNCが提供するビューアーがあるので、こちらをダウンロード。 .gzで圧縮されたバイナリファイルがダウンロードできるので、 解凍したあとに、

chmod +x VNC-Viewer-6.0.2-Linux-x64

で、実行権限をつけた後に、実行。

表示されたアプリでラズパイに接続すれば、認証問題を起こさず、接続できるはず。

remminaなどで接続できるようにする。

※今後上記Viewerを利用し続けるなら、別にこの設定する必要なし。

f:id:else-something:20170319143011p:plain

上記ビューアーで接続した後に、ラズパイのVNCサーバのオプションを開く。
securityにある「Authentication」を「VNC password」に変更。

「OK」を押すと、VNCパスワードを聞いてくるので、任意のパスワードを設定すればOK。

これで、remminaなどからでもVNCでアクセスできるはず。