2021年6月29日火曜日

死ぬかもしれない

某月某日に多分6月初旬 真っ黒い便が出る イカスミも食べてないのに変だなと思う そこからさん4日黒い便が続く ただし色は少しずつ薄くなっている 6月中旬 とても鮮やかな鮮血の血便が出る 痛みは全くない そこから一週間強血便は続く 背中と下腹部に鈍い痛みを感じる 背中の痛みは腰の辺りでとても凝ったような感じで不快である 軽くストレッチをするが鈍い痛みが取れない 下腹部の痛みはそうまるでお腹が痛くてうんこをしたくなった時に似ている 症状の原因を探ろうとググる どうやらアルコールに原因があるようだ 度数40°のウォッカをストレートで毎日飲んでいるのがいいくらいかもしれない 少しアルコールを立ってみよう アルコールを断って一週間血便と背中の痛みは治ってきたが下腹部の鈍い痛みは変わらない 血便が治りつつある頃から貧血と立ちくらみがあった 立ちくらみの頻度があまりに多いので血便による出血多量かと思いレバニラなど鉄分の豊富な食材を食べる それにしてもレバニラとビールって合うね 食事に気を使い出してから4日ほどで立ちくらみが少しだけだだが治った 6月末 血便は全くなくなった 若干の腰の痛みとか腹部の痛みはまだある ただし貧血はあまり改善していないので再びググってみる 癌にかかると貧血や立ちくらみがするという記事を発見w 癌の可能性がまた一つ増えたw もしかしたら死ぬかもしれないね 前から死んだらやってみたいと思っていた事がある 何度も臨死体験をしている鶴彦という人だ 彼は死んだ時に時空を超えて移動ができたと言っていた 個人的には死後の世界なんて存在しないと思っている しかしこの世に絶対という事はない ならば確認してみるしかない 死んだ時にどこに行くかいつの時代にかを今から考えておきたい 多分死んだらもう戻ってこれないと思うのでチャンスは一度きりだ たった一度のチャンスで失敗したらそれこそ死んでも死にきれないw

2021年4月21日水曜日

DroidScriptでカメラ使用

Androidアプリをとても簡単に作れるDroidScriptってアプリがあります。

でも、時々不思議な現象に出くわします。


今回のとても不思議な現象は

カメラ使用権限をDroidScriptに与えていないAndroid端末での現象です。


ただ、この状況に陥るケースは、ほぼ無いとは思いますが

その状況とは

「複数のソースで開発 & メイン以外のソースでカメラを使用する」

といった特殊な状況です。


で、対策としては

メインソースのどこかに

//app.CreateCameraViewx

とコメントを入れるだけでアプリ起動時にカメラ権限を確認されます。


以下、スケルトンソースです


<camTest.js>

//This Comments is required to use the camera

//app.CreateCameraViewx   <<<<<このコメントが重要です!

app.Script( "Camera.js" )        //他のスクリプト読み込み


function OnStart()

{

//Create a layout with objects vertically centered.

layMain = app.CreateLayout( "linear", "VCenter,FillXY" )

app.AddLayout( layMain )

Camera( layMain )            //メインレイアウトにカメラ画像を埋め込む

}


<Camera.js>

//Called when application is started.

function Camera( layContent )

{

//Create camera view control.

cam = app.CreateCameraView( 0.6, 0.8 )

cam.SetOnReady( function(){cam.StartPreview()}  )

layContent.AddChild( cam ) 

}


2021年3月4日木曜日

3Dプリンタの糸引き対策

使用機種:Ultimaker3

スライサー:Cura4.8

純正フィラメントを使っているのに糸引きが激しいです

で、大分昔に作ったプロファイルで出し直しましたら

あら、こんなにキレイ!


左2つが未対策

一番右が対策プロファイルで出力





で、肝心の変更箇所は以下の通りで

検索箇所に「引」と入れれば変更しやすいです。










一応プロファイルをアップロードしときます。

蜘蛛の巣対策

2021年3月1日月曜日

Microsoft Teamsの通知が来ない

この設定がカスタムになっていると

 


赤枠で囲んだ機能で相手のメッセージに反応しないと

以後、その人から話しかけられても通知を出さないという

空気読む機能なのだろうか?


2020年12月3日木曜日

Arduino(ESP32)にタッチパネル液晶

アマゾンでタッチパネル付きのLCDが格安で販売されていたので

