arduino

arduinoを始めようと思ってます。

arduinoとは、安価に簡単に扱えるマイコンボードです。シールドと呼ばれるオプション基板を追加することで機能を増やすことができます。

以前からarduinoにするか、anduinoと互換で、C#で開発できるnetduinoかどちらにするか迷っていたのですが、netduinoでarduinoのシールドがどれくらい使えるのか謎のため、とりあえずはarduinoから始めることにしました。

6月末にはwifiに対応した「Arduino Yún」も販売されるそうですが、思ったときに始めないと、熱が冷めてしまうので、今すぐ購入して始めます。

ダイアグラムの描画(Graphviz)

ソフトでこのようなダイアグラムを描画したく、Graphvizというダイアグラム生成ツールを試してみました。

Graphvizは、dot言語で作成したテキストファイルをコマンドラインで与えると、任意の画像形式で有向グラフや無向グラフを作成してくれます。

作成するソフトは、dotファイルを作成し、Graphvizを実行し、出来上がった画像を表示させれば完成です。

特に難しい所は無いが、dotファイルを作成する箇所は汎用にしたいのでクラスにしました。グラフオブジェクトに、ノード・エッジ・サブグラフを追加して、ファイル書き込みを行うと、dotファイルが作成されるようにしました。

これで簡単にダイアグラムが作成できるようになりました。

マウス

新しいマウスを購入しました
タッチセンサが付いている、ロジクールの「Zone Touch Mouse T400」です。

ホイールの部分がタッチセンサになっており、上下左右にスワイプすると、スクロールを行います。

で、使ってみた感想は、イマイチ。
結局タッチセンサになったからといって何かメリットがあるわけでも無く、逆にフラットになったせいで、左ボタンとタッチセンサ部分の境目が指の感覚だででは分かりにくく、使っていて疲れる。

残念な結果だったので、新しいマウスを再度購入しようと思っているが、懲りずにロジクールの「Touchpad t650」にしようか悩んでいます。

 

ラインセンサカメラ

先日ラインセンサカメラのセミナーに行ってきました。

ラインセンサカメラとは、通常のカメラとは異なり、受光素子が1列だけ並んでいるカメラです。 これに対して、通常のカメラはエリアセンサカメラと呼ばれ、縦横格子状に素子が並んでいます。

普通に撮影したのでは1列だけしか撮影できないので、カメラか撮影物を動かして連続撮影することで、1枚の画像を作成します。

用途としては、缶など筒状のものの側面や、フィルムなどロール状のものの撮影に使用します。

今までは価格や技術面で敷居が高かったのですが、セミナーでの結果、今までより扱いやすくなっていることが分かりました。

画像処理案件が年々増えており、ラインセンサカメラを使った方が効率が良い案件も増えていますので、とても参考になりました。

本日の現調

今日は珍しく野外で現調を行いました。

京都市右京区の清滝川で、あるシステムの調整を行いました。
普段、半導体関係のクリーンルームや、油まみれの工場などで現調行うことがほとんどなので、このような場所での現調は新鮮な気分で、なかなか楽しかったです。

VB6アドイン 「VB6 IDE Tabbar」

今更ですがVB6の便利なアドイン「VB6 IDE Tabbar」を見つけました。

「VB6 IDE Tabbar」をインストールすると、VB6のコードウィンドウを切り替えるためのタブが表示され、VS.NETと同じようにコードウィンドウをタブ切り替えできるようになります。

ついでに、コードウィンドウのスクロールをマウスホイールで行えるようにもなります。

最近はVB6を使うことは減りましたが、既存ソフトの改造などでたまに使うので、非常にありがたいです。

Windowsタブレットの今後

Windowsタブレットが各社から販売され、本格的にWindowsタブレットの競争が 始まりました。

最初、 マイクロソフトからWindowsタブレットPCのリファレンス機的な扱いでSurfaceRTとSurfaceProが発表され、 今後のWindowsタブレットの流れとしては、 アンドロイドタブレットやiPad対抗として、OSにWindowsRTを使用した、安くてバッテリ持ちが良く軽い、その代わり今までのWindowsソフトは動かず性能の低いSurfaceRTタイプと、 ネットブックやウルトラブックからの延長として、OSにWindows8を使用した、今までのWindowsソフトが動き高性能な、その代わり高くてバッテリがあまり持たず重いSurfaceProタイプの、 2つの路線で各社から販売されると思っていました。

