Python in Blender

9月にとある資格試験を受ける予約を入れていて、7月くらいにこれはどうも準備が間に合わないとおもって、2週間延期して、またしばらくして準備ができないということで、今度はもうちょっと長く延期しようということで、11月のはじめに受けることにして、10月になってそれでも準備が間に合いそうになかったんですが、これ以上延期すると少しは準備した分をぜんぶ忘れてしまいそうだったので、10月後半はわりとまじめに勉強して、先週受けてきたんですが、残念ながら及ばず、また12月に再試験を受けることになりました。

そんなわけで試験準備は続けるんですが、自粛していた3Dプリンタ活動も少しは再開しようかということで、ひと月まえにやっていたプロジェクトをここにまとめておきます。


ぼくが3Dプリンタを始めたいとおもった直接の動機は、Beepyのケースを打ち出したいというもので、それは単純にできあいの3Dモデルをアップロードしてプリントすればいいだけだったのですが、同居人から、キッチンの水道の蛇口のプロテクターを作ってほしい、というリクエストがありました。

数年前にリフォームして、キッチンの水道はこんなふうになったのですが、

見かけはカッコイイものの、水がはねると角の部分に水あかがたまって、結局常にふきんで水をぬぐわなければならない。うしろのタイルの目地もすき間ができてきてそこに水が入り込んだりもするし。

それで作ったのが、

デジタルノギスで測ったので、サイズはピッタリ。いくつか改善したい点はあるけど、最初のバージョンとしてはかなり上手にできたのではないかと満足してます。

3Dプリンタの講習会では、3Dモデルの作成用のソフトとして、オンラインのTinkercadを紹介されて、ぼくがつくったこれも複雑そうには見えるけど、要は箱と円柱の組み合わせだけで、しかもひとつも斜めに配置しているものはないので、じゅうぶんTinkercadでモデル作成はできるはずだけど、実際やろうとしてみると、足し算と引き算だけとはいえ、サイズをぴったり合わせるためにはいろいろと計算をしなければいけなくて、途中でいま編集しているものがちゃんと正しいサイズで出力されるのか、まったく自信が持てなくなってしまい、Tinkercadをつかうのはあきらめた。

そんなわけで、Blenderを使うことにして、最初はマニュアル操作で箱と円柱を足していたけど、またしてもやっているあいだにわけがわからなくなって、どうしたものかとおもっていたら、BlenderがPythonのAPIをサポートしていることがわかり、Pythonのプログラムを書いてそれを走らせてモデルを作成させてやればいいことがわかった。 それでやってみたのがこんな感じ。

たぶんもうちょっとそういうCAD系のソフトを使えば、マニュアル操作でもこの程度のモデルはわりと簡単に作成できたりするんだろうな。でも、プログラムでやれば、サイズを変更するのも簡単だし、BlenderのAPIはなんだかよくわからないところがあるけど、とりあえず今回作りたいものは作ることができたので、しばらくはこのアプローチで行くことにします。

汚いコードでぜんぜんコメントも書いてないけど、コードをGitHubにアップロードしておきます。

SQFMI Beepy + Lua lfb library

BeepyにのせているRaspberry Pi Zero 2 Wは1 GHzで動作する64ビットCPUで、メモリも512MBつんでいるので、デスクトップやラップトップと同じようなこともできるはずなんだけれど、やはりこのちいさなディスプレイとキーボードだけで、昔のポケットコンピュータ(あるいはプログラム電卓)みたいなことをやるのがロマンなんじゃないでしょうか。

そんなわけでまずはBASICインタープリタでも入れてみようということで、bwBASICというのを入れて、1から10までの数をFOR LOOPで足してみたりしたけど、いまひとつ盛り上がりに欠ける。いまさらBASICというのもどうでしょうか。

仕事では最近Pythonを使うことが多いので、Pythonというのも考えたけど、老眼で大きめのフォントを使っているので、インデントでコードブロックを定義するPythonでは1行が折り返した場合に非常に見にくい。

じゃあRuby、ということにしても良かったんですが、今回はLuaというのをためしてみることにしました。これまでに使ったことはないけど、けっこう素直な文法みたいだし、ハードウェアをつつく必要が出てきたときにやりやすそうというのが理由。

Lua自体は普通にインストールしたら動くけど、やっぱりグラフィックスを表示したい、ということで、いろいろと調べた結果、このlfbというライブラリがシンプルでいいのではないかということで、まずは付属のサンプルプログラムを動かしてみたのがこのビデオです。

