Archive for the ‘tips’ Category
iPhoneでWebサイトの表示が小さい場合の対処法
先日のiPhone自動文字縮小について記述しましたが、今回iPhone向けサイトを構築していて、シミュレータなどと比較すると非常に画像サイズが小さく、縮小されて表示されてしまうという現象となりました。
どうも、iPhoneはデフォルト横幅960pixとしてレンダリングし、それをiPhoneの解像度にあわせて縮小表示するようです。
これを実際のpixelにあわせて表示させるためにはmetaタグにて viewportの指定を行う必要があります。
iPhone3 iPhone3GSの解像度ぴったりにあわせる場合には
<meta name=”viewport” content=”width=320″ />
と指定することによって、サイトを横幅320pixとしてレンダリングして表示されます。
これでも文字が小さいと感じる場合は前回のエントリの-webkit-text-size-adjust とあわせると良いでしょう。
iPhoneでWebサイトを表示した場合の文字サイズの調整
iPhoneのsafariではWebサイトを最適に表示するために文字サイズを自動調整する機能を持っています。
しかし、携帯向けのサイトと共通のHTMLで表示した場合に予想外にサイズが小さくなり文字が読みづらくなってしまう場合があります。
この場合、-webkit-text-size-adjust という属性を設定し文字サイズの自動調整をOFFまたは倍率固定することで回避できます。
例:
<html style=”-webkit-text-size-adjust:none;”>
↑自動調整をOFFにする
<html style=”-webkit-text-size-adjust:150%;”>
↑文字サイズを1.5倍にする
QステアをArduinoから操作
今回は、タカラトミーのQ STEERをArduinoから操作するハックになります。
先週末、日本橋にある共立電子産業株式会社 3階のセンサー売り場にて赤外線のパーツ類を購入しました。
そんなわけで日曜大工エンジニアです。
○赤外線LED
東芝製 TLN115A(大) 60円
東芝製 TLN119(小) 80円
○赤外線リモコン受信モジュール
EVERLIGHT製 IRM-3638N3 210円
![]() |
![]() 左からOUTPUT、GND、vcc(2.5-5.5V) |
![]() 赤外線受信用回路 |
赤外線解析用コードは、ArduinoのサイトからInfrared receiver modulesのコードを利用して解析しました。
○キャプチャ値
データーの0と1が点灯、消灯の間隔。
点灯時は常に点灯しているのではなく、ON、OFFを繰り返します。
この繰り返しの間隔次第で変調信号として機能してます。
今回は38khzの変調信号での利用となります。
—- ここから
0 0
1796 0
1796 1
2168 1
2168 0
2648 0
2648 1
3016 1
…. 略
157372 0
158284 0
158284 1
—- ここまで
Qステア赤外線解析のサイトに書かれているのとほぼ同じ値が返ってきてます。
他には、1回の操作で2回同じ信号が送信されており、2回目の信号を送る間隔はch毎に異なっています。
Ach 間隔 7516
Bch 間隔 21860
Cch 間隔 36212
Dch 間隔 50568
チャネル毎に操作する場合は必要と考えれます。
○Ach の前進用サンプルコード
キャプチャした値の点灯間隔をサンプルコードに設定
#define LED 13
unsigned long us = micros();
void setup(){
pinMode(LED , OUTPUT);
}
void loop(){
digitalWrite(LED, LOW);
delay(1000);
int testdata[] = {1796 ,372 ,480 ,368 ,480 ,368 ,480 ,368 ,480 ,372 ,480 ,364 ,912 ,7516 ,1744 ,396 ,480 ,372 ,476 ,368 ,484 ,364 ,484 ,364 ,484 ,368 ,912 ,93576 ,1792 ,372 ,452 ,400 ,480 ,368 ,476 ,368 ,480 ,372 ,480 ,368 ,908 ,7512 ,1772 ,368 ,480 ,372 ,476 ,368 ,480 ,368 ,484 ,364 ,484 ,368 ,908 ,15680 ,1800 ,368 ,456 ,392 ,480 ,368 ,912 };
for (int cnt = 0; cnt < 500; cnt++) {
unsigned long len = testdata[cnt];
if (len == 0) break;
unsigned long us = micros();
do {
digitalWrite(LED, 1 – (cnt&1)); // iが偶数なら赤外線ON、奇数なら0のOFFのまま
delayMicroseconds(8); // キャリア周波数38kHzでON/OFFするよう時間調整
digitalWrite(LED, 0);
delayMicroseconds(7);
} while (long(us + len – micros()) > 0);
}
}
以上が今回のハックの内容となります。
前回と違い非常に安価にラジコンが製作出来ます。
また、赤外線は様々な用途での利用が考えれます。
今後も発想次第で色々作れそうです。
その後のラジコン
すっかりブログを書くのを忘れてました。
本日返信がついたので思い出した次第です。
あれから、ラジコンはサーバーに繋いだXBeeを介し、flashやjava applet から操作が可能となりました。
構成図はこんな感じです。先日社内のプレゼンで使った資料の流用になります。
Flashから操作できる=Wiiのブラウザからも操作が出来る!。。はずです。
カメラを搭載していないので遠隔から操作は出来ません。今後の課題ですね。
Linuxを搭載するように考えてましたが、消費電力が大きいのと、組み込みLinuxは高価なこともあり、搭載は諦めました。
今後は社内のサービスに何らかの形で技術提供できればと考えております。
会社で走らせました
今日は会社にラジコンを持ち込みました。
人生において会社のデスクにラジコン置く機会は幾つあるだろう。。
今回はLinux抜きでXBeeで通信するalpha版です。
beta版ではネットワークを通じサーバーを通じて操作。
正式版ではお茶の間のWiiから操作を目指します(いつになることか
Linux版は現在調整中です。走行するには解決しないといけない問題が幾つかあります。
操縦はWiiリモコンのBlueToothをMacのBlueToothに繋いでます。
MacからラジコンへはXBeeでシリアル通信をしてます。
ラジコンの実装としては、Arduinoにラジコンのバッテリーを繋ぎ、5Vを制御用、VINをモーター用に電源を回しました。
今回、モータードライバー(TB6612FNG)を使い前進後進を可能にしました。
TB6612FNGはネットに解説ページが無くて配線に悩みましたが、解れば非常に扱いやすい子です。
では、会社で撮った動画をどうぞ!!※撮影禁止区域は映っていないはず。。
趣味で作ったラジコンを会社に持ち込んだりする、こんな私のいるソリューション部ですが、現在人材募集中です。たぶん10月いっぱい。
注) ラジコンは作りません
我こそはと思う方はお問い合わせください。なお、WEB開発経験のある経験者でお願いします。