しかし、実際にはWindows8を使用したタブレットばかりになり、しかも価格・バッテリ持ち・重量がSurfaceRTタイプ並になっています。

理由はCPUにIntelの次世代Atom「Atom Z2760(コードネームClover Trail)」を使用している為です。 このCPU、今までのAtomとターゲットが大きく異なる。今までのAtomは、ネットブックやウルトラブックなどの廉価なパソコンに、安く低消費電力で使用するために設計されており、 メモリやバスなどの周辺部品の設計はパソコンと違いがありませんでした。しかし、Atom Z2760では、ターゲットが完全にタブレットになっており、周辺部品に組み込み系の技術が使われています。 そのため、CPUだけではなくシステム全体で低コスト・低消費電力・軽量化が実現できています。 さらに、S0i1とS0i3という新しい待機状態に対応したため、アンドロイドタブレットやiPadなどと同じように、ネットワークに接続したままスタンバイ状態に出来るようになりました。

正直、Surfaceが発表されたときWindowsタブレットは流行らないと思っていました。 WindowsRTタブレットは、過去のWindowsソフトが動かないのでWindowsとしてのメリットが無い。 Windows8タブレットは、価格・バッテリ持ち・重量で他のタブレットに勝てない。 結果、どちらも流行らないだろうと。

しかし、Atom Z2760のおかげでWindows8タブレットが、他のタブレットと同じ土俵で戦えるようになり、ビジネス向けを中心に一気にWindows8タブレットが普及しそうな状態になりました。

今後、工場などで利用されるタブレットとしては、アンドロイドが有力と思っていたが、 Windows8タブレットのほうが可能性が高そうなので、早いことWindowsストアアプリ(旧名称Metroアプリ)の開発に慣れておく必要がありそうです。

初めてのアンドロイドソフト開発ではまった事

nexus7を購入したのでアンドロイドソフトの開発を初めて見ました。
以前から@ITなどのサイトを読んで勉強はしていましたが、実際に開発を行うと、 つまらないところではまってばかりでした。

以下、はまったところ。

1.*.out.xmlというファイルが出来てビルドできない。
ビルドすると勝手に*.out.xml(*の部分は既存のxmlファイルのファイル名が入る)という空のファイルができあがり、ビルドエラーになってしまう。
その後、*.out.out.xml、*.out.out.out.xmlとビルドするたびにどんどんファイルが増えていきます。

調べると、xmlファイルを開いていたり、パッケージエクスプローラでxmlファイルを選んでいると、このファイルが出来上がるそうです。

*.out.xmlが出来上がった場合は、ファイルを削除して再度ビルドすれば直ります。

2.アンドロイドのエミュレータが起動できない。
アンドロイドのエミュレータ(AVD)を起動するときに「PANIC: Could not open: 」というエラーが出てしまいました。

以下のサイトに原因と解決方法が記載されていました。
http://u2k772.blog95.fc2.com/blog-entry-246.html

以下の場合にこのエラーが発生するそうです。
a)ユーザー名に日本語やスペースが含まれている場合。
b)マイドキュメントなどの位置をDドライブなどに移動した場合。

私の環境ではマイドキュメントがDドライブに移動してあるためにエラーになってました。

3.アンドロイドのエミュレータが異常に遅い。
起動までに1分かかり、起動後も描画がのろのろで使えません。
snapshotオプションをONすれば、前回の状態から起動できるので起動が速くなります。
GPUオプションをONすれば、描画がスムーズになります。
しかし、いずれか一方のオプションしか使用できないため、結局エミュレータは使用せず、実機で動かしています。

4.タイトルバーが消えない。
作成したソフトを起動すると、大きなタイトルバーが上部に表示されます。
とても邪魔なので消したいが、画面レイアウトが記載されているxmlファイルを見てもタイトルバーを表示しているような記述が見つかりません。

タイトルバーを消すには、AndroidManifest.xmlファイル内のandroid:themeの文字列を以下のようにします。
android:theme=”@android:style/Theme.Black.NoTitleBar”
こんなタイトルバーが出てくるソフトは見たことがないので、タイトルバー無しをデフォルトにしてくれればよいのに・・

普段VisualStudioばかり使っているので、eclipsにもまだ慣れておらず、 いっそMONO For Android」で開発すれば、VisualStudio + .net + C#といういつも通りの 環境で開発が行え、今までに作ったソースコードの流用も出来るはず。
一通りeclips + JAVAでの開発を勉強したら「MONO For Android」を試す予定です。