今年2回目の芝刈りをしました。まだ,伸びきってはいないので,均等な長さにはなっていません。
刈り取った芝生は,前回と同じくらいの量です。最盛期には,ゴミ袋,いっぱいになります。
mabo個人のサイトです。いろんなことを日記風に書いてます。場合によっては,間違った記載もあるということをご承知おきください。表題をクリックして,個別のページの最下部からコメントをお願いします。
今年2回目の芝刈りをしました。まだ,伸びきってはいないので,均等な長さにはなっていません。
おかげ様で,この春(冬)は,こまめに草取りができたので,何年か前のようなひどい状態にならずに,きれ
いなままで春を迎えました。
何年か前は,写真のようにひどい状態でした。
という訳で,きれいな状態で,迎えることができました。このところの暖かさで,緑も大分ふえてきました。
そろそろ,春先の芝生の手入れですね。昨日は,サッチ取りをやり,45Lのゴミ袋にいっぱいたまりました。
もうすぐ肥料が届くので,届きしだい,肥料をまきます。
===接ぎ木その後===
残念ながら,接ぎ木は,失敗でした。
固定があまかったのか,切り口が乾いてしまったようです。
時期的には,そろそろ終わりのようですが,専用のテープを購入して,再チャレンジしてみます。
家内いわく60年ぐらいたっている大王松が近年葉の色が悪くなってきました。しばらく様子をみていました
が,もう限界だろうということで,台風等で倒れないうちに伐採することになりました。今日午前中かけて,
バッテリーのチェーンソーとエンジンチェーンソーで切り倒しました。
狭い庭なので,根本から切り倒す訳にはいかないので,まず枝を落としました。
落とした枝は,
邪魔になるのと,なるべくその都度,細かくきりました。
低い方の枝は問題なくそのまま切り落とせましたが,ちょっと高めの枝は,落ちる方向に隣の営業用の駐車場
のジムニーの屋根に落ちるとやばいので,枝にロープをくくりつけ,直接下に落ちないように,切り落とした
ら空中にぶら下がるようにして,きりました。おかげで,ジムニーの屋根に落ちることなく,無事,地面にお
とせました。
全部枝をきりはらいました。
脚立には,高いところまで届かないので,下駄を1mぐらいはかせています。一番上に上って作業すると結構
な高さになりますので,安全ベルトを木にくくりつけての作業です。
枝は,それほど太くないので,バッテリーチェーンソーで作業しましたが,幹はエンジンチェーンソーで30
cmぐらいずつ,上の方から切り落としました。
根元まで切り落とした後,15cmぐらいに,持ち運びできるように玉切りにしました。
後片付けは,家内も帰ってきたので,ほとんどやってもらって,12時ちょっと過ぎに終了しました。庭がちょっとがらんとしました。
追記--
二人で後片付けをしたところ,ゴミ袋に松の葉と枝が10袋,玉切りの木が一山できました。
切り株はは,早く劣化するように,チェーンソーで,切れ目をいれておきました。
また,根本の方の玉切りした幹は,家内が,とっておくというので,ウッドデッキに避難させました。
レジン等で周りを固めて,表面を磨いて,置物にでもいしょうかと思います。
PICやarduinoで,タクトスイッチ等の安物を使うと,話題に上るのがチャタリングです。チャタリングのこと
を考えないと思った動作をしなくなります。
通常は,シュミットトリガー回路に代表されるハードを使って取り除く方法や,ソフトで取り除くこと等が必
要のようです。ソフトでは,間をあけて何回か測定して判別する方法等があるようですが,あるHPで,ビット
シフトを使った方法がでていました。
#define MAXPIN 13
int checkbutton(int i){
static byte val[MAXPIN];
static byte state[MAXPIN];
if(digitalRead(PIN[i]) == 1){
val[i] = val[i]<<1;
val[i] += digitalRead(PIN[i]);
}else{
val[i] = 0;
}
if(val[i] == B01111111){
state[i] = 1 - state[i];
}
return state[i];
}
やはり,先達はすごい。い くつか変数を用意しておいて,古いデータと比べるということは考えつきますが,
ビットシフトを使うとは,すごいなと思いました。ただ,このプログラム,IDEでコンパイルすると
B01111111→→0b01111111
と怒られます。ちょっとした勘違いなんでしょうね。「弘法も筆の誤り」ですね。
追記
あと,シフトビットのいいところは,オーバーフローを気にしなくていいことでしょうか。シフトで
はみでた部分は,破棄されるようですので。ここを,int等の変数で足し算すると,オーバーフローの処置をいれないとPGが暴走しますので。
併せて,変数のスコープ等について,調べていたら,大きな勘違いをしていることに気がつきました。IDE
では,Loopの中にmainのプログラムを書きますが,一回だけ実施したい処理を次のように書きました。
loop(){
int flag;
if(flag==0){
syori;//動作させたい処理
flag=1;
}
}
みたいな記述をしていましたが,思った動作はしませんでした。それもそのはず,loopの中で,
最後の「 }」の前で,変数が初期化されてしまうとのこと。これでは,思った動作をしませんね。
保持するには,
int flag;→→static int flag;
のように,静的変数の宣言をしないとだめということが分かりました。これ,IDEの癖みたいなものでしょう
か。知らないとこまりますね。今まで,loopのなかの冒頭で,変数の宣言をしていましたが,これ,何回も
宣言することになって,なんだろうと,疑問にも思っていたところなので,この疑問も解決ですね。