バイクとカメラと戯れ言

バイクはXJ600 diversion、カメラはDMC-CM1、旅の様子やそのほか日々のことを書きます

Geminiで余っていた電子ペーパーY-con P020とESP8266で作る「自動生成・英単語カードデバイス」


以前購入したものの、使い道が見出せず持て余していた電子ペーパーモジュール「Y-con P020」

電子ペーパーモジュールY-conP020を買ってみた - バイクとカメラと戯れ言

このモジュールに文字や画像を表示させるには、「白黒ビットマップ(200×96×1bpp)」のデータを送る必要があります。しかし、表示したい画像そのものを自前で大量に用意する手間や、画像を切り替えるためのメモリ容量の制限がネックとなり、なかなか良い活用方法が見出せずにいました。

そこで「Wi-Fi機能付きのマイコンを使って、ネットから画像データを持ってくれば解決できるのでは?」と考えました。

実は数年前にも、ESP-WROOM-02(ESP8266搭載ボード)を使って「ネットからデータを引っ張ってくる」という構想自体は持っていました。

新年秋月電子お楽しみ袋のLEDマトリクスを動かしてみた - バイクとカメラと戯れ言

 

しかし、当時はいくつかの壁にぶつかり、どちらの作成も頓挫していました。

8〜9年前に立ちはだかった壁

当時、このアイデアを実現する上でボトルネックになっていたのは以下のポイントでした。

  1. 画像データを大量に作るのが大変

  2. 大量の画像をクラウドにアップし、マイコンからそれぞれダウンロードする仕組み作りが大変

個人でこれらを自前で開発するのは、なかなかの重労働です。

現代の解決策:すべてGemini(生成AI)になげる!

しかし時代は変わり、現代には生成AI(Gemini)があります。かつて挫折した上記の壁は、AIの力を借りることでクリアできるようになりました。

今回、システム構築にあたってGeminiには以下の部分を作成してもらいました。

  • データの作成: Geminiで英単語カードリスト(CSV形式)を自動生成。

  • データの保管: 生成したCSVをGoogle Driveに配置。

  • 画像の自動生成: CSVの中身をモノクロビットマップに一括変換するPythonコードをGeminiに書かせ、Google Colabで実行。

  • 配信システムの構築: Google Apps Script(GAS)を使い、モノクロビットマップにランダムアクセスしてバイナリ形式のデータを返すスクリプトをGeminiに作成してもらう。

  • ハードウェアの制御: ESP8266で上記GASのAPIを叩き、取得したバイナリデータを電子ペーパーモジュールに流し込むArduinoコードをGeminiに書かせる。

流れ図

過去に諦めた「画像作成」も「クラウドからのデータ取得」も、Geminiのプログラミングで突破できました。

そして、ついに完成した英単語カードデバイスがこちらです!

完成写真

あとは、基板をまとめるケースをOpenSCADでコードを書いて、3Dプリンターで印刷すれば完成です。

ちなみにOpenSCADのコードはGeminiがあまり良いコードを書いてくれなかったので、自分で書くことにしましょう・・・

スタジオアリスとたまひよ写真館に行ってきた感想

おそらく子供の写真撮影の定番であるたまひよ写真館とスタジオアリスに行ってきました。

結論を先に書くと0歳児の写真撮影はスタジオアリスよりたまひよ写真館の方がいいと思います。

なぜこのようなことを言うかというとこの二つのスタジオは機材が大幅に違うため、撮れる写真が異なるのです。

まず撮影方法の違いです
たまひよはEOS5Dの手持ちカメラです。
スタジオアリスは中判カメラの備え付けカメラです。

次に照明の違いです

たまひよはスタジオに窓があり、自然光が取り入れられていました。
スタジオアリスはスタジオに窓はなく、シャッターに連動したストロボもありました。

このことからたまひよ写真館は全体的にスタジオの光量が高く、照明も全体的にフラットです。
そのため、移動やポーズ、タイミングに自由度があります。
さらに連写シャッターが使えるため、赤ちゃんの笑顔の瞬間を綺麗に納められます。

一方、スタジオアリスは窓のないスタジオになっていて、照明やレフが決まっています。
またストロボが当たる方向が決まっているため、子供が別の方向を向くと顔の光量が落ちてしまします。

そのため、スタジオアリスは移動やポーズ、タイミングに制限があります。
ストロボがシャッターに連動するため連写が使えず、笑顔の瞬間を逃すことが多いです。

つまりポージングが取れず、表情をつくれない0歳児ではたまひよの方がいい写真が多く撮れるでしょう

