細胞型ジグソーパズル図案生成プログラム

Processingで作成した細胞型のジグソーパズル図案を自動生成するプログラムを公開します。レーザー加工用の切断パスとして使用できます。

Processing 3で数年前に作成したものですが、最新のProcessing 4.3で動作を確認しました。ボロノイ図形をベースにPDFファイル”my_PzlPiece_.pdf”を自動的に新規、あるいは上書きで作成します。生成結果を見てパズル図案として使いたい出力の時にはファイル名を変更してください。細胞の核をイメージした円の中心をボロノイ点として細胞領域を作成します。円は書かない様に設定することもできます。

 

プログラムの最初の方でパラメータを設定します。

// design constant
final float artboardWidth_mm = 210;     //PDF書類の幅をmmで指定します
final float artboardHeight_mm=148;     //PDF書類の高さをmmで指定します
final float finishWidth_mm=210;     //図案領域の幅をmmで指定します
final float finishHeight_mm=148;     //図案領域の高さをmmで指定します
final float FRAME_X_mm=15;    //図案領域の中で余白をmmで指定します
final float FRAME_Y_mm=15;    //図案領域の中で余白をmmで指定します

final float CellSize_mm=20;   //細胞の概略の大きさをmmで指定します
final float minEdgeLength_mm =7;   //細胞壁の長さの最小値をmmで指定
final boolean draw_nucleous=true;   // true/falseで円を描くかどうか指定
final float NucleusDiam_mm=8;  //円の直径
// end design constant

 

 

 

ESP32のMiroPythonと4×4シリアルLEDで焚き火ランプ(リメイク)

2022年の夏から2023年の春にかけて「ハンドクラフトの素材としての電子工作 “超” 入門」講習会を企画実施していました。木工などのクラフトを簡単にテーブルランプにできる照明ユニットを作る講習会ですが、このブログにはまったく記録に残していませんでした。今回はMicroPythonを使ってリメイクすることにしました。

照明ユニットは下の写真のケースにESP32 MH-ET Live Mini Kitに4×4シリアルフルカラーLEDをつけてユニットを作ります。

ESP32 MH-ET Live Mini Kitと4×4シリアルLED

木工などのクラフトの下に置くと簡単にテーブルランプにできます。Arduino IDEで書いたプログラムで、写真は焚き火をモチーフにしたものですが、WiFiアクセスポイントからカラーセットを変更する機能もついていました。

18面体のランプ

今回はWaveshare RP2040-Zeroと8x8LEDで作ったプログラムをベースにリメイクすることにしました。MicroPythonでESP32を使うときにはThonny IDEを使ってESP32用のMicroPythonをインストールします。特に難しいこともなく終了しますが、ESP32用のneopixelライブラリはMicroPythonファームウェアに含まれているのでそれを使います。PicoやWaveshare RP2040-Zeroで使っているライブラリとは違うので、関数名NeopixelをNeoPixelに変更したり、Brightnessの機能を自分で作らないといけません。

また、4×4マトリクスは0行目は右、1行目は左、2行目は右、3行目は左とジグザグなLED番号なので変更しました。

パーリンノイズはMicroPython用のライブラリ “perlin.py” が公開されています。このライブラリをダウンロードしてマイコンのメモリに保存します。

 

 

 

 

 

ESP32と8x32LEDモジュールでNTP時計を作る(MicroPython)

大型NTP時計の初代がまた不調になったので、あきらめて新しく作ることにしました。

OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA

ESP32用のMicroPythonを使ったのが新しい点で、ntpの時刻でrtcをセットするのがとても簡単で感心しました。プログラムが書きやすいので、フォントデータの作り方をシンプルにできました。Apple2のフォントデータを使いました。

7時から21時までは明るく表示します。0-45秒は時間ごとに変わるグラデーション表示で、45-0秒はドット毎にランダムな色で表示します。夜中はオレンジ色で暗く表示します。

今回購入したLEDマトリックスは1100円ぐらいでしたが、電源投入直後に全点灯する不具合がありました。しばらく様子見です。

Google Apps Scriptで「検索して地図を表示」してみました

Googleアカウントは多くの人が持っていると思いますが、Googleスプレッドシート(これ以降スプレッドシートと書きます)やGメール、グーグルドライブなどのGoogleアプリをJava Scriptで操作できるGoogle Apps Scriptを使っている人はそれほど多くはないと思います。

最近「Googleスプレッドシートに測定データをアップロード」という記事を書いたついでにGoogle Apps Scriptで面白い使い方ができないか調べていました。Googleといえば「ググる」という言葉が辞書に採用されるほど検索に強い、Googleマップもストリートビューでプライバシー問題を起こしながらも便利に使われています。そこで、この二つを結びつけるアプリをGoogle Apps Scriptを使って作ることにしました。DOKORAという名前にしましたが、適当なキーワードで検索した施設、お店などの緯度・経度、住所と周辺の地図を数種類の拡大率でGoogleスプレッドシートに作成するスクリプトです。

「手がかり」セルの隣に検索キーワードを入力して「どこら?」と書かれたボタンを押します。手がかりが十分であれば緯度・経度、郵便番号と住所が表示され、倍率の異なる4枚のGoogleマップで作られた画像が表示されます。

 

DOKORAを使ってみる方法を説明します。 ”検索して地図表示240610”というスプレッドシートファイルですが、スプレッドシートはオンラインのWebアプリケーションなので、共有してからご自分のGoogleドライブにコピーして使うことになります。

①  ご自分のGoogleアカウントでGoogleドライブを開きます。

② 以下の共有ファイルへのリンクをクリックして”検索して地図表示240610”を開きます。
共有ファイルへのリンク

③ ファイルメニューから”コピーを作成”を選択すると、Googleドライブに”検索して地図表示240610のコピー”ができます。普通のファイルならダウンロードして開けば良いところですがとても面倒です。

Google Apps Scriptで作成されたプログラム(Script)はファイルの参照、編集、作成、削除ができるため、Googleアカウントを持っている人の許可を確認してから実行されます。何気なく許可がされないように若干くどくて分かりにくい確認手順になっています。一度確認すればその後は確認を求められなくなります。面倒ですが、自分でGoogle Apps Scriptを作成したときにも同様の確認が行われますので直に慣れると思います。

最初のウィンドウですが、自分のアカウントを選択します。

以下のウィンドウが分かりにくいのですが、左下の”詳細”をクリックします。秘密の通路のようなものです。

左下の”DokaraScript(安全ではないページ)に移動”をクリックします。//Scriptの名前をDokoraScriptにするつもりでしたが、間違えてDokaraScriptになってしまいました。

許可をクリックします。

使えるようになるまでの道のりが長い。

DokaraScriptでは次のような処理を行なっています。
① 前回の検索結果をクリア・削除します。
② スプレッドシートから”施設名”を読み取り、緯度・経度を求めて、スプレッドシートに記入する。[ジオコーディング]
③ スプレッドシートから緯度・経度を読み取り、郵便番号と住所を求めて、スプレッドシートに記入する。[逆ジオコーディング]
④ 緯度・経度を中心にした4種類の地図を作成して、スプレッドシートに貼り付ける。[roadmap :道路地図ビュー、satellite :Google Earth の衛星画像、hybrid :通常ビューと衛星画像ビューの複合ビュー、terrain :地形情報に基づいた物理地図]

 

参考にさせていただいたサイトは多々ありますが、記録に残さなかったので誠に申し訳ない。