人気ブログランキング | 話題のタグを見る

オガールラボは岩手県の中央部にある紫波町のオガールプラザを拠点に活動しているデジタルものづくり実験室です。このブログでは製作日記的なあれこれを紹介します。


by ogal_lab
各ピースの凹凸のはめあいが整って、しかも、できるだけ同じピースが生じないようにピースのパターンを作成します。
参考にしたのは画像処理ソフトのGIMPのジグソーパターン作成フィルターです。GIMPで作成したパターンはそれらしく見えるものですが、6種類しかないので同じ形状のピースがたくさんあります。GIMP内部での処理は分かりませんが、単純にランダムに凹凸を配置しているようです。
市販のジグソーパズルはほとんど同じ形のピースは含まれていないらしいので、このプログラムでは1辺について凹が-6~-1、凸が1~6の合計12種類のパターンから割り当ててピースの種類を飛躍的に増やしたいと思います。

今回作るのはピースの配置を設計するプログラム、すなわち、1個1個のピース図形を描くための仕様書を作成するプログラムです。

プログラムはProcessingで作りました。Processingは図形描画が得意で、pdfに出力する機能があるということなのでレーザーカッターの切断図形をつくることができそうです。


int [][] h_up;
int [][] h_right;
int [][] h_down;
int [][] h_left;

int size_row=3;
int size_column=4;

void setup() {
h_up= new int[size_column+1][size_row+1];
h_right= new int[size_column+1][size_row+1];
h_down= new int[size_column+1][size_row+1];
h_left= new int[size_column+1][size_row+1];
for (int y =0; y < size_row +1; y++){
for (int x =0; x < size_column +1; x++){
h_up[x][y]= 0;
h_right[x][y]= 0;
h_down[x][y]= 0;
h_left[x][y]= 0;
}
}
noLoop(); // Run once and stop
}

void draw(){
for (int y =1; y < size_row +1; y++){
for (int x =1; x < size_column +1; x++){

if(h_down[x][y-1]== 0){
h_up[x][y]= random_head();
}
else{
h_up[x][y]= -1 * h_down[x][y-1];
}

if(h_right[x-1][y]== 0){
h_left[x][y]= random_head();
}
else{
h_left[x][y]= -1 * h_right[x-1][y];
}

h_right[x][y]= random_head();
h_down[x][y]= random_head();



println (h_up[x][y],h_right[x][y],h_down[x][y],h_left[x][y]);
}
}



}

int random_head(){
//int head;
int head = floor(random(0,12));
if(head==12){
head=11;
}
if(head<=5){
head = head-6;
}
else{
head = head -5;
}
return head;
}
# by ogal_lab | 2015-11-26 21:28 | レーザーカッター

ジグソーパズルを作ろう

コースター用紙が余っているので、これで何か作れないかと考えていました。

昔から根強い人気の、しかも、高齢者の機能維持訓練に良さそうなジグソーパズルは良いんじゃない?

レーザーカッターでオリジナルのジグソーパズルをつくるというのは有料でも成り立ちそうです。

段ボール紙でジグソーパズルを作る
和RKで ワークショップ -レーザーカッター でジグソーパズルを作ろう!! -
平日夜開催! f.Labo部ミニワークショップ「ジグソーパズルを作ろう」
ミュージアムショップで販売するレーザーカッターを用いたジグソーパズル
東京・渋谷の『FabCafe』

カットするデータがあれば切るだけという手軽さです。
絵や写真をつけることができる、ちょうどよい厚みの素材がそれぞれの工夫のようです。


オープンjンソフトのGIMPとInkscapeを使ってレーザーカッターで切断するファイルを作成します。

GIMPのフィルターメニューには縦横のピース数を指定してジグソーパズルのパターンを作れます。ピースの形状は様々で、一見同じ物はないように見えましたが、残念ながら同じ形状のパーツが含まれています。
ジグソーパズルを作ろう_d0334181_19522226.jpg

とりあえず、ジグソーパズルのように見える画像が得られます。
ジグソーパズルを作ろう_d0334181_19523062.jpg



その画像をInkscapeで開いて、レーザーカッターで切断するためのパスを作成します。いろいろ試行錯誤をしたのですが、千鳥状にバケツツールでピースに色を流し込むのが簡単そうです。流し込んだピースのパスを作って切り取ればパスの重複なく切断できます。ピースの交点がつながっていないのでノードを動かして確実に切り離されるように修正します。この時に適当にパスの形状に個性が出るようにしてやれば、同じ形のピースが無くなると思います。

ジグソーパズルを作ろう_d0334181_19523469.jpg




(151122)


