NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

クリスマスイルミネーションなどなど!

2ヶ月ぶりのブログ更新です一度さぼるとあっという間ですね(;'∀')
家族で松ぼっくり拾い&イルミネーションを見に行って来ました
 
イメージ 1
15~20cmの巨大松ぼっくりGET!(大王松松ぼっくりだそうです)
 
イメージ 2
落ち着いた雰囲気のチャペルでは
 
イメージ 3
無料で音楽イベントが開催されていました
 
イメージ 4
チャペルの外は、
 
イメージ 5
キレイなイルミネーション
 
イメージ 6
遊歩道を歩きながら
 
イメージ 7
ジックリ鑑賞してきました!
 
イメージ 8
 
イメージ 9
 
イメージ 10
 
イメージ 11
 
イメージ 12
おしゃれブランコ
 
イメージ 13
 
イメージ 14
歩き疲れたので近くの出店で家族で休憩
 
イメージ 15
 
息子のクリスマスプレゼントはシンカリオンです
 
イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/
 

ロケットストーブ発電!その2(組立て・火入れ!)

f:id:nobita_RX7:20211103150508j:plain

スパイラルダクトで作った自作ロケットストーブ!

 前回記事の完成想像図では強度的不安が気になりましたので、湯沸かし機能を省略し、シンプルなストレート構造に変更し実際に作ってみました!(*'▽')省略≒諦め

1.準備

モノタロウとAmazonでポチリました!

アルミ板(A5052切板 厚さ3mm)はカットサービスを利用したのでそのまま組み立てられますが、SUS製アルミパイプ(GFK-F02)は自分でカットしました。

f:id:nobita_RX7:20211103150512j:plain

購入品一式

f:id:nobita_RX7:20211103150515j:plain

パイプ切断

f:id:nobita_RX7:20211103150518j:plain

準備完了

2.組立て

後は部品をボルト+セフター(SFT-N109)+アルミテープで固定しましす。

f:id:nobita_RX7:20211103150521j:plain

土台連結

f:id:nobita_RX7:20211103150524j:plain

インナーキャップ ハード取り付け

f:id:nobita_RX7:20211103150527j:plain

放熱用アルミ切板設置

f:id:nobita_RX7:20211103150531j:plain

焚口底キャップ(フカガワ / 150)取り付け

f:id:nobita_RX7:20211103150534j:plain

焚口セット

f:id:nobita_RX7:20211103150537j:plain

保温材の上にスパイラルダクトを置き、

f:id:nobita_RX7:20211103150541j:plain

付属のテープで、

f:id:nobita_RX7:20211103150545j:plain

保温材を固定。

f:id:nobita_RX7:20211103150410j:plain

煙突を土台にドッキング

f:id:nobita_RX7:20211103150413j:plain

煙突を固定するために、セフターを巻き付け金バサミで余分をカット

f:id:nobita_RX7:20211103150416j:plain

がっちり固定

f:id:nobita_RX7:20211103150419j:plain

ポイントコネクタ取り付け

f:id:nobita_RX7:20211103150426j:plain

スライドダンパーを設置

f:id:nobita_RX7:20211103150430j:plain

スライドダンパーを一応アルミテープで固定

3.火入れ

組立て終わった所で早速火入れします!(^^)!

f:id:nobita_RX7:20211103150434j:plain

そのまま捨てるのも勿体ないので、梱包段ボールを燃料にします(;'∀')

f:id:nobita_RX7:20211103150437j:plain

燃料投入

f:id:nobita_RX7:20211103150440j:plain

豆炭に着火

f:id:nobita_RX7:20211103150444j:plain

豆炭投入!

f:id:nobita_RX7:20211103150447j:plain

スライドダンパー固定アルミテープが焼け落ちました( ;∀;)

f:id:nobita_RX7:20211103150450j:plain

しかし全力燃焼で、空気をシッカリ吸ってますね!

f:id:nobita_RX7:20211103150453j:plain

ホームセンターで色々追加購入してきました(;'∀')

f:id:nobita_RX7:20211103150456j:plain

煙突出口にスライドダンパー + 雨除け用の網?セット

f:id:nobita_RX7:20211103150459j:plain

と言う事でこれが最終形態です!(^^)!