このライブラリでもポケコン的に使うには書かなきゃいけないコードがやや多めなので、これをもとにBeepy専用のライブラリを書いたりするのかな?

3DPrinterOS

先月BeepyというハンドヘルドのLinuxデバイスを買って、ケースがないので3Dプリンタで3Dモデルをプリントしたくなって、でも3Dプリンタを持っていないので、しらべたら図書館にあることがわかって、でも使うためには講習会を2回も受けなきゃいけなくて、講習会は1ヶ月先だけどそんなの待てるかな、とかおもっていたのですが、気がついたら1ヶ月経ってました。お年寄りになると時間の過ぎるのがはやいですね、というかたぶんPixel 5aとのたたかいのせいで時間が早く過ぎたのかもしれない。アップデートしてませんが、あれからまた中古のPixel 5aを買って、こんどは画面が真っ暗になったりせずなかなか快調です。

それはともかく、先週の3Dプリンタ1回目の講習では先生が3次元とはなにかみたいなことを説明しているときに、受講生のひとりが、3次元はわかりましたが’4次元とはなんですか?、と質問してたりしたんですが、今週はもっと実践的にどうやって3Dモデルを3Dプリンタに送るか、というのをやりました。(1) 3DPrinterOS.comというサイトに3Dモデルをアップロードして、(2)「スライス」して図書館の3Dプリンタにプリントするためのキューに入れて、(3) キューの順番が来てプリントがおわったらメールが来るので図書館に取りに行く、(4) お金は1グラムあたり10セント、ということらしい。

そんなわけで、Beepyのケースの3Dモデルをキューに入れてみましたよ($3.31でできる予定)。明日か明後日にはできるんじゃないかな?最初に試すには複雑すぎるような気もするけど、どうなるやら楽しみです。


(Update: 2023-09-27) 昨日の夜キューに入れたモデルは今日の午後プリントされました。プリントされているあいだWebcamで様子がわかるようになってて、仕事中にちょっとのぞいてみたのが下の写真です。

図書館から取りに来ていいよ、というメールが届いたので、あしたの昼休みにでも取りに行ってみます。

(Update: 2023-09-28) できました!

ケースのうらおもてを逆にしたほうがキレイだったのではないかとかいろいろあるけど、まぁデビュー作としてはいいんじゃないか。満足です。

Pixel 5a Android Auto Issue Resolved

7月のはじめからAndroid Autoがつながらなくなってしまい、いろんなことを試したのだけれど、ごくたまに気まぐれのようにつながる以外はぜんぜんダメで、一方iPhone 12は百発百中でApple CarPlayでつながるので、いよいよAndroidを捨ててAppleの軍門に降ろうかともおもったのだけど、Androidでもまっさらから再インストールしたらつながったりするんじゃないの?とおもったので、馬鹿馬鹿しい話だがもう一台同じ電話を買ってためしてみることにした。

さいわいぼくの電話はハイエンドでもなく最新型でもないPixel 5aなので、eBayで送料込みで$170ほどでした。程度がわるいものならもっと安いのもあったけど、やっぱり画面が割れてたりするのはいやなので、このくらいのにした。本体の裏側に汚れがあるけど画面はキレイ。

で、まず標準以外のアプリケーションは何もいれずにセットアップしてクルマ(Honda Fit 2018)につなげてみたら、何ごともなかったかのように、Android Autoが立ち上がる。いままであんなにつながらなかったのがウソのよう。電話は同じだし、OSもおなじAndroid 13のはずなんだが。

つぎに古い電話からアプリやデータを移してみる。WhatsAppとLINEはGoogle Driveにバックアップしてからリストアしなければいけなかったけど、それ以外はただ時間がかかるだけでたいした手間ではない。で、またつなげてみたら、またちゃんとAndroid Autoは立ち上がる。

最後の仕上げは仕事で使っているWork Profileの設定で、なんとなくこれあたりが悪さをしているんじゃないかと勝手におもっていたけど、Work Profileを入れてもちゃんとAndroid Autoは立ち上がるのだった。

それじゃ、いったいなんで立ち上がらなかったのかということだけど、それは結局わからずじまい。でも、とりあえずこの古い電話もバックアップ用にとっておいて、またAndroid Autoがつながらなくなったら、もう一回同じことをやればいいんだろうな、ということはわかったし、これ以上この問題に時間と労力を突っ込むのは不毛なので、これでいちおう解決、ということにします。

まぁ、たぶんPCにバックアップしてから初期化してリストアしてもいいんだろうな。でも、いくらバックアップしても、メインで使っている場合、初期化するのはちょっとためらうな。

