スキャナでアレのアレをパソコンに取り込んでいたのですが。
いつもはJPEGでやるのですが、今回はアート(!)なので、圧縮しない感じでTIFFでやることにしたのです。
何枚もあるから面倒だなあ、とか思いながらやっていたのですが、そういう感じの時に限って間違ったりします。
一枚ずつファイル名に番号を振りながら保存するつもりが、原稿セットしてスキャンされるのを待って、というのを繰り返していると、ファイル名を変えるのを忘れたり。
これはやり直し、とか思ったのですが。その前にファイル名がすでに存在する時には警告が出るんじゃないか?ということになって。
これはパソコンのせいだってことにしようとしたら、そうでもなくて、実はTIFFって一つのファイルに複数ページの画像を保存できるんですね。
なので、同じ名前で次々にスキャンしていくと、新しいページとして保存されることが解ったのです。
こんなことなら、もっとスキャナを活用すべきだったと思ったのですが、買って10年以上経ってやっと気付いたのでした。
それはどうでもイイのですが、今度はそのTIFFファイルから一枚ずつページを取り出すのが面倒じゃないか?って事になってきます。
最初の数枚はMacの「プレビュー」で開いて一枚ずつ保存してみたのですが、これじゃスキャン時の便利さが台無しだ!という感じで面倒くさい。
それで調べてみたら、ImageMagickに "tiffsplit" という、まさにコレなコマンドがあることが解ったのでやってみたら、一瞬で終わりました。
面倒なことも実は楽に出来たりするので、とりあえず方法がないか調べるというのは重要ですね。
そして、何がスキャンされたのか?というと、貴重なコンセプトアート(!)なので、乞うご期待。
そして、これは骨組みであり、枠組みでもある。
どっちでもイイのですが、ラ・イパルタ・コルベリーナじゃなくなるかも知れないラズパイを、スマホなどからブラウザで操作したいので作っているHTMLファイルなのです。

