マイコン工作実験日記

Microcontroller を用いての工作、実験記録

成長と販路拡大

2012-06-30 11:10:48 | Weblog
お気に入りでいつも使っているNavi Switchの在庫が切れたので、他のパーツ/基板と一緒にSparkFunで在庫補充。オーダ内容をWebで確認していたら発注番号が55万番台に達しています。以前にも似たような内容の記事を書いたことがありましたが、その後の変化を含めてもう少しちゃんと分析してみようかと思い立ちました。



まずは自分のアカウント情報の一部として保存されている発注記録から発注日と発注番号をグラフ化してみました。記録されている最初の発注の時期は、ちょうどSparkFunがカートシステムを新たに導入だか切り替えだかした時期だったので、発注番号は400番台でした。当時から日本国内でもSparkFunを使っていた人はいると思いますが、国内代理店もありませんでしたし、今みたいに有名ではなかったですよね。



2003年に学生ベンチャーとして始まった同社ですが、わたしが使い始めたのは2006年からです。上のグラフからわかるように、2008年頃から受注が増加しているようです。このグラフでは受注数変化がわかり難いので、2つの連続する発注の日付と番号の変化から、平均的な受注数/日を求めてグラフ化してみました。



うーん、なるほど。順調に直販受注数を増やしていた同社も、すでに昨年から直販での受注数は頭打ちになっているようですねぇ。サンプルの間が1年くらい空いている部分のグラフが平になっているんで、ちょっと乱暴な見方かもしれませんが。言うまでもなく、世界中に販売代理店をもっており、今や秋葉の店頭でも同社の製品が買えるわけなので、直販が頭打ちになったからといって、同社の売り上げ成長が頭打ちになっているわけではないでしょう。
つまり、自社サイトでの直接通販よりも、代理店を経由した通販やリアルな店舗での売り上げが占める割合が大きくなってきているはずであり、販路の拡大とそのための対応が重要となっているのでしょう。その端的な例がRetailに分類されているブリスターパックで包装されている商品群であると見ることができます。わたしのような赤い小箱を愛する者には無縁な商品ですが。

わたしの場合、最初の頃はOLIMEX製品もSparkFunで買っていました。発注の手間や郵送のことを考えるとSparkFunの方が便利だったからです。しかし近年は売れ筋がArduinoになっているせいか、OLIMEX製品には重きをおいていないようです。わたしとしてもOLIMEX製品はMouserから買えるようになったので、SparkFunを使う必要もありません。近頃は、ちょっとしたパーツやBreakout Boardが購入対象の中心でしょうか。この分野の製品も、秋月やaitendoが各種変換基板やDIP対応基板を出してくれるようになったので、それらでかなり用が足りるようになってきました。今後は、より目新しいものを紹介してくれることに期待したいものです。

MacOSでもJ-Linkが使えるようになるか?

2012-06-26 23:33:54 | Weblog
ブログのアクセス解析を見ていると、最近Atmel Studio 6を検索キーワードとして、当ブログを訪れる方が増えているようです。6月の始めにAtmel Studio 6が正式リリースされたことが影響していると思われます。わたしはβの段階で一度中身の無い記事を書いただけなので、たどり着いても何の役にも立てていないことでしょう。

正式リリースが出た時点でインストールだけはしてあるのですが、ほとんど手つかずのままとなっています。ちょっと試したところでは、正式版になってもシミュレータがサポートしているのはAVRだけであり、SAM3はサポートされていないようでした。Atmel Studio 6はWindowsでしか動かないというのも、積極的に取り組めない理由のひとつです。以前は、CrossWorksをWindowsで使っていたので、マシンとしてはMBAを使っていても実際の作業はWindowsだったのですが、今ではCrowssWorksのライセンスをMacOS側に移してしまったので、Windowsは使わなくなりつつあります。

MacOSネイティブ作業環境における問題のひとつはJTAGです。わたしはSAM-ICE(J-LINKのOEM品)を持っているのですが、元々J-Linkの動作環境がWindowsであったために、CrossWorksでもJ-LinkはWindows環境でしか利用できません。しょうがないのでCrossWorksのJTAG(CrossConnect)を購入して使っています。しかしながら、CrossConnectはSWDを使う場合にはバスアダプタを介してつなぐ必要があり、使い心地はよくありません。やはりSAM-ICEが使えるようになって欲しいものだと、常々思っていました。そうしたところが、今日になって SeggerがLinuxやMacOS X環境 のサポートを開始していることを知りました。提供されているのは、J-Link commanderと GDB serverのようです。CrossWorksはWindows版では Jlink.dllを使っているようですが、GDB serverベースのインタフェースをとってくれればMacOS対応も可能になりそうに思われます。

iMX233-OLinuXino