(2023-09-11 付記)

そんなわけで月曜日になって、クルマに(eBayで買った)Pixel 5aを接続したら問題なくAndroid Autoが立ち上がって、Spotifyを聴きながら会社に向かっていたら、10分ほどして突然音が切れて電話の画面が真っ黒になって、お亡くなりになりました。充電はされているはずなのにいくら電源ボタンを押してもぜんぜんだめ。ネットで買った中古品ってこういうことあるよね、みたいな。水没品をつかまされたのかもしれん。

返却できるようなので返却することにして、それでも携帯がないと困るので、今日のところはiPhone 12にSIMを入れて使ってました。iPhone 12はなんの問題もありません。このままAppleに寝返ってしまうのがふつうでしょうが、もう意地になっているので、返却処理が終了したら、またべつのPixel 5aを手に入れて再挑戦する予定。

我ながら懲りないやつだなーとおもいます。

Beepy or Beepberry

Beepy あるいは Beepberry と呼ばれているおもちゃがついに届きました。とりあえずOSを入れてみたので写真を上げておきます。

予想通りハードウェアはちいさくてすばらしくチャーミングです。ただフォントが小さすぎてこのまま使うのは(ほぼ)還暦の眼にはつらいので、そのうちもうちょっと大きなやつに変えたい。日本語も出すことができるみたいので、それもやってみたい。これからいろんなひとがいろんなことを試してみるんでしょうね。楽しみです。

キーボードはBlackBerry純正だとかいう話なんですが、このキートップに書かれている文字はどうもアラビア語みたい。売れ残ったアラビア語版のキーボードが安く手に入ったということでしょうか。インディーズっぽいですな。

●●

ひとつだけ今日(8月21日)現在有用じゃないかと思われる情報。オフィシャルサイトのドキュメント通りにセットアップすると、画面は表示されますが、キーボードが動きません(はまりました)。オフィシャルサイトは無視して、このページにある手順を見てセットアップしたらめでたくキーボードが動きました。

NEIKO 01407A Electronic Digital Caliper

デジタルノギスを買ってみた。NEIKOというメーカーのもので、アマゾンで税込み$27.94でした。「くちばし」というか「ジョウ」の部分がプラスティックのやつなら$10以下のやつもあったのですが、やっぱりそこは金属であってほしいとおもった。あとどうもMitsutoyo製が最高に評価されているようだったのだけれど、$100以上するから、まぁこれくらいでいいか、という具合に決めました。

実際にさわってみると、ステンレス製でずっしりと重く、これなら$100くらいしても仕方ないかも、と感じます。まだなにも実際の用途には使ってないけど、いい買い物をしたような気がする。

●●

デジタルノギスを買ったのは、デイリーポータルの記事で、デジタルノギスがないと3Dプリンタでいいものはできない、というようなことが書いてあったからなんですが、だいたい3Dプリンタを持っていないので、順番としては3Dプリンタを買うことから始めるべきなのかもしれない。ただ3Dプリンタはけっこう大きいもので置き場所とかも考えなくちゃいけないし、種類がありすぎてどれを買ったものかよくわからない。だいたい買ってもどれくらい使うのかもわからんし。デジタルノギスくらいなら、使わなくてもそれほど邪魔にならないんですが。

●●

じゃあ3Dプリンタでなにを作りたいのかというと、まずは、Beepy(あるいはBeepberry)ケースを打ち出したい。このBeepyというのは、Raspberry Pi ZeroにBlackBerryのキーボードをくっつけてハンドヘルドのように使えるようにするというロマンあふれるプロジェクトで、5月に注文して(Raspberry Pi Zero込みで$99でした)、最近発送されたので(まだ届いてませんが)、じゃあケースを用意したいな、とおもった。

ケースの3Dモデルはダウンロードできるから、べつにデジタルノギスはいらないのでは?と言われれば、そのとおりです。

●●

子どもが通っていた大学にはMakerspaceという3Dプリンタなどを自由に使える場所があって、そこに行けば自前で3Dプリンタを所有しなくても、3Dモデルをプリントすることができた。ぼくも5月までは学生だったので、使う資格があったはずだけれど、いまは使うことができない。で、しらべてみたら、会社の近くの図書館に3Dプリンタがあって、毎月講習会をやっていることがわかった。講習会を受けないと図書館の3Dプリンタを使うことができないので、9月の講習会に申し込んでみた。

●●