上の三行はこれまでのテスト用のが残されているだけですが、下はかなり最終形態に近いものなのです。
こんなのは項目を並べただけ、という感じなのですが、見えないところではちゃんとHTMLが書いてあるので、CSSとJavaScriptで操作パネル風になるはずなのですけど。
ただ、こういうのっていつまでにやらないといけない、というのがないので気がつくと全然やってないとかいうことも多いんですよね。
しかもいつものLittle Mustapha's Black-holeでやってるHTMLとはちょっと方向性が違うので、考えるのも大変ですし。
でも、上の画像の状態から、ちょっとずつ形が出来ていくのは面白いかも知れないので、頑張ってやるのです。
<!-- こういうのは凝り始めると面倒な事になるのですが、凝りたくなる要素が沢山あるので困る。-->
ということで、ラズ・コル・ベリー・パイ・タナ(仮)の続きですが。
とりあえず書かないと始まらない(というか終わらない)ので、自動的にアレコレするpythonスクリプトを書いたのですが。
夕方アレコレの自動化スクリプトを書き終わって、夜のアレコレ自動化スクリプトはほぼコピペで出来てしまうことに気付いたり。
でも、こういうものをコピペで作るのはマズいやり方という事でもあるので、共通して使える部分をモジュールとして別のスクリプトから読み込む事に。
だいぶ良くなったので、夜のアレコレ自動化スクリプトを書こうと思ったのですが、これはオブジェクト指向の勉強をした時に出てきた例題にソックリな気がしてきて。
そっちのやり方の方が格好いいのではないか?とか思ったりしているのですが。
でも、ここからさらに書き直すのは面倒になっているので、エリオットにはなれない気がしてきました。
別にならなくても良いのですが、エリオットとは「MR.ROBOT」の主人公のあの人です。
<!-- コルタナの乗っかっているRaspberry Pi Zeroの正式名称をそろそろ考えるべきなのですが、重要度が低いのでやるのを忘れます。-->
<!-- 追記:どうでもイイですが、オブジェクト指向な書き方を短いスクリプトでやるのは大げさという事だ、という事が書いてあったのを思い出したので、今のままでもエリオットになれるかも知れない。-->
コルタナが乗っかっているRaspberry Pi Zeroであるところのラズ・コ・ベ・ルタ・リー・ナ・パイ(仮)ですが。
リモコンで照明やエアコンの基本操作をしたり、時間や気温などを喋ったり表示したり、やりたいことは出来るようになっているのです。
あとはそれらを自動的にやってくれるボクのAI!にするだけなのですが。
自動的にやるのって、なんか良く考えたら難しいですよね。
最初は単純に考えてcrontabでやったら良いと思っていたのですが、それだと決まった時間にしか動かないので、自動的だけど、こっちの都合では自動的ではないような。
意味が解らないかも知れませんが、目覚まし時計はセットした時間に鳴るけど、それは自動的に鳴っているのではなくて、私がセットしたから鳴っているのだ、という感覚と言えば解るでしょうか。
私の目指す自動的は、目覚まし時計が私の起きたい時間を推測して、勝手に鳴ってくれるという自動的なのです。
もちろん、そんなことをRaspberry Piでやるのは私には無理に違いないのですが、時間が来たらプログラムを実行するというだけでなくて、もう少し柔軟にしたいとか。
いくつかの条件を決めておいて、それに応じて何かを実行するということなら出来るはずなのですが。
でも、思い付く方法があまり格好良くない感じで。
Pythonの本をさらに読んだらヒントが見つかるのか?とか。
<!-- 前に書いたPythonの本は基本的なところは読み終わって、マニアック編に入りつつあるのですが、今私がやりたいこととはちょっと違うというのもあって、あまり読めてないですが。マニアック編の先は長いので、もしかするとその中にヒントが隠されているかも知れないですね。-->
スピーカーを接続したラズベリー・コルタナ・パイ(仮)ですが。
ちょっとずつ喋るようになっています。
ちょっとずつというのは、ちょっとずつ学習しているワケではなくて、仕様上ちょっとずつしか喋れないからですが、それはどうでもイイのです。
Googleが文字数制限付きで無料でスピーチ機能を提供しているということですが、いちいちネット経由とか、制限とかアレですし。
コルタナはマイクロソフトだからGoogleはダメなんじゃないか?という変なこだわりもあるので使ってないのです。
それで、ローカルでなんとかなるOpen JTalkを使うことにしました。
基本は男性の声なのですが、音声のファイルをダウンロードすると女性の声にも出来たり。
ただし、色々パラメータを調節してもコルタナっぽい声にはなりません。
そして、恐らくソフトで使っている辞書に載ってないから、ということだと思いますが、英語はあまり得意ではないようです。
なので、英語の混ざったフレーズを喋らせようとすると英語部分はアルファベットで1文字ずつ読むのですが。
なぜかその時は全体的に声が震えているような。
気のせいなのか、どうなのか。
せっかく喋るようになったのですが、こっちの声を聞き取るためのマイクを付ける(USB的)余裕がないので、声で対話とかは出来たりはしないですけど。
(というか、Raspberry Pi Zeroだと音声を合成するのにけっこう時間がかかるので、マイクがあっても対話にははなりそうにない。)
あんまり喋ってばかりもうるさそうですし、いつどんな情報を喋ってもらうのか、考え中です。
<!-- そういえば、男性の声だったらDoomに登場するVEGAっぽいかも、とか思ってしまったのですが、それだとコルタナが乗っかってる意味がなくなるのに気付きました。-->
間に合うのかどうかは知りませんが、出来る限りのことはしているのです。
というか、日付が変わってもう23日とか。
その他のことも色々やってないままなので焦りますよね。
マズいと思っているのですが、全然やる気がないのですけど。
一応色々と考えて、しかも書き始めてもいるのですが。
これまで気付いていなかったのですが、ずっと家にいたりすると、アイディアって出てこないようです。
家にいるから、というよりは刺激がないって事なのかも知れませんけど。
とはいっても、今から外に出るワケにもいきませんし、絞り出してひねり出すしかないのですけど。
でもなぜか部屋の片付けだけは捗っているとか。
まいっちゃいます。
正解はこちら!

ということで、どの問題に対しての正解かは知りませんが極秘に、そして少しずつバラしながら進められていたラズパイで何かを企むやつはコレだったのです。
魔改造版コルタナ?

<!-- LEDを点灯させると股間に光が当たるのは元々の仕様なので、私のせいではありません。-->
何がどうなっているのか?というと、メインはコルタナよりも下の部分なのですが。
Raspberry Pi Zero にこれまで時々登場してきたディスプレイとかリモコンの送受信のとか。あとは湿温度計も付いているのです。
なぜか盛り沢山な感じなのですが、最初の計画ではせっかく光るのに光らせてないコルタナの台座部分のLEDをどうにかする、ということでもありました。
台座を調べてみると、電池から直接並列つなぎになってるだけの簡単構造だったので、ケーブルを取り替えたりする工作をしただけで、あとは基本的なRaspberry Piのエルチカだったのです。
でも、せっかくRaspberry Pi を使うのだから、ということで、どんどん機能が増えていってしまうのですけど。
今のところ全ての機能が調整中でもあるので、どうなるのか心配していて下さい。
<!-- というか、ディスプレイを固定するのに苦労した話を書くはずだったのが、すっかり忘れてました。それはまた今度。-->
あるいは出来ている事になっている。