2012-06-22 12:22:46 | OLIMEX
OLIMEXの買い物かごの準備が整ってきたように見えます。支払い方法としてはカード受け付けられるような説明があるにもかかわらず、チェックアウト時には選択できないようなのですが、そのうちに修正されるのかな。

値段に数量割引も明示されるようになりましたね。更新されたPrice Listを見るとまだ準備中のiMAX233-OLinuXinoシリーズの値段もすでに掲載されています。驚くのはMicroの値段で20ユーロです。Linuxが動く454MHzのARM9ボードが2000円ですか。そしてMiniがWiFi付きでも45ユーロとなっています。Raspberry Piと比べればプロセッサやビデオの機能等は見劣りしますが、機能に応じてバリエーションがあって用途に応じて最小サイズのものが選択できるところが実用的であるかもしれません。

この値段で買えるとなると、やっぱりこれからの時代 Lチカ はmRubyとかで書くようになるんでしょうか。簡単な処理だったらShellでも用が足りるという話もありますが、やっぱし前世紀の人間としては自分でレジスタを叩かないとハードを動かしている実感が湧かないよなぁ。

台風4号通過

2012-06-20 12:31:39 | Weblog
6月だというのに上陸した台風4号が駆け抜けていきました。そんな時は、コレ↓ですね。うちのあたりでは23:30あたりが気圧の底でした。というか、近頃はこんな機会でもないと記録を覗くこともないのですが。。



そろそろ暑くなってきたので、時折ケース内温度の上昇具合を確認しておいた方がいいかな。


ヌンチャクでGoogle Earthする -- デモ編

2012-06-19 00:11:12 | WT32/BM20
前回記事の続きです。今度は実際の動作を。



WCA-009を使ってBluetooth化されたヌンチャクを実際にGoogle Earthで使ってみました。今回のデモでは、Mac Book AirでMac版のGoogle Earthを使っていますが、Windows版でも全く同じように使えます。せっかくなので大画面で見てみようということで、Mac Book AirをHDMIでテレビと接続してみました。使用した変換ケーブルはこれです。

ELECOM miniDisplayPort変換アダプタ forAPPLE HDMI ホワイト AD-MDPHDMIWH
エレコム
エレコム


前回記事に書いたように、ヌンチャクの動作にはマウス・モードとナビ・モードのふたつがありますが、デモ動画で見せているのはナビ・モードの方だけです。やっていることは単純にスティックや本体が一定以上傾いたならば、対応するキーボードのコードにマッピングしてHIDレポートを出力しているだけです。傾き具体に応じてキーのリピートレートを変えるというような処理は一切なし。それでも、結構楽しめます。普段ノートPCしか使わない人なので、大画面で見る事がそもそも新鮮で楽しめます。

無線化されていますので、実際に使用する際にはMacはテレビのそばにおいたままで離れた位置からヌンチャクでの操作がおこなえます。なかなかいい感じですが、やはりマウス・モードとナビ・モードの切り替えがちょっと煩わしいです。使い心地改善のためには、ズーム操作に必要な傾斜はもう少し調整した方が良さそうです。


ヌンチャクでGoogle Earthする -- 準備編

2012-06-16 11:01:18 | WT32/BM20
さてWCA-009(WT32)を使えばヌンチャクをBluetooth HDIマウス/キーボード化することは簡単にできます。今回製作したボードの構成は次のようになっています。



マイコンのソフトでは、I2Cでヌンチャクからのデータを読み取り、その内容に応じて適切な疑似マウス/キーボードのイベントをHIDのレポート形式で送信してやるだけです。マイコンからはUARTを使ってデータを送信してやれば、あとはWT32がBluetooth無線化してくれます。パソコン側では、Windows XP, Windows 7, MacOSいずれもBluetooth HIDのドライバはあらかじめ用意されていますので、追加でドライバをインストール必要もありません。

それでは実際にどのようなアプリを使うかですが、わたしがやってみたかったのはGoogle Earthです。PC向けゲームソフトとか持っていないので、他にジョイスティックがあれば便利そうなアプリを思いつかないだけのことなのですけど。老眼と乱視の影響かゲームのような動きの激しい画面を見続けていると、酔ってしまい頭痛が襲ってきます。時には気持ち悪くなって横になりたくなるくらいです。これが眼精疲労ってやつでしょうか? Google Earthでも20分くらい遊んでいると頭痛がしてくるので要注意です。

Google Earthにはフライトシュミレーターの機能もあり、マウスやジョイスティックで操作することができるようになっています。しかし、慣れないわたしはうまく操縦できません。ゆっくりと動かして景色みたりするのであれば、普通にGoogle Earthを使うだけの方が良さそうです。

