ロケットストーブ発電!その2(組立て・火入れ!)
前回記事の完成想像図では強度的不安が気になりましたので、湯沸かし機能を省略し、シンプルなストレート構造に変更し実際に作ってみました!(*'▽')省略≒諦め
1.準備
モノタロウとAmazonでポチリました!
アルミ板(A5052切板 厚さ3mm)はカットサービスを利用したのでそのまま組み立てられますが、SUS製アルミパイプ(GFK-F02)は自分でカットしました。
2.組立て
後は部品をボルト+セフター(SFT-N109)+アルミテープで固定しましす。
3.火入れ
組立て終わった所で早速火入れします!(^^)!
4.片付け
ロケットストーブ本体はスパイラルダクト+アルミフレームだけなので超軽量です!
と言う事で、急遽ホームセンターで買って来た灰入れ(吸い殻入れ)の上に本体を載せ、アルミ板とキャップ(フカガワ / 150)を外せば灰は落ちて片付け完了です!
5.まとめ
ペルチェ素子発電の為の前試験でしたが、一応ロケットストーブとして機能しました!!(^^)!BBQも湯沸かしも出来ません(´;ω;`)
励みになりますのでよければクリック下さい(^o^)/
Processing(subsetの使い方)
subset
Processingにおけるsubsetは、既存の配列から要素の配列を抽出します。
listパラメータは、要素がコピーされる配列を定義し、startおよびcountパラメータは抽出する要素を指定します。
countを指定しない場合、要素は配列の最初から最後まで抽出されます。
開始を指定するときは、最初の配列要素が0であることに注意してください。
この関数はソース配列を変更しません。
オブジェクトの配列を使用する場合は、関数から返されたデータをオブジェクト配列のデータ型にキャストする必要があります。
例:SomeClass items = (SomeClass) subset(originalArray, 0, 4)
Processingで使用するsubsetの使い方は以下の通りです。
String sa1 = { "OH","NY", "CA","VA", "CO","IL" };
String sa2 = subset(sa1,1);
println(sa2);
// 次の配列内容をコンソールに出力します。
// [0] "NY"
// [1] "CA"
// [2] "VA"
// [3] "CO"
// [4] "IL"
println();
String sa3 = subset(sa1,2, 3);
println(sa3);
// 次の配列内容をコンソールに出力します。
// [0] "CA"
// [1] "VA"
// [2] "CO"
〇subsetの構文
subset(list, start)
subset(list, start, count)
〇subsetのパラメータ
list : 抽出する配列
(Object, String, double, float, long, int, char, byte, or boolean)
start : 開始位置(int)
count : 抽出する値の数(int)
〇subsetの戻り値
boolean 、byte 、char 、int 、long 、float 、double 、String []、またはObjectを返します。
Processing(for の使い方)
for
Processingにおけるforは、繰り返しのシーケンスを制御します。
構造の基本は、init、test、updateという3つの部分で構成されています。
各部分は、セミコロン(;)で区切らなければなりません。
ループはテストが偽と評価されるまで続きます。
for構造体が実行されると、次の一連のイベントが発生します。
1. init文が実行されます。
2.試験は真または偽であると評価される。
3.テストが真であれば、ステップ4にジャンプします。テストが偽であれば、ステップ6にジャンプします。
4.ブロック内のステートメントを実行します。
5.更新ステートメントを実行し、ステップ2にジャンプします。
6.ループを終了します。
上記の最初の例では、for構造体が40回実行されます。
init文では、値iが作成され、ゼロに設定されます。
私は40未満ですので、テストは真と評価します。
各ループの終わりで、iは1だけインクリメントされます。
41回目の実行では、iが40に等しいので、テストはfalseと評価されるため、i <40はもはや真ではありません。
したがって、ループは終了します。
構造体の第2の型は、配列の各要素を繰り返し処理することを容易にします。
上記の最後の例は、どのように動作するかを示しています。
括弧内では、最初に配列のデータ型を定義し、次に変数名を定義します。
この変数名は、forが配列全体を移動するときに、配列の各要素に順番に割り当てられます。
最後に、コロンの後に、使用する配列名を定義します。
Processingで使用するforの使い方は以下の通りです。
//example pic
for (int i = 0; i < 40; i = i+1) {
line(30, i, 80, i);
}
//example pic
for (int i = 0; i < 80; i = i+5) {
line(30, i, 80, i);
}
//example pic
for (int i = 40; i < 80; i = i+5) {
line(30, i, 80, i);
}
//example pic
// Nested for() loops can be used to
// generate two-dimensional patterns
for (int i = 30; i < 80; i = i+5) {
for (int j = 0; j < 80; j = j+5) {
point(i, j);
}
}
// This example has no visual output,
// but prints values to the console.
int[] nums = { 5, 4, 3, 2, 1 };
for (int i : nums) {
println(i);
}

図2:プログラム実行結果
〇forの構文
for (init; test; update) {
statements
}
for (datatype element : array) {
statements
}
〇forのパラメータ
init :ループ開始時に一度実行される文
test :真と評価されるかどうかをテストします。
update :各繰り返しの最後に実行されます
statements :ループのたびに実行されるステートメントのコレクション
datatype :配列内の要素のデータ型
element :配列の各要素に使用する一時的な名前
array :反復する配列の名
〇forの戻り値
特になし。
Processing(>= の使い方)
>=
Processingにおける「>= 」は、左側の値が右側の値より大きいか、値が等しいかどうかをテストします。
Processingで使用する「>= 」の使い方は以下の通りです。
〇>= の構文
value1 >= value2
〇>= のパラメータ
value1: int、float、char、またはbyte
value2: int、float、char、またはbyte
〇>= の戻り値
左辺の値が右辺の値より大きいもしくは値が等しい場合にTrue「1」を、そうでない場合はFalse「0」を返します。
Processing(>の使い方)
>
Processingにおける「>」は、左側の値が右側の値より大きいかどうかをテストします。
Processingで使用する「>」の使い方は以下の通りです。
〇>の構文
value1 > value2
〇>のパラメータ
value1: int、float、char、またはbyte
value2: int、float、char、またはbyte
〇>の戻り値
左辺の値が右辺の値より大きい場合はTrue「1」を、そうでない場合はFalse「0」を返します。
Processing(==の使い方)
==
Processingにおける「==」は、2つの値が等しいかどうかを判定します。
Stringオブジェクトを比較するときは、その内容を比較するために==の代わりにequals()メソッドを使用する必要があることに注意してください。
詳細については、Stringのリファレンスまたはトラブルシューティング・ノートを参照してください。
Processingで使用する「==」の使い方は以下の通りです。
〇==の構文
value1 == value2
〇==のパラメータ
value1: int、float、char、byte、boolean
value2: int、float、char、byte、boolean
〇==の戻り値
2つの値が等しい場合はTrue「1」を、そうでない場合はFalse「0」を返します。