買ってみました。

WayinTop 2.8インチ TFT液晶モジュール 240x320 SPI ILI9341搭載 3.3V/5V タッチパネル タッチペン付属 10KΩ抵抗器付属 ジャンパーワイヤー付属

なんと、ピンコネクタケーブル付きで直ぐに使える

ってことで早速サンプルを色々と動かしてみました。

サクサク動くしとても使いやすいですね


で、同時に購入したLCDの乗っかったESP32

WINGONEER T-Display ESP32 CP2104 WiFi Bluetoothモジュール1.14インチ用LCD開発ボード

タッチパネルは無いけどこれもイイですね。


ただし、重大な問題を発見!!

LCDを変える毎にライブラリをイジらないとダメだって???

それじゃライブラリの共有化ができない(T T)


そこで、なんとか頑張って共有化にチャレンジしてみました。


がっ、まだ上手く行っていません。

取り敢えずLCDを変えた場合でも最小の変更ということで

以下の方法で逃げています。


まずはライブラリフォルダ中のlibraries\TFT_eSPI\User_Setup.h

このファイルを以下のようにコメントアウト編集します。

/*▼

#define ILI9341_DRIVER

*/

/*▼

#define TFT_CS   PIN_D8  // Chip select control pin D8

#define TFT_DC   PIN_D3  // Data Command control pin

#define TFT_RST  PIN_D4  // Reset pin (could connect to NodeMCU RST, see next line)

*/


そして


Arduino\libraries\TFT_eSPI\User_Setup_Select.h

このファイルの以下の行の前に色々と追加して

#include <User_Setup.h>           // Default setup is root library folder

こんな感じにしました。
//▼TFT_eSPI.cppを単体でコンパイルしてしまうのでスケッチ内で#defineしても未定義になってしまう
//#define TTGO_ESP32
//#define ILI9341

#if defined (TTGO_ESP32)
#pragma message "found the TTGO_ESP32 so use Setup25_TTGO_T_Display"
#include <User_Setups/Setup25_TTGO_T_Display.h>    // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT
#pragma message "found the TTGO_ESP32 so use ST7789_DRIVER"
#define ST7789_DRIVER      // Full configuration option, define additional parameters below for this display
#elif defined (ILI9341)
#pragma message "found the ILI9341 so use TFT_ILI9341_TP"
#define ILI9341_DRIVER
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   15 // Chip select control pin
#define TFT_DC    2 // Data Command control pin
#define TFT_RST   4 // Reset pin (could connect to RST pin)
#define TOUCH_CS  5     // Chip select pin (T_CS) of touch screen
#elif !defined(ILI9341) && !defined(ST7789_DRIVER)
#pragma message "not found ILI9341 or ST7789_DRIVER"
#define TFT_CS   PIN_D8 // Chip select control pin D8
#define TFT_DC   PIN_D3 // Data Command control pin
#define TFT_RST  PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
#else
#endif
//▲

#include <User_Setup.h>           // Default setup is root library folder

これで、頭の行の#define行をLCDに合わせてコメントアウトするだけです。
↓使用するLCDに合わせてコメントを外します。
//#define TTGO_ESP32
//#define ILI9341

本当はスケッチ内の#defineだけで処理できれば嬉しいのですが
スケッチのコンパイルが終わった後に何故かTFT_eSPI.cppを単体でコンパイルしてるようで
その際にスケッチの#defineを読まないので対処できませんでした。



また、日を改めてチャレンジしてみます。

一応ファイルは以下でダウンロードできます。



2020年11月30日月曜日

後悔しないFusion360の使い方を公開するよ

CAD素人ですが最近Fusion360を使い始めましたが
とても楽に編集ができることが分かりました。
「そんなの当たり前だよ」とか「そんな使い方おかしいよ」
といった意見もあるかもしれませんがそれを承知で公開してみます。
公開したことにより叩かれても後悔しません。(多分)

1.スケッチに平面図を書く
1.1.スケッチ面を選ぶ

1.2.スケッチ面に平面図を書いてスケッチ終了する


2.押出しで各面の高さを設定
2.1.押出しを選ぶ

2.2.押出したい面を選んで高さを入力

2.3.各高さ毎に押し出しをする
その際にオブジェクトからを選ぶと相対的な高さで入力できて便利