今回はジョイスティックではなくマウス/キーボードを疑似することになりますので、ヌンチャクの操作に応じて、適切なマウスあるいはキーボード操作に対応するHIDのレポートを出力する処理が必要となります。HIDの規格ではキーボードに対応するModifierやUsage IDが規定されていますので、キーの押下を表現するには対応するUsage IDを含むレポートを送出することになります。実際のヌンチャクの操作とGoogle Earthの動作の対応付けと、それに伴いHIDで送信する内容は、次のようにすることにしました。

まず、動作モードとしてマウス・モードとナビ・モードの2つを設けます。マウス・モードでは1ボタンのマウスの動作を疑似し、HIDマウスのレポートを生成/送信します。

ヌンチャク操作マウス動作HID動作
スティック上カーソル上へ移動Y-step(正)
スティック下カーソル下へ移動Y-step(負)
スティック左カーソル左へ移動X-step(負)
スティック右カーソル右へ移動X-step(正)
Zボタン左ボタン左ボタン
Cボタンナビ・モードに遷移N/A

Cボタンを押すとモードが変わります。ナビ・モードではGoogle Earthの3Dナビゲーション制御に必要なキー操作を疑似するためのHIDキーボードのレポートを生成/送信します。

ヌンチャク操作Google Earth動作HID動作
スティック上上へ移動UpArrow (0x52)
スティック下下へ移動DownArrow (0x51)
スティック左左へ移動LeftArrow (0x50)
スティック右右へ移動RightArrow (0x4f)
Zボタン+スティック上下に傾斜Left Shift+UpArrow (0x52)
Zボタン+スティック下上に傾斜Left Shift+DownArrow (0x51)
Zボタン+スティック左時計回りに回転Left Shift+LeftArrow (0x50)
Zボタン+スティック右反時計回りに回転Left Shift+RightArrow (0x4f)
下へ傾けるズームインPageUp (0x4b)
上へ傾けるズームアウトPageDown (0x4e)
Cボタンマウスモードに遷移N/A

ナビ・モードではキーボードを疑似しているので、上下左右の方向キーに対応するキーコードを生成することで移動はできても、斜め方向に移動することができないのが使いづらいところです。斜め移動のためには、マウスモードに遷移してグラブ動作(Zボタンを押しながらスティック操作)が必要となります。

こうして用意した疑似マウス/キーボードのデータは、つぎのフォーマットでWT32に送信してやることでBluetoothで無線化されます。

最初の0x9fで以降のデータがレポート形式で示されるRawデータであることを示します。その次のバイトはデータ長を示しています。0xa1の次の1バイトがマウスとキーボードを識別するレポートIDになっているようです。キーボードでは最大6つのキー状態変化を送信することができます。シフトキーの状態は、Modifierバイトの該当ビットで通知します。



上の写真ではWCA-009の下側にLEDが3つありますが、これらは現在の動作状況を表すのに用いています。
  • 緑LED -- 未使用
  • 赤色LED -- ナビ・モードで点灯
  • 青色LED -- Bluetooth接続されると点灯

調べてみると同じような機能を提供できる製品としてはZeemoteというものがあるようです。ざっと見たところではSPPを使ってAndroidスマホでゲームする人を意識した様子。HIDも使えるので疑似マウス、キーボードもできるようですがあらかじめ用意された動作モードにはGoogle Earth向きのモードは無いように思われます。ジョイスティックを疑似するモードではSPPを使っておりHIDではないので、「PC用」と言わずに「スマホ用」としているのでしょうか?

iBUFFALO Bluetooth2.1対応スマートフォン用ゲームコントローラーブルー/ブラック「ZeemoteJS1」 BSGPJS1
バッファロー
バッファロー


計画していた動作はできるようになりました。写真ではわかりにくいので、動画を用意するつもりです。

カート準備中

2012-06-12 13:18:28 | OLIMEX
SAM3-H256のピン配置を確認したりする際に、ちょくちょくOLIMEXのページを訪れて回路図を参照するのですが、ショッピング・カートの準備中との告知が表示されるようになりました。

OLIMEXといえば、向こうが用意した発注書にサインしてFaxで送っていた記憶がありますが、ようやくとオンラインでの発注が可能になるようです。FAXなんて、近年家庭から急速に消え去っている典型的な家電ですよね。もっとも、すでにMouserがOLIMEX製品を取り扱っているので、わざわざOLIMEXから直接購入することもないような気もします。