4.片付け

 ロケットストーブ本体はスパイラルダクト+アルミフレームだけなので超軽量です!

 と言う事で、急遽ホームセンターで買って来た灰入れ(吸い殻入れ)の上に本体を載せ、アルミ板とキャップ(フカガワ / 150)を外せば灰は落ちて片付け完了です!

f:id:nobita_RX7:20211103150502j:plain

灰入れセット

f:id:nobita_RX7:20211103150505j:plain

放熱版+底キャップ外しで灰を出します

5.まとめ

 ペルチェ素子発電の為の前試験でしたが、一応ロケットストーブとして機能しました!!(^^)!BBQも湯沸かしも出来ません(´;ω;`)

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ロケットストーブ】目次に戻る


Processing(subsetの使い方)

subset
 Processingにおけるsubsetは、既存の配列から要素の配列を抽出します。
 listパラメータは、要素がコピーされる配列を定義し、startおよびcountパラメータは抽出する要素を指定します。
 countを指定しない場合、要素は配列の最初から最後まで抽出されます。
 開始を指定するときは、最初の配列要素が0であることに注意してください。
 この関数はソース配列を変更しません。

 オブジェクトの配列を使用する場合は、関数から返されたデータをオブジェクト配列のデータ型にキャストする必要があります。
例:SomeClass items = (SomeClass) subset(originalArray, 0, 4)

 Processingで使用するsubsetの使い方は以下の通りです。
イメージ 4
   

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"
イメージ 3
図1:プログラムの内容

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を返します。

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。

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の使い方は以下の通りです。
イメージ 4
   
//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); 
}
イメージ 3
図1:プログラムの内容

イメージ 1
図2:プログラム実行結果

forの構文
  for (init; test; update) { 
    statements
  } 

  for (datatype element : array) { 
    statements
  }

forのパラメータ
 init ループ開始時に一度実行される文
 test 真と評価されるかどうかをテストします。
 update 各繰り返しの最後に実行されます
 statements ループのたびに実行されるステートメントのコレクション
 datatype 配列内の要素のデータ型
 element 配列の各要素に使用する一時的な名前
 array 反復する配列の名

forの戻り値
 特になし。

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。

Processing(&gt;= の使い方)

>= 
 Processingにおける「>= 」は、左側の値が右側の値より大きいか、値が等しいかどうかをテストします。

 Processingで使用する「>= 」の使い方は以下の通りです。
イメージ 4
   
int a = 23;
int b = 23;
if (a >= b) {
  println("variable a is greater or equal to variable b ");
}
イメージ 3
図1:プログラムの内容

>= の構文
 value1 >= value2

>= のパラメータ
 value1: int、float、char、またはbyte
 value2: int、float、char、またはbyte

>= の戻り値
 左辺の値が右辺の値より大きいもしくは値が等しい場合にTrue「1」を、そうでない場合はFalse「0」を返します。

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。

Processing(&gt;の使い方)

>
 Processingにおける「>」は、左側の値が右側の値より大きいかどうかをテストします。

 Processingで使用する「>」の使い方は以下の通りです。
イメージ 4
   
int a = 5;
int b = 13;
if (b > a) {
  println("variable b is larger the variable a");
}
イメージ 3
図1:プログラムの内容

>の構文
 value1 > value2

>のパラメータ
 value1: int、float、char、またはbyte
 value2: int、float、char、またはbyte

>の戻り値
 左辺の値が右辺の値より大きい場合はTrue「1」を、そうでない場合はFalse「0」を返します。

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。

Processing(==の使い方)

==
 Processingにおける「==」は、2つの値が等しいかどうかを判定します。
 等価演算子は代入演算子とは異なります。

 Stringオブジェクトを比較するときは、その内容を比較するために==の代わりにequals()メソッドを使用する必要があることに注意してください。
 詳細については、Stringのリファレンスまたはトラブルシューティング・ノートを参照してください。

 Processingで使用する「==」の使い方は以下の通りです。
イメージ 4
   
int a = 23;
int b = 23;
if (a == b) {
  println("variables a and b are equal");
}
イメージ 3
図1:プログラムの内容

==の構文
 value1 == value2

==のパラメータ
 value1: int、float、char、byte、boolean
 value2: int、float、char、byte、boolean

==の戻り値
 2つの値が等しい場合はTrue「1」を、そうでない場合はFalse「0」を返します。

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。