さて、本題はここからです。
例えば穴を大きくしたりボスを追加したくなったら
3.編集作業
3.1.スケッチの編集を選ぶ

3.2.線を追加したりドラッグで移動(寸法線を追加して数値入力も可)

3.3.スケッチの編集を終了するとちゃんと穴寸法の変更が反映されます。

3.4.フィーチャの編集で押し出し面を追加(削除も可能)

3.5.押出しの追加や削除したい面をクリックすれば押し出し面を後から変更できます。

4.1.側面に穴を開ける。

4.2.穴を開けたいor出っ張りを追加したい面を選んで追加する

4.3.矢印をドラッグor寸法入力で出っ張り追加や穴あけができます。

4.4.再びフィーチャ編集

4.5.位置や大きさを変えられます(今回は貫通してみました)

5.またまたフィーチャ編集
5.1.フィーチャ編集を選んで[操作]を[新ボディ▼]に変更する

5.2.結合を選ぶ

5.3.ターゲットボディとツールボディを選んで[ツールを維持]にチェックを入れる

5.4.ツールボディにフィレットを入れてみる

5.5.まだ穴にフィレットはありません。

5.6.フィーチャをドラッグして順番を入れ替えれば穴にもフィレットが付きます。


2017年11月20日月曜日

Arduinoでタッチセンサ その2

前にArduinoでタッチセンサを作ってみましたが
1ポートしか対応していなかったので複数ポートに対応してみた。

D2ポートとタッチセンサとして使用したいポートの間に
1MΩの抵抗を入れて下さい。

D2をタッチセンサ静電容量計測の為の出力に使っていますので
タッチセンサとしてしようするのはそれ以外をタッチセンサとして
使用できます。
因みに本ソースではD3をタッチセンサとしています。


//
//タッチセンサ
//

#define Version "TouchSence210"
//複数入力に対応
//#define Version "TouchSence200"

#define ouTouch 2 //タッチセンサ出力
#define inTouch 3 //タッチセンサ入力
#define ouLED 13 //検知状態モニタ

int threshold = 3; //判定レベル

void setup()
{
  pinMode(ouTouch,OUTPUT);
  pinMode(inTouch,INPUT);
  pinMode(ouLED,OUTPUT);
  
  Serial.begin(115200);
  Serial.println(Version);
}

struct stTouch{
  int stt;      //タッチセンサ出力
  int tt;        //タッチセンサ入力反転時間計測用
  int tH[8];  //立上り時間
  int tL[8];  //立下り時間
  int lev[8]; //タッチセンサ判定結果
} touch;

int touchMng(int touchPin)
{
  digitalWrite(ouTouch, touch.stt);
  //入力が出力と同レベルになるまでの時間カウント
  if (digitalRead(touchPin)!=touch.stt){
    touch.tt++;
  }
  //入力が出力と同レベルに変化なった
  else{
    //レベル反転とHiとLoの時間を保持
    if(touch.stt!=HIGH){
      touch.stt = HIGH;
      touch.tL[touchPin] = touch.tt;
    }
    else{
      touch.stt = LOW;
      touch.tH[touchPin] = touch.tt;
    }
    touch.tt = 0;
    //変化時間表示
    /*
    if(touch.stt!=HIGH){
      Serial.println();
      Serial.print("\ttL= ");
      Serial.print(touch.tL[touchPin]);
      Serial.print("\ttH= ");
      Serial.print(touch.tH[touchPin]);
      Serial.print("\tSUM= ");
      Serial.print(touch.tH[touchPin]+touch.tL[touchPin]);
      Serial.print("\tSUB= ");
      Serial.print(abs(abs(touch.tH[touchPin])-abs(touch.tL[touchPin])));
    }
    */
    //判定結果を確定
    if( touch.tH[touchPin]+touch.tL[touchPin] > threshold ){
      touch.lev[touchPin] = true;
    } else {
      touch.lev[touchPin] = false;
    }
  }
  //判定結果を返す
  return touch.lev[touchPin];
}
void loop()
{
  //検知状態をLED点灯
  if(touchMng(3) == true){
    digitalWrite(ouLED, HIGH);
  } else {
    digitalWrite(ouLED, LOW);
  }
}


立上り時間と立下り時間を加算してスレッシュホールドレベルと
比較していますが、どちらか片方では商用電源の誘導で引っ張られて
時々検知が外れてしまっていた為、両方を加算しました。