切断用のデータができると、すぐに切ってみたくなるのは当然のことでしょう。
月曜日でも祭日はオガール情報館は開いているので、予定外ですがオガールラボに出かけることにしました。

完璧と思っても、どこか外しているもので、今回はInkscapeでの作業中にサイズが変わってしまっていました。パスをグループ化して変形で縮小して90×90mmのコースター用紙の収まるサイズに変更しました。
だんだん、GIMPとInkscapeに馴染んできたようです。

狙い通り、パスの重複なく切っていきます。インスタントラーメンと同じ3分+αで切断完了。
ジグソーパズルを作ろう_d0334181_17532960.jpg


ピースは微妙に形が違っていて、これも狙い通りなのですが、やはり見た目で違いが判る程度に変えないと間違ってはめても気が付かないかもしれません。
ジグソーパズルを作ろう_d0334181_17554655.jpg


ジグソーパズルを作ろう_d0334181_17593453.jpg

切り口はとても良い感じです。
ジグソーパズルを作ろう_d0334181_17594026.jpg


紫波町にちなんで、宮沢賢治の初恋の歌。紫波町の看護婦さんに恋したようです。
ジグソーパズルを作ろう_d0334181_17594693.jpg


こういうのは図書館とかとコラボレーションができそうですね。どうでしょ。

オガールのテーブルは予約が入っていなければ、無料で思い思いに使えるのですが、子供たちの良い勉強スペースになっています。
そこで、
ジグソーパズルを作ろう_d0334181_1842454.jpg

分かる? 私は35年間会社で仕事をしていて、一度だけ使いました。きっと一回も使わない人のほうが多いと思いますので、覚えておく必要もないのですが、数式に美しさを感じられるかどうかの分かれ道かもしれません。

ジグソーパズルを作ろう_d0334181_18112829.jpg


ジグソーパズルを作ろう_d0334181_18113788.jpg


25ピースですが、適度な難しさがあります。
たぶん白紙の25ピースは相当難しいと思います。

オガールラボにいくつか置いてありますので、近くの方は寄ってみてください。

(151123)
# by ogal_lab | 2015-11-22 16:47 | レーザーカッター
サッカーボールの展開図を作って遊ぶ前にはあまり関心はありませんでしたが、正多面体について調べているうちに面白いことが書かれているサイトを見つけました。
「正多面体はなぜ5種類しかないのか?」

正多面体の数が5種類しか存在しないことを「手作業による発見」で理解することができると書かれています。
数学的証明は実感につながりにくいですが、手を動かして図形を組み合わせていくと、なるほどと実感することができるでしょう。

一辺が15mmの正三角形32枚、一辺が15mmの正四角形6枚、一辺が15mmの正五角形12枚を厚紙から切り出します。レーザーカッターで切れば、手で切るよりは正確で短い時間でできます。

正多面体を考えるパーツをレーザーカッターで作ろう_d0334181_10134110.jpg


正多面体を考えるパーツをレーザーカッターで作ろう_d0334181_10143570.jpg


(150830)
# by ogal_lab | 2015-08-30 10:19 | レーザーカッター
8pinoはIOが5個しかない小さなマイクロコントローラですが、Arduino IDEでプログラムを書くことができます。

フルカラーシリアルLEDテープは5V用と書いてあるのですが、基本的に3.3V仕様の8pinoでもサンプルプログラムを書き込むだけであっけなく動作しました。

8pinoとフルカラーシリアルLEDテープの足下ランプ_d0334181_1934083.jpg


たまたま、100VコンセントからマイクロUSBに5Vを供給するケーブルがあったので廊下に置く照明器具を試作してみました。

経木を組み合わせて作ったシェードが適度に透けて、木目模様がきれいです。

8pinoとフルカラーシリアルLEDテープの足下ランプ_d0334181_1855749.jpg

8pinoとフルカラーシリアルLEDテープの足下ランプ_d0334181_185511100.jpg

8pinoとフルカラーシリアルLEDテープの足下ランプ_d0334181_18551670.jpg

8pinoとフルカラーシリアルLEDテープの足下ランプ_d0334181_1855216.jpg


(150818)
# by ogal_lab | 2015-08-18 18:57 | 電子工作
電子工作でよく使われるArduinoの互換ボードを注文しました。
コインバッテリーのケースが付いていて、値段が安いのが気に入りました。
大きさは写真で見た目よりもかなり大きいと思いますが、とりあえず手に入れてみることにしました。

Clio Main Board
Clio (Arduino 互換ボード) 注文_d0334181_11281610.jpg

(Seeed studioのClio Main Boardのwikiから)

2週間ぐらいで届くのではないでしょうか。


(150818)
# by ogal_lab | 2015-08-18 11:34 | 電子工作