今年に入ってからでしょうか、OLIMEXはブログで開発中製品の進展を知らせてくれるので、結構楽しみにしています。オープンソースハードウェアで開発中のOlinuxinoの状況等を知る事ができます。一方でOLIMEXが音頭をとって進めていたOpen Source Project Fan Pageの方は3月から更新が止まったままになっています。OLIMEXのハードを使って進めるオープンソースプロジェクトに対してOLIMEXがハードウェアを提供するというものでしたが、途中で頓挫するプロジェクトが続いて見直しが必要となったままです。個人の力量と熱意だけに依存しているようなプロジェクトは長続きしないどころか、一定のマイルストーンにすら到達できないものが多いということが確認でき、残念な事ではありますがチョット安心もします。何しろ自分がそうですからね。


ヌンチャクのデータを読んでみる

2012-06-09 14:43:17 | Weblog
今回はヌンチャクをI2Cでつなぐだけなので、アダプタを追加するだけでハードの準備は完了です。





調べたとおりに、初期化と読み出しをしてみるとすんなりとデータが読み出せます。


もうアナログ・スティックは不要ですね。もっと早くにヌンチャクを使うことに気づいていたらと悔やまれます。使い方としてはジョイスティック代わりに使いたいところなのですが、iWRAP4のHIDプロファイルのサポートではキーボード/マウスをブート・プロトコルでしか使えないという制約があるので、その制約の範囲内での使い方を模索してみることにします。

もう6月になりましたが、今月中にiWRAP5の正式リリースが予定されています。リリースされたらジョイスティックとしての使い方を実験してみたいと思います。

Wiiヌンチャクの使い方を調べる

2012-06-07 23:04:50 | Weblog
前回の記事ではコマ撮りがとってもシンドイ作業だということを身をもって痛感しました。ありゃ、わたしには不向きの作業ですね。根気だけでなく、周到に計画立てて準備を整えたうえで撮影しないと、人の興味を引くような映像は撮れませんし。次はインターバル撮影をやるべきなのですが、しばらくカメラが続いたので、ここらでちょっと気分転換。中途半端な状態のまま放置されているアナログ・スティックを使ったBluetooth HIDを、ヌンチャクに変更する作業を進めることにします。ヌンチャク用アダプタはすでに入手済みですが、小さい部品なので早いとこ使わないと。いったん埋もれてしまうと再発見できなくなりそうです。

そこでまずはWiiヌンチャクの使い方について調査。みなさんArduinoやmbedで使われているようですね。わたしは次の2つの例を見てみました。
  1. Arduinoの例 -- Wii ヌンチャクと通信してみた(2)t
  2. mbedの例 -- ボードオレンジ:「活用事例3:wiiヌンチャクを使ってチョロQを運転しよう!」
どちらもアクセスの仕方は同じですね。最初に初期化のコマンドを送る必要があり、以後読み出しと、データ要求を繰り返してやるだけのようです。注意点としては、データ要求後次のデータ読み出しまでに50ms~100ms程度のディレイが必要なようです。

コードを読めばデータの出力形式は把握できますが、こちらのサイトで詳しく説明されています。出力データのとる値の範囲も丁寧に説明されているので助かります。

橋本わかばをコマ撮る

2012-06-04 00:22:29 | CMOSカメラ
AVIファイル作成ができるようになったので、いよいよ実際の撮影です。何しろ圧縮と保存で時間がかかるので、毎秒1コマ程度の画像しかとれません。そのため、普通に撮った動画でもあたかもコマが飛んでいるような映像になってしまいます。普通に動画を撮る観点からすれば致命的な欠点ですが、逆転の発想をすれば普通に撮っても「コマ撮り」のような映像が撮れることになります。そこで、今回は意識的にコマ撮りをしてみることにしました。

具体的には、
  1. カメラのナビスイッチを押すことで、AVIファイルの作成を開始。
  2. ナビスイッチを廻すことで、1フレームの画像を取得、圧縮、保存。
  3. 2の操作を繰り返す事でコマ撮り撮影。
  4. 最後にナビスイッチをもう一度押すと、インデックスならびにヘッダを生成してAVIファイルを完成。
という操作を実現するようにソフトを作成。静止画とコマ撮り動画撮影を切り替えるメニュー操作も用意しました。



今回の撮影対象は鉄道むすめ 橋本わかば 限定版です。地元の京王相模原線駅でスタンプキャンペーンが実施されていたので、先週スタンプふたつ集めてから 多摩動物公園駅の京王レールランドまで自転車漕いでゆきクリアファイルもゲットしてきました。





カメラを三脚に固定する手段をまだ用意できていないので、カミさんに手伝ってもらっての作業。インターバル撮影はカメラの固定無しにはできませんが、コマ撮りならなんとかなるだろうと思っていたのですが、甘かった。カメラを手で固定しているだけでも大変です。こりゃ、気力だけでなく体力も消耗してしまいます。わずか30コマ~60コマほど撮影しただけで精魂尽き果ててしましました。1フレームの表示時間(dwMicroSecPerFrame)が200msですので、60コマで12秒ぶんです。