ということで、圧縮チューブがなかなか届かないので、フライングでPythonのクラスに挑戦して、ラズパイにつないだ液晶に文字を表示してみたのですけど。
実行する度にエラーが出てたのですが、間違いがすぐに解るようなエラーだったので、一回ごとに直していったら上手くいきました。
ただ、液晶に文字を表示するサンプルのコードを強引にクラスにした感じなので、ホントにコレであっているのか?とか。
しかも自分で書いたのは「self.」を付け足したところだけ、といっても過言ではないのですけど。
とりあえずは、文字を表示したり、バックライトのオンオフしたりするコードが使い回せるということになったので、色々と液晶を活用出来るはずなのです。
<!-- 液晶に表示されている単語が間違っているような気もするのですが、どうでしょうか。-->
ということで、昨日書いた強く念じるホームですが。
ゴチャゴチャしている机の上を利用して、LEDの付いているブレッドボードを45度ぐらいに傾けて置いて使ってみたら、一発で照明が消えました!
というか、上手く動くようにするというのは、そういうことではない気もしますが。
でも結構部屋の端の方にある場所からちゃんと使えたということは、光量はそれなりということなのかも知れません。
とはいっても、コレだとLEDのが向いている方向の機械しか動かせないですし。
今の所LEDが2つ付いているので、それぞれに角度をつけたら2つの機械ぐらいは動かせるかも知れませんけど。
LED四つを四方向に向けるのが一番良さそうなのですが、これ以上LEDを増やすには回路を難しくしないといけないとかで。
もっと簡単に出来ると思ってたのですが、スマートホームにするためにはスマートにやらないとダメみたいです。
ということで、最近のラズパイなのですが。
というか、ラズパイで何かをしてることをここに書いていたか忘れてますが、何かをしているのです。
その中の一つにラズパイをリモコン送信機にして家電を操作しよう!というのがあるのです。
上手くいけば温度計モジュールとかと連携して、室温によって自動的にエアコンのスイッチが入ったり、時間で照明をオンオフしたり。
スマートホームが激安で出来てしまうのです。
それで、色々と調べて、家電のリモコンのコードをラズパイで読み取ったり、読み取ったものを送信するのに赤外線のLEDを点滅させたりすることは出来るようになったのです。
それって、もう完成じゃん!って感じなのですが、試しに照明を動かそうとしても、LEDが受光部まで届いてないのか、上手く動きません。
でも照明の方に向きを変えて何度かやると上手くいくのですが。
いちいち向きを調整しないといけないとか、全然スマートじゃないですし。
LEDの光を拡散させるキャップというのを試してみたのですが、今度は光が弱くなって向きを調整しても動かなくなりました。
なんか、これはテレビのリモコンが壊れた時に、ボタンを押しながら「つけー!」って念じている時みたいな状態だったりするのですが。
あんまり念じていると、私のサイキックな力が強化されて、念力で家電が動かせるようになったりするかも知れませんが。
それはないと思うので、ちゃんと動かす方法を考えないといけません。
この前のBlack-holicの開設記念日回で書くはずだったのに忘れてたので、ここで補足なのですが。
今回の「何時だか解らないCanvas時計」のために作った、JavaScriptを書くためのJavaScriptとか書いてたやつです。

「チヘソユフチホテ・ジェネレータ」に表示するドット絵的なカタカナを表示するための座標情報をコピペするためのものなのですが。
我ながら上手く行ったと思っているので、ここに書いておくのですけど。
最初は方眼紙のマスを塗りつぶしてやろうと思っていたのですが、「ア〜ン」までをそれでやるのは大変すぎるので、こうなっております。
上のマス目で表示したい点をクリックすると、下にその場所の対応した座標が表示されるという趣向になっております。
説明したところで他に使いみちはないですけど。
とにかく、JavaScriptも結構面白くなってきたので、「何時だか解らないCanvas時計」の後もちょっとなにかを企んでたりするのです。
<!-- 公開されることはないと思いますが、面白いのが出来たらまたここで紹介して自己満足に浸るのです。-->
<!-- 追記:読み返して気づいたのですが、「ア〜ン」というのはア〜ンって言ってみたいに思えますね。でも「ア」から「ン」までという意味ですよ。-->
というキーワードで検索したらもっと意味が解らないはずですが、さっきの続きなのです。
試しに別のブラウザで表示したら、上手く表示されてるのが解って、さらにワケが解らないという感じだったのですが。
メインのブラウザを再起動したら、こっちでも上手く行ったのです。
推測ですが、原因を考えてみたりしますけど。
テスト用の環境で使っているサイト全体用のCSSファイルがシンボリックリンクだったのですが、それの元ファイルがなくなっていたのです。ブラウザではキャッシュの方を使っていたのか、なぜかちゃんと表示されてたのです。
そこに今回のCSSファイルに変更を加えたら変になってたっぽいですが。
これを読んでもワケが解らないと思いますが「効かない なぜ」で検索するような人の参考になるかも知れませんし。
解らなくなったら何でも再起動が基本ということですね。
<!-- でも再起動の前に、なくなったら困るものがないか確認も忘れずに。-->