2015/01/08

Intel Curie

http://japanese.engadget.com/2015/01/06/curie-quark-se-soc-6-ble/
CESにてIntelがウェアラブルデバイス向けのモジュール「Curie」を発表しました。
GalileoもEdisonも とても興味があったのですが、CPUボードの枠から出なかったので
Raspberry Piを持っている私は買うまでには至りませんでした。
ただし、今度はモジュール内にBluetoothや6軸モーションセンサーがついているので、
とぉ〜っても興味があります!
後は、市販化するのかという点と価格がどうなるのでしょうか?

2015/01/02

ひねリモコン(プロトタイプ)

夏頃、日本のスタートアップが「Ring」というウェアラブルデバイスを開発している
という記事を読んだ時、ひねった動作でコントロールする物を作りたいなぁ、、、と
ふと思いました。
以前、赤外線LEDを100個まとめ買いしていたので、赤外線、ひねる、リモートコント
ロールというキーワードで、安直にテレビのリモコンを作る事にしました。(^^;
理想はボールのようなケースにボタンが一つ、というようなシンプルな物を作りたいの
ですが、とりあえずはArduino+赤外線LED+ジャイロ(L3GD20)という構成で試す
ことにします。
秋月電子で売られているユニバーサル基板に小型のブレッドボードを付けて2階建て
構造にしました。
接続とソフトについては、以下の2つのサイトを参考にさせてもらいました。

http://eikatou.net/blog/2012/07/1796/
http://n.mtng.org/ele/arduino/tutorial012.html

接続はこんな感じです。

ソフトは上の2つのサイトのソースをほぼコピペで、Y軸の傾きに対して紫外線LEDを
CH upするか、CH downするかという簡単なプログラムです。
#include 

#define LED_PIN 2

//CH up
unsigned int chup[] = {432,1664,352,728,324,708,352,704,356,736,348,1716,364,
696,348,732,328,708,348,1724,396,720,348,704,352,720,352,1716,364,696,396,45856,
364,1712,368,684,356,708,348,704,348,736,364,692,356,1720,356,1716,360,1716,368,
688,352,1720,360,1720,356,1728,356,696,352,1728,392};
//CH down
unsigned int chdown[] = {480,1620,352,704,352,708,344,704,356,740,352,700,360,
1716,352,696,360,696,348,1728,364,688,352,704,360,712,356,1716,364,716,388,45792,
372,1704,364,696,352,700,360,696,356,728,348,1724,368,692,356,1720,360,1708,368,
688,356,1716,368,1708,368,1724,352,704,352,1720,408};

const byte L3GD20_ADDR = B1101010;  // SA0 = GND
//const byte L3GD20_ADDR = B1101011;// SA0 = VDD_IO

const byte L3GD20_WHOAMI = 0x0f;
const byte L3GD20_CTRL1 = 0x20;
const byte L3GD20_CTRL2 = 0x21;
const byte L3GD20_CTRL3 = 0x22;
const byte L3GD20_CTRL4 = 0x23;
const byte L3GD20_CTRL5 = 0x24;
const byte L3GD20_X_L = 0x28;
const byte L3GD20_X_H = 0x29;
const byte L3GD20_Y_L = 0x2A;
const byte L3GD20_Y_H = 0x2B;
const byte L3GD20_Z_L = 0x2C;
const byte L3GD20_Z_H = 0x2D;

void L3GD20_write(byte reg, byte val)
{
  Wire.beginTransmission(L3GD20_ADDR);
  Wire.write(reg);
  Wire.write(val);
  Wire.endTransmission();  
}

byte L3GD20_read(byte reg)
{
  byte ret = 0;
  // request the registor
  Wire.beginTransmission(L3GD20_ADDR);
  Wire.write(reg);
  Wire.endTransmission();  
  // read
  Wire.requestFrom((unsigned int)L3GD20_ADDR, 1);
    while (Wire.available()) {
    ret = Wire.read();
  }
  return ret;
}

void SendData(unsigned int *data, int datasize) {
  Serial.println(datasize);
  for (int i = 0; i < datasize; i++) {
    unsigned long start_t = micros();
    unsigned long length = data[i];
    do {
      digitalWrite(LED_PIN, 1 - (i&1));
      delayMicroseconds(9);
      digitalWrite(LED_PIN, 0);
      delayMicroseconds(7);
    } while(long(start_t + length - micros()) > 0);
  }
}

void setup() {
  Serial.begin(9600);
  while (!Serial) {}

  Wire.begin();
  Serial.println(L3GD20_read(L3GD20_WHOAMI), HEX); // should show D4
  L3GD20_write(L3GD20_CTRL1, B00001111);
  pinMode(LED_PIN, OUTPUT); // LED setup
}

void loop() {
  short X, Y, Z;
  float x, y, z;
  int datasize;

  X = L3GD20_read(L3GD20_X_H);
  x = X = (X << 8) | L3GD20_read(L3GD20_X_L);
  Y = L3GD20_read(L3GD20_Y_H);
  y = Y = (Y << 8) | L3GD20_read(L3GD20_Y_L);
  Z = L3GD20_read(L3GD20_Z_H);
  z = Z = (Z << 8) | L3GD20_read(L3GD20_Z_L);
 
  x *= 0.00875; // +-250dps
  y *= 0.00875; // +-250dps
  z *= 0.00875; // +-250dps
  
  if ( y > 10 ) {
    datasize = sizeof(chup) / sizeof(chup[0]);
    digitalWrite(LED_PIN, HIGH);
    SendData(chup, datasize);
    digitalWrite(LED_PIN, LOW);
    Serial.println("CH up");
  }
  
  if ( y < -10 ) {
    datasize = sizeof(chdown) / sizeof(chdown[0]);
    digitalWrite(LED_PIN, HIGH);
    SendData(chdown, datasize);
    digitalWrite(LED_PIN, LOW);
    Serial.println("CH down");
  }
  
  Serial.print(x);    // X axis (deg/sec)
  Serial.print("\t");
  Serial.print(y);    // Y axis (deg/sec)
  Serial.print("\t");
  Serial.println(z);  // Z axis (deg/sec)

  delay(1000);
}

そう、昔のダイアル型のテレビと同じ動作です。(^^;)
X軸でボリュームまでコントロールする予定です。

2014/11/18

マックでワイン

ようやく、諸問題が収束してきたので再びネタを書いていこうかと思います。

マックでワインと言っても、食事の話ではありません。(^^;
MacintoshでWineを動作させる話です。
Wineというのは、WindowsではないOS上でWindowsアプリを動作させるプログラム(群)です。

うちにはWindows PCとMacと2台持っているので、Windowsアプリを使いたい時は
Windows PCを立ち上げればいいのですが、そこはやはり面倒なので どうにかMacで
Windowsアプリを動かせないかと悩んでいました。
ただ、MacにはBoot CampでWindows8.1が入っており、且つParallels Desktopで仮想
起動もできるのですが、目的のWindowsアプリが8.1に対応していません。。。

と言う訳で、WineでMacで直接起動しようと思い、下のリンクを参考にMac版Wineの
Wineskinをインストールしました。
   WindowsアプリをMac上で簡単に動かせるようにするツールWineskin
空のアプリ作成も順調に進み、アプリのインストールに少々手こずりましたが、なんとか
インストールも完了。
さて、アプリを起動し、無事成功!
。。。
なにやらWindows PCで見ていた時とレイアウトが違う。。。
試しにWindows PCでレイアウトを見ると、、、違う。レイアウトが変わっている。
なんか情報が足りないのかもしれませんが、同じアプリでこれでは余り意味が無い。。。
という事で、 WineでWindowsアプリは本当に動くんだね、という検証を行っただけになりました。(T-T)

2014/08/24

東京メトロ

ある所からの負のオーラにより、ここ1年趣味に対する意欲が減退していたのですが、
ちょっと危機感を感じたので復活しようとしています。
先週、東京メトロの運行情報をオープンデータ化するというニュースが出ていました。
http://tokyometro10th.jp/future/opendata/index.html
しかも、賞金100万円!!
賞金は別に良いけど、結構色々なデータが公開されるらしいので、楽しみにしていたのですが。。。
どうやら、応募しないとそのオープンデータ情報が見られないようです。orz
まだ、公開されていないので詳細はつかめませんが、本当に公開されたらいいなぁ〜。

2014/06/20

Beyond the sea 発動編

来ましたアメリカ。
とりあえず、優しい人たちに感謝。何とか帰ってこれました。

成田に行く前にT-MobileのAPN設定ページを見ながら、設定変更箇所を見てみると。。。
既に設定が入っていました。\(^o^)/
http://apn-settings.com/t-mobile-apn-settings-step-by-step-configuration/
無事アメリカについたら、T-MobileのAPNにチェックを入れモバイルデータ通信を
ONにすると、、、
接続成功!
空港にあったら最高なんですけど、まぁ次なんて事は考えないで行きましょう。
ホテルに着いて部屋をチェックしてみると、これでもかとコンセントがありました。
日本のホテルではコンセントが1つしか無いのが普通だったので、これにはビックリ。
しかもUSB充電ポートも2つありました。便利です。。。

今回はニューヨーク2日間、アイオワに3日間、再びニューヨークに2日間という日程だったのですが。。。アイオワで全然つながらない!(T_T)
通話はできそうでしたが、私には無用の長物。
沢山チャージしなくて正解でした。それにホテル等のWiFiスポットには本当にお世話に
なりました。セキュリティに少々不安もありましたが、つながらない事の不便さが勝ちました。(^^;

このSIMが切れて次なるアメリカ出張があった時は現地調達、とも思いましたが、
近くにT-Moblieショップが無いのです。。。orz
現地で買えば初期費用が半分なんですが、自分で店に行けなければ意味ないですからね。
トータルではレンタルWiFiとドッコイドッコイくらいだと思います。
最大の収穫は日本ではダウンロードできない、Flickrアプリインストールできた事です!
\(^o^)/

2014/05/18

Beyond the sea 接触編

急ではないけれど、連休明けに会社から渡米の指令が来ました。
で、真っ先に考えたのがプライベートの回線どうしようと。。。(^^;
色々と調べるとT-Mobileの1dayプリペイドプラン($3/day)が良さそう。
アメリカはWifi天国らしく(日本が酷すぎるという話もあるが)困る事はなさそうだけど、
出張先の一部に地方に行く予定があるので3G回線を持っていた方が良さそう。
というか、SIM Freeスマホを持ったので使ってみたいだけです。(*^^*)

SIMの調達をどうしようと調べていると、Amazon.comで調達している人を発見!
http://helicalgear.blogspot.jp/2013/09/t-mobile-ussim.html
大変助かりました。ありがとうございました。m(_ _)m
という訳で、Amazon.comのアカウントを取得しSIMを発注!
翌日にはShippedとなって早い〜と喜んでいたのですが、追跡ステータスが一向に変わらず。。。(- -)
え、、、まさか、と悶々としながら2週間。郵便でやってきました。

注文したSIMは通常サイズ。私のスマホはASUS Fonepad note 6。MicroSIMです。
という訳で、買ってきましたSIMカッター!
いきなり本番も怖かったので、ダミーSIMも買いました。
こんな感じになります。
バリを取り、Fonepadに差し込み、認識!
という訳で、T-Mobile SIMもカット。認識成功!

続いて、アクティベーションをWebから行い、無事日本で開通まで出来ました〜。
IMEI番号と電話使う場所、paymentの住所に驚きましたが、調べたりよくページを見れば
分かる事でした。
とりあえず、$10を振り込んで無事アクティベーションも成功!
準備完了。

発動編に続きます!
(接触編、発動編が分からない人はイデオンで検索してください(^^))

2014/05/01

TOSHIBA FlashAir


4月にIntelのgalileo2が発表され秋葉原でgalileoが半額になった為、買うか買わないか
悩んでいる時、偶然読んだ記事が東芝のFlashAirでした。
FlashAirが出た当初 先駆者のEye-Fiの二番煎じかぁ〜、などと思いそのままだった
のですが、今週読んだ記事で当初思っていたイメージとは違っていました。
http://eetimes.jp/ee/articles/1404/24/news003.html
Webサーバ機能、スマホアプリによる接続、API公開、、、しかもポメラに挿して
Evernoteに接続だと!
ん〜、どうも色眼鏡で見ていたようです。

galileoも面白そうなのですが、うちにはRaspberry Piが既に暇そうにしているので、
4000円の使い道としてはボードマイコン以外の方がいいのかなぁ〜。
って、どちらにしても消費する運命なのか。。。(^^;