一方スタジオアリスの良さは豊富な衣装と決まった撮影スタイルでしょう
照明環境を全国で統一することが可能、画角もほぼ統一することが可能です。
つまりポージングできる年齢であれば安定して良い写真を撮ることができるでしょう。

結論としては
ハーフバースデーや初節句、誕生日はたまひよ
七五三や入学式などではスタジオアリス
といった使い分けが良さそうだと思いました。

キンブレランタンの製作

最近子供が産まれまして、夜間におむつの交換とミルクをあげています。

その際に通常は授乳ライトを使用するとおもいます。
しかし、我が家にはペンライトがありあまっているため、
キンブレを使用しています。

通常のキンブレでも十分ですが、明かりの直進性が強いため、
光を和らげる、ランタン化するブレード部分を製作しました。

f:id:grassbigboy:20240109220720j:image

 

 

キンブレのブレード部分の差し込み口はペットボトルとほぼ同じサイズということでしたが、ペットボトルはうまく差し込むことができませんでした。

(一昔前にキンブレとペットボトルで災害用ランタンを作っている人がいましたが、
あれはどうやっていたのでしょうか・・・)

 

3Dプリンタでペットボトル口を試作した結果原因がわかりました。
キンブレ部分の中央の発光部とペットボトルの内径が接触してうまくはまりません。

そのため、通常のペットボトル部分より内径を大きくする必要がありました。

左:標準のペットボトル口  右:内径を大きくしたペットボトル口
右のほうが壁が薄くなっていてキンブレに差し込める

データはOpenSCADにBOSL2のライブラリを追加して制作します。

include <BOSL2/std.scad>
include <BOSL2/bottlecaps.scad>

union(){
    translate([0,0,1.5])
    difference(){
        cylinder(center = true, h = 3, r = 35.0000000000);
        cylinder(center = true, h = 3, r = 11.5);   
    }
    generic_bottle_neck(pitch = 3.0,height=15,id=23);    
}

キンブレ差込口

あと、ブレード部分を作ります。

difference() {
cylinder(center = true, h = 130, r = 35.0000000000);
translate(v = [0, 0, 3]) {
cylinder(center = true, h = 127, r = 33.5000000000);
}
}

ブレード部分

できました。

あとは差込口部分とブレード部分を3Dプリンタで出力。

両方をビニールテープで固定すれば完成です。

キンブレランタン

通常よりも広範囲を照らせて光源も点光源から面光源にできたので満足です。

 

 

これをライブに持って行ってはいけませんよ!!
あくまでおうちでおむつを交換するのと災害時のランタン用です!

3Dプリンターkp3sのホットエンド冷却ファン交換

3Dプリンター kp3sで印刷しようとすると1mmぐらいでノズルが詰まってしまい印刷できなくなることが発生しました。

原因を調べていくとホットエンドを冷却するファンが動いていないことがわかりました。f:id:grassbigboy:20230828115208j:image

また電源ユニットの電源を入れた時から動くファンになっており、もしかすると印刷し終わっても電源を入れたままにしていたため余計な負荷をかけていたのかもしれません。

このファン、3010ファンといい縦30mm横30mm高さ10mmのメジャーなファンになっています。

ところがkp3sで使用されているファンは24vですが、国内で販売しているほとんどが12vです。

一応24vのものもAmazonで売れれてはいますが値段が高く、取り寄せにも時間がかかります。

一方12vのものは秋月電子で100円で売られており、店頭でも購入することが可能です。

他にもラジオデパートの3階でも多くの種類のファンを購入できます。

さて12vのファンを使用するためには24vを12vに変換しなければいけません。

多くの方の記事で使われているコンバータは出力電圧の調整ができるようですが、今回は12v固定で良いため、同じく秋月電子でDCDCコンバータを買って変換回路を組みましょう。


f:id:grassbigboy:20230828115304j:image

f:id:grassbigboy:20230828115105j:image

簡単に入力電圧とグランドの間に47μFのコンデンサを入れ、出力電圧グランド間にも同じものを入れます。簡単なノイズはこれで除去されます。

無事に元のファンの電源と変換して、12vファンが動かせました。

 

大体の方はマザーボードに変換基盤を収納していましたが、面倒なのでホットエンドの隣にぶら下げます。

f:id:grassbigboy:20230828115141j:image

 

これで印刷したところ無事に最後まで印刷することができました。

f:id:grassbigboy:20230828115332j:image

左が前の印刷結果、右がファン交換後の印刷結果

糸が引いているのはしばらく印刷していなかったため、材料のフィラメントが湿気てしまったのでしょう。

 

とりあえず無事に直すことができてよかったです。