ブラウザを作ってみる
AndroidでWebViewはめ込んだだけのブラウザを作ってみる
どうにも思ったようなものがない
こんだけイジる
低速SIMを使ってるからデフォで外部ファイル(js、css、画像全て)は読み込み不要
タブ化してタブの切り替えは画面下並べる
ボタンはメニューとタブを閉じるボタンのみ、画面下にしか配置しない
URL、タイトルは見ないから不要
リンク長押しで裏タブで開く
左右フリックでタブ移動、onclickのあるところではタブ移動しないほうがいい
新規タブにOperaみたいなSpeedDial
target=_blankは無視して同タブで開く
viewportのwidthは無視して端末幅で表示
viewportのuser-scalable=noは無視
ユーザー定義のcssを使いたい
URLベースのフィルタを入れとく
とりあえず画面にこれ以上Widgetは置かない
無線&タッチセンサー
無線とタッチセンサー化したくてとりあえずAdafruit Feather 32u4 Bluefruit LEを購入
サンプルいじってBluetoothのキーボードにするのはすぐできた
超簡単(^-^)
Amazon.co.jp: Adafruit Feather 32u4 Bluefruit LE: DIY・工具
ただ、↑にはピンヘッダついてないし最終的にはブレッドボードなしで行きたいから
とりあえずArduinoにタッチセンサーをつないでみた
https://www.amazon.co.jp/gp/product/B00YXGAC5U
まず繋ぐ線がどれか分かんねぇ(-_-;
UNOのサンプルはあるけどMicroだとうまく動かない
めんどくさいから、もうピンヘッダはんだ付けしたけどすごい雑い
結局SCLとSDAとかいうのがArduinoの機種ごとに違うからデータシートよーみんさいって事だった
知らんし( ノД`)
タッチセンサーのピンヘッダ取るのだるいし、もう一個買ったろかいな、安いし・・・
データグローブ試作 その2
手袋の指先にポッケを作りセンサーをぶっさして多少見栄えはよくなった
センサーがよくずれるけどなんとかならんもんか・・・
今はマジックテープで縛って両面テープでくっつけている、でもよくずれる
ソフト側はC言語ならかじったことあるのでめちゃ簡単に作ったった
一言でいうとザ・手抜き
動いたのでHello Worldしてみた
www.youtube.com
実は10回以上リテイクしている、20回から先は数えてない
撮影用に手を挙げて入力するのしんどい
手をぶらりとさせれば入力できるけど、キーアサインまだ覚えきれない
キーアサインはなんかのソースコードをアルファベットの出現頻度見て折り曲げやすい配置から順に設定していった
数字やモデファイヤキーはまだない、つか指がたらん
#define A0_LIMIT 833 // 親指 #define A1_LIMIT 880 // 人差し指 #define A2_LIMIT 858 // 中指 #define A3_LIMIT 870 // 薬指 #define A4_LIMIT 890 // 小指 #define NOP B0000 // パー uint8_t KeyStroke = NOP; uint8_t KeyAssign[32] = { NOP, // ○○○○ ○ 'e', // ○○○○ ● 'a', // ○○○● ○ 'd', // ○○○● ● 'o', // ○○●○ ○ 'w', // ○○●○ ● 'k', // ○○●● ○ NOP, // ○○●● ● 'u', // ○●○○ ○ 'x', // ○●○○ ● 'g', // ○●○● ○ NOP, // ○●○● ● 'c', // ○●●○ ○ 'p', // ○●●○ ● 't', // ○●●● ○ 'r', // ○●●● ● 'i', // ●○○○ ○ 'n', // ●○○○ ● 'b', // ●○○● ○ 'v', // ●○○● ● 'j', // ●○●○ ○ 'q', // ●○●○ ● 'y', // ●○●● ○ NOP, // ●○●● ● 'h', // ●●○○ ○ 'm', // ●●○○ ● 'z', // ●●○● ○ 'f', // ●●○● ● 's', // ●●●○ ○ 'l', // ●●●○ ● ' ', // ●●●● ○ KEY_RETURN, // ●●●● ● }; void setup() { Serial.begin(9600); Keyboard.begin(); } void loop() { int a0 = analogRead(A0); int a1 = analogRead(A1); int a2 = analogRead(A2); int a3 = analogRead(A3); int a4 = analogRead(A4); int now_stroke = (a0 >= A0_LIMIT) | (a1 >= A1_LIMIT) << 1 | (a2 >= A2_LIMIT) << 2 | (a3 >= A3_LIMIT) << 3 | (a4 >= A4_LIMIT) << 4; KeyStroke |= now_stroke; if (now_stroke == NOP && KeyAssign[KeyStroke] != NOP) { Keyboard.press(KeyAssign[KeyStroke]); delay(100); Keyboard.releaseAll(); KeyStroke = NOP; } else { print_finger_state(a0, a1, a2, a3, a4); delay(100); } } void print_finger_state(int a0, int a1, int a2, int a3, int a4) { Serial.print(a4, DEC); Serial.write(" "); Serial.print(a3, DEC); Serial.write(" "); Serial.print(a2, DEC); Serial.write(" "); Serial.print(a1, DEC); Serial.write(" "); Serial.print(a0, DEC); Serial.write(" "); Serial.println(KeyStroke, BIN); }
データグローブ試作
曲げセンサーが届いたので早速くっつけてみた
センサーに半田付けしてブレッドボードにぶっさす簡単設計
長さが足りなくなるとヤダから、長めのワイヤ付けたら余りまくり
5cmくらいのワイヤのがよかったかしら・・・
曲げると抵抗値が変わるらしいけど
そないダイナミックには変わらないみたい
www.youtube.com
パーの状態でanalogReadの値がこんな感じ
小指 薬指 中指 人差 親指
770 780 790 820 780 パーの状態
870 900 880 900 850 グーの状態
曲がったよって認識する閾値は (グー - パー) / 4 * 3 + パー ってとこかな?
小指 薬指 中指 人差 親指
845 870 858 880 833 閾値(仮)
後はキーアサイン決めてキー割り振っていけばええかな
今はセンサーを手袋にビニテで張っ付けてるだけだから、できれば見栄えを何とかしたい