そんなわけで、いまのところ、まずはBeepyをケース無しでいじくって遊びながら、9月になったら図書館で講習会を受けて、図書館の3Dプリンタでケースを打ち出して、それがおもしろかったら、自前で3Dプリンタを買って家に設置して、いろいろゴミのようなものを作りながら、はじめてデジタルノギスを実際に活用する、という計画です。

Julian Lage @Durham, NC

8月10日にDurhamで行われたJulian Lageのライブに行ってきました。

11月には来日してブルーノート東京で演奏したりするみたいですが(チケットはすべて売り切れ)、Durhamでは2日前はデスメタルのバンドが出てたほとんど立ち見のライブハウスで、音楽のジャンルからして客層の年齢は高め(たぶん平均50代)なので、ちょっと遅れてやってきて座るところがないのでどうしようかと困っているおじいさん・おばあさんとかがいました。店のひとが折りたたみイスをもってきてなんとかしたりしてました。

開演前の様子。まだひとがあまり入ってませんが、あとでほぼ満員になりました。うしろの人は、ウッドベースの頭くらいしか見えなかったんじゃないかとおもいます(笑)。

多くのYouTubeビデオでJulianはエレクトリック・ギターを弾いているので、勝手にエレクトリック・ギターを聴くんだろうなとおもってたんですが、今回はウッドベースのひととデュエットのアコースティック・オンリーのライブでした。

ギターの演奏テクニックについてはわかりませんが、あきらかにめちゃくちゃうまかったです。左手の指の動きなんかは手品のようでした。ときどき右手で頭や鼻をかいたりしていて、そのあいだも左手だけできわめて自然に音が出ている。まぁそういうのは練習すればできるようになるのかもしれないけれど、あたりまえのようにやってるし。

ベースの人もすごかったんですが、ときどきギターもベースも「超絶技巧」という感じじゃなくて普通のジャズっぽい曲を普通に演奏しているときがあって、それが実に良かった。もう速弾きとかやらなくても、スタンダード曲とかを普通にやるだけでいいんじゃないかともおもった。プロとしては、そういうわけにはいかないんだろうけど。

アンコールで演奏された”Emily”のビデオを貼り付けときます。

Hamlet, NC

ジョン・コルトレーンがノースカロライナで生まれたことは前から知っていたのだれど、その生地にはなにも見るものはないということだったので、片道約2時間掛けてわざわざ行くものなんだろうか?ということで行ったことはなかった。

このあいだふとまたサーチを掛けてみたら、何年か前にコルトレーンの壁画が完成したというので、じゃあまぁ行ってみるか、ということで行ってみました。

写真でごらんの通り壁画は立派ですが、ほかにはなにもありません。近くにダウンタウン?らしき通りがありましたが、活気のない南部の田舎町、という風情です。観光地化されていないという点で清々しいともいえます。

Hamletに向かう道も退屈極まりない道でした。アメリカ的、と言いますか。Spotifyでコルトレーンを聴きながら運転しました。

コルトレーンの生地に行くなら真夏だな、とおもっていたので満足です。

Sunflower

会社のボランティア活動でRaleigh Dix Parkのひまわり畑に行きました。

前回のブログで写真はスマホで十分みたいなことを書いたような気がしますが、きょうはひさしぶりにFujifilm X-M1 + XF 35mm f/1.4 Rを投入しました。

この組み合わせ(とくにXF 35mm f/1.4 R)の凄いところは、実際よりもキレイに写ることです。写真を撮るよりも自分の目で見るのが大事とかいいますが、写真の方がキレイなんだから写真を撮らなきゃしょうがないじゃないですか。

これが進行すると、高いレンズで撮らなきゃキレイに撮れないんだから、高いレンズを買うしかないじゃないですか、となって、レンズ沼にはまるのでしょう(はまらないよう心がけていますが)。

Fireworks

昨日はアメリカ独立記念日でした。

朝、4マイルランの大会に出て、そのあと疲れたので昼寝して、夜に花火に行きました。もちろん高いカメラで三脚を立てて撮ればもっときれいに撮れるんでしょうが、スマホでこれだけ撮れりゃもう十分ですな。

ランニングはとりあえずめでたく最後まで歩くことなく完走です。いつもは走りながら音楽を聴いたりしないんですが、いっしょに走った(ぼくよりずっと早くにゴールしたけど)下の息子がSpotifyのプレイリストをつくっていたので、うらやましくなってぼくも邦楽オンリーでつくってみました。けっこう良かったです。

サザンの途中くらいでゴールでした。