2014年6月6日金曜日

NEXUS5用バンパー(未完成)

SketchUpでNEXUS5用のケースを作っているけど
曲面に丸穴を開けられない。

SketchUpって、面が崩れることがよくあるけど
毎回試行錯誤でとても苦労する。


NEXUS5用バンパー(未完成)

2014年5月31日土曜日

自作Qi対応



こんなのを買ってきて

















偶々運良くクレードル対応の端末があったので
ワイヤレス充電アダプタのコネクタ部をバラしてから
バネ性のある金属を半田付け。
(今回は適当なコネクタの端子を流用しました)

位置を合わせて吸湿性の無いテープでガッツリ貼り付け。
※吸湿性が無いことが最重要!!















2014年5月30日金曜日

Androidランチャー

扇ランチャが便利です。
ただちょっと片手操作では四隅から伸びた扇をタップしにくいんですよね

そこで扇ランチャのレビューを見ると

「ちょっと便利な使い方 扇ランチャーの軽量版と無料版両方インストールして、
両方共右下を設定すれば同じ場所に違うアプリを設置(9個×2段等)出来るので
結構便利です。」

わぉ、とっても便利!!



2014年5月28日水曜日

Arduinoでタッチセンサ

ちょこちょことググっていたらioポートをタッチセンサとして使えるってのを発見しました。
静電容量式タッチセンサで遊ぶ

何これ、面白うそうって事で
建築発明工作ゼミ2008さんの所からソースを頂いて早速動かしてみたところ

どうも触られる側、つまりセンサ及びマイコン側の環境で誤動作しやすかったので
色々と試して実用化できそうな気がしてきました。

一応現象としてはタッチを話した後に誤作動していたのでタッチ部に貯まった電荷が
逃げ切れていない為と思われるので一旦入力ピンを出力にして貯まった電荷を
逃しています。


まだ、課題としてタッチ側の面積を変えると誤動作もありましたので更に確認してみたところ、
タッチ部の面積と通常時の時間の長さが比例して伸びるだけで
タッチした時の時間はそれほど変化しませんでした。
つまり、コンデンサを並列に繋ぐようなものなので当たり前ですね。
そんなわけで自動キャリブレーション的な事もできないことはないと思いますが
タッチ面積を極端に大きくすると通常時の不安定さが増すだけだし
常識的なタッチ面積であれば実用には大丈夫だと思います。



通常時波形:緑=タッチコントロール出力 黄=タッチ入力




タッチ時波形:緑=タッチコントロール出力 黄=タッチ入力








//
//ioポート式タッチセンサ評価プログラム
//

#define LED_OUT  13     //LEDでタッチセンサのon/off表示
#define TOUCH_MON  12   //タッチセンサモニタ
#define TOUCH_OUT 11    //タッチセンサコントロール
#define TOUCH_IN  10    //タッチセンサ入力

#define TOUCH_AV  3     //移動平均回数
int touchLv=40;         //タッチ判定値
int touch=0;            //フィルタ用変数

int  touchMng(void)
{
  int aa=0;    //静電容量変化量の変数を用意
  unsigned long touchTm;    //タッチ時間保持

  pinMode(TOUCH_IN,INPUT);  //タッチ入力設定
  digitalWrite(TOUCH_OUT, HIGH);  //タッチ出力ピンをHIGHで出力
  digitalWrite(TOUCH_MON, HIGH);  //入力モニタ用出力
  //タッチ入力がHIGHになるまでをカウント
  //※HIGH→LOWの変化では検出不能でした
  touchTm = micros();
  while (digitalRead(TOUCH_IN)!=HIGH){
    if(micros()-touchTm > touchLv) {
      break;
    }
  }
  digitalWrite(TOUCH_MON, LOW);
  aa = micros()-touchTm;             //変化時間をμSecで取得
  digitalWrite(TOUCH_OUT, LOW);
  pinMode(TOUCH_IN,OUTPUT);    //入力を一旦出力にして貯まった電荷を逃します
  delay(1);

  Serial.print(touchLv);
  Serial.print(" \t");
  Serial.print(aa);
  Serial.print(" \t");
  Serial.print(touch);
  Serial.print(" \t");

  //加重移動平均
  //touch += aa-touch/TOUCH_AV;
  //return(touchLv*TOUCH_AV > touch ? 0 : -1);
  //単純移動平均
  touch += -touch/TOUCH_AV + aa;
  return(touchLv > touch/TOUCH_AV ? 0 : -1);
}


void  loop(void)
{
  if(touchMng() == 0) {
    Serial.println("    off");
    digitalWrite(LED_OUT, LOW);
  }
  else {
    Serial.println("on");
    digitalWrite(LED_OUT, HIGH);
  }
}


void setup(void)
{
  Serial.begin(9600);          //シリアルでモニター

  pinMode(TOUCH_OUT,OUTPUT);    //タッチ出力をデジタル出力
  pinMode(TOUCH_IN,INPUT);      //タッチ入力をデジタル入力
  pinMode(TOUCH_MON,OUTPUT);    //タッチ入力をモニタ出力
  pinMode(LED_OUT,OUTPUT);      //タッチ入力をモニタ出力
}



2014.06.19追記

専用IC使ったタッチセンサってどうなってんだ?
ってことで波形見てみました。



緑が通常状態で黄色がタッチしている状態。
2μSecぐらいのパルスを出して、触ると電圧が半分ぐらいに落ちてますね。

2017.11.20 追記
新たに「Arduinoでタッチセンサ その2」を書いてみました。
http://yuzumemo.blogspot.jp/2017/